I am associate professor at Ensimag, IHMO one of the best place to learn and teach computer science in France. I am teaching mainly operating systems at the Master level.
In addition to basic system concepts (file, process, interrupts, etc.), this lecture introduce concurrent programming.
The students implement a memory allocator, a shell and a multhreaded application as homework. I tried to vary the subjects using multiple variants and provides immediate feedback of the quality of the code by providing automated tests.
- pseudo-random subjects: the variants are assigned using the SHA of the student login
- automatic makefile generation: cmake
- full automatic tests: google test library, ruby pexpect
This lecture presents the basic of system architecture and design, mainly around IO, virtual memory, OS structure, multi-core management in Linux, Windows and Android particularities. Some time is also spend to practice few practical points, eg. mmap, futex and atomic operations.
This lecture is common with the computer science master of UJF. It revisits OS and network basic concepts from the administrator point of view. A part is also dedicated to advanced scripting in Perl.
This particular project exists from numerous years at Ensimag. It consists to write from scratch a operating system for x86 (PC): process . In the old ages, students wrote it top-down. At the beginning of the 21th century, we switch to a bottom-up approach and then add virtual memory recently.
I was converted to IPv6 now point of view by a talk of Stéphane Brotzmeyer . Every IPv4 useful features are in IPv6 in a well integrated manner. In short, teaching IPv4 is just confusing and should be as restricted as possible.