← Back to dantasfiles.com/princeton
These are books that are recommended in computer science classes at Princeton
The books marked with a ✨ are ones I’ve liked enough to read all the way through
Freshman Level | |
---|---|
Computers in Our World COS 109 / EGR 109 |
● Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security by Brian Kernighan |
Computer Science: An Interdisciplinary Approach COS 126 / EGR 126 |
● Computer Science: An Interdisciplinary Approach by Sedgewick & Wayne |
Sophomore Level | |
---|---|
Introduction to Programming Systems COS 217 |
● C Programming: A Modern Approach by K.N. King ● ARM 64-Bit Assembly Language by Pyeatt & Ughetta ● ✨ The Practice of Programming by Kernighan & Pike ✨ ● Linux Pocket Guide: Essential Commands by Daniel J. Barrett |
Algorithms & Data Structures COS 226 |
● Algorithms by Sedgewick & Wayne |
Reasoning About Computation COS 240 |
● Mathematics for Computer Science by Lehman, Leighton & Meyer |
Junior Level | |
---|---|
Mathematics for Numerical Computing & Machine Learning COS 302 / SML 305 / ECE 305 |
● ✨ Mathematics for Machine Learning by Deisenroth, Faisal & Ong ✨ |
Contemporary Logic Design ECE 206 / COS 306 |
● Digital Design with RTL Design, VHDL, and Verilog by Frank Vahid |
Computing & Optimization for the Physical and Social Sciences ORF 363 / COS 323 |
● An Introduction to Optimization: With Applications to Machine Learning by Chong, Lu & Zak ● Algorithms by Dasgupta, Papadimitriou & Vazirani ● Introduction to Applied Linear Algebra: Vectors, Matrices, and Least Squares by Boyd & Vandenberghe ● Convex Optimization by Boyd & Vandenberghe |
Introduction to Machine Learning COS 324 |
● Introduction to Machine Learning by Arora, Park, Jacob & Chen ● An Introduction to Statistical Learning by James, Witten, Hastie & Tibshirani ● ✨ Mathematics for Machine Learning by Deisenroth, Faisal & Ong ✨ ● Deep Learning by Goodfellow, Bengio & Courville ● Introduction to Probability by Blitzstein & Hwang ● Reinforcement Learning: An Introduction by Sutton & Barto ● Programming with Python by Software Carpentry ● Learning Data Science: Data Wrangling, Exploration, Visualization, and Modeling with Python by Lau, Gonzalez & Nolan |
Functional Programming COS 326 |
● ✨ OCaml Programming: Correct + Efficient + Beautiful by Michael Clarkson ✨ ● Real World OCaml: Functional Programming for the Masses by Madhavapeddy & Minsky |
Advanced Programming Techniques COS 333 |
● ✨ The Practice of Programming by Kernighan & Pike ✨ ● Python in a Nutshell: A Desktop Quick Reference by Martelli, Ravenscroft, Hoden & McGuire ● Flask Web Development: Developing Web Applications with Python by Miguel Grinberg ● JavaScript: The Definitive Guide: Master the World’s Most-Used Programming Language by David Flanagan ● Beginning Software Engineering by Rod Stephens |
Introduction to Robotics MAE 345 / COS 346 / ECE 345 / ROB 345 |
● Planning Algorithms by Steven M. LaValle ● Probabilistic Robotics by Thrun, Burgard & Fox ● Robot Modeling and Control by Spong, Hutchinson & Vidyasagar ● Introduction to Autonomous Mobile Robots by Siegwart, Nourbakhsh & Scaramuzza |
Ethics of Computing COS 350 |
● Fairness and Machine Learning: Limitations and Opportunities by Barocas, Hardt & Narayanan |
Computer Architecture & Organization COS 375 / ECE 375 |
● ✨ Computer Organization and Design: The Hardware Software Interface by Patterson & Hennessy ✨ |
Senior Level | |
---|---|
Computer Graphics COS 426 |
● Computer Graphics with Open GL by Hearn, Baker & Carithers |
Computer Vision COS 429 |
● Computer Vision: Algorithms and Applications by Richard Szeliski |
Cryptography COS 433 / MAT 473 |
● Introduction to Modern Cryptography by Katz & Lindell ● Foundations of Cryptography by Oded Goldreich ● Tutorials on the Foundations of Cryptography: Dedicated to Oded Goldreich by Yehuda Lindell |
Human-Computer Interaction COS 436 |
● Statistical Methods for HCI Research by Koji Yatani ● Readings in Information Visualization: Using Vision to Think by Card, Mackinlay & Shneiderman ● The Design of Implicit Interactions by Wendy Ju |
Design of Very Large-Scale Integrated (VLSI) Systems ECE 462 / COS 462 |
● Digital Integrated Circuits: A Design Perspective by Rabaey, Chandrakasan & Nikolic |
Principles of Blockchains ECE 470 / COS 470 |
● ✨ Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction by Narayanan, Bonneau, Felten, Miller & Goldfeder ✨ |