← Back to dantasfiles.com/cornell

Cornell Computer Science - Fall 2024 Unofficial Reading List

These are books that are recommended in Fall 2024 computer science classes at Cornell.

The books marked with a ✨ are ones I’ve liked enough to read all the way through

See also Cornell Artificial Intelligence - Fall 2024 Unofficial Reading List

Freshman Level  
Introduction to Computing: An Engineering & Science Perspective
CS 1112
● ✨ Think Python: How to Think Like a Computer Scientist by Allen B. Downey ✨
Short Course in Python
CS 1133
● ✨ Think Python: How to Think Like a Computer Scientist by Allen B. Downey ✨
Practical Programming: An Introduction to Computer Science Using Python 3.6 by Gries, Campbell, Montojo & Coron
Python Programming: An Introduction to Computer Science by John Zelle
Introduction to Computation and Programming Using Python: With Application to Computational Modeling and Understanding Data by John V. Guttag
Introduction to Cognitive Science
CS 1710 / COGST 1101 / HD 1102 / LING 1170 / PHIL 1620 / PSTCH 1102
Matter and Consciousness by Paul M. Churchland
The Modularity of Mind: An Essay on Faculty Psychology by Jerry A. Fodor
Vision: A Computational Investigation into the Human Representation and Processing of Visual Information by David Marr
How the Mind Works by Steven Pinker
The Cambridge Handbook of Computational Psychology by Ron Sun
Cognitive Neuroscience: The Biology of the Mind by Gazzaniga, Ivry & Mangun
Vision Science: Photons to Phenomenology by Stephen E. Palmer
The Language Instinct: How The Mind Creates Language by Steven Pinker
Introduction to Psycholinguistics: Understanding Language Science by Matthew J. Traxler
What Emotions Really Are: The Problem of Psychological Categories by Paul E. Griffiths
Passions Within Reason: The Strategic Role of the Emotions by Robert E. Frank
Decision Making and Rationality in the Modern World by Keith E. Stanovich
● ✨ Thinking, Fast and Slow by Daniel Kahneman ✨
Darwin’s Unfinished Symphony: How Culture Made the Human Mind by Kevin N. Laland
The Secret of Our Success: How Culture Is Driving Human Evolution, Domesticating Our Species, and Making Us Smarter by Joseph Henrich
Sophomore Level  
Object-Oriented Programming & Data Structures
CS 2110 / ENGRD 2110
Data Structures and Abstractions with Java by Carrano & Henry
Object-Oriented Design and Data Structures by Myers & Kozen
Principled Programming: Introduction to Coding in Any Imperative Language by Tim Teitelbaum
Object-Oriented Design & Data Structures - Honors
CS 2112 / ENGRD 2112
Data Structures and Abstractions with Java by Carrano & Henry
Data Structures and Problem Solving Using Java by Mark Allen Weiss
Program Development in Java: Abstraction, Specification, and 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 Block
Object-Oriented Design and Data Structures by Myers & Kozen
Mathematical Foundations of Computing
CS 2800
Discrete Mathematics and its Application by Kenneth Rosen
Essential Discrete Mathematics for Computer Science by Lewis & Zax
Mathematics for Computer Science by Lehman, Leighton & Meyer
Networks
CS 2850 / ECON 2040 / INFO 2040 / SOC 2090
Networks, Crowds, and Markets: Reasoning About a Highly Connected World by Easley & Kleinberg
Junior Level  
Data Structures & Functional Programming
CS 3110
● ✨ OCaml Programming: Correct + Efficient + Beautiful by Michael Clarkson ✨
Computer System Organization & Programming
CS 3410
Pro Git: Everything You Need to Know about Git by Chacon & Straub
Foundations of AI Reasoning & Decision-Making
CS 3700
Artificial Intelligence: A Modern Approach by Russell & Norvig
Introduction 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 and Other Kernel-based Learning Methods by Cristianini & Shawe-Taylor
Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond by Scholkopf & Smola
Pattern Recognition and 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, and Prediction by Hastie, Tibshirani & Friedman
Causal Inference for Statistics, Social, and 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  
Numerical Analysis & Differential Equations
CS 4210 / MATH 4250
An Introduction to Numerical Analysis by Kendall Atkinson
Introduction to Database Systems
CS 4320
Database Management Systems by Ramakrishnan & Gehrke
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 / ECE 4750
Computer Architecture: A Quantitative Approach by Hennessy & Patterson
Digital Design and Computer Architecture by Harris & Harris
Superscalar Microprocessor Design by Mike Johnson
Processor Architecture: From Dataflow to Superscalar and Beyond by Silc, Robic & Ungerer
Modern Processor Design: Fundamentals of Superscalar Processors by Shen & Lipasti
A Primer on Memory Consistency and Cache Coherence by Nagarajan, Sorin, Hill & Wood
Principles and Practices of Interconnection Networks by Dally & Towles
Introduction to Computer Networks
CS 4450
Computer Networks: A Systems Approach by Peterson & Davie
Introduction to Computer Graphics
CS 4620
Fundamentals of Computer Graphics by Marschner & Shirley
Foundations of Robotics
CS 4750 / ECE 4770 / MAE 4760
Probabilistic Robotics by Thrun, Burgard & Fox
Planning Algorithms by Steven M. LaValle
Artificial Intelligence: A Modern Approach by Russell & Norvig
Modelling and Control of Robot Manipulators by Sciavicco & Siciliano
Modern Robotics: Mechanics, Planning, and Control by Lynch & Park
Robot Learning
CS 4756
Modern Adaptive Control and Reinforcement Learning by Bagnell, Boots & Choudhury
Probabilistic Robotics by Thrun, Burgard & Fox
Reinforcement Learning: An Introduction by Sutton & Barto
Probability Theory: The Logic of Science by Jaynes & Bretthorst
Computational Genetics & Genomics
CS 4775 / BIOCB 4840
Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids by Durbin, Eddy, Krogh & Mitchison
An Introduction to Bioinformatics Algorithms by Jones & Pavzner
Inferring Phylogenies by Joseph Felsenstein
All of Statistics: A Concise Course in Statistical Inference by Larry Wasserman
Introduction to Mathematical Statistics by Jogg, McKean & Craig
Statistical Inference by Casella & Berger
Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
Introduction to Computational Complexity
CS 4814
Computational Complexity: A Modern Approach by Arora & Barak
Mathematics and Computation: A Theory Revolutionizing Technology and Science by Avi Wigderson
Introduction to Theory of Computation by Michael Sipser
Introduction 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 and Analysis of Computer Algorithms by Aho, Hopcroft & Ullman
Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey & Johnson
The Design and Analysis of Algorithms by Dexter Kozen
Introduction to Cryptography
CS 4830
● A Course in Cryptography by Pass & Shelat
Masters Level  
Algorithms & Data Structures for Applications
CS 5112
Algorithm Design by Kleinberg & Tardos
Applied High-Performance & Parallel Computing
CS 5220
Introduction to High Performance Computing for Scientists and 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 Introduction to Parallel Programming by Peter Pacheco
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers by Wilkinson & Allen
Pro Git: Everything You Need to Know about Git by Chacon & Straub
The C Programming Language by Kernighan & Ritchie
A Tour of C++ by Bjarne Stroustrup
Python Essential Reference by David Beazley
● ✨ Think Python: How to Think Like a Computer Scientist by Allen B. Downey ✨
Distributed Computing Principles
CS 5414
Distributed Systems by Sape Mullender
Advanced Computer Architecture
CS 5420 / ECE 6750
Parallel Computer Architecture: A Hardware/Software Approach by Culler & Singh
Privacy in the Digital Age
CS 5436
Privacy in Context: Technology, Policy, and the Integrity of Social Life by Helen Nissenbaum
Virtual & Augmented Reality
CS 5650 / INFO 5340
Virtual Reality by Steven M. LaValle
Augmented Reality: Principles and Practice by Schmalstieg & Hollerer
Optimization Methods
CS 5727 / ORIE 5380
Introduction to Operations Research by Hillier & Lieberman
Linear Programming: Foundations and Extensions by Robert J. Vanderbei
Introduction to Mathematical Optimization by Matteo Fischetti
Applied Machine Learning
CS 5785 / ECE 5414 / ORIE 5750
Dive into Deep Learning by Zhang, Lipton, Li & Smola
Machine Learning by Tom Mitchell
Probabilistic Machine Learning by Kevin Murphy
Pattern Recognition and Machine Learning by Christopher M. Bishop
The Elements of Statistical Learning: Data Mining, Inference, and Prediction by Hastie, Tibshirani & Friedman
Deep Learning
CS 5787
Dive into Deep Learning by Zhang, Lipton, Li & Smola
Deep Learning by Goodfellow, Bengio & Courville
Networks & Markets
CS 5854 / ORIE 5138
A Course in Networks and Markets: Game-theoretic Models and Reasoning by Rafael Pass
Networks, Crowds, and Markets: Reasoning About a Highly Connected World by Easley & Kleinberg
A Course in Discrete Structures by Pass & Tseng
Doctoral Level  
Software Engineering in the Era of Machine Learning
CS 6158
See website for paper list
Matrix Computations
CS 6210
Matrix Computations by Golub & Van Loan
Numerical Linear Algebra by Trefethen & Bau
Applied Numerical Linear Algebra by James W. Demmel
Accuracy and Stability of Numerical Algorithms by Nicholas J. Higham
Matrix Algorithms by G.W. Stewart
Introduction to Linear Algebra by Gilbert Strang
Large-Scale Numerical Optimization by Michael Saunders
Advanced Systems
CS 6410
The Design and 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 by Allen B. Downey
Computer Networking: A Top-Down Approach by Kurose & Ross
Security and Privacy Technologies
CS 6431
See website for paper list
Computational Imaging
CS 6662
Computer Vision: Algorithms and Applications by Richard Szeliski
Computational Imaging by Bhandari, Kadambi & Raskar
Foundations of Computer Vision by Torralba, Isola & Freeman
3D Vision
CS 6672
See website for paper list
Advanced Language Technologies
CS 6740
See website for paper list
Deep Learning for Robotics
CS 6758
Modern Robotics: Mechanics, Planning, and Control by Lynch & Park
Reinforcement Learning: An Introduction by Sutton & Barto
Machine Learning Theory
CS 6783
Statistical Learning Theory and Sequential Prediction by Rakhlin & Sridharan
Prediction, Learning, and 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
Foundations of Reinforcement Learning
CS 6789
Reinforcement Learning: Theory and Algorithms by Agarwal, Jiang, Kakade & Sun
Analysis of Algorithms
CS 6820
The Design and Analysis of Algorithms by Dexter Kozen
Algorithm Design by Kleinberg & Tardos
Modern Prediction Paradigms: Responsible Machine Learning
CS 6828
See website for paper list
Algorithmic Game Theory
CS 6840
Twenty Lectures on Algorithmic Game Theory by Tim Roughgarden
Networks, Crowds, and Markets: Reasoning About a Highly Connected World by Easley & Kleinberg
Algorithmic Game Theory by Nisan, Roughgarden, Tardos & Vazirani
The Structure of Information Networks
CS 6850 / INFO 6850
Networks, Crowds, and Markets: Reasoning About a Highly Connected World by Easley & Kleinberg
Algorithmic Game Theory by Nisan, Roughgarden, Tardos & Vazirani

← Back to dantasfiles.com/cornell