4 ms·
This and computer networks were my two favorite courses from university. My first language was Python, so the connection between programming languages and the m
by jasmaa 4y ago
This and computer networks were my two favorite courses from university. My first language was Python, so the connection between programming languages and the machine had always felt like magic. This was the one course that helped dispel some of that thinking for me.
Each module builds on top of the next and has you add increasingly complex features to a toy language. The course I remember was flipped classroom, so it's also entirely possible to do online. On top of that, Jose's video lectures are very well-made and engaging. I would recommend anyone with some free time and even a bit of interest to throw it at this. It's a fun and eye-opening experience if you were like me and knew nothing about compilers before.
- jmct 4y agoThose are my videos!
- satvikpendem 4y agoThank you Jose. Are these videos available for non-students? Edit: https://www.youtube.com/channel/UCfZ7HFoaeSA7zPoGelA3aiw https://www.youtube.com/channel/UCfZ7HFoaeSA7zPoGelA3aiw
- jmct 4y agoLooks like you found them, and yes. :D They weren't made with the thought of being generally consumed, but I do plan on making videos for the wider CS/programming community in the future.
- freilanzer 4y agoPlease do, I would absolutely work through this during a vacation!
- _benj 4y agoI'm enjoying those! Honestly, I had a bit of impostor syndrome kick when you mentioned that the 330 course was required, being self taught and all... but I know OCaml so ¯\_(ツ)_/¯ Currently going through the Crafting Interpreters book and this seems like an excellent supplement for my journey into the world of language hacking. Thanks a lot for posting those, they are very clear and encouraging!
- jmct 4y agoApologies for causing a spike in your impostor syndrome! 330 is 'required' in the sense that you're not allowed to take 430 at UMD without having taken 330. Perhaps a better way of phrasing it would have been to list the things we assume students have retained from 330. One of which is OCaml :D I hope these videos provide some value to you! Always feel free to reach out if there's anything you think I could do better.
- MisterTea 4y agoTake a microprocessor class where you build a 8088/6800 board and program it in assembler. Then there is no more magic behind the computer and it becomes a pretty strait forward machine.
- pjmorris 4y agoI love this idea. Do you have any specific courses you can point to?
- a-dub 4y agoa good computer organization/design or intro computer architecture course will have the same effect. the classic text is computer organization and design by patterson and hennessy.
- pjmorris 4y agoI've got H&P on the bookshelf. It's the 'get down and dirty with a breadboard an x86 chip and maybe a soldering iron' aspect I am surfing for. 'Like Ben Eater but for x86', preferably as a course, is what I'm aiming at/curious about.
- a-dub 4y agoi think some logic design courses are like this. you're given a fpga dev board (that has a bunch of peripherals and ports on it) and you code up a cpu and a few memory/io controllers and then in order to do something you have to assemble some machine code and run it. my understanding is that it is a substantial undertaking, especially if you're interfacing with hardware peripherals. alternatively you could write a mips (subset) emulator and assembler in python and probably get the same understanding in a fraction of the time.
- jgwil2 4y agoBen Eater has a video series called "'Hello, world' from scratch on a 6502" that you might find interesting: https://www.youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH https://www.youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBy...