- Programming in Scala by Odersky, Spoon, and Venners is an excellent overview of the Scala language.
The current edition is the fifth edition.
Any edition is appropriate for the purposes of this course.
An electronic copy of the first edition is available free online.
- The first two and a half chapters of the CS 251 textbook give an introduction to CPUs and machine language: Patterson, Hennessy. Computer Organization and Design. Different editions of this book cover MIPS machine language or ARM machine language; in CS 241E, we use MIPS machine language.
- Most books about compilers begin with material about scanners and parsers, which we cover in the second half of the course. One example of a book with clear explanations is: Appel. Modern Compiler Implementation in Java.
- Various books document the real MIPS instruction set in great detail. One example is: Kane, Heinrich. MIPS RISC Architecture.