← Back to dantasfiles.com/cornell
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 |