Objects EverywhereCovers pure object orientation, standard classes in Scala, Boolean implementation, and exercises on class implementations.
Foundations of SoftwareCovers the basics of induction, syntax, abstract vs. concrete syntax, and operational semantics for Booleans.