The course provides an introduction to concepts and programming in C, specifically for low-level and hardware-near applications. Students will gain insight into the possibilities, potentials, but also challenges of programming in particularly resource-constrained environments. A central (but not exclusive) goal will be the (manual) dynamic management of memory, without resorting to automatic garbage collection, or memory safety mechanisms that compilers (often) automatically introduce.
Topics covered will include (subject to time availability).
- Introduction to the basics of C
- Basic data types and structures in C (structs, enums, unions, ...)
- Working with pointers, arrays and strings
- Memory management
- Basic input/output in C
- Common programming errors and pitfalls
- Integration of assembler into C code
- The standard C library
The language of the respective practical courses can be taken from KUSSS (German or English).
- Per week (with the exception of the last week of the semester)
- a recording of the theoretical contents in English is provided as a video.
- two written papers on exercises have to be written and handed in in Moodle (homework).
- a Moodle quiz is to be completed as part of the classroom sessions. The questions in the quiz refer to the "homework" of the same week. Thus, the completion of the exercises serves as preparation for the Moodle quiz.
- after the Moodle quizzes, the solutions to the homework exercises are discussed and questions about the material are answered.
- The weekly attendance meetings serve to deepen the material and to check the progress.
- Attendance is compulsory in the practical courses.
- The exercises may be worked on in groups. The Moodle quizzes, however, are to be worked on individually, and only in the context of the LVA appointment (no remote participation).
- In the last week, there will be a final exam in Moodle on a date common to all groups.
The course is considered passed if the following criteria are met:
- Work on at least 50% of the examples in the two semester halves.
- The grade results from the total sum of the points achieved in Moodle, which is scaled in the range 0...100.
- The grade is calculated according to the following scheme:
Total Sum (Points)