You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
5.5 KiB

  1. # Mein Lerntagebuch für Programmiermethoden und -werkzeuge
  2. ### Julia Kunze
  3. ## SU 03 (09-11-2022)
  4. ### Lernziele
  5. - Entwurfsmuster
  6. - IDE
  7. ### Erkenntnisse
  8. Es ist sehr sinnvoll, Quellcode mithilfe einer integrierte Entwicklungsumgebung (IDE) zu schreiben, denn IDEs haben viele nützliche Vorteile, die das Programmieren vereinfachen.
  9. Sie verfügen über einen Editor, mit dessen Hilfe man den Programmcode schreiben kann.
  10. Überdies ist ein Compiler integriert, der den Code in Maschinensprache übersetzt und ihn zu einem ausführbarem Programm zusammensetzt und haben zusätzlich auch Debugger, der bei der Fehlersuche hilft.
  11. Ein weiterer Vorteil, um die Arbeit zu erleichtern, ist die Syntax-Highlighting, das die Elemente farblich hervorhebt.
  12. ### Wiederholung
  13. Was sind Entwurfsmuster? Entwurfsmuster sind Lösungsvorlagen für wiederkehrende Entwurfsprobleme in der Softwarearchitektur und -entwicklung. Es beschreibt eine Lösung für eine bestimmte Klasse von Entwurfsproblemen, die in einem bestimmten Zusammenhang wiederverwendet werden kann.
  14. Es gibt unterschiedliche Arten: Erzeugungsmuster, Strukturmuster, Verhaltensmuster, Muster für objektrelationale Abbildung und Nachrichtenübermittlungsmuster. Dabei sind die Anforderungen an jedes Muster gleich, es soll:
  15. - ein oder mehrere Probleme lösen
  16. - ein erprobtes Konzept basierend auf realen Designs bieten
  17. - den Benutzer in den Entwurfsprozess einbinden
  18. - tiefergehende Strukturen und Mechanismen eines Systems umfassen
  19. - Referenzen zu anderen Mustern beinhalten
  20. ### Kritik
  21. ## SU 02 (03-11-2022)
  22. ### Lernziel
  23. Inhalte: unterschiedliche Programmierparadigmen
  24. 1. Imperative Programmierung: ein Programm bestehend aus einer Folge
  25. von Anweisungen, die sequenziell von der Maschine ausgeführt werden
  26. 2. Prozedurale Programmierung: Erweiterung der Imperativen Programmierung mit dem Unterschied,
  27. Algorithmen werden in übersichtliche Teile (Unterprogramm/Routine/Prozedur/Funktion) zerlegt
  28. 3. Declarative Programmierung: grundlegend ist die Beschreibung eines Problems/Funktion eines Programms,
  29. nicht die Umsetzung
  30. 4. Funktionale Programmierung: Erweiterung der declarativen Programmierung, Deklarierung von Funktionen und Verknüpfung von Daten,
  31. Computerprogamme = Funktionen, die zu einer Eingabe eine Ausgabe liefern
  32. 5. Objektorientierte Programmierung: Struktur einer Software ist an realtitätsnahe Anwendung angelehnt,
  33. unterstützt Klassen, Objekte und Vererbung
  34. 6. typisierte Programmiersprachen: für Variablen/Parameter/Rückgabewerte ist der Datentyp implizit/explizit definiert, Vervollständigungsvorschläge durch IDE
  35. 7. typenlose Programmiersprachen: Datentyp für Variablen/Parameter/Rückgabewerte ist nicht deklariert
  36. 8. Prinzipien der Programmierung: STUPID vs. SOLID
  37. ### Erkenntnisse
  38. Programmieren liegt bestimmten Prinzipien zugrunde,
  39. dabei sollte die Software so komplex wie nötig, aber so einfach wie möglich sein.
  40. Das bedeutet, das jede Klasse nur eine einizige Verantwortung zugeordnet werden soll,
  41. um Fehler zu vermeiden. Ein Code sollte zudem offen für Erweiterungen (z.B. Vererbungen), aber geschlossen für Änderungen sein.
  42. Zudem sollten große Schnittstellen (Interfaces) vermieden werden und diese in kleinere aufgeteilt, um die Anforderungen besser zu erfüllen.
  43. 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.
  44. ### Wiederholung
  45. Programmierparadigmen beschreiben grundlegend den Stil, in dem ein Programm entworfen wird.
  46. Es gibt verschiedene, unterschiedliche Programmierparadigmen, die sich darin unterscheiden,
  47. dass sie unterschiedlichen Prinzipien und Herangehensweisen zugrundeliegen. Ein Beispiel ist die Imperative Programmierung,
  48. hierbei besteht das Programm aus einer bestimmten Reihenfolge von Anweisungen, die Schritt für Schritt von der Maschine ausgeführt wird.
  49. Es ist analog wie ein Kochrezept zu verstehen und sehr hardwarenahe.
  50. ### Kritik
  51. Für mich persönlich wäre es angenehmer gewesen, da ich noch sehr wenig Programmiererfahrung habe und
  52. das ganze Thema für mich sehr komplex war,
  53. die Programmierparadigmen anhand von konkreten bildlichen Beispielen erklärt zu bekommen.
  54. Beispielsweise direkt an einem Code in dem jeweiligen Programm, sodass man diese gegenüberstellen und verlgeichen kann.
  55. ## SU 01 (26-10-2022)
  56. ### Lernziel
  57. - Organisatiorisches
  58. - Eigenschaften eines Softwareentwicklers - sowohl Künstler als auch Handwerker
  59. - Abgrenzung des Laien vom Profi mithilfe Fachwissen, Werkzeuge und Prinzipien
  60. - Folgen von Unprofessionalität
  61. - Anlegen eines Vorlesung-Repository
  62. - Kennenlernen von GOGS/GitLab, Git Befehle und markdown
  63. ### Erkenntnisse
  64. Ich habe gelernt, wie ich auf GOGS ein Repository anlege, als auch wie man dort einen Eintrag hochladen kann.
  65. Über das Terminal kann man mithilfe von Git Befehlen eine Datei pushen und so wird ein Commit hochgeladen.
  66. Die Erkenntnis kann ich später beim Gruppenprojekt nutzen, das wir durch Commits erstellen und weiterentwickeln können.
  67. Außerdem habe ich gelernt, das Softwarefehler teuer werden können :).
  68. ### Wiederholung
  69. Was sind Git Befehle und wie kann ich einen Commit machen?
  70. Git Befehle nutzt man, um mit Git interagieren zu können. Um dort Änderungen hochzuladen,
  71. nutzt man die Befehle:
  72. - git status
  73. - git add file (die markdown Datei zum tracken hinzufügen)
  74. - git commit (um die Änderung beschreiben)
  75. - git push -u origin master (somit wird der Commit hochgeladen)
  76. - git init (Ordner wird im Git erkannt)
  77. - git log (Sehen des Commits)
  78. ### Kritik
  79. Bisher noch nichts.