Skip to main content


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 respective course (external link, opens in a new window) in the course catalogue.

Language

The lectures are delivered in German. However, the course materials, the lecture notes and some of the documentation used are provided exclusively 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 the course materials and parts of the documentation are in English.

Assessment

The coursework requirement consists of actively working on 75% of the exercises.

For graded credit, e.g., as part of the IT training programme accompanying your studies, it is also necessary to 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 possible topic suggestions will be provided.

Further organisational details will be announced during the course.

Course materials

All course materials are available online:

To top