KBS-WiSe2223-SymbolischeProgrammierung: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
== tl;dr ==
== tl;dr ==


Symbolische Programmierung mit Wolfram Mathematica und sympy (Python).
Workshop zu Git, der freien Software zur verteilten Versionsverwaltung.
 
Was ist git eigentlich und wie funktioniert es? Eine Einführung zum mitmachen.


== Too Long Did Read ==
== Too Long Did Read ==


In diesem KBS lernt ihr, was Symbolische Programmierung eigentlich ist (im Gegensatz zu Numerischer Programmierung & Co.), welche Probleme wir besser analytisch / symbolisch lösen können, und welche lieber numerisch.
=== Motivation ===
 
Bist du es nicht auch leid, für deine Hausaufgaben ständig Dateien hin- und herzuschicken?
Hast du schon mal in einer Präsentation etwas geändert und dich später geärgert, dass eine alte Version für immer verschollen ist?
Hast du kurz vor der Abgabe eines Dokumentes wild zwischen "Abgabe_v20_fertig.pdf", "Abgabe_v21_neu.pdf", "Abgabe_v20-komplett.pdf" und "Abgabe_final_korrigiert.pdf" hin- und hergeschaut, um den letzten Stand ausfindig zu machen?
Und hast dich schon mal gefragt, wie das überhaupt geht, dass dutzende Leute zusammen an einer Software arbeiten, wenn es doch ewig dauern würde, die einzelnen Codeschnipsel zusammenzutragen und ständig aktuell zu halten?
 
Dann hast du am kommenden Dienstagabend hoffentlich noch nichts vor, denn da erzähle ich dir und allen Genossen im Schmerz<ref>Ja, diese Formulierung kommt nicht von mir, sondern von Walter ;)</ref>, welch schlaue Software die obigen Probleme löst: Git!


Nachdem wir Programme und Syntax abgehandelt haben, spreche ich folgende Themen an:
=== Was ist eine Versionsverwaltung? ===


* Gleichungen umstellen, lösen, und vereinfachen
Änderungen an Dateien werden mit Hilfe einer Versionsverwaltung in einzelnen Versionen abgespeichert, sodass man einfach zu älteren Ständen zurückspringen kann. Einzelne Arbeitsschritte gehen also nicht verloren und man braucht nie mehr tausend Dateien wie "Abgabe-V2_final_korrigiert-fertig.pdf" anlegen.
* Ableitungen und Stammfunktionen bestimmen
* Eigenwerte finden, Gleichungssysteme lösen
* ...


Ich werde versuchen, das ganze etwas interaktiv zu gestalten, deshalb wäre es sehr von Vorteil, wenn ihr einen Rechner mit installiertem Mathematica mitbringt '''(siehe unten)'''.
Typischerweise erlaubt eine Versionsverwaltung das erstellen paralleler Versionen. Stell dir vor du hast eine Datei "Abgabe.tex" und kopiert sie zu "Abgabe_B.tex". Bei der originalen Abgabe änderst du nun im ersten Kapitel etwas und bei "Abgabe_B" im zweiten Kapitel. Klingt erst mal sinnlos, aber vielleicht bist du dir noch nicht sicher, ob du die Änderungen in "Abgabe_B" wirklich beibehalten möchtest und erstellt so erst mal eine Art Sicherung.
 
So in etwa arbeitet auch eine Versionsverwaltung, in dem verschiedene Stände deiner Arbeit parallel existieren können. So kann man verhindern, dass ungewollte oder fremde Änderungen deine Abgaben, Code oder sonstigen Dokumente kaputt machen.
 
Das halten paralleler Versionen lässt sich natürlich prima auf mehrere Rechner aufteilen, sodass mehrere Personen ihre eigenen Versionen eines Dokumentes halten und so parallel arbeiten können.
 
All das (und noch viel viel mehr) kann git.
 
=== Was ist git? ===
 
Git ist
* plattformunabhängig, klein, schnell und kostenlos,
* kein hacky Nieschen-Tool, sondern ein de-facto Standardwerkzeug, dass alle benutzen ... alle professionellen (Unternehmen|Entwickler|Hacker|Studis) zumindest ;)
* in den Basics einfach zu lernen,
* trotzdem unglaublich mächtig,
* 100% LaTeX<ref>Gibt es vielleicht auch bald ein KBS zu</ref>-Kompatibel, also perfekt für Hausaufgaben, Ausarbeitungen und Abschlussarbeiten,
* in jeder guten IDE (standardmäßig) unterstützt!
 
=== Was muss ich mitbringen? ===
 
Dieses KBS ist zum mitmachen gedacht. Am besten du bereitest dich vor:
 
* Mache dich mit [https://git.mafiasi.de git.mafiasi.de] vertraut (zumindest solltest du dich dort anmelden können)
* Bringe einen Laptop mit und installiere [https://git-scm.com/ git] darauf (egal ob Windows oder Linux, aber natürlich empfehle ich dir Linux ;) )


== Vortragende ==
== Vortragende ==


* Ruben 14felgenh
* Hauke 14stieler


== Folien ==
== Folien ==


* Folien: [[Datei:KBS-WiSe2223-SymbolischeProgrammierung.pdf]]
Gibt dieses mal vielleicht keine (neuen), mal schauen.
 
== Was muss ich mitbringen? ==
 
Idealerweise bringst du ein eigenes Notebook mit installiertem Wolfram Mathematica und <abbr title="$ pip install sympy">sympy</abbr> mit.


Als Studierender der UHH kannst du eine Mathematica-Lizenz der Uni benutzen. Mehr Infos dazu findest du [https://www.rrz.uni-hamburg.de/services/software/software-thematisch/software-alpha/mathematica.html hier] (nur aus dem Uni-Netz oder über VPN verfügbar).
Folien vom letzten mal: [[Medium:KBS-SoSe21-Git-Crashkurs.pdf]]

Version vom 14. Januar 2023, 00:16 Uhr

Dies ist der 5. Termin vom KunterBuntenSeminar im WS 22/23.
Ort: G-022
Datum: 10. Januar
Zeit: 18:00 Uhr bis ca. 20:00 Uhr

tl;dr

Workshop zu Git, der freien Software zur verteilten Versionsverwaltung.

Was ist git eigentlich und wie funktioniert es? Eine Einführung zum mitmachen.

Too Long Did Read

Motivation

Bist du es nicht auch leid, für deine Hausaufgaben ständig Dateien hin- und herzuschicken? Hast du schon mal in einer Präsentation etwas geändert und dich später geärgert, dass eine alte Version für immer verschollen ist? Hast du kurz vor der Abgabe eines Dokumentes wild zwischen "Abgabe_v20_fertig.pdf", "Abgabe_v21_neu.pdf", "Abgabe_v20-komplett.pdf" und "Abgabe_final_korrigiert.pdf" hin- und hergeschaut, um den letzten Stand ausfindig zu machen? Und hast dich schon mal gefragt, wie das überhaupt geht, dass dutzende Leute zusammen an einer Software arbeiten, wenn es doch ewig dauern würde, die einzelnen Codeschnipsel zusammenzutragen und ständig aktuell zu halten?

Dann hast du am kommenden Dienstagabend hoffentlich noch nichts vor, denn da erzähle ich dir und allen Genossen im Schmerz[1], welch schlaue Software die obigen Probleme löst: Git!

Was ist eine Versionsverwaltung?

Änderungen an Dateien werden mit Hilfe einer Versionsverwaltung in einzelnen Versionen abgespeichert, sodass man einfach zu älteren Ständen zurückspringen kann. Einzelne Arbeitsschritte gehen also nicht verloren und man braucht nie mehr tausend Dateien wie "Abgabe-V2_final_korrigiert-fertig.pdf" anlegen.

Typischerweise erlaubt eine Versionsverwaltung das erstellen paralleler Versionen. Stell dir vor du hast eine Datei "Abgabe.tex" und kopiert sie zu "Abgabe_B.tex". Bei der originalen Abgabe änderst du nun im ersten Kapitel etwas und bei "Abgabe_B" im zweiten Kapitel. Klingt erst mal sinnlos, aber vielleicht bist du dir noch nicht sicher, ob du die Änderungen in "Abgabe_B" wirklich beibehalten möchtest und erstellt so erst mal eine Art Sicherung.

So in etwa arbeitet auch eine Versionsverwaltung, in dem verschiedene Stände deiner Arbeit parallel existieren können. So kann man verhindern, dass ungewollte oder fremde Änderungen deine Abgaben, Code oder sonstigen Dokumente kaputt machen.

Das halten paralleler Versionen lässt sich natürlich prima auf mehrere Rechner aufteilen, sodass mehrere Personen ihre eigenen Versionen eines Dokumentes halten und so parallel arbeiten können.

All das (und noch viel viel mehr) kann git.

Was ist git?

Git ist

  • plattformunabhängig, klein, schnell und kostenlos,
  • kein hacky Nieschen-Tool, sondern ein de-facto Standardwerkzeug, dass alle benutzen ... alle professionellen (Unternehmen|Entwickler|Hacker|Studis) zumindest ;)
  • in den Basics einfach zu lernen,
  • trotzdem unglaublich mächtig,
  • 100% LaTeX[2]-Kompatibel, also perfekt für Hausaufgaben, Ausarbeitungen und Abschlussarbeiten,
  • in jeder guten IDE (standardmäßig) unterstützt!

Was muss ich mitbringen?

Dieses KBS ist zum mitmachen gedacht. Am besten du bereitest dich vor:

  • Mache dich mit git.mafiasi.de vertraut (zumindest solltest du dich dort anmelden können)
  • Bringe einen Laptop mit und installiere git darauf (egal ob Windows oder Linux, aber natürlich empfehle ich dir Linux ;) )

Vortragende

  • Hauke 14stieler

Folien

Gibt dieses mal vielleicht keine (neuen), mal schauen.

Folien vom letzten mal: Medium:KBS-SoSe21-Git-Crashkurs.pdf

  1. Ja, diese Formulierung kommt nicht von mir, sondern von Walter ;)
  2. Gibt es vielleicht auch bald ein KBS zu