3 ms·
Hi HN, I spent last spring working on a new class at Stanford that's focused on common pitfalls in systems programming and how to avoid them. You can check out
by ksml 6y ago
Hi HN, I spent last spring working on a new class at Stanford that's focused on common pitfalls in systems programming and how to avoid them. You can check out all the lecture materials (including recorded lecture videos) and assignments available here: http://cs110l.stanford.edu/ http://cs110l.stanford.edu/
I'm planning on teaching this class again in the winter or spring and am looking for any feedback to improve it. I would love to hear your comments and suggestions!
- krat0sprakhar 6y agoThis looks really cool! I especially love the assignments and I'd definitely take a crack at them. Thanks again!
- ksml 6y agoThanks for checking it out! I'd love to hear any feedback once you look through them
- blasrodri 6y agoThanks so much for sharing it.
- __ryan__ 6y agoI may be misunderstanding, but it appears that the code for the assignments is in a private GitHub repo that students of the class are invited to. Is there any other way to gain access?
- ksml 6y agoI'm happy to email it to you! My email's at the bottom of the blog post. I'm also working on getting that starter code posted publicly. EDIT: the code is now posted here: https://github.com/reberhardt7/cs110l-spr-2020-starter-code https://github.com/reberhardt7/cs110l-spr-2020-starter-code
- __ryan__ 6y agoThank you! Finally going to take a stab at rust, glad to have some direction in that endeavor.
- Dowwie 6y agoOne aspect of systems programming that doesn't get enough attention involves tracing memory leaks (with valgrind, massif, etc). While it may be challenging for you to create realistic examples, doing so would help expose students to challenges they'll face in the real world.
- ksml 6y agoThat's a great suggestion! I'll try to design some exercises for the next time we teach this.
- Animats 6y agoThis is a step forward. I've been pushing for more language safety for what, decades, and it's good to see Stanford teaching it. It's important that students understand ownership concepts, because they exist in C, but the language doesn't give you any help in dealing with ownership. For years, I've been saying about C that the big questions are "how big is it?", "who deletes it?", and "who locks it?". Rust addresses all of those. So teaching Rust is useful to get students thinking in the right direction. Even if they get stuck maintaining old C code. Looking ahead, new students are going to have to deal in future with huge numbers of CPU cores. So they need to deal with large numbers of threads. That's very hard to do well. This class addresses not just safety, but performance. That's good. This is so far ahead of what I got from Stanford in 1985. (I have some arguments with the Rust people, mostly around over-use of "unsafe" and too much language churn, but they're doing great work.)
- eslaught 6y agoJust FYI, Stanford also has a class on parallel programming (which I TA'd at one point). This goes into GPU and distributed programming as well as multi-core. Slides are online though I guess lecture recordings are not: http://cs149.stanford.edu http://cs149.stanford.edu
- driest 6y agoGreat class, thanks for sharing the materials. Would you consider also making the code for the exercises available? I'm working through the slides but the exercises are hard to follow without the provided source code.
- ksml 6y agoYes! It's now available here: https://github.com/reberhardt7/cs110l-spr-2020-starter-code https://github.com/reberhardt7/cs110l-spr-2020-starter-code
- divyahansg 6y agoGreat work Ryan! Love to see macros get their own lecture. - your fellow 110 TA (and 240 TA I guess)
- ksml 6y agoHi Divya! Thanks for reading!!
- avinassh 6y agoIs there any plan of releasing all the videos? Lectures 15-18 do not have videos linked.