Skip to content

C programming, again ! ✨

As the number of training session is quite limited, doing C coding while exchanging about it with your peers with a similar level of exertise is probably the fastest way to gain knowledge. We encourage you to group, discuss and work together. And never hesitate to ask questions to the teacher.

This lecture come in two tracks:

  1. Full beginner in C programming. You will have to catch as fast as possible as C will be used in all practicals of OS lectures.

  2. Medium to advanced C programmer. We propose some small exercises dedicated to the main point used in OS lectures. The goal is to let you fully understand the memory interaction, processus debugging and of course, pointers.

In this lecture, the goal is the C-language pre-requisite of the remainings lectures of the year. The better your level at the end of the training week, the easier will be your master year from the programming point of view.

Do not hesitate to ask question to the teacher. No question is stupid enough to delay the query of an answer.

But, there is never enough teacher's time, and you do not start all with the same level of expertise. Again, as we hope to deepen it for everybody, we propose that you physically group yourself with the students of the same level of expertise, and discuss a lot with everybody to exchange on your questions and answers.

We will also spend one session on Git source code management.

Table of content

  1. Track for full beginners:
  2. Track for medium/advanced programmer
  3. Git fundamentals
  4. Other exercises

Track for full beginners 🛫

  1. Read and practice the book ''Modern C'' of Jens Gustedt 📚. Namely, rewrite (not copy-paste) the examples. Compile them and execute them. This way seems to us the simplest and fastest way. You should reach ideally the end of the pointer section (at the middle of the book). This book is opinionated. Thus, other (or older) books may propose slightly different choices, conventions and explanations.
  2. ALTERNATIVE LESS OPINIONATED: If you dislike the previous book, The wikibook on C at https://en.wikibooks.org/wiki/C_Programming is also a quite nice starting resource.
  3. For French readers, The older book ''Le langage C'' of Bernard Cassagne is a very progressive book. It can be found at http://matthieu-moy.fr/cours/poly-c/. But it does not cover the modern evolutions of the language.

Track for medium to advanced programmer 🚀

The subjects of the practical lab of the training week

The subject of the practical

The subject uses the source code skeletons available at the following github repository

1
$ git clone https://github.com/gmounie/ensimag-rappeldec.git

Advanced Debuging (in French)

The same GDB advanced tutorials were copied into wikiversity (French edition): Wikiversity/Débogage avancé

The MOSIG C Programming presentation

The slides of the presentation

Git fundamentals

Git lectures and practical

Other exercises for intensive C training

The website ''Exercism.io'' proposes a lot of progressive practices in many languages including C.

https://exercism.io/tracks/c