Missing Semester
This course will be hold by (alphabetical ordering, see below for emails!) Tobias Faller, Dr. Mathias Fleury, Florian Pollitt, and Tobias Seufert.
This course is oriented to the MIT/SAI “Missing Semester” and presents many useful tools. None of these tools requires a separate course, but each is useful, especially for manipulating text (e.g., log files, automating and evaluating experiments, …). A typical bachelor thesis will involve:
- programming (with an IDE and a proper text editor setup)
- analysing logs (for performance, statistics)
- writing in LaTeX
- producing plots
All these topics are covered in this lecture. More formally this course covers the following topics, among others:
- Linux and desktop environment
- text editors - Using Git - Shells and command line
- Draw graphs in programs
The number of participants is limited (as we run the course for the first time) and HisInOne is taking care of it. We assume that master students already know most of the content, but they can attend too.
You can find a sanitized version of slides on our Nextcloud.
NEWS
Changes compared to previous iterations
-
We will not stream again (but will provide last year’s recording and a new recording for the parts that changed a lot).
-
The course is actually not meant for master students (who probably have already learned most of it anyway). Last year, it was still possible. This year it will not be (except if you failed the course).
Registration
For the registration we rely on HisInOne (including the selection process). We have been told that this time exercises and lecture would be synchronized, so only one registration is required. The registration dates are defined by the University, not by us (last year it was 25.09.2023 and will be similar this year, please see https://www.tf.uni-freiburg.de/de/studium-lehre/termine – we do not control the webpage and we do not know when it will be updated).
The course is (supposed to be) limited to 140 students (because we correct ourselves), but did not reach the limit during the WS24
Organization
- Mode: lecture is in-person (with interaction), but also streamed and recorded with Zoom (without interaction)
- Lecture & Exercise Class: To be confirmed (actual information: Wednesday 10 to 12 and Thursday 12 to 2pm)
- Credits: 6 ECTS
- Dependencies: none
- Language: german
- Responsible (for general questions): Dr. Mathias Fleury
- Email (for everyone): To write everyone
- Teaching by (alphabetical ordering, do not use this list to write people!): Tobias Faller, Mathias Fleury, Florian Pollitt, and Tobias Seufert.
- Exercises will be done on the fly during the lecture depending on the subject.
Most communication is done through Ilias.
Why this course
The entire idea of this course is to show you tools and things that exist. In 2023 we got the feedback that many people would have like the course as a bachelor course! So come and watch it.
Grading
The course will be composed of two parts: the studienleistung (the weekly exercises) and the prüfungsleistung (a project at the end that will have to cover several themes, with a deadline two weeks after the end the course). More details will be given later (around christmas).
Project
The project will be fully announced later in the semester (probably as mentioned in the program, see below). You can have a look at the 2024 version, which will be similar to the 2024 version.
Temptative Planning (TODO: update for 2025)
This is still the 2024 version, we will probably move the LLM part earlier.
Week 1 to 5: Linux and Git (from the GUI down to the terminal)
Week | Lecture plan | Topics | Exercise available | Homework about that content |
---|---|---|---|---|
14. Oct | 16. Oct., 10 AM to 12 PM | Introduction | ||
Light intro to markdown | ||||
Github + TF account | ||||
17. Oct., 12 PM to 02 PM | Ilias + Suchen + Einführung | |||
21. Oct | 23. Oct., 10 AM to 12 PM | Linux | at home | CRITICAL-EXERCISE |
24. Oct., 12 PM to 02 PM | ||||
28. Oct | 30. Oct., 10 AM to 12 PM | Emacs+LSP | on Monday and Thursday | Not-All-Required (1/6) |
04. Nov | 06. Nov., 10 AM to 12 PM | Terminal (mit pipe) | during lecture | Not-All-Required (2/6) |
07. Nov., 12 PM to 02 PM | TF account for ssh / how much printing left / .. | |||
11. Nov | 13. Nov., 10 AM to 12 PM | Git (repositories, collaboration hooks, CI, …) | during lecture | |
14. Nov., 12 PM to 02 PM | Git exercises | CRITICAL-EXERCISE (2weeks) | ||
18. Nov | 20. Nov., 10 AM to 12 PM | Git | ||
21. Nov., 12 PM to 02 PM | PDB |
Week 6 to 11: Automation
Week | Lecture plan | Topics | Exercice available | Homework about that content |
---|---|---|---|---|
25. Nov | 27. Nov., 10 AM to 12 PM | vim/helix + treesitter | during lecture | Not-All-Required (3/6) |
28. Nov., 12 PM to 02 PM | vim exercises | |||
02. Dec | 04. Dec., 10 AM to 12 PM | Python to extract data | CRITICAL-EXERCISE | |
06. Dec., 12 PM to 02 PM | Exercise | |||
09. Dec | 11. Dec., 10 AM to 12 PM | VSCode (including plugins, remote) | Not-All-Required (4/6) | |
12. Dec., 12 PM to 02 PM | ||||
16. Dec | 18. Dec., 10 AM to 12 PM | Docker (requested topic) | ||
20. Dec., 12 PM to 02 PM | ||||
23. Dec | FREE (Christmas) | |||
FREE (Christmas) | ||||
30. Dec | FREE (New Years) | |||
FREE (New Years) | ||||
06. Jan | 08. Jan., 10 AM to 12 PM | Plots (jupyper notebook) | CRITICAL-EXERCISE | |
09. Jan., 12 PM to 02 PM | pyplot |
Week 12 to 15: High level again
Week | Lecture plan | Topics | Exercice available | Homework about that content |
---|---|---|---|---|
13. Jan | 15. Jan., 10 AM to 12 PM | LaTeX | during lecture | Not-All-Required (5/6) |
16. Jan., 12 PM to 02 PM | Project presentation? | |||
19. Jan | 21. Jan., 10 AM to 12 PM | LaTeX | during lecture | |
22. Jan., 12 PM to 02 PM | LLMs? | |||
27. Jan | 29. Jan., 10 AM to 12 PM | LLMs (+define project here?) | CRITICAL-EXERCISE | |
30. Jan., 12 PM to 02 PM | ||||
03. Feb | 06. Feb., 10 AM to 12 PM | Feedback + project |
The Lehrevaluation is the 6th not-all-required exercise and you must pass 4 of the 6 not-all-required exercises.
Missing Semester: what other topics?
It is unlikely that a second version will ever exist here, but many more topics are still interesting to have heard about, including:
- editorconfig
- make / cmake / autoconf / automake
- toying with linux kernel configuration (like scheduler)
- backup management (unison)