Why do we use the C ++ language

Programming in C and C ++ (4SWSt, 6 LPs)

C is still one of the most widely used programming languages. In C, simulation programs for high-performance computers are written, but also microcontroller controls for washing machines.

C is also indispensable for machine-level programming, which is used, for example, for device drivers. If you adhere to the agreements of the ANSI standard, C programs are portable and run under any operating system (Windows, Unix / Linux, Mac, ...). In addition, dozens of other languages ​​are derived from C that are tailored to the respective requirements of their niches. Anyone who knows C will be able to familiarize themselves with most programming languages ​​without much effort.

C ++ is a language very similar to C, but much more powerful. The course gives a brief insight into C ++, but can unfortunately only offer a stepping stone to study the C ++ language.

We essentially deal with classic, procedural programming in C (according to the C11 standard), which is the fastest way to achieve the desired goal for most programming tasks. The knowledge acquired in the course forms an ideal starting point for many activities in studies and work. Programming skills are increasingly not only desirable but also necessary in science, and the techniques shown here have been chosen in such a way that they are also useful in other settings.


  • Basic concepts
    • From the bit to information
    • Compiling and assembling
    • Representation of data in the main memory, data types
    • Handling the console
    • Variables, addresses, arrays and strings, constants, operators
    • Derived data types
  • * Control structures
    • Case distinctions
    • grind
    • Subroutines (functions)
  • Dynamic memory management
  • The C preprocessor
  • File editing
  • Advanced programming techniques (e.g. linked lists, generic functions)
  • First steps in object-oriented programming with C ++

Prior knowledge, technical requirements

Prior knowledge

No knowledge of C or any other programming language is required for the course. Some familiarity with command line programs is desirable; However, an introduction to this is also offered on the first day of the course.

Technical requirements

The course participants can basically decide freely in which software environment they want to work. It is recommended, however, to call the compiler via the command line and to write code in a pure code editor. The following setup is recommended for this:

  • For Windows users (Windows 8 and older):
  • For Windows users (Windows 10):
  • For Linux users:
    • Editor: gedit, kate or geany (can be installed free of charge from the common repositories)
    • Compiler: the gcc compiler is preinstalled here
    • to test the setup: - tba -
  • For Mac users:
    • Editor: xcode (can be installed free of charge from the app store)
    • Compiler: is automatically installed with xcode

Alternatively, the IDE (integrated development environment: a program package that allows code editing and translation into machine language via a uniform interface) devC ++ installed (see http://orwelldevcpp.blogspot.com/). Also Code :: Blocks (http://www.codeblocks.org/downloads/26) is widely used and available for Windows, Linux, and Mac.

For Windows is Code :: Blocks unfortunately not to be recommended, as runtime errors are sometimes not displayed. Instead, you can use, for example Visual studio to use.

In the first lesson, we try to help you set up a functioning work environment. In order to lose as little time as possible here, I ask you to try to set up your computer for the course yourself with the instructions above.


Course performance and crediting

  • Active participation in the lecture and the exercises
  • Submission of a self-chosen and self-implemented final project after consultation with the lecturer. A selection of suggested topics will be made.
  • You have a total of 16 days to work on the final project. On the last two days of the course, you can still ask your tutors for help in the exercise. The 14 days after that are free to work on your project
  • Your codes will be handed in via GRIPS.

script

A detailed script on the topics covered is available for download via GRIPS. The (not revised) script from the previous year can already be called up in advance via the transcript collection of the Maths / Physics student body (physics, lecturer Hartinger).
A command reference can be found at https://en.cppreference.com/w/c.

Further reading (excerpt)

  • Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Prentice Hall
  • Bjarne Stroustrup: The C ++ Programming Language, Addison Wesley.
  • Helmut Erlenkötter: C programming from the start (ISBN: 3499600749)
  • Helmut Erlenkötter, Ludwig Moos: C ++. Object-oriented programming from the start (ISBN: 3499600773)
  • Andre Willms: Learn C programming - start, use, understand (ISBN: 3827314054)
  • Andre Willms: Learn C ++ Programming - Start, Apply, Understand (ISBN: 3827313422)

Event dates

The event will take place in the summer semester 2021 during the semester in a weekly rhythm.

Fridays from 8.00 a.m. until 10.00 c.t. the lecture takes place via Zoom. The login data will be announced in good time by email; this requires registration in the LSF.

The exercises take place in several exercise groups at different times during the week. There the course participants work together in small groups (2-3) in Zoom and solve exercises that are provided by GRIPS. The instructors moderate these small groups, are available to answer questions and provide evidence of successful participation. This means that the solutions should be presented to the tutors in the meeting at the end of the exercise.

Block course

As a rule, in addition to the semester course, a block course is also offered during the lecture-free period, including the lecture-free period between the winter semester 2020/21 and the summer semester 2021. For more information, please refer to the course catalog.


Alexander König, [email protected]