Im zweiten Semester habt Ihr die Module:
Schaut unbedingt jetzt noch einmal in das Modulhandbuch unter Informatik/Wirtschaftsinformatik.
In den beiden Veranstaltungen TFW und Infrastruktur werden wir sehr ähnliche Inhalte - wenn auch je aus unterschiedlichen Blickwinkeln - behandeln, damit Ihr beispielsweise in SWE II eine gemeinsame Umgebung und ein gemeinsames Grundverständnis habt. So könnt Ihr dort übergreifende Teams bilden.
Wir gehen davon aus, dass Ihr STEP absolviert habt und die Inhalte beherrscht. Ihr könnt Euch auf hopper bewegen (cd, ls, mkdir, rm, cp, mv, man, ...), dort Skripte schreiben und eine einfache Webanwendung mit cgi und bash in Eurem docker-Container entwickeln. Ihr versteht die Posix-Dateirechte. Ihr könnt mit dem vim umgehen. Ihr versteht, was Prozesse sind und wie stdin, stderr, stdout und Prozess-ID miteinander zusammenhängen.
Ihr beherrscht Reguläre Ausdrücke mit sed und grep und Piping mit den installierten Werkzeugen (seq, head, tail, grep, sed, cut, cat, less, tr, sort, uniq, nl, tar, wc, sudo, ...) und mit while/read. Ihr beherrscht bedingte Ausführungen mit exit-Codes, Kommandosubstitution und for-Schleifen mit Wildcards. Ihr könnt in Dateien schreiben und aus ihnen lesen. Ihr kennt bc, curl und ncat. Ihr habt die ersten Schritte in Sachen Nebenläufigkeit von Prozessen gemacht. Ihr wisst, wie Ihr einen cron-Job anlegt. Ihr kennt die größeren Programme gnuplot, imagemagick, ffmpeg und LaTeX.
In all dem solltet Ihr zu Beginn des zweiten Semesters sicher sein. Schaut noch einmal in Ruhe in die STEP-Aufgaben unter /home/step2023/aufgaben/. Seid Ihr in der Lage, die Aufgaben ohne Nachzuschauen zu lösen? Falls nicht, übt das jetzt noch einmal. Ohne diese Kenntnisse und Fertigkeiten wird Euch das zweite Semester nicht oder kaum gelingen.
Einen Watcher, der die Verbindung zu rhodes aufrecht erhält, bzw. reaktiviert, solltet Ihr aus dem Stegreif heruntertippen können.
Ab dem zweiten Semester gehen wir davon aus, dass Ihr Euch Eure Umgebung so einrichtet, dass Ihr sowohl auf hopper als auch auf Euren Laptops eine solide Entwicklungsumgebung habt. Dazu gehören:
Natürlich dreht sich alles um Linux als Serversystem. Ihr werdet das Betriebssystem besser kennenlernen. Dazu gehört, weiterhin mit cgi Webanwendungen zu entwickeln und darin diverse typische Teilsysteme einzubinden: ein Datenbankmanagementsystem wie MariaDB und ein Publish/Subscribe und KeyValue-Store wie Redis (oder ValKey) einzusetzen.
Zudem werdet Ihr das HTTP-Protokoll und die Werkzeuge (apache, ab, curl, wrk) besser kennenlernen.
Ihr werdet mit git arbeiten und eine einfache Continuous Integration Struktur mit Hooks entwickeln.
Wir werden einmal im Semester tief in das Verhältnis von Programm, Compiler, Linker, CPU und Betriebssystem absteigen und dabei ein wenig in C, make und Assembler hineinschauen.
Als weitere Sprache werdet Ihr Javascript und deren Einsatz in Webanwendungen kennenlernen.
Sonstiges: Warteschlangen, Statemachines, einfaches Parsing, Interprozesskommunikation, Signale, Arrays, Hashmaps, Fifos, Filedescriptoren, Threads vs Prozesse, SVG, Monitoring und Visualisierung, Loadables, Cookies und Sessions, Websockets, Ajax, inotify.