09:00 - 17:00
Tour of C - a proper (re)introduction to C
C is a very capable and highly portable assembly language. C is programming language number 1 for low-level systems and embedded computing --- a position it is likely to hold for many more decades.
This two-day course is aimed at experienced programmers that would like a proper introduction to the C programming language. Software developers already familiar with C might find that this course is exactly what they need to fill in the gaps and further deepen their understanding of this fascinating programming language.
In this course you will learn about:
- The essential building blocks of the C programming language
- Preprocessing, translation, linking, execution and debugging
- The memory model, sequencing and sequence points
- Working with objects, pointers, arrays and structures
- Portability, security and optimization issues
- History and spirit of C
- Modern development and design techniques in C
The instructor will do a lot of live coding and demonstrations while explaining the different concepts. There will also be several exercises during the course that will give students hands-on experience with developing programs and libraries in C.
The course assumes that the student already knows at least one imperative programming language quite well, and that they are familiar with editing code and working from a Unix-like command line.
Participants must bring a laptop with access to a functioning environment for developing code in C11/17, or at least C99. Any modern C compiler and editor will probably do, but I recommend using Linux/macOS/WSL with recent versions of gcc or clang. We will also demonstrate how to develop C code in the cloud, so a modern browser and a github account will be useful.