Bifalgorithm post
Why start with C in 2018? 26. It is a wonderful foundation on which to build your understanding of how a computer works and how software is built. It's about as close as you can get to the hardware before things devolve, at least aesthetically, into assembly code, which is much scarier looking code. C kind of strikes, I think, pedagogically this really nice balance of having English-like syntax and abstractions on top of lower level primitives that allow you to explore procedural programming. It's got everything, but it's also a pretty small language. So most anything you want, you need to build yourself. And so we leverage this significantly in CS50, so much so that by mid-semester in week five of the class, students are building their own hash tables. And what I think is especially meaningful about C is that you can't just instantiate one of those data structures if you want one, like you can in Java. If you want it, you're going to have to build it yourself.
Why start with C in 2018? 26. It is a wonderful foundation on which to build your understanding of how a computer works and how software is built. It's about a…
Ideas in this flowchart
- Why start with C in 2018?
- Foundation for Understanding Computers
- Close to Hardware
- Pedagogical Balance
- English-like Syntax
- Abstractions on Primitives
- Exploration of Procedural Programming
- Small Language
- Need to Build Most Features
- CS50 Leverages C
- Students Build Hash Tables
- No Instantiation of Data Structures