🐻 Cornell CS unofficial reading list (Fall 2025)
← 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 |