3 ms·
You mention version control in passing, but it probably deserves more emphasis. CS majors who aren't comfortable using version control are likely to be at a dis
by silentbicycle 15y ago
You mention version control in passing, but it probably deserves more emphasis. CS majors who aren't comfortable using version control are likely to be at a disadvantage.
OCaml may work as an alternative to SML.
You could also mention Information Retrieval, alongside Machine Learning.
Compilers/parsing/interpreters/etc. could really be its own top level item.
Learning to use profilers / performance optimization. _The Practice of Programming_ covers this (and many other things!) quite well.
All in all, a great list. Probably also useful to suggest starting points for people (like myself) who are self-taught.
- mattmight 15y agoTo be clear: I consider understanding version control essential. I'll emphasize it. I agree that OCaml and SML are roughly interchangeable for educational purposes. I picked SML because it's slightly "cleaner." As a compilers prof, I agree that compilers should be its own item, but politically, that's a tough sell. Teaching compilers needs to be sold in the service of another end for most faculties.
- silentbicycle 15y agoCleaner, yes. I picked OCaml because it seemed easier to find information about, and more widely ported. Also, I think most people fail to appreciate how useful compiler techniques are outside of "compilers". Even just knowing a little about lexing and parsing goes a long way. For Prolog, I'd also recommend _The Art of Prolog_ by Sterling & Shapiro and/or Clocksin's _Clause & Effect_.