From 964ddb77b4c6e5757ad29c68fcf80bca5e28ab37 Mon Sep 17 00:00:00 2001 From: fdai7409 Date: Wed, 9 Nov 2022 20:37:57 +0100 Subject: [PATCH] Lerntagebuch auf neusten Stand gebracht --- Lerntagebuch.md | 17 +++++++++----- Programmierparadigmen.md | 50 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 Programmierparadigmen.md diff --git a/Lerntagebuch.md b/Lerntagebuch.md index c98d0a7..2522a69 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -1,5 +1,7 @@ # Mein Lerntagebuch für Programmiermethoden und -werkzeuge + ## SU 01 (26.10.2022) + ### Lernziel - Organisatorisches - Vorstellung des Dozenten @@ -18,20 +20,23 @@ - Anlegen eines Repositorys - Grundlegende Befehle (vim, push, pull, etc.) ### Erkenntnis -Git-Lab ermöglicht das parallele Arbeiten in Team an einem Projekt. SO haben alle Beteiligten immer Zugriff auf die neuste Projekt-Version. Sollte es Probleme mit der aktuellen Softwareversion geben, kann jederzeit auf eine ältere, funktionierende Version zurückgegriffen werden. +Git-Lab ermöglicht das parallele Arbeiten in Team an einem Projekt. So haben alle Beteiligten immer Zugriff auf die neuste Projekt-Version. Sollte es Probleme mit der aktuellen Softwareversion geben, kann jederzeit auf eine ältere, funktionierende Version zurückgegriffen werden. ### Wiederholung mit 'git push' wird mein aktueller Projektstand in GitLab hochgeladen. Dies ist essentiell, damit alle Team-Mitglieder immer an der neusten Version des Projekts arbeiten können und alle auf dem neusten Stand sind. Sollte doch mal etwas nicht funktionieren kann über die Updates in GitLab herausgefunden werden, was genau geändert wurde und dadurch der Fehler gefunden werden. +--- ## SU 02 (02.11.2022) + ### Lernziel - Kennenlernen verschiedener Programmierparadigmen - - Unterschiede von Imperativen und Deklarativen Programmiersprachen - - Weitere Unterteilung in Prozdurale und Objektorientierte Programmiersprachen -- Prinzipien der Programmierung "STUPID" und " SOLID" sowie weitere Prinizipien (z.B.: KISS, YAGNI, ...) + - Unterschiede von imperativen und deklarativen Programmiersprachen + - Weitere Unterteilung in prozdurale, objektorientierte und funktionale Programmiersprachen + - typisierte und typenlose Programmiersprachen +- Prinzipien der Programmierung "STUPID" vs. " SOLID" sowie weitere Prinizipien (z.B.: KISS, YAGNI, ...) ### Erkenntnis - +Für unser Gruppenprojekt wird sich am Besten eine objektorientierte Programmiersprache eigenen, da diese für gute Struckturierung und bessere Testbarkeit sorgen. So können die anderen Gruppenmitglieder leichter nachvollziehen, was gemacht wurde und Programmteile auch wiederverwenden. ### Wiederholung - +Bei imperativen Programmiersprachen, wie z.B. Java, laufen Programme in einer vorgegeben Reihenfolge ab. Hier werden genaue Schritt-für-Schritt-Anleitungen benötigt. Bei der deklarativen Programmierung stehen hingegen die Beschreibungen der Probleme im Vordergrund, sodass der Lösungsweg automatisch ermittelt werden kann. Die Programme der deklarativen Programmierung sind meist kürzer als die der Imperativen und Beweise sind leichter durchführbar. diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md new file mode 100644 index 0000000..f419d1c --- /dev/null +++ b/Programmierparadigmen.md @@ -0,0 +1,50 @@ +# Analysieren Sie die Programmiersprachen hinsichtlich der in der Vorlesung genannten Kriterien +## Java +- Imperative Programmierung +- Objektorientierte Programmierung +- Funktionale Programmierung (ab Version 8) +- typisierte Programmiersprache +### Vorteile: +- gute Testbarkeit durch die Klassen +- Vervollständigung durch IDE +### Nachteile: +- nachtraegliche Aenderungen koennen bestehenden Code brechen +--- +##C +- Imperative Programmierung +- Prozedurale Programmierung +- typisierte Programmiersprache +### Vorteile: +- Hierachie von Funktionen, sequentiell abgeareitet +- Uebersichtlichkeit +--- +## Python +- ImperativeProgrammierung +- Objektorientierte Programmierung +- typisierte Programmiersprache +### Vorteile: +- Script-Sprache +--- +## go +- typisierte Programmiersprache +### Vorteile: +- geringer Speicherbedarf +- wenig Datenstrucktur +--- +## JavaScript +- typenlose Programmiersprache +### Vorteile: +- Script-Sprache +- implizite Konvertrierung +### Nachteile: +- Typenfehler treten erst zur Laufzeit des Programms auf +--- +## TypeScript +- typisierte Programmiersprache +### Vorteile: +-Script-Sprache +--- + +#Weitere Programmierprinzipien +- DRY - Don't repeat yourself: Wiederhole dich nicht. COde sollte nict dupliziert und anschließend garnicht oder nur minimal verändert werden. +- \ No newline at end of file