← Spring 2025

This is an unofficial list of books that are recommended in Fall 2025 computer science classes at Cornell
The books marked with a ✨ are ones I’ve been interested enough in to read at length

Freshman level  
Intro. to Computing: A Design & Development Perspective
CS 1110
 
Sophomore level  
C++ Programming
CS 2024
 
Object-Oriented Programming & Data Structures
CS 2110
◦ ✨Object-Oriented Design & Data Structures✨ by Myers & Kozen
Principled Programming: Introduction to Coding in Any Imperative Language by Tim Teitelbaum
Data Structures & Algorithms in Java: A Project-Based Approach by Dan S. Myers
Object-Oriented Design & Data Structures - Honors
CS 2112
• ✨Object-Oriented Design & Data Structures✨ by Myers & Kozen
Data Structures & Abstractions with Java by Carrano & Henry
Data Structures & Problem Solving Using Java by Mark Allen Weiss
Program Development in Java: Abstraction, Specification & Object-Oriented Design by Liskov & Guttag
Java Precisely by Peter Sestoft
◦ ✨Design Patterns: Elements of Reusable Object-Oriented Software✨ by Gamma, Helm, Johnson & Vlissides
Java in a Nutshell: A Desktop Quick Reference by Evans, Clark & Flanagan
◦ ✨Effective Java: Best Practices for the Java Platform✨ by Joshua Bloch
Junior level  
Data Structures & Functional Programming
CS 3110
• ✨OCaml Programming: Correct + Efficient + Beautiful✨ by Michael Clarkson
Computer System Organization & Programming
CS 3410
 
Intro. to Machine Learning
CS 3780
Understanding Machine Learning: From Theory to Algorithms by Shalev-Shwartz & Ben-David
• ✨Mathematics for Machine Learning✨ by Deisenroth, Faisal & Ong
Machine Learning by Tom Mitchell
Probabilistic Machine Learning by Kevin Murphy
An Introduction to Support Vector Machines & Other Kernel-based Learning Methods by Cristianini & Shawe-Taylor
Learning with Kernels: Support Vector Machines, Regularization, Optimization & Beyond by Scholkopf & Smola
Pattern Recognition & Machine Learning by Christopher M. Bishop
Introduction to Machine Learning by Ethem Alpaydin
Pattern Classification by Duda, Hart & Stork
The Elements of Statistical Learning: Data Mining, Inference & Prediction by Hastie, Tibshirani & Friedman
Causal Inference for Statistics, Social & Biomedical Sciences: An Introduction by Imbens & Rubin
Foundations of Statistical Natural Language Processing by Hamming & Schutze
Introduction to Information Retrieval by Manning, Raghavan & Schutze
Statistical Learning Theory by Vladimir N. Vapnik
Senior level  
Programming Languages & Logics
CS 4110
• ✨OCaml Programming: Correct + Efficient + Beautiful✨ by Michael Clarkson
Real World OCaml: Functional Programming for the Masses by Madhavapeddy & Minsky
The Formal Semantics of Programming Languages by Glynn Winskel
Types & Programming Languages by Benjamin C. Pierce
Programming Languages: Application & Interpretation by Shriram Krishnamurthi
Software Foundations by Pierce et al.
Numerical Analysis & Differential Equations
CS 4210
An Introduction to Numerical Analysis by Suli & Mayers
Systems Programming
CS 4414
Computer Systems: A Programmer’s Perspective by Bryant & O’Hallaron
A Tour of C++ by Bjarne Stroustrup
Computer Architecture
CS 4420
Computer Architecture: A Quantitative Approach by Hennessy & Patterson
Digital Design & Computer Architecture by Harris & Harris
Superscalar Microprocessor Design by Mike Johnson
Processor Architecture: From Dataflow to Superscalar & Beyond by Silc, Robic & Ungerer
Modern Processor Design: Fundamentals of Superscalar Processors by Shen & Lipasti
A Primer on Memory Consistency & Cache Coherence by Nagarajan, Sorin, Hill & Wood
Principles & Practices of Interconnection Networks by Dally & Towles
Intro. to Computer Graphics
CS 4620
Fundamentals of Computer Graphics by Marschner & Shirley
Foundations of Robotics
CS 4750
Probabilistic Robotics by Thrun, Burgard & Fox
Planning Algorithms by Steven M. LaValle
Artificial Intelligence: A Modern Approach by Russell & Norvig
Modelling & Control of Robot Manipulators by Sciavicco & Siciliano
Modern Robotics: Mechanics, Planning & Control by Lynch & Park
Principles of Large-Scale Machine Learning Systems
CS 4787
Understanding Machine Learning: From Theory to Algorithms by Shalev-Shwartz & Ben-David
Deep Learning by Goodfellow, Bengio & Courville
Convex Optimization: Algorithms & Complexity by Sebastien Bubeck
Intro. to Analysis of Algorithms
CS 4820
Algorithm Design by Kleinberg & Tardos
Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
Algorithms by Dasgupta, Papadimitriou & Vazirani
The Design & Analysis of Computer Algorithms by Aho, Hopcroft & Ullman
Computers & Intractability: A Guide to the Theory of NP-Completeness by Garey & Johnson
The Design & Analysis of Algorithms by Dexter Kozen
Masters level  
Algorithms & Data Structures for Applications
CS 5112
Algorithm Design by Kleinberg & Tardos
Software Testing
CS 5154
Introduction to Software Testing by Ammann & Offutt
Introduction to Programming Using Java by David J. Eck
Crowdsourcing & Human Computation
CS 5306
 
Distributed Computing Principles
CS 5414
Distributed Systems by Sape Mullender
See website for paper list
Cloud Computing and ML Hosting
CS 5416
Computer Systems: A Programmer’s Perspective by Bryant & O’Hallaron
A Tour of C++ by Bjarne Stroustrup
Developing & Designing Interactive Devices
CS 5424
Practical Electronics for Inventors by Scherz & Monk
Trustworthy AI
CS 5434
See website for paper list
Systems for Large-Scale ML
CS 5470
See website for paper list
Intro. to Computer Vision
CS 5670
Foundations of Computer Vision by Torralba, Isola & Freeman
Computer Vision: Algorithms & Applications by Richard Szeliski
Deep Learning by Goodfellow, Bengio & Courville
Multiple View Geometry in Computer Vision by Hartley & Zisserman
Computer Vision: A Modern Approach by Forsyth & Ponce
Frontiers of Computer Vision
CS 5672
Foundations of Computer Vision by Torralba, Isola & Freeman
Computer Vision: Algorithms & Applications by Richard Szeliski
Applied Machine Learning
CS 5785
 
Doctoral level  
Category Theory for Computer Scientists
CS 6117
Categories for Types by Roy F. Creole
Basic Category Theory by Tom Leinster
Category Theory by Steve Awodey
Category Theory in Context by Emily Riehl
Categorical Logic and Type Theory by B. Jacobs
• ✨ Practical Foundations for Programming Languages ✨ by Robert Harper
Types & Programming Languages by Benjamin C. Pierce
See website for paper list
Advanced Compilers
CS 6120
See website for paper list
Non-Ideal Algorithmic Fairness
CS 6125
Fairness & Machine Learning: Limitations & Opportunities by Barocas, Hardt & Narayanan
Software Engineering in the Era of Machine Learning
CS 6158
See website for paper list
Matrix Computations
CS 6210
Applied Numerical Linear Algebra by James W. Demmel
Matrix Computations by Golub & Van Loan
Matrix Analysis & Applied Linear Algebra by Carl D. Meyer
Linear Algebra & Its Applications by David C. Lay
Linear Algebra & Its Applications by Gilbert Strang
Introduction to Linear Algebra by Gilbert Strang
Numerical Computing with MATLAB by Cleve B. Mohler
Insight Through Computing: A Matlab Introduction to Computational Science & Engineering by Van Loan & Fan
Getting Started with MATLAB 7: A Quick Introduction for Scientists & Engineers by Rudra Pratap
MATLAB: An Introduction with Applications by Amos Gilat
Mastering Matlab 7 by Hanselman & Littlefield
Adv. Systems
CS 6410
See website for paper list
The Design & Implementation of the 4.4BSD Operating System by McKusic, Bostic, Karels & Quarterman
Understanding the Linux Kernel: From I/O Ports to Process Management by Bovet & Cesati
The Little Book of Semaphores: The Ins and Outs of Concurrency Control & Common Mistakes by Allen B. Downey
Computer Networking: A Top-Down Approach by Kurose & Ross
Deep Learning for Robotics
CS 6758
See website for paper list
Modern Robotics: Mechanics, Planning & Control by Lynch & Park
Reinforcement Learning: An Introduction by Sutton & Barto
Machine Learning Theory
CS 6783
Statistical Learning Theory & Sequential Prediction by Rakhlin & Sridharan
Prediction, Learning & Games by Cesa-Bianchi & Lugosi
Understanding Machine Learning: From Theory to Algorithms by Shalev-Shwartz & Ben-David
Introduction to Online Convex Optimization by Elad Hazan
A Gentle Introduction to Concentration Inequalities by Karthik Sridharan
Advanced Topics in Machine Learning
CS 6784
See website for paper list
Quantum Cryptography
CS 6832
 
Algorithmic Game Theory
CS 6840
Twenty Lectures on Algorithmic Game Theory by Tim Roughgarden
Networks, Crowds & Markets: Reasoning About a Highly Connected World by Easley & Kleinberg
Algorithmic Game Theory by Nisan, Roughgarden, Tardos & Vazirani
Introduction to Kleene Algebra
CS 6861
 
Cornell Engineering requirements  
Calculus for Engineers
MATH 1910
Calculus by Rogawski, Adams & Franzosa
Multivariable Calculus for Engineers
MATH 1920
Calculus by Rogawski, Adams & Franzosa
Linear Algebra for Engineers
MATH 2940
Linear Algebra and Its Applications by Lay, Lay & McDonald

← Spring 2025