Browse Source

Aktualisierung für Woche 2

remotes/origin/HEAD
Ariana Ginju 1 year ago
parent
commit
b453157d3e
  1. 11
      Lerntagebuch.md
  2. 108
      Programmierparadigmen.md

11
Lerntagebuch.md

@ -3,9 +3,12 @@
## SU 01 (24.10.2023) ## SU 01 (24.10.2023)
### Lernziel ### Lernziel
Organisatorisches:
-Dozenten
-Prüfungsanforderungen (Lerntagebuch, Gruppenprojekt, Zusatzpunkte)
* Organisatorisches
* Dozenten
* Prüfungsanforderungen
* Lerntagebuch
* Gruppenprojekt
* Zusatzpunkte
### Erkenntnis ### Erkenntnis
Die organisatorischen Informationen wie Prüfungsanforderungen sind sehr wichtig für das Gruppenprojekt, aber auch allgemein für das Bestehen des Semesters. Die Mindestgröße der Gruppe, die Übergabe, die Commits je Person, die (fast) freie Wahl bei Thema und Programmiersprache – sind Informationen, die mir die Grundlage für den Anfang des Projektes geben. Die organisatorischen Informationen wie Prüfungsanforderungen sind sehr wichtig für das Gruppenprojekt, aber auch allgemein für das Bestehen des Semesters. Die Mindestgröße der Gruppe, die Übergabe, die Commits je Person, die (fast) freie Wahl bei Thema und Programmiersprache – sind Informationen, die mir die Grundlage für den Anfang des Projektes geben.
@ -14,8 +17,6 @@ Die organisatorischen Informationen wie Prüfungsanforderungen sind sehr wichtig
### Lernziel ### Lernziel
Das Lernziel bestand daraus die aufgeführten Programmiersprachen unter dem Aspekt der unterschiedlichen Programmierparadigmen zu beleuchten. Die Details dazu finden Sie in der Datei Programmierparadigmne.md. Das Lernziel bestand daraus die aufgeführten Programmiersprachen unter dem Aspekt der unterschiedlichen Programmierparadigmen zu beleuchten. Die Details dazu finden Sie in der Datei Programmierparadigmne.md.
### Erkenntnis ### Erkenntnis
Für das Gruppenprojekt wäre sehr wichtig, die vorgestellte Prinzipien der Programmierung anzuwenden, so wie "Do's and don'ts" und weitere Prinzipien. Weitere wichtige Informationen für das Gruppenprojekt, die in der Vorlesung besprochen wurden, sind die Eigenschaften verschiedenen Programmierparadigmen. Für das Gruppenprojekt wäre sehr wichtig, die vorgestellte Prinzipien der Programmierung anzuwenden, so wie "Do's and don'ts" und weitere Prinzipien. Weitere wichtige Informationen für das Gruppenprojekt, die in der Vorlesung besprochen wurden, sind die Eigenschaften verschiedenen Programmierparadigmen.

108
Programmierparadigmen.md

@ -2,41 +2,79 @@
# Programmierparadigmen # Programmierparadigmen
## Java ## Java
* Objektorientiert
* Klassen, Vererbung, Polymorphie
* Beispiele
* Ursprung
* Vorteile
2) Declarative Programmierung
* Definition
* Beispiele
* Vorteile
3) Prozedurale Programmierung
3.1 Definition
3.2 Beispiele
4 Objektorientierte Programmierung
4.1 Definition: Polymorphie
4.2 Beispiele: Simula-67
4.3 Vorteile: bessere Strukturierung und Testbarkeit
5 Funktionale Programmierung
5.1 Definition
5.2 Beispiele: Lisp, Hskell, Erlang, etc.
5.3 Vorteile: Generierung neuer Funktionen zur Laufzeit
5.4 Nachteile: nur für Berechnungen
6 typisierte Programmiersprachen
6.1 Definition
6.2 Beispiele: C, Java, Python, C++, go, etc.
6.3 Vorteile: Vervollständigungsvorschläge durch die IDE
6.4 Nachteile
7 typenlose Programmiersprachen
7.1 Definition
7.2 Beispiele: sh, cmd, JavaScript, x86 Assembler
7.3 Vorteile: nur faktische Kompatibilität und implizite Konvertierung
7.4 Nachteile
8 Prinzipien der Programmierung
8.1 do’s & don’ts
8.2 weitere Prinzipien der Programmierung
* Objektorientiert
* Klassen, Vererbung, Polymorphie
* Imperativ
* Ähnlichkeit zu C++
* Standart-Bibliotheken
* Strikt typisiert
* Funktionale Anteile seit neueren Java-Versionen
* Anwendung: Web-Applikationen, Desktop-Anwendungen
## C
* Imperativ
* Prozedual
* Typisierte Sprache
* Anwendung:Hardwarenahe Programmierung
* Direkter Speicherzugriff
* Nutzung auf so ziemlich allen Systemen
* Schnell & verbraucht wenig Ressourcen
* Befehlssatz ist relativ klein
* Kann Vorteil oder Nachteil sein
* Selber schreiben oder einbinden externer Bibliotheken
# Python
* Prozedural
* Imperativ
* Dynamische Typisierung
* Duck Typing
* Objektorientiert
* Vererbung
* Functional
* Python wird zur Bytecode Übersetzt bevor er interpretiert wird
* Klare Syntax, kompakter Code, geringe Schlüsselwörter
* Kompilierter Bytecode wird vom Interpreter ausgeführt
## Go
* Imperativ / 00P (aber keine Klassen/Vererbung)
* Einfach/lesbar
* Effizient
* Orientierung an C
* Low-Level
* Statische Typisierung
* Variablen haben festen Datentyp
* Fehlerfindung frühzeitig
* Standardbibliothek
* Cross Platform Compilation
# JavaScript
* Ähnliche Syntax zu C
* Typenlose
* Imperative Programmiersprache
* Funktionale Programmiersprache
* Objektorientierte Sprache
* Prototypenbasiert also Klassenlos
* Asynchrone Verarbeitung (Callbacks)
* Modulare Programmierung (ES6)
* Vorteile: Verwendung für Frontend & Backend
* Altere Sprache, Große Community
* Interaktive Benutzeroberflächen
* Unterstützung verschiedener Browser
* Anfälligkeit zu XSS
* Läuft im Browser
# TypeScript
* imperativ
* Superset von JavaScript
* Starke Typisierung im Gegensatz zu Javascript
* Statische & Dynamische Datentypen werden unterstützt
* TypeScript ist objekt-orientiert
* Vererbung
* Schnittstellen
* Funktional (weil auf JavaScript aufbauend)
* Einsatzzweck für große Web-Applikationen/Frameworks
* Bessere Strukturierung
* Konsistener durch Type-Checking/Typisierung
## Programmierprinzipien ## Programmierprinzipien
STUPID, SOLID STUPID, SOLID
Loading…
Cancel
Save