3 ms·
At my institution, our students take a series of courses on programming a simple microcontroller (and were doing so long before IoT/Arduino made that fashionabl
by ajarmst 6y ago
At my institution, our students take a series of courses on programming a simple microcontroller (and were doing so long before IoT/Arduino made that fashionable again). We worked with the HC11 until a few years ago when we moved to the 9s12. They even worked for a while in Assembly Language until quite recently (we now use C exclusively). In this case it wasn’t nostalgia or joy or anything subtle: modern computers are too complex to permit a useful mental model of how they operate. These ‘older’ systems (and their modern simple cousins) are a fantastic way to learn how a computer actually works with sufficient insight that it gives you a much deeper feel for how more complex descendants work. As one example, pointers and indirection are always a topic that students learning programming struggle with. Explaining that topic is much, much easier to a roomful of people who’ve worked directly with address registers and offsets.
- ajarmst 6y agoMy father believed strongly in this. I first learned to program in my early teens (at the time there were precisely two computers in a 300 km range of where we lived, my father was an operator on one of them). The ‘computer’ I learned on was made of cardboard, and I was the CPU: https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_...
- jstanley 6y agoThat looks great, I'd love to have a play with one. I wonder what's the easiest way to get one, perhaps a modern replica? It almost looks like it might be possible to implement as a PDF that you just have to print on some card and cut out?
- BallyBrain 6y agoEnjoy! https://www.instructables.com/CARDIAC-CARDboard-Illustrative-Aid-to-Computation-/ https://www.instructables.com/CARDIAC-CARDboard-Illustrative...
- jstanley 6y agoPerfect! Thanks a lot.
- musicale 6y agoSlightly more complicated, but you can also do bare metal programming on a Raspberry Pi, e.g. http://cs107e.github.io http://cs107e.github.io