12. Appendix: Resources
Note
Paradigm-specific resources are listed in the corresponding chapters’ “References” or “Further reading” sections. This appendix collects all resources in one place for easy reference.
URLs were verified in early 2026; search by title if a link is no longer active.
12.1. Key resources
12.2. Code examples
The code examples for this course are at https://github.com/lucproglangcourse. (The non-Scala ones are much less likely to change.)
The recommended process for exploring an example is to fork it into your own GitHub account. Please create issues and/or submit pull requests with improvements or corrections.
It is important for you to receive notifications of changes to the key examples.
The best way to achieve this is to receive notifications through your GitHub account by watching and/or starring the repositories of interest directly.
12.3. Recommended/supplementary texts
Scala for the Impatient, Second Edition By: Cay S. Horstmann Publisher: Addison-Wesley Professional Pub. Date: December 15, 2016 available free on Safari
Basics of Compiler Design By: Torben Mogensen available online (2024 revision)
Learning Concurrent Programming in Scala By: Aleksandar Prokopec Publisher: Packt Publishing Pub. Date: November 28, 2014 available free on Safari
Seven Concurrency Models in Seven Weeks By: Paul Butcher Publisher: Pragmatic Bookshelf Pub. Date: June 30, 2014 available free on Safari
12.4. Additional texts on Scala
Hands-On Scala By: Li Haoyi https://www.handsonscala.com/ Chapters 1-5 available free
Programming in Scala, Fifth Edition By: Martin Odersky; Lex Spoon; Bill Venners Publisher: Artima Press Pub. Date: June 2021 https://www.artima.com/shop/programming_in_scala_5ed
Programming Scala, 3rd Edition By Dean Wampler Publisher: O’Reilly Media, Inc. Pub. Date: June 2021 available free on Safari
Scala Cookbook, 2nd Edition By: Alvin Alexander Publisher: O’Reilly Media, Inc. Pub. Date: August 2021 available free on Safari companion site
Scala Test-Driven Development By: Gaurav Sood Publisher: Packt Publishing Pub. Date: October 27, 2016 available free on Safari
Functional Programming in Scala (advanced) By: Paul Chiusano and Rúnar Bjarnason Foreword by Martin Odersky Publisher: Manning Publications Pub. Date: August 2014 available free on Safari
12.5. Online Scala resources
Note
The resources below vary in Scala version coverage. Resources marked [Scala 3] target current Scala; others may use Scala 2 syntax. For current Scala 3 documentation, start with the official Scala 3 book and Scala 3 tour. [Scala 3]
Scala Exercises by 47 Degrees (interactive tutorial, recommended)
Twitter Scala School (Scala 2; syntax may differ from Scala 3)
A Scala Tutorial for Java programmers (Scala 2, 2006; for current equivalents use the official Scala 3 tour)
Cats documentation — typeclass abstractions (Functor, Monoid, Monad, etc.) for Scala (advanced)
Cats Cheat Sheet — quick reference for Cats typeclasses and combinators (advanced)
12.6. Resources on program representation and interpretation
12.7. Other resources
Origami Programming by Jeremy Gibbons: PDF
On Understanding Types, Data Abstraction, and Polymorphism by Cardelli and Wegner PDF
Masterminds of Programming, 1st Edition By: Federico Biancuzzi; Shane Warden Publisher: O’Reilly Media, Inc. Pub. Date: March 27, 2009 available on O’Reilly Learning
Programming Language Pragmatics (3rd ed.) By: Michael L. Scott Pub date: Mar 23, 2009 Elsevier Science & Technology companion site
Functional Thinking By: Neal Ford Publisher: O’Reilly Media, Inc. Pub. Date: July 10, 2014 available free on Safari
Real World Haskell By: Bryan O’Sullivan, Don Stewart, and John Goerzen Publisher: O’Reilly Media. Pub. Date: November 2008 available online for free
Haskell: The Craft of Functional Programming (3rd Edition) By: Simon Thompson Publisher Addison-Wesley Professional Pub. Date: 2012 online companion site