4 ms·
Hello, You can see the current version of the class at: https://www.cl.cam.ac.uk/teaching/1819/ProgC https://www.cl.cam.ac.uk/teaching/1819/ProgC I've moved
by neel_k 8y ago
Hello,
You can see the current version of the class at:
https://www.cl.cam.ac.uk/teaching/1819/ProgC https://www.cl.cam.ac.uk/teaching/1819/ProgC
I've moved to a style where the lectures are recorded and the lecture hours have been replaced with lab sessions. I've also mostly[1] removed the C++ content and replaced it with more C. Both the videos and the labs should be available for everybody.[2]
This gives more time for tooling (eg, ASan/MSan/UBSan/valgrind), as well as for various low-level topics like memory management (eg, arenas, reference counting and mark-and-sweep) and data-structure layout and cache optimizations (ie, the reasons why people still use C). Also there's a heavy focus on the lack of safety and undefined behaviour -- beyond the lecture devoted to it, this comes up in basically every lecture.
[1] There are still 2 lectures on C++. If you think that it is impossible to learn C++ in 2 one-hour lectures, you are correct. The pedagogical theory at work is basically "Dumbo's magic feather": the goal is to give students enough self-confidence that the year after they won't be afraid to consider doing a final year project using C++ (eg, modifying a web browser), which is the point at which they will _actually_ learn C++.
[2] I'm not totally sure how I feel about this. On the one hand, obviously I'm happy anyone can access these resources.
But on the other, it's really easy to say subtly not-quite-right things when lecturing. If it's ephemeral, then this is harmless since the effect of lectures is just to cue students too remember what to look up when they are programming on their own, but if they can re-watch the video then there's a bigger risk of burning in the wrong idea.
I suppose the long-term thing is to pre-write a script for each lecture, maybe even turn it into a book.
- philonoist 8y agoI think K N King serves best for the purpose. Many haven't mentioned this already and I am surprised about that. amazon.com/C-Programming-Modern-Approach-2nd/dp/0393979504
- opheron 8y agoCool to see you show up to respond! Regarding the bit about "subtly-not-quite-right things when lecturing": IMHO, it's too tall an order to ask professors to get everything in their lectures exactly right. It seems more reasonable to take a page from good journalists - get as much right as possible the first time around, acknowledge if you discover something was wrong, and provide corrections with context. Ultimately, I think it's up to students to remember that everyone can be wrong, even professors, and to trust but verify. :)