To 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.
Cleaner, 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_.
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.