Über diese Lehrveranstaltung
Ein Kurs um die Lücken in der eigenen Informatikausbildung zu füllen, für die eigene Kurse zu lang wären. Nach Vorbild des Missing Semester Kurses am MIT werden neue und alte Werkzeuge vorgestellt, die beim täglichen Leben in der Informatik sehr oft hilfreich werden. Schritt für Schritt werden Themen eingeführt, die letztendlich mit zwei Projekten verbunden werden.
Vorlesungen
- Lecture 1: Introduction & Shells
- Lecture 2: Shells, Editors, and Interaction
- Lecture 3: Git und Du
- Lecture 4: Dateien, Dimensionen und Medium-Data
- Lecture 5: Web, Datenquellen und Scraping
- Lecture 6: Batch-Runs und Makefiles
- Lecture 7: Pakete, Container und Deployment
- Lecture 8: Projekte Nachbesprechung REPLs und Dev Environments
- Lecture 9: Der letzte macht das Licht aus
Exercises
Themen
-
Verschiedene Betriebssysteme und Einstieg ins (noch) Unbekannte
-
Was ist die (Unix) Shell und was bringt sie mir?
-
Editoren (der Altbekannte und der neue Favorit)
-
Umgang mit Daten im mittelgroßen Stil
-
Plotten von Daten im Terminal, PDFs und mehr
-
Containerization for Fun and Profit (Nutzung von bsp. Docker um schnell neue Dienste lokal hosten zu können)
-
Versionsverwaltung (Git), um
dem Wahnsinnvielen Problemen zu entgehen -
Wie man Daten aus Programmen oder Websites heraus bekommen kann, um Neues zu schaffen
-
Faulheit und ihre vielen Möglichkeiten (Automatisierung von Aufgaben in der Konsole ohne extra Programmieren zu müssen)
-
Strukturierte Daten zum Anfassen: SQLite3 in der Shell als Arbeitstier
-
Jahre der Entwicklung für Browser-Engines auch für unsere Zwecke (Generierung von HTML)
-
Einstieg ins Web mit minimalen Hürden (static-site-generation und Hosting)
Projekte und Benotung
Die Note wird durch den Mittelwert von zwei Projekten bestimmt, die Studierende mit gelernten Mitteln aus dieser LVA entwickeln. Das erste Projekt ist in Einzelarbeit zu bewältigen, beim zweiten Projekt können Gruppen aus drei Studierenden gebildet werden.
Ein paar Projektideen:
-
Analyse von Git-Commits mit Gnuplot und Make
-
Ein Blog mit interessantem (custom) Static-Site-Generator Backend
-
Neue Werkzeuge als Kombinationen aus Terminal-Tools
-
Groß angelegte Installations-Scripte für eigene Maschinen
-
Cluster-Verwaltung von mehreren Maschinen
-
Automatisierung von nervigen Tasks (Server-Hosting, Build-Systems, etc.)
-
Analyse von Besuchszahlen in Thermen, Museen, Bars, etc. um herauszufinden, wann man sich Urlaub nehmen sollte
Ideal ist, wenn man sich während den Lectures überlegt, wo man die ganzen Werkzeuge denn nicht sonst noch einsetzen könnte, um vielleicht ein altes Problem das man hatte besser lösen zu können. Und falls keine Ideen entstehen, findet sich immer auch etwas anderes!