← Fall 2025

This is an unofficial list of books that are recommended in Spring 2026 computer science classes at Cornell
I’ve read sections of many of these, but the books marked with a bold ✔️ are ones I’ve found interesting enough to read at length

Freshman level  
Intro. to Computing: A Design & Development Perspective
CS 1110
✔️ Think Python: How to Think Like a Computer Scientist by Allen B. Downey
Sophomore level  
UNIX Tools & Scripting
CS 2043
 
Object-Oriented Programming & Data Structures
CS 2110
✔️ Object-Oriented Design & Data Structures by Myers & Kozen
✔️ Principled Programming: Intro. to Coding in Any Imperative Language by Tim Teitelbaum
Data Structures & Algorithms in Java: A Project-Based Approach by Dan S. Myers
Junior level  
Data Structures & Functional Programming
CS 3110
✔️ OCaml Programming: Correct + Efficient + Beautiful by Michael Clarkson
Intro. to & Adv. Topics in Computer Game Architecture
CS 3152 & 4152
Game Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton
Rules of Play: Game Design Fundamentals by Tekinbas & Zimmerman
The Game Design Reader: A Rules of Play Anthology by Tekinbas & Zimmerman
The Art of Game Design: A Book of Lenses by Jesse Schell
Challenges for Games Designers: Non-Digital Exercises for Video Game Designers by Brathwaite & Schreiber
A Theory of Fun for Game Design by Raph Koster
Intro. to Game Development by Steve Rabin
Andrew Rollings and Ernest Adams on Game Design by Rollings & Adams
The Art of Computer Game Design by Chris Crawford
User Interface Design for Games by David Kieras
Computer System Organization & Programming
CS 3410
Embedded Systems
CS 3420 (ECE)
Cooperating sequential processes by E.W. Dijkstra
Monitors: An Operating System Structuring Concept by C.A.R. Hoare
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment by Liu & Layland
Hard Real-Time Computing Systems: Predictable Scheduling Algorithms & Applications by Giorgio C Buttazzo
Foundations of AI Reasoning & Decision-Making
CS 3700
Artificial Intelligence: A Modern Approach by Russell & Norvig
Intro. to Machine Learning
CS 3780
Probabilistic Machine Learning: An Intro. by Kevin Murphy
The Elements of Statistical Learning: Data Mining, Inference & Prediction by Hastie, Tibshirani & Friedman
An Intro. to Statistical Learning by James, Witten, Hastie & Tibshirani
Patterns, Predictions & Actions: Foundations of Machine Learning by Hardt & Recht
Fairness & Machine Learning: Limitations & Opportunities by Barocas, Hardt & Narayanan
Linear Algebra Review & Reference by Kolter & Do
✔️ Mathematics for Machine Learning by Deisenroth, Faisal & Ong
✔️ Review of Probability Theory by Maleki & Do
Numerical Analysis: Background Plus a Bit by David Bindel
Machine Learning Glossary
The Matrix Cookbook by Petersen & Pedersen
Formal Algorithms for Transformers by Phuong & Hutter
Transformers Explained Visually (Part 1): Overview of Functionality by Ketan Doshi
Machine Learning by Tom M. Mitchell
Senior level  
Intro. to Compilers
CS 4120
Intro. to Compilers by Andrew Myers
Modern Compiler Implementation in Java by Andrew Appel
Compilers: Principles, Techniques & Tools by Aho, Sethi & Ullman
Engineering a Compiler by Cooper & Torczon
Adv. Compiler Design & Implementation by Steven S. Muchnick
The Java Language Specification by Gosling et. al
Linkers & Loaders by John R. Levine
✔️ Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson & Vlissides
Refactoring: Improving the Design of Existing Code by Fowler & Beck
Numerical Analysis: Linear & Nonlinear Problems
CS 4220
A First Course in Numerical Methods by Ascher & Greif
Matrix Analysis & Applied Linear Algebra by Carl D. Meyer
Linear Algebra & Its Applications by Lay, Lay & McDonald
Linear Algebra & Its Applications by Gilbert Strang
Operating Systems
CS 4410
Operating Systems: Three Easy Pieces by Arpaci-Dusseau & Arpaci-Dusseau
Concurrent Programming with Harmony by Robbert van Renesse
The Design & Implementation of the 4.4 BSD Operating System by McKusick, Bostic, Karels & Quarterman
Understanding the Linux Kernel: From I/O Ports to Process Management by Bovet & Cesati
✔️ An Intro. to Programming with Threads by Andrew D. Birrell
The Little Book of Semaphores by Allen B. Downey
✔️ Computer Organization & Design: The Hardware Software Interface by Patterson & Hennessy (🌆 my highlights)
✔️ Some CS3410 (or Equivalent) Topics You Might Have Forgotten by Robbert van Renesse
✔️ A fork() in the Road by Baumann et. al
Intro. to Computer Networks
CS 4450
Computer Networks: A Systems Approach by Peterson & Davie
✔️ A Brief History of the Internet by Leiner et. al
Foundations of Computational Imaging
CS 4660
Deep Learning for Computational Imaging by Reinhard Heckel
Foundations of Computer Vision by Torralba, Isola & Freeman
High-Dimensional Data Analysis with Low-Dimensional Models: Principles, Computation & Applications by Wright & Ma
Linear Algebra Review & Reference by Kolter & Do
✔️ Mathematics for Machine Learning by Deisenroth, Faisal & Ong
✔️ Review of Probability Theory by Maleki & Do
Numerical Analysis: Background Plus a Bit by David Bindel
Machine Learning Glossary
The Matrix Cookbook by Petersen & Pedersen
Intro. to Computer Vision
CS 4670
Computer Vision: Algorithms & Applications by Richard Szeliski
Natural Language Processing
CS 4740
Speech & Language Processing: An Intro. to Natural Language Processing, Computational Linguistics & Speech Recognition with Language Models by Jurafsky & Martin
Robot Learning
CS 4756
Python Numpy Tutorial (with Jupyter & Colab) by Justin Johnson
Deep Learning with PyTorch: A 60 Minute Blitz by Soumith Chintala
Modern Adaptive Control & Reinforcement Learning by Bagnell, Boots & Choudhury
Modern Robotics: Mechanics, Planning & Control by Lynch & Park
Reinforcement Learning: An Intro. by Sutton & Barto
Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman
Probabilistic Robotics by Thrun, Burgard & Fox
Probability Theory: The Logic of Science by Jaynes & Bretthorst
Intro. to Deep Learning
CS 4782
Dive Into Deep Learning by Zhang, Lipton, Li & Smola
Probabilistic Machine Learning: An Intro. by Kevin Murphy
The Elements of Statistical Learning: Data Mining, Inference & Prediction by Hastie, Tibshirani & Friedman
Quantum Computing
CS 4813
Introduction to Classical & Quantum Computing by Thomas G. Wong
Quantum Computation & Quantum Information by Nielsen & Chuang
Quantum Computation lecture notes by John Watrous
Quantum Computing lecture notes by Ronald de Wolf
Intro. to Analysis of Algorithms
CS 4820

Algorithm Design by Kleinberg & Tardos
Algorithms Illuminated by Tim Roughgarden
Intro. to Algorithms by Cormen et al.
The Design & Analysis of Algorithms by Dexter Kozen
Probability, Vectors & Matrices in Computing
CS 4850
Foundations of Data Science by Blum, Hopcroft & Kannan
Probability and Computing: Randomized Algorithms & Probabilistic Analysis by Mitzenmacher & Upfal
Randomized Algorithms by Motwani & Raghavan
Algorithm Design by Kleinberg & Tardos
Masters level  
Software Engineering
CS 5150
Software Engineering at Google: Lessons Learned from Programming Over Time by Winters, Manshreck & Wright
Better Embedded System Software by Philip Koopman
The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks, Jr.
Software Engineering by Ian Sommerville
The Pragmatic Programmer: Your Journey to Mastery by Thomas & Hunt
Applied High-Performance & Parallel Computing
CS 5220
Intro. to High Performance Computing for Scientists & Engineers by Hager & Wellein
Structured Parallel Programming: Patterns for Efficient Computation by McCool, Robison & Reinders
Programming Massively Parallel Processors: A Hands-on Approach by Kirk & Hwu
Performance Optimization of Numerically Intensive Codes by Goedecker & Hoisie
Principles of Parallel Programming by Lin & Snyder
An Intro. to Parallel Programming by Peter Pacheco
Parallel Programming: Techniques & Applications Using Networked Workstations & Parallel Computers by Wilkinson & Allen
The Unix Shell by Software Carpentry
Version Control with Git by Software Carpentry
An Intro. to Linux by Cornell Center for Advanced Computing
Pro Git: Everything You Need to Know about Git by Chacon & Straub
✔️ The C Programming Language by Kernighan & Ritchie
Intro. to C Programming by Cornell Center for Advanced Computing
Learn C++
A Tour of C++ by Bjarne Stroustrup
Intro. to Python Programming by Cornell Center for Advanced Computing
Python for High Performance by Cornell Center for Advanced Computing
Scientific Python Lectures
Python Essential Reference by David Beazley
✔️ Think Python: How to Think Like a Computer Scientist by Allen B. Downey
How to Think Like a Computer Scientist: Learning with Python 3 by Wentworth, Elkner, Downey & Meyers
System Security
CS 5430
 
Physically Based Realistic Rendering
CS 5630
Physically Based Rendering: From Theory to Implementation by Pharr, Jakob & Humphreys
Fundamentals of Computer Graphics by Marschner & Shirley
Optimization Methods for Robotics
CS 5757
Numerical Optimization by Nocedal & Wright
Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying & Manipulation by Russ Tedrake
State Estimation for Robotics by Timothy D. Barfoot
Convex Optimization by Boyd & Vandenberghe
Modern Robotics: Mechanics, Planning & Control by Lynch & Park
Algorithms for Optimization by Kochenderfer & Wheeler
An Intro. to Optimization on Smooth Manifolds by Nicolas Boumal
Machine Learning Hardware & Systems
CS 5775
Efficient Processing of Deep Neural Networks by Sze, Chen, Yang & Emer
Computer Architecture: A Quantitative Approach by Hennessy, Patterson & Kozyrakis
See website for paper list
Intro. to Machine Learning
CS 5780
See website for paper list
Intro. to Generative Models
CS 5788
Probabilistic Machine Learning: Adv. Topics by Kevin P. Murphy
Deep Learning by Goodfellow, Bengio & Courville
Information Theory, Inference & Learning Algorithms by David J.C. MacKay
Foundations of Computer Vision by Torralba, Isola & Freeman
Doctoral level  
Runtime Verification
CS 6156
 
Computation for Content Creation
CS 6682
 
Adv. Machine Learning Systems
CS 6787
See website for paper list
Theory of Computing
CS 6810
Computational Complexity: A Modern Approach by Arora & Barak
Computational Complexity: A Conceptual Perspective by Oded Goldreich
Mathematics and Computation: A Theory Revolutionizing Technology & Science by Avi Wigderson

← Fall 2025