Browse Source

Mein 3ter Push

remotes/origin/HEAD
Christian Reum 1 year ago
parent
commit
91d3beb069
  1. 42
      Lerntagebuch.md
  2. 85
      Programmierparadigmen.md

42
Lerntagebuch.md

@ -3,15 +3,57 @@
## SU 01 (24.10.2023)
### Lernziel
Programmierer benötigen Fachwissen, um ein fehlerfreies Programm schreiben zu können.
- Besprechung der organisatorischen Inhalte
- Eigenschaften die ein Programierer haben sollte
- Vergleich Handwerker/Künstler
- Vergleich Profi/Laie
- Programmierfehler können hohe Kosten verursachen und sollten deshalb vermieden werden
- das Buch Clean Code definiert wie Code geschrieben werden sollte
- Erstellung des Lerntagebuchs und Verknüpfung der Repository mit gitlab
### Erkenntnis
Programmierer sollten gewisse Eigenschaften haben und Prinzipien folgen.
Durch einheitliche Programmierung und einhalten einer gemeinsamen Syntax können Fehler die ggf. fatal sind vermieden werden.
### Wiederholung
Ein Programmierer benötigt Eigenschaften wie logisches Denken, ein ausreichendes Fachwissen und Geduld, um ein gutes Prdoukt zu schaffen.
Dabei ist das Produkt meist von praktischem Nutzen wie etwa eine Automatisierung eines einfachen Prozesses. Ein Programierer beginnt als Laie und lernt
sein Handwerk über Zeit und Erfahrung.
### Kritik
---
## SU 02 (31.10.2023)
### Lernziel
Programmiersprachen werden in folgende Kategorien eingeteilt:
- imperative Programmierung
- deklarative Programmierung
- prozedurle Programmierung
- objektorientierte Programmierung
- funktionale Programmierung
- typisierte Programmmiersprachen
Prinzipien der Programmierung
### Erkenntnis
### Wiederholung
### Kritik
---
## SU 3 (07.11.2023)

85
Programmierparadigmen.md

@ -0,0 +1,85 @@
### Python
- interpretierte Sprache
- Überetzung in andere Sprachen möglich
- Portabilität
- objektorientiert
- Klassen gelten als Objekte, die aus Methoden und Attributen bestehen
- Methoden = Funktionen, Attribute = Daten
- Vererbung möglich
- typisiert
- Implikation von Datentypen (dynamisch, Duck typing)
- direkte Fehlererkennung durch Interpreter
- prozedural
- Algorithmen werden in einzelne Funktionen geteilt
- diese sind modular
- Code wird sequentiell bearbeitet
- funktional
- Berechnungen durch Funktionen
- innerhalb der Funktionen werden Funktionen aufgerufen
- kompakte Syntax
### Java
- imperativ
- objektorientiert (OOP)
- streng objekt-orientiert
- Konzept: Klassen/Objekte
- Vererbung/Kapselung/Polymorphie
- Modellierung komplexer Probleme leichter
- wartbar/skalierbar
- Typisierung: strikt typisiert
- plattformunabhängig
- cross-platform kompatibel
- Multi_Threaded
- funktional (seit neueren Versionen)
### C
- Imperative Programmierung (auch prozedural)
- streng typisiert
- Vorteil: Hardwarenähe, Kompatibilität
- Schnelligkeit
- Nachteil: Speicherverwaltung
### Go
- modular, imperativ
- breite Palette an Programmierparadigmen
- teilweise objektorientiert & funkional
- keine Vererbung
- statt Klassen werden Structs verwendet
- einfache, effektive Programmierung
- Typisierung: statisch
- vor Kompilierung müssen Datentypen fest stehen
- Schnelligkeit von C & Anwendungsmöglichkeit/Simplizität von Python
- Multi-Threading
### JavaScript
- Erweiterung von HTML
- funktional
- Multi-Paradigmen
- OOP, prozedural oder funktional
- dynamische Typsisierung
- Anwendung: interaktive Web-Anwendungen (z. B. Google Maps)
- Vorteile: Modernes Erscheinungsbild, günstiger Server-Traffic (läuft im Browser)
- dynamische Elemente
- event-basiert (Callbacks)
- asynchrone Verarbeitung
### TypeScript
- typisiert
- imperativ, OOP
- Vererbung
- TypeScript hat Einfluß von JavaScript/Java/C#
- Baut auf Supermenge von JAvaScript Bibliotheken auf
- Skalierbarkeit / Wartbarkeit --> Durch Einführung OOP
Loading…
Cancel
Save