From 1d989e902d05915338e5f2ea869935930ccaa900 Mon Sep 17 00:00:00 2001 From: fdai7775 Date: Fri, 3 Nov 2023 12:54:30 +0000 Subject: [PATCH 1/4] Update Programmierparadigmen.md --- Programmierparadigmen.md | 109 ++++++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 36 deletions(-) diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md index 87da1b7..c1620cb 100644 --- a/Programmierparadigmen.md +++ b/Programmierparadigmen.md @@ -1,42 +1,79 @@ - # Programmierparadigmen ## Java - * Objektorientiert - * Klassen, Vererbung, Polymorphie +* 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 - * 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 +# 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 -STUPID, SOLID \ No newline at end of file +STUPID, SOLID From 62ab1ab8c40b590d5f5668d53da01f4a6bc29efa Mon Sep 17 00:00:00 2001 From: fdai7775 Date: Fri, 3 Nov 2023 12:54:56 +0000 Subject: [PATCH 2/4] Update Lerntagebuch.md --- Lerntagebuch.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Lerntagebuch.md b/Lerntagebuch.md index 885e4f6..db44b1f 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -14,10 +14,8 @@ Die organisatorischen Informationen wie Prüfungsanforderungen sind sehr wichtig ### 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. - - ### 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. ### Wiederholung -Objektorientierte Programmierung (OOP) ist ein Modell der Computerprogrammierung, bei dem das Softwaredesign auf Daten oder Objekten basiert. In der objektorientierten Programmierung denken wie an Probleme wie Puzzelteile. Ein Puzzelteil ist wie ein "Objekt", das Daten und Aufgaben hat. Wir können viele dieser Puzzelteile erstellen, sie miteinander verknüpfen und so komplexe Lösungen bauen. OOP hiflt uns, den Code sauber und gut organisiert zu halten, aber auch Programme besser zu organisieren und verständlicher zu machen. \ No newline at end of file +Objektorientierte Programmierung (OOP) ist ein Modell der Computerprogrammierung, bei dem das Softwaredesign auf Daten oder Objekten basiert. In der objektorientierten Programmierung denken wie an Probleme wie Puzzelteile. Ein Puzzelteil ist wie ein "Objekt", das Daten und Aufgaben hat. Wir können viele dieser Puzzelteile erstellen, sie miteinander verknüpfen und so komplexe Lösungen bauen. OOP hiflt uns, den Code sauber und gut organisiert zu halten, aber auch Programme besser zu organisieren und verständlicher zu machen. From 45b7d1a44a30b44a44c667e205f7e3bf46c55cc8 Mon Sep 17 00:00:00 2001 From: fdai7775 Date: Fri, 3 Nov 2023 12:56:13 +0000 Subject: [PATCH 3/4] Update Lerntagebuch.md --- Lerntagebuch.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Lerntagebuch.md b/Lerntagebuch.md index db44b1f..35f7001 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -2,10 +2,12 @@ ## SU 01 (24.10.2023) ### Lernziel - -Organisatorisches: --Dozenten --Prüfungsanforderungen (Lerntagebuch, Gruppenprojekt, Zusatzpunkte) +* Organisatorisches + * Dozenten + * Prüfungsanforderungen + * Lerntagebuch + * Gruppenprojekt + * Zusatzpunkte ### 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.