# Mein Lerntagebuch für Programmiermethoden und -werkzeuge
## SU 01 (21.10.2021)
## SU 01 (24.10.2021)
### Lernziel
Vorlesung:
@ -19,4 +19,23 @@ Wir haben heute mit dem Linux Terminal erste Erfahrungen gesammelt. Über das Te
---
## SU 02 (28.10.2021)
## SU 02 (02.11.2021)
### Lernziel
Übung:
- Inhalt der Übung war es, in einer Gruppenarbeit die Programmiersprachen Java, C, Python, Go, JavaScript und TypeScript hinsichtlich der in der Vorlesung besprochenen Programiermethoden zu analysieren und kategorisiseren.
- Die Hausaufgabe der Übung ist, bis Mittwoch, den 08.11.2023 die Datei "Prohgrammierparadigmen.md" in unserem Git Repository anzulegen, in der die Inhalte der Gruppenarbeit zusammengetragen sind.
Vorlesung:
- In der Vorlesung wurden acht verschiedenen Prograammierparadigmen und deren Bezug zu den jeweiligen Programmiersprachen thematisiert.
- Zudem haben wir uns näher mit den "Do's and Don'ts" beim Schreiben von Software und das in der Softwareenticklung verwendete Apronym "STUPID & SOLID" befasst.
- Am Ende der Vorlesung wurden uns noch weitere essenziele Prinzipien der Programmierung und deren Bedeutung vorgestellt (KISS, FCoH, SLA, YAGNI, IOC, DI)
### Erkenntnis
Für das Gruppenprojekt und für mich als Anfänger im Bereich Programmieren nehme ich mit, unmittelbar alle oben genannten Prinzipien der Programmierung zu berücksichtigen. Das wird mir und meiner Gruppe viel Zeit ersparen meinen Code später wiederund über längere Zeit komplett zu verstehen und erleichtert es mir und meinen Gruppenmitgliedern daran Verbesserungen und Optimierungen vorzunehmen. Außerdem ist es enorm wichtig sich einen gewissen Standart anzueignen, mit dem man
### Wiederholung
Verschiedene Programmierparadigmen haben verschiedene Sprachen zur optimalen Anwendung. Bei der Objektorientierten Programmierung geht es um das Beschreiben und verarbeiten von Datenelementen, die in klar definierten Objekten enthalten sind (Objekte werden wiederrum in Klassen eingeteilt). Java eine imperative Programmiersprache, bei der die Reihenfolge der Anweisungen klar voregeben ist. Wenn man jetzt noch die Möglichkeit der Datenkapselung (Daten vor einer unerwarteten Veränderung zu schützen) und der Polymorphie von Java berücksichtigt, kann man feststellen, dass sich Java neben der OOP auch für größere Softwareprojekte eignet, da es die Komplexität von Software reduzieren kann und dabei hilft, gut zu wartende Software zu erstellen. Weiter mögliche Programmiersprachen für die OOP wären z.B C#, C++(schneller als Java), Smalltalk oder Kotlin.