diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md deleted file mode 100644 index e69de29..0000000 diff --git a/infos.md b/infos.md new file mode 100644 index 0000000..a0c8663 --- /dev/null +++ b/infos.md @@ -0,0 +1,35 @@ +Markdown datei einfach Quellcode, Textdatei +commit Änderung Fehlerbehebung über mehere Dateien hinweg zusammenfassen unter einem commit, daraus einheit, die man veröffentlichen kann als einheit +bei Änderung ausführlich was geändert und warum + + +Änderung in Terminal hochladen +git status +git add lerntagebuch.md +git commit (dann Änderung beschreiben) +git push -u origin master + + +git init (Ordner wird für git erkannt) +git log (sehen des commits) + +https://education.github.com/git-cheat-sheet-education.pdf + +https://www.markdownguide.org/cheat-sheet/ + +ssh-keygen + +cat id_rsa + + + + + +git clone html von repostiory (klont datei auf rechner) + +vim programmierparadigmen +git add +git commit +git push + +esc :wq (speicher und schließen der Texteditierung) diff --git a/lerntagebuch.md b/lerntagebuch.md index 95a4c7d..d24ebc2 100644 --- a/lerntagebuch.md +++ b/lerntagebuch.md @@ -39,18 +39,41 @@ Bisher noch nichts. ## SU 02 (03-11-2022) ### Lernziel -- Programmierparadigmen -1. Imperative Programmierung -2. Declarative Programmierung -3. Prozedurale Programmierung -4. Objektorientierte Programmierung -5. Funktionale Programmierung -6. typisierte Programmiersprachen -7. typenlose Programmiersprachen -8. Prinzipien der Programmierung + +Inhalte: unterschiedliche Programmierparadigmen + +1. Imperative Programmierung: ein Programm bestehend aus einer Folge + von Anweisungen, die sequenziell von der Maschine ausgeführt werden +2. Prozedurale Programmierung: Erweiterung der Imperativen Programmierung mit dem Unterschied, +Algorithmen werden in übersichtliche Teile (Unterprogramm/Routine/Prozedur/Funktion) zerlegt +3. Declarative Programmierung: grundlegend ist die Beschreibung eines Problems/Funktion eines Programms, +nicht die Umsetzung +4. Funktionale Programmierung: Erweiterung der declarativen Programmierung, Deklarierung von Funktionen und Verknüpfung von Daten, +Computerprogamme = Funktionen, die zu einer Eingabe eine Ausgabe liefern +5. Objektorientierte Programmierung: Struktur einer Software ist an realtitätsnahe Anwendung angelehnt, +unterstützt Klassen, Objekte und Vererbung +6. typisierte Programmiersprachen: für Variablen/Parameter/Rückgabewerte ist der Datentyp implizit/explizit definiert, Vervollständigungsvorschläge durch IDE +7. typenlose Programmiersprachen: Datentyp für Variablen/Parameter/Rückgabewerte ist nicht deklariert +8. Prinzipien der Programmierung: STUPID vs. SOLID ### Erkenntnisse +Programmieren liegt bestimmten Prinzipien zugrunde, +dabei sollte die Software so komplex wie nötig, aber so einfach wie möglich sein. +Das bedeutet, das jede Klasse nur eine einizige Verantwortung zugeordnet werden soll, +um Fehler zu vermeiden. Ein Code sollte zudem offen für Erweiterungen (z.B. Vererbungen), aber geschlossen für Änderungen sein. +Zudem sollten große Schnittstellen (Interfaces) vermieden werden und diese in kleinere aufgeteilt, um die Anforderungen besser zu erfüllen. +Das Solid Prinzip an sich ist somit ein Prinzip, um einen sauberen, guten Code zu programmieren und das im Gruppenprojekt evtl. von Vorteil sein kann. ### Wiederholung +Programmierparadigmen beschreiben grundlegend den Stil, in dem ein Programm entworfen wird. +Es gibt verschiedene, unterschiedliche Programmierparadigmen, die sich darin unterscheiden, +dass sie unterschiedlichen Prinzipien und Herangehensweisen zugrundeliegen. Ein Beispiel ist die Imperative Programmierung, +hierbei besteht das Programm aus einer bestimmten Reihenfolge von Anweisungen, die Schritt für Schritt von der Maschine ausgeführt wird. +Es ist analog wie ein Kochrezept zu verstehen und sehr hardwarenahe. ### Kritik +Für mich persönlich wäre es angenehmer gewesen, da ich noch sehr wenig Programmiererfahrung habe und +das ganze Thema für mich sehr komplex war, +die Programmierparadigmen anhand von konkreten bildlichen Beispielen erklärt zu bekommen. +Beispielsweise direkt an einem Code in dem jeweiligen Programm, sodass man diese gegenüberstellen und verlgeichen kann. + diff --git a/programmierparadigmen.md b/programmierparadigmen.md index 1094e1b..9047a41 100644 --- a/programmierparadigmen.md +++ b/programmierparadigmen.md @@ -1,16 +1,25 @@ # Analysieren Sie die Programmiersprachen Java, C, Python, go, JavaScript und TypeScript hinsichtlich der in der Vorlesung genannten Kriterien ## Java +- objektorientierte Programmierung +- typisierte Programmiersprache +- funktionale Programmierung ## C +- prozeduale Programmierung +- typisierte Programmiersprache ## Python +- typisierte Programmiersprache ## go +- typisierte Programmiersprache ## JavaScript +- typenlose Programmiersprache ## TypeScript +- typisierte Programmiersprache