Programming in C
The C programming language has been one of the most important and influential programming languages for decades. It is used for both scientific applications and low-level software, ranging from simulation programmes on high-performance computers, through operating systems and device drivers, to embedded systems and microcontrollers.
A key feature of C is the direct control it affords over data structures and memory. This makes the language particularly well-suited to applications where efficiency, portability and a deep understanding of how software works are required. Many modern programming languages and their concepts have been influenced by C, so studying C also provides a solid foundation for learning other programming languages.
The ‘Programming in C’ course teaches the fundamentals of procedural programming based on the C11 language standard. In addition to the basic language concepts, key software development techniques are introduced which are of significance far beyond the C programming language itself. The knowledge gained forms a valuable foundation for academic work, technical applications and further courses in computer science and programming.
Course format
The course is offered as a compact course.
Further information can be found in the relevant course catalog.
Language
The course is taught in German. Some course materials, documentation and further reading may be available in English.
Course content
The course covers the fundamental concepts of programming in C. In particular, it covers:
- Fundamentals of programming
- Data types and variables
- Operators and expressions
- Control structures
- Functions
- Data Structures and Memory Management
- Derived data types
- Arrays and strings
- Pointers
- Dynamic memory management
- Language Elements and Tools
- Preprocessor
- Compiling and Linking
- Debugging and error handling
- Input and Output
- File processing
- Reading, processing and storing data
Requirements
No prior programming knowledge is required to take part.
The following would be helpful:
- Basic knowledge of Linux or Debian, as the exercises will be carried out in the Linux CIP-Pool.
- Alternatively, you may use your own laptop. All tools used in the course are platform-independent (Windows, macOS and Linux) and available free of charge.
- A basic knowledge of English, as parts of the documentation are in English.
Assessment
Course assessment consists of actively completing the practical exercises. The exact arrangements will be announced at the start of the course.
For graded credit as part of the IT training programme alongside your studies, you must also complete and submit a final project. The project may be undertaken individually or in pairs. The topic will be determined in consultation with a member of the teaching staff. A selection of suitable topic suggestions will be provided.
Further organisational details will be announced during the course.
Course materials
A detailed set of lecture notes on the topics covered will be made available via GRIPS.
The following are particularly recommended as supplementary reading:
- Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language
- Helmut Erlenkötter: Programming in C from the Start
- Andre Willms: Learning C Programming – Getting Started, Applying, Understanding