Computer systems
CS-202
C Bootcamp instructions/pedagogy
Page content
The way the C programming language is taught in the CS-202 Computer Systems course is threefold:
- a four weeks "C Bootcamp" (detailed below) to provide you with all the basics of the C language; the target audience is former Java programmers;
- a few C complements here and there, weeks 5 to 14, when necessary;
- strong practice in the form of a system-programming project, in teams of two students.
The purpose of this page is to explain how to study during the "C Bootcamp".
The content is provided in the form of a “flipped classroom”: the videos are available online (in French; English transcript available) and have to be watched before the contact sessions, where Jean-Cédric and the assistants will help you digest the content through practice.
The videos for each of seven slots are available in a separate channel on MediaSpace:
- C01a - C basics 1/2 for the Monday of the first week (Feb. 17);
- C01b - C Basics 2/2 for the Wednesday of the first week (Feb. 19);
- C02a - Pointers 1/4: basics for the Monday of the second week (Feb. 24);
- C02b - Pointers 2/4: Dynamic allocation for the Wednesday of the second week (Feb. 26);
- C03a - Pointers 2/4: strings and more for the Monday of the third week (March 3);
- and C03b - Pointers 4/4: arrays and pointer arithmetic for the Wednesday of the third week (March 5),
or the Monday of the forth week (March 10) if you're late (Monday week 4 is to recap/catch up).
Of course, for the very first slot (Monday Feb. 17th afternoon), I don’t expect you to watch all the videos prior to the exercises.
I'd recommend watching only the intro video (“basics-1”) prior to the session and then try to practice the exercises on your own, since there are many similarities between Java and C syntax.
When blocked on a given topic, then watch the corresponding (short) video.
And proceed like this for this first session.
Also, please, carefully read all the general instruction at the beginning of the first exercises handout.
For the next sessions however (including first Wednesday), I’d recommend watching the videos prior to the contact session. There is no point coming to the exercise rooms to watch video. Benefit from our presence to ask questions, get advice, and make progress with us!
Regarding the workload, (as explained at the beginning of the first exercises handout), I expect you spend per week (in the first three weeks):
- ~3 hours (not continuously) getting the content (mainly watching videos; maybe reading some reference , digesting slides, asking question on forums, etc.);
- ~4 hours of exercises (contact hours);
- ~15 min doing the C-related questions in the quiz.
At the end of those three/three-and-half weeks, you should have a broad view of the C language and be a beginner programmer in that language. Then much more practice would be required to become a more advanced C programmer. This is the purpose of the project... (the second objective of which is also to concretely illustrates some of the concepts you will see in the theory lectures).
Your C bootcamp progress will be evaluated on a short exercise, live, Wednesday afternoon week 4 (Wed. March 12th).
Enjoy, and happy coding!