<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://dantasfiles.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://dantasfiles.com/" rel="alternate" type="text/html" /><updated>2026-04-10T22:16:58+00:00</updated><id>https://dantasfiles.com/feed.xml</id><title type="html">Daniel @ Dantas Files</title><subtitle>Technology in NJ</subtitle><author><name>Daniel Dantas</name><email>daniel@dantasfiles.com</email></author><entry><title type="html">🐯 Princeton CS unofficial reading list (Fall 2026)</title><link href="https://dantasfiles.com/2026/09/02/princeton-cs-fa26.html" rel="alternate" type="text/html" title="🐯 Princeton CS unofficial reading list (Fall 2026)" /><published>2026-09-02T00:00:00+00:00</published><updated>2026-09-02T00:00:00+00:00</updated><id>https://dantasfiles.com/2026/09/02/princeton-cs-fa26</id><content type="html" xml:base="https://dantasfiles.com/2026/09/02/princeton-cs-fa26.html"><![CDATA[<h3 id="spring-2026"><a href="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html">←Spring 2026</a></h3>

<p>This is an unofficial reading list from Fall 2026 computer science classes at Princeton<br />
I’ve read sections of many of these, but the items marked with a <strong>bold</strong> ✔️ are ones I’ve found interesting enough to read at length</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Sophomore level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong>Algorithms &amp; Data Structures</strong> <br /> COS 226</td>
      <td>✔️ <a href="https://algs4.cs.princeton.edu/home/"><strong><em>Algorithms</em></strong></a> by Sedgewick &amp; Wayne</td>
    </tr>
  </tbody>
</table>

<h3 id="spring-2026-1"><a href="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html">←Spring 2026</a></h3>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[This is an unofficial reading list from Fall 2026 computer science classes at Princeton]]></summary></entry><entry><title type="html">🐯 Princeton CS unofficial reading list (Spring 2026)</title><link href="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html" rel="alternate" type="text/html" title="🐯 Princeton CS unofficial reading list (Spring 2026)" /><published>2026-01-26T00:00:00+00:00</published><updated>2026-01-26T00:00:00+00:00</updated><id>https://dantasfiles.com/2026/01/26/princeton-cs-sp26</id><content type="html" xml:base="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html"><![CDATA[<h3 id="-fall-2026"><!-- [←Fall 2025](https://dantasfiles.com/2025/09/02/princeton-cs-fa25.html) | --> <a href="https://dantasfiles.com/2026/09/02/princeton-cs-fa26.html">Fall 2026→</a></h3>

<p>This is an unofficial reading list from Spring 2026 computer science classes at Princeton<br />
I’ve read sections of many of these, but the items marked with a <strong>bold</strong> ✔️ are ones I’ve found interesting enough to read at length</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Freshman level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos126/"><strong>Computer Science: An Interdisciplinary Approach</strong></a> <br /> COS 126</td>
      <td><!-- 📔 [Course notes](https://www.cs.princeton.edu/courses/archive/spr26/cos126/schedule/) <br> 📕 --> • <a href="https://introcs.cs.princeton.edu/java/home/"><em>Computer Science: An Interdisciplinary Approach</em></a> by Sedgewick &amp; Wayne</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Sophomore level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos217/"><strong>Intro. to Programming Systems</strong></a> <br /> COS 217</td>
      <td><!-- 📔 [Course notes](https://www.cs.princeton.edu/courses/archive/spring26/cos217/classes.php) <br> 📕 --> • <em>C Programming: A Modern Approach</em> by K.N. King <br /> • <em>ARM 64-Bit Assembly Language</em> by Pyeatt &amp; Ughetta <br /> ✔️ <strong><em>The Practice of Programming</em></strong> by Kernighan &amp; Pike <br /> ◦ <em>Linux Pocket Guide: Essential Commands</em> by Daniel J. Barrett <br /> ✔️ <a href="https://www2.cs.sfu.ca/~ggbaker/reference/unix/"><strong><em>UNIX Tutorial for Beginners</em></strong></a> by Michael Stonebank <br /> ✔️ <a href="https://www.gnu.org/software/emacs/tour/"><strong><em>A Guided Tour of Emacs</em></strong></a> <br /> ◦ <a href="https://sourceware.org/gdb/current/onlinedocs/gdb.html/"><em>Debugging with GDB: The GNU Source-Level Debugger</em></a> <br /> ◦ <a href="https://www.gnu.org/software/make/manual/make.html"><em>The GNU Make Manual</em></a></td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos226/"><strong>Algorithms &amp; Data Structures</strong></a> <br /> COS 226</td>
      <td><!-- 📔✔️[**Course notes**](https://www.cs.princeton.edu/courses/archive/spring26/cos226/lectures.php) <br> 📕 --> ✔️ <a href="https://algs4.cs.princeton.edu/home/"><strong><em>Algorithms</em></strong></a> by Sedgewick &amp; Wayne</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos240/"><strong>Reasoning About Computation</strong></a> <br /> COS 240</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Junior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos316/"><strong>Principles of Computer System Design</strong></a> <br /> COS 316</td>
      <td><!-- 📔 [Course notes](https://www.cs.princeton.edu/courses/archive/spring26/cos316/lectures.html) <br> 📕 --> ◦ <a href="https://ocw.mit.edu/courses/res-6-004-principles-of-computer-system-design-an-introduction-spring-2009/pages/online-textbook/"><em>Principles of Computer System Design: An Intro.</em></a> by Saltzer &amp; Kaashoek <br /> ◦ <a href="https://queue.acm.org/detail.cfm?id=3022184"><em>BBR: Congestion-Based Congestion Control: Measuring Bottleneck Bandwidth &amp; Round-Trip Propagation Time</em></a> by Cardwell et al.</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos320/"><strong>Compiling Techniques</strong></a> <br /> COS 320</td>
      <td>◦ <a href="https://dev.realworldocaml.org/"><em>Real World OCaml: Functional Programming for the Masses</em></a> by Madhavapeddy &amp; Minsky <br /> ◦ <a href="https://ocaml.org/manual/5.4/index.html"><em>The OCaml System</em></a> <br /> ◦ <a href="https://ocaml.org/manual/5.4/api/"><em>The OCaml API</em></a> <br /> ◦ <em>Modern Compiler Implementation in ML</em> by Andrew W. Appel</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://princeton-cos324.github.io/"><strong>Intro. to Machine Learning</strong></a> <br /> COS 324</td>
      <td>• <a href="https://princeton-introml.github.io/"><em>Intro. to Machine Learning: Lecture Notes for COS 324 at Princeton University</em></a> by Arora et al. <br /> • <a href="https://www.statlearning.com/"><em>An Intro. to Statistical Learning</em></a> by James et al. <br /> • <a href="https://web.stanford.edu/~jurafsky/slp3/"><em>Speech &amp; Language Processing: An Intro. to Natural Language Processing, Computational Linguistics &amp; Speech Recognition with Language Models</em></a> by Jurafsky &amp; Martin <br /> • <a href="http://incompleteideas.net/book/the-book-2nd.html"><em>Reinforcement Learning: An Intro.</em></a> by Sutton &amp; Barto <br /> ✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong <br /> ◦ <a href="https://www.deeplearningbook.org/"><em>Deep Learning</em></a> by Goodfellow, Bengio &amp; Courville <br /> ◦ <a href="http://probabilitybook.net/"><em>Intro. to Probability</em></a> by Blitzstein &amp; Hwang <br /> ◦ <a href="https://cs231n.github.io/python-numpy-tutorial/"><em>Python Numpy Tutorial (with Jupyter &amp; Colab)</em></a> by Justin Johnson <br /> ◦ <a href="https://www.w3schools.com/python/">Python Tutorial</a> by W3Schools <br /> ◦ <a href="https://swcarpentry.github.io/python-novice-inflammation/"><em>Programming with Python</em></a> by Software Carpentry <br /> ◦ <a href="https://learningds.org/"><em>Learning Data Science: Data Wrangling, Exploration, Visualization &amp; Modeling with Python</em></a> by Lau, Gonzalez &amp; Nolan <br /> ◦ <a href="https://datajobs.com/data-science-repo/SVD-Tutorial-%5BKirk-Baker%5D.pdf"><em>Singular Value Decomposition Tutorial</em></a> by Kirk Baker <br /> ◦ <a href="https://www.ruthfong.com/files/fong20_thesis_appendix_a_math.pdf"><em>Primer on Relevant Mathematical Notation &amp; Concepts</em></a> by Ruth Fong <br /> ◦ <a href="https://www.microsoft.com/en-us/research/publication/pattern-recognition-machine-learning/"><em>Pattern Recognition &amp; Machine Learning</em></a> by Christopher M. Bishop <br /> ◦ <a href="https://www.wolfram.com/language/introduction-machine-learning/"><em>Intro. to Machine Learning</em></a> by Etienne Bernard <br /> See website for paper list <!-- 🔗 [*Linear Regression: A Visual Intro. To (Almost) Everything You Should Know*](https://mlu-explain.github.io/linear-regression/) by Jared Wilber <br> 🔗 [*How Linear Regression Actually Works: Theory & Implementation*](https://towardsdatascience.com/how-linear-regression-actually-works-theory-and-implementation-8d8dcae3222c/) by Stefan Hrouda-Rasmussen <br> 🔗 [*Attacking Machine Learning with Adversarial Examples*](https://openai.com/index/attacking-machine-learning-with-adversarial-examples/) by OpenAI <br> 📄 [*Gender Shades: Intersectional Accuracy Disparities in Commercial Gender Classification*](http://gendershades.org/) by Buolamwini & Gerbu <br> 📰 [*Dealing With Bias in Artificial Intelligence*](https://www.nytimes.com/2019/11/19/technology/artificial-intelligence-bias.html) by Craig S. Smith <br> 🔗 [*A Visual Explanation of Gradient Descent Methods (Momentum, AdaGrad, RMSProp, Adam)*](https://towardsdatascience.com/a-visual-explanation-of-gradient-descent-methods-momentum-adagrad-rmsprop-adam-f898b102325c) by Lili Jiang <br> 🔗 [*Federated Learning: Challenges, Methods, and Future Directions*](https://blog.ml.cmu.edu/2019/11/12/federated-learning-challenges-methods-and-future-directions/) by Tian Li <br> 🔗 [*An Overview of Gradient Descent Optimization Algorithms*](https://www.ruder.io/optimizing-gradient-descent/) by Sebastian Ruder <br> 🔗 [*Logistic Regression: Regression for Classification*](https://mlu-explain.github.io/logistic-regression/) by Bugbee Wilber <br> 🔗 [*The Bias Variance Tradeoff*](https://mlu-explain.github.io/bias-variance/) by Wilber & Werness <br> 🔗 [*The Importance of Data Splitting*](https://mlu-explain.github.io/train-test-validation/) by Wilber & Werness <br> 🔗 [*Cross Validation: Reduce, Reuse, Resample*](https://mlu-explain.github.io/cross-validation/) by Wilber & Croome <br> ... --></td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos333/"><strong>Adv. Programming Techniques</strong></a> <br /> COS 333</td>
      <td>✔️ <strong><em>The Practice of Programming</em></strong> by Kernighan &amp; Pike<br /> ◦ <em>Python in a Nutshell: A Desktop Quick Reference</em> by Martelli et al. <br /> ◦ <em>Flask Web Development: Developing Web Applications with Python</em> by Miguel Grinberg<br /> ◦ <em>JavaScript: The Definitive Guide: Master the World’s Most-Used Programming Language</em> by David Flanagan <br /> ◦ <em>Beginning Software Engineering</em> by Rod Stephens <br /> ◦ <em><a href="https://git-scm.com/book/en/v2">Pro Git: Everything You Need to Know about Git</a></em> by Chacon &amp; Straub <br /> ◦ <a href="https://docs.python.org/3.14/tutorial/"><em>The Python Tutorial</em></a> <br /> ◦ <a href="https://docs.python.org/3.14/reference/"><em>The Python Language Reference</em></a> <br /> ◦ <a href="https://docs.python.org/3.14/library/"><em>The Python Standard Library</em></a> <br /> ◦ <em>Learning PHP, MySQL &amp; JavaScript: A Step-by-Step Guide to Creating Dynamic Websites</em> by Robin Nixon <br /> ◦ <a href="https://www.w3schools.com/sql/"><em>SQL Tutorial</em></a> by W3Schools <br /> ◦ <em>SQLite Tutorial</em> <br /> ◦ <a href="https://www.w3schools.com/html/"><em>HTML Tutorial</em></a> by W3Schools <br /> ◦ <em>The Road to React: Your Journey to Master Plain yet Pragmatic React.js</em> by Robin Wieruch <br /> ◦ <a href="https://www.w3schools.com/css/"><em>CSS Tutorial</em></a> by W3Schools <br /> ◦ <a href="https://www.w3schools.com/bootstrap5/"><em>Bootstrap 5 Tutorial</em></a> by W3Schools</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Senior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos417/"><strong>Operating Systems</strong></a> <br /> COS 417</td>
      <td>• <a href="https://pages.cs.wisc.edu/~remzi/OSTEP/"><em>Operating Systems: Three Easy Pieces</em></a> by Arpaci-Dusseau &amp; Arpaci-Dusseau</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/~hy2/teaching/spring26-cos423/index.html"><strong>Theory of Algorithms</strong></a> <br /> COS 423</td>
      <td>◦ <em>Intro. to Algorithms</em> by Cormen et al. <br /> ◦ <em>Algorithm Design</em> by Kleinberg &amp; Tardos</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://ece432-spring26.github.io/"><strong>Information Security</strong></a> <br /> COS 432 (ECE)</td>
      <td>◦ <a href="https://www.cl.cam.ac.uk/archive/rja14/book.html"><em>Security Engineering: A Guide to Building Dependable Distributed Systems</em></a> by Ross Anderson <br /> ◦ <em>Computer Security</em> by Dieter Gollmann <br /> ◦ <em>The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet</em> by David Kahn <br /> ✔️ <strong><em>Practical Cryptography</em></strong> by Ferguson &amp; Schneier <br /> ◦ <em>Building Secure Software: How to Avoid Security Problems the Right Way</em> by Viega &amp; McGraw <br /> ◦ <em>The Tangled Web: A Guide to Securing Modern Web Applications</em> by Michal Zalewski</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.polarislab.org/cos435-rl/"><strong>Intro. to Reinforcement Learning</strong></a> <br /> COS 435 (ECE)</td>
      <td>• <a href="https://www.polarislab.org/cos435-rl/main.pdf"><em>Reinforcement Learning: From Foundations to Frontiers</em></a> by Peter Henderson <br /> ◦ <a href="http://incompleteideas.net/book/the-book-2nd.html"><em>Reinforcement Learning: An Intro.</em></a> by Sutton &amp; Barto <br /> ◦ <a href="https://arxiv.org/abs/2103.04047"><em>Reinforcement Learning, Bit by Bit</em></a> by Lu et al. <br /> ◦ <a href="https://sites.ualberta.ca/~szepesva/books.html"><em>Bandit Algorithms</em></a> by Lattimore &amp; Szepesvari <br /> ◦ <a href="https://sites.ualberta.ca/~szepesva/books.html"><em>Algorithms for Reinforcement Learning</em></a> by Csaba Szepesvari <br /> ◦ <a href="https://github.com/MathFoundationRL/Book-Mathematical-Foundation-of-Reinforcement-Learning"><em>Mathematical Foundations of Reinforcement Learning</em></a> by Shiyu Zhao <br /> ◦ <a href="https://arxiv.org/abs/1811.12560"><em>An Introduction to Deep Reinforcement Learning</em></a> by Francois-Lavet et al. <br /> ◦ <a href="https://github.com/martyput/MDP_book/"><em>Markov Decision Processes: Discrete Stochastic Dynamic Programming</em></a> by Martin L. Puterman <br /> ◦ <em>Theoretical Neuroscience: Computational And Mathematical Modeling of Neural Systems</em> by Dayan &amp; Abbott <br /> ◦ <a href="https://spinningup.openai.com/"><em>Spinning Up in Deep RL</em></a> by OpenAI <br /> See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos445/"><strong>Economics &amp; Computation</strong></a> <br /> COS 445</td>
      <td>• <a href="https://www.cs.princeton.edu/courses/archive/spring26/cos445/files/cheatsheet.pdf">445 Cheatsheet</a> <br /> ◦ <a href="https://homes.cs.washington.edu/~karlin/"><em>Game Theory, Alive</em></a> by Karlin &amp; Peres <br /> ◦ <a href="https://www.cs.cornell.edu/home/kleinber/networks-book/"><em>Networks, Crowds &amp; Markets: Reasoning about a Highly Connected World</em></a> by Easley &amp; Kleinberg <br /> ◦ <a href="https://www.cambridge.org/us/universitypress/subjects/computer-science/algorithmics-complexity-computer-algebra-and-computational-g/algorithmic-game-theory?format=HB"><em>Algorithmic Game Theory</em></a> by Nisam et al. <br /> ◦ <a href="https://www.cambridge.org/us/universitypress/subjects/computer-science/artificial-intelligence-and-natural-language-processing/handbook-computational-social-choice?format=HB&amp;isbn=9781107060432"><em>Handbook of Computational Social Choice</em></a> by Brandt et al. <br /> ✔️ <strong><em>Bitcoin &amp; Cryptocurrency Technologies: A Comprehensive Intro.</em></strong> by Narayanan et al.</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos448/"><strong>Innovating Across Tech, Business &amp; Marketplaces</strong></a> <br /> COS 448</td>
      <td>✔️ <strong><em>The Everything Store: Jeff Bezos &amp; the Age of Amazon</em></strong> by Brad Stone (<a href="https://www.goodreads.com/notes/54388921-the-everything-store/185327722-daniel-dantas">🌆 my highlights</a>) <br /> • <em>In the Plex: How Google Thinks, Works &amp; Shapes Our Lives</em> by Steven Levy <br /> ✔️ <strong><em>The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers</em></strong> by Ben Horowitz (<a href="https://www.goodreads.com/notes/20657434-the-hard-thing-about-hard-things/185327722-daniel-dantas">🌆 my highlights</a>) <br /> ◦ <em>Venture Deals: Be Smarter Than Your Lawyer &amp; Venture Capitalist</em> by Feld &amp; Mendelson <br /> ◦ <em>The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail</em> by Clayton M. Christensen <br /> ◦ <em>Crush It!: Why Now Is The Time To Cash In On Your Passion</em> by Gary Vaynerchuk <br /> ✔️ <strong><em>Art of the Start : The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything</em></strong> by Guy Kawasaki <br /> ◦ <em>Demand: Creating What People Love Before They Know They Want It</em> by Slywotzky &amp; Weber <br /> ◦ <em>Rework</em> by Fried &amp; Heinemeier Hansson <br /> ✔️ <strong><em>Positioning: The Battle for Your Mind</em></strong> by Ries &amp; Trout (<a href="https://www.goodreads.com/notes/18914433-positioning/185327722-daniel-dantas">🌆 my highlights</a>)<br /> ◦ <em>The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses</em> by Eric Ries <br /> ◦ <em>Running Lean: Iterate From Plan A to a Plan That Works</em> by Ash Maurya <br /> ◦ <em>Lean Analytics: Use Data to Build a Better Startup Faster</em> by Croll &amp; Yoskovitz <br /> ◦ <em>The Startup Owner’s Manual: The Step-by-Step Guide for Building a Great Company</em> by Blank &amp; Dorf <br /> ◦ <em>Business Model Generation: A Handbook for Visionaries, Game Changers &amp; Challengers</em> by Osterwalder &amp; Pigneur <br /> ◦ <em>Delivering Happiness: A Path to Profits, Passion &amp; Purpose</em> by Tony Hsieh <br /> ◦ <em>Powerful: Building a Culture of Freedom &amp; Responsibility</em> by Patty McCord <br /> ✔️ <strong><em>Crossing the Chasm: Marketing &amp; Selling Disruptive Products to Mainstream Customers</em></strong> by Geoffrey A. Moore <br /> ✔️ <strong><em>Good to Great: Why Some Companies Make the Leap &amp; Others Don’t</em></strong> by Jim Collins <br /> See website for article list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Computer Architecture</strong> <br /> COS 475 (ECE)</td>
      <td>• <em>Computer Architecture: A Quantitative Approach</em> by Hennessy, Patterson &amp; Kozyrakis <br /> ◦ <em>Modern Processor Design: Fundamentals of Superscalar Processors</em> by Shen &amp; Lipasti</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Parallel Computing: Principles, Systems &amp; Programming</strong> <br /> COS 476 (ECE)</td>
      <td>◦ <em>Computer Architecture: A Quantitative Approach</em> by Hennessy, Patterson &amp; Kozyrakis <br /> ◦ <em>Parallel Computer Architecture: A Hardware/Software Approach</em> by Culler, Singh &amp; Gupta <br /> ◦ <em>Programming Massively Parallel Processors: A Hands-on Approach</em> by Hwu, Kirk &amp; Hajj</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://princeton-nlp.github.io/cos484/"><strong>Natural Language Processing</strong></a> <br /> COS 484</td>
      <td>◦ <a href="https://web.stanford.edu/~jurafsky/slp3/"><em>Speech &amp; Language Processing: An Intro. to Natural Language Processing, Computational Linguistics &amp; Speech Recognition with Language Models</em></a> by Jurafsky &amp; Martin <br /> ◦ <a href="https://github.com/jacobeisenstein/gt-nlp-class/tree/master/notes"><em>Intro. to Natural Language Processing</em></a> by Jacob Eisenstein <br /> ◦ <em>Foundations of Statistical Natural Language Processing</em> by Manning &amp; Schutze <br /> See website for paper list</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Graduate level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://sites.google.com/view/cos-511-spring-2026/home"><strong>Theoretical Machine Learning</strong></a> <br /> COS 511</td>
      <td>• <a href="https://arxiv.org/abs/1909.05207"><em>Intro. to Online Convex Optimization</em></a> by Elad Hazan <br /> • <a href="https://arxiv.org/abs/2211.09619"><em>Intro. to Online Control</em></a> by Hazan &amp; Singh <br /> ◦ <em>Computing Machinery &amp; Intelligence</em> by A.M. Turing <br /> ◦ <em>Prediction, Learning &amp; Games</em> by Cesa-Bianchi &amp; Lugosi <br /> ◦ <a href="https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/"><em>Understanding Machine Learning: From Theory to Algorithms</em></a> by Shalev-Shwartz &amp; Ben-David <br /> ◦ <a href="https://direct.mit.edu/books/oa-monograph/5342/BoostingFoundations-and-Algorithms"><em>Boosting: Foundations &amp; Algorithms</em></a> by Schapire &amp; Freund <br /> ◦ <a href="https://rltheorybook.github.io/"><em>Reinforcement Learning: Theory &amp; Algorithms</em></a> by Agarwal et al. <br /> ◦ <em>An Elementary Intro. to Modern Convex Geometry</em> by Keith Ball <br /> ◦ <a href="https://arxiv.org/abs/1909.03550"><em>Lecture Notes: Optimization for Machine Learning</em></a> by Elad Hazan <br /> ◦ <a href="https://www2.isye.gatech.edu/~nemirovs/LMCOLN2025.pdf"><em>Lectures on Modern Convex Optimization</em></a> by Ben-Tal &amp; Nemirovski</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.lydiatliu.com/teaching"><strong>Fairness in Machine Learning</strong></a> <br /> COS 534</td>
      <td>◦ <a href="https://fairmlbook.org/"><em>Fairness &amp; Machine Learning: Limitations &amp; Opportunities</em></a> by Barocas, Hardt &amp; Narayanan <br /> ◦ <a href="https://miguelhernan.org/whatifbook"><em>Causal Inference: What If</em></a> by Hernan &amp; Robins <br /> ◦ <em>Causal Inference in Statistics: A Primer</em> by Pearl, Glymour &amp; Jewell <br /> ◦ <a href="https://arxiv.org/abs/2507.05216"><em>Bridging Prediction &amp; Intervention Problems in Social Systems</em></a> by Liu et al. <br /> ◦ <a href="https://www.pnas.org/doi/full/10.1073/pnas.1915768117"><em>Racial Disparities in Automated Speech Recognition</em></a> by Koenecke et al. <br /> ◦ <a href="https://dl.acm.org/doi/10.1145/3630106.3658996"><em>Careless Whisper: Speech-to-Text Hallucination Harms</em></a> by Koenecke et al. <br /> ◦ <a href="https://bair.berkeley.edu/blog/2018/05/17/delayed-impact/"><em>Delayed Impact of Fair Machine Learning</em></a> by Liu et .al <br /> ◦ <a href="https://www.microsoft.com/en-us/research/blog/when-bias-begets-bias-a-source-of-negative-feedback-loops-in-ai-systems/"><em>When Bias Begets Bias: A Source of Negative Feedback Loops in AI Systems</em></a> by Lydia T. Liu <br /> ◦ <a href="https://montrealethics.ai/maintaining-fairness-across-distribution-shift-do-we-have-viable-solutions-for-real-world-applications/?utm_source=chatgpt.com"><em>Maintaining Fairness Across Distribution Shift: Do We Have Viable Solutions for Real-World Applications?</em></a> by Jessica Schrouff</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos568/"><strong>Systems &amp; Machine Learning</strong></a> <br /> COS 568</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos598B/"><strong>Formal methods with &amp; for Machine Learning</strong></a> <br /> COS 598B</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/~kothari/spring26.html"><strong>Sum-of-Squares Proofs &amp; Efficient Algorithms</strong></a> <br /> COS 598C</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://humans.cs.princeton.edu/teaching/spring2026_empirical_methods.html"><strong>Empirical Research Methods for CS</strong></a> <br /> COS 598D</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/spring26/cos598L/"><strong>Machine Learning for Structural Biology</strong></a> <br /> COS 598L</td>
      <td>See website for paper list</td>
    </tr>
  </tbody>
</table>

<!-- | B.S.E. Basic Math and Science | |
| :---: | --- |
| **Calculus I** / **II** <br> MAT 103 / 104 | 📕 *Thomas' Calculus: Early Transcendentals* by Hass et al. |
| **Multivariable Calculus** <br> MAT 201 | 📕 *Thomas' Calculus: Multivariable* by Hass et al. |
| **Linear Algebra with Applications** <br> MAT 202 | 📕 *Linear Algebra with Applications* by Otto Bretscher | 
| **Adv. Linear Algebra with Applications** <br> MAT 204 | 📕 *Linear Algebra: Ideas & Applications* by Richard C. Penney |
| **Honors Linear Algebra** <br> MAT 217 | 📕 [*Linear Algebra Done Right*](https://linear.axler.net/) by Sheldon Axler | -->

<!-- | Other technology-related courses | |
| :---: | --- |
| **Ethics & Technology: Engineering in the Real World** <br> EGR 260 | ◦ *Engineering Ethics: Contemporary & Enduring Debates* by Deborah G. Johnson <br> ◦ *Blind Spots: Why We Fail to Do What's Right & What to Do about It* by Bazerman & Tenbrunsel <br> ◦ *Giving Voice to Values: How to Speak Your Mind When You Know What's Right* by Mary C. Gentile <br> ◦ *The Essential Engineer: Why Science Alone Will Not Solve Our Global Problems* by Henry Petroski <br> ◦ *To Engineer Is Human: The Role of Failure in Successful Design* by Henry Petroski |
| **Black Mirror: Race, Technology & Justice** <br> CDH 339 | • *Ruined by Design: How Designers Destroyed the World & What We Can Do to Fix It* by Mike Monteiro <br> ◦ *Data Feminism* by D'Ignazio & Klein <br> ◦ *Design Justice: Community-Led Practices to Build the Worlds We Need* by Sasha Costanza-Chock <br> • *Empire of AI: Dreams & Nightmares in Sam Altman's OpenAI* by Karen Hao | -->

<h3 id="-fall-2026-1"><!-- [←Fall 2025](https://dantasfiles.com/2025/09/02/princeton-cs-fa25.html) | --> <a href="https://dantasfiles.com/2026/09/02/princeton-cs-fa26.html">Fall 2026→</a></h3>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[This is an unofficial reading list from Spring 2026 computer science classes at Princeton]]></summary></entry><entry><title type="html">🐻 Cornell CS unofficial reading list (Spring 2026)</title><link href="https://dantasfiles.com/2026/01/20/cornell-cs-sp26.html" rel="alternate" type="text/html" title="🐻 Cornell CS unofficial reading list (Spring 2026)" /><published>2026-01-20T00:00:00+00:00</published><updated>2026-01-20T00:00:00+00:00</updated><id>https://dantasfiles.com/2026/01/20/cornell-cs-sp26</id><content type="html" xml:base="https://dantasfiles.com/2026/01/20/cornell-cs-sp26.html"><![CDATA[<h3 id="-fall-2025"><a href="https://dantasfiles.com/2025/08/25/cornell-cs-fa25.html">← Fall 2025</a></h3>

<p>This is an unofficial list of books that are recommended in Spring 2026 computer science classes at Cornell<br />
I’ve read sections of many of these, but the books marked with a <strong>bold</strong> ✔️ are ones I’ve found interesting enough to read at length</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Freshman level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://canvas.cornell.edu/courses/72392"><strong>Intro. to Computing: A Design &amp; Development Perspective</strong></a> <br /> CS 1110</td>
      <td><!-- 📔✔️[**Course notes**](https://canvas.cornell.edu/courses/72392/pages/schedule) <br> ◦ --> ✔️ <a href="https://allendowney.github.io/ThinkPython/"><strong><em>Think Python: How to Think Like a Computer Scientist</em></strong></a> by Allen B. Downey</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Sophomore level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs2043/2026sp/"><strong>UNIX Tools &amp; Scripting</strong></a> <br /> CS 2043</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs2110/2026sp/"><strong>Object-Oriented Programming &amp; Data Structures</strong></a> <br /> CS 2110</td>
      <td><!-- 📔✔️[**Course notes**](https://www.cs.cornell.edu/courses/cs2110/2026sp/lectures/lec01/) <br> 🔗--> ✔️ <a href="https://andrewcmyers.github.io/oodds/"><strong><em>Object-Oriented Design &amp; Data Structures</em></strong></a> by Myers &amp; Kozen <br /> ✔️ <a href="https://www.cs.cornell.edu/info/people/tt/Principled_Programming.html"><strong><em>Principled Programming: Intro. to Coding in Any Imperative Language</em></strong></a> by Tim Teitelbaum <br /> ◦ <em>Data Structures &amp; Algorithms in Java: A Project-Based Approach</em> by Dan S. Myers</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Junior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong>Data Structures &amp; Functional Programming</strong> <br /> CS 3110</td>
      <td>✔️ <a href="https://cs3110.github.io/textbook/"><strong><em>OCaml Programming: Correct + Efficient + Beautiful</em></strong></a> by Michael Clarkson</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs3152/2026sp/"><strong>Intro. to</strong></a> &amp; <a href="https://www.cs.cornell.edu/courses/cs5152/"><strong>Adv. Topics in</strong></a> <strong>Computer Game Architecture</strong> <br /> CS 3152 &amp; 4152</td>
      <td>◦ <em>Game Design Workshop: A Playcentric Approach to Creating Innovative Games</em> by Tracy Fullerton <br /> ◦ <em>Rules of Play: Game Design Fundamentals</em> by Tekinbas &amp; Zimmerman <br /> ◦ <em>The Game Design Reader: A Rules of Play Anthology</em> by Tekinbas &amp; Zimmerman <br /> ◦ <em>The Art of Game Design: A Book of Lenses</em> by Jesse Schell <br /> ◦ <em>Challenges for Games Designers: Non-Digital Exercises for Video Game Designers</em> by Brathwaite &amp; Schreiber <br /> ◦ <em>A Theory of Fun for Game Design</em> by Raph Koster <br /> ◦ <em>Intro. to Game Development</em> by Steve Rabin <br /> ◦ <em>Andrew Rollings and Ernest Adams on Game Design</em> by Rollings &amp; Adams <br /> ◦ <em>The Art of Computer Game Design</em> by Chris Crawford <br /> ◦ <a href="http://www.eecs.umich.edu/~soar/Classes/494/talks/User-interfaces.pdf"><em>User Interface Design for Games</em></a> by David Kieras</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs3410/2026sp/"><strong>Computer System Organization &amp; Programming</strong></a> <br /> CS 3410</td>
      <td><!-- 📔 [Course notes](https://www.cs.cornell.edu/courses/cs3410/2026sp/schedule.html) --></td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://ocw.ece.cornell.edu/ece-3140-course-details/"><strong>Embedded Systems</strong></a> <br /> CS 3420 (ECE)</td>
      <td>◦ <a href="https://www.cs.utexas.edu/~EWD/index01xx.html"><em>Cooperating sequential processes</em></a> by E.W. Dijkstra <br /> ◦ <a href="https://dl.acm.org/doi/10.1145/355620.361161"><em>Monitors: An Operating System Structuring Concept</em></a> by C.A.R. Hoare <br /> ◦ <a href="https://dl.acm.org/doi/10.1145/321738.321743"><em>Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment</em></a> by Liu &amp; Layland <br /> ◦ <em>Hard Real-Time Computing Systems: Predictable Scheduling Algorithms &amp; Applications</em> by Giorgio C Buttazzo</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs3700/2026sp/"><strong>Foundations of AI Reasoning &amp; Decision-Making</strong></a> <br /> CS 3700</td>
      <td>◦ <em>Artificial Intelligence: A Modern Approach</em> by Russell &amp; Norvig</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs3780/2026sp/">Intro. to Machine Learning</a></strong> <br /> CS 3780</td>
      <td>◦ <a href="https://probml.github.io/pml-book/book1.html"><em>Probabilistic Machine Learning: An Intro.</em></a> by Kevin Murphy <br /> ◦ <a href="https://hastie.su.domains/ElemStatLearn/"><em>The Elements of Statistical Learning: Data Mining, Inference &amp; Prediction</em></a> by Hastie, Tibshirani &amp; Friedman <br /> ◦ <a href="https://www.statlearning.com/"><em>An Intro. to Statistical Learning</em></a> by James, Witten, Hastie &amp; Tibshirani <br /> ◦ <a href="https://mlstory.org/"><em>Patterns, Predictions &amp; Actions: Foundations of Machine Learning</em></a> by Hardt &amp; Recht <br /> ◦ <a href="https://fairmlbook.org/"><em>Fairness &amp; Machine Learning: Limitations &amp; Opportunities</em></a> by Barocas, Hardt &amp; Narayanan <br /> ◦ <a href="https://cs229.stanford.edu/section/cs229-linalg.pdf"><em>Linear Algebra Review &amp; Reference</em></a> by Kolter &amp; Do <br /> ✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong <br /> ✔️ <a href="https://cs229.stanford.edu/section/cs229-prob.pdf"><strong><em>Review of Probability Theory</em></strong></a> by Maleki &amp; Do <br /> ◦ <a href="https://www.cs.cornell.edu/courses/cs4220/2023sp/lec/background.pdf"><em>Numerical Analysis: Background Plus a Bit</em></a> by David Bindel <br /> ◦ <a href="https://ml-cheatsheet.readthedocs.io/"><em>Machine Learning Glossary</em></a> <br /> ◦ <a href="https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf"><em>The Matrix Cookbook</em></a> by Petersen &amp; Pedersen <br /> ◦ <a href="https://arxiv.org/abs/2207.09238"><em>Formal Algorithms for Transformers</em></a> by Phuong &amp; Hutter <br /> ◦ <a href="https://towardsdatascience.com/transformers-explained-visually-part-1-overview-of-functionality-95a6dd460452/"><em>Transformers Explained Visually (Part 1): Overview of Functionality</em></a> by Ketan Doshi <br /> ◦ <em><a href="https://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/mlbook.html">Machine Learning</a></em> by Tom M. Mitchell</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Senior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs4120/2026sp/"><strong>Intro. to Compilers</strong></a> <br /> CS 4120</td>
      <td>◦ <a href="https://www.cs.cornell.edu/courses/cs4120/2026sp/notes/"><em>Intro. to Compilers</em></a> by Andrew Myers <br /> ◦ <em>Modern Compiler Implementation in Java</em> by Andrew Appel <br /> ◦ <em>Compilers: Principles, Techniques &amp; Tools</em> by Aho, Sethi &amp; Ullman <br /> ◦ <em>Engineering a Compiler</em> by Cooper &amp; Torczon <br /> ◦ <em>Adv. Compiler Design &amp; Implementation</em> by Steven S. Muchnick <br /> ◦ <a href="https://docs.oracle.com/javase/specs/jls/se25/html/index.html"><em>The Java Language Specification</em></a> by Gosling et. al <br /> ◦ <em>Linkers &amp; Loaders</em> by John R. Levine <br /> ✔️ <strong><em>Design Patterns: Elements of Reusable Object-Oriented Software</em></strong> by Gamma, Helm, Johnson &amp; Vlissides <br /> ◦ <em>Refactoring: Improving the Design of Existing Code</em> by Fowler &amp; Beck</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4220/2026sp/">Numerical Analysis: Linear &amp; Nonlinear Problems</a></strong> <br /> CS 4220</td>
      <td>◦ <em>A First Course in Numerical Methods</em> by Ascher &amp; Greif <br /> ◦ <em>Matrix Analysis &amp; Applied Linear Algebra</em> by Carl D. Meyer <br /> ◦ <em>Linear Algebra &amp; Its Applications</em> by Lay, Lay &amp; McDonald <br /> ◦ <em>Linear Algebra &amp; Its Applications</em> by Gilbert Strang</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4410/2026sp/">Operating Systems</a></strong> <br /> CS 4410</td>
      <td><!-- 📔 [Course notes](https://www.cs.cornell.edu/courses/cs4410/2026sp/schedule/) <br> --> ◦ <a href="https://pages.cs.wisc.edu/~remzi/OSTEP/"><em>Operating Systems: Three Easy Pieces</em></a> by Arpaci-Dusseau &amp; Arpaci-Dusseau <br /> ◦ <a href="https://harmony.cs.cornell.edu/book/"><em>Concurrent Programming with Harmony</em></a> by Robbert van Renesse <br /> ◦ <em>The Design &amp; Implementation of the 4.4 BSD Operating System</em> by McKusick, Bostic, Karels &amp; Quarterman <br /> ◦ <em>Understanding the Linux Kernel: From I/O Ports to Process Management</em> by Bovet &amp; Cesati <br /> ✔️ <a href="https://www.cs.cornell.edu/courses/cs4410/2026sp/resources/SRC-035.pdf"><strong><em>An Intro. to Programming with Threads</em></strong></a> by Andrew D. Birrell <br /> ◦ <a href="https://greenteapress.com/wp/semaphores/"><em>The Little Book of Semaphores</em></a> by Allen B. Downey <br /> ✔️ <strong><em>Computer Organization &amp; Design: The Hardware Software Interface</em></strong> by Patterson &amp; Hennessy (<a href="https://www.goodreads.com/notes/56852498-computer-organization-and-design-risc-v-edition/185327722-daniel-dantas">🌆 my highlights</a>) <br /> ✔️ <a href="https://www.cs.cornell.edu/courses/cs4410/2026sp/resources/background.pdf"><strong><em>Some CS3410 (or Equivalent) Topics You Might Have Forgotten</em></strong></a> by Robbert van Renesse <br /> ✔️ <a href="https://www.microsoft.com/en-us/research/publication/a-fork-in-the-road/"><strong><em>A fork() in the Road</em></strong></a> by Baumann et. al</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.racheesingh.com/cs4450-spring26/"><strong>Intro. to Computer Networks</strong></a> <br /> CS 4450</td>
      <td>◦ <a href="https://book.systemsapproach.org/"><em>Computer Networks: A Systems Approach</em></a> by Peterson &amp; Davie <br /> ✔️ <a href="https://www.internetsociety.org/internet/history-internet/brief-history-internet/"><strong><em>A Brief History of the Internet</em></strong></a> by Leiner et. al</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs4660/2026sp/"><strong>Foundations of Computational Imaging</strong></a> <br /> CS 4660</td>
      <td>◦ <a href="https://github.com/MLI-lab/deep_inverse_book.github.io/"><em>Deep Learning for Computational Imaging</em></a> by Reinhard Heckel <br /> ◦ <a href="https://visionbook.mit.edu/"><em>Foundations of Computer Vision</em></a> by Torralba, Isola &amp; Freeman <br /> ◦ <a href="https://book-wright-ma.github.io/"><em>High-Dimensional Data Analysis with Low-Dimensional Models: Principles, Computation &amp; Applications</em></a> by Wright &amp; Ma <br /> ◦ <a href="https://cs229.stanford.edu/section/cs229-linalg.pdf"><em>Linear Algebra Review &amp; Reference</em></a> by Kolter &amp; Do <br /> ✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong <br /> ✔️ <a href="https://cs229.stanford.edu/section/cs229-prob.pdf"><strong><em>Review of Probability Theory</em></strong></a> by Maleki &amp; Do <br /> ◦ <a href="https://www.cs.cornell.edu/courses/cs4220/2023sp/lec/background.pdf"><em>Numerical Analysis: Background Plus a Bit</em></a> by David Bindel <br /> ◦ <a href="https://ml-cheatsheet.readthedocs.io/"><em>Machine Learning Glossary</em></a> <br /> ◦ <a href="https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf"><em>The Matrix Cookbook</em></a> by Petersen &amp; Pedersen</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4670/2026sp/">Intro. to Computer Vision</a></strong> <br /> CS 4670</td>
      <td>◦ <a href="https://szeliski.org/Book/"><em>Computer Vision: Algorithms &amp; Applications</em></a> by Richard Szeliski</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4740/2026sp/">Natural Language Processing</a></strong> <br /> CS 4740</td>
      <td>◦ <a href="https://web.stanford.edu/~jurafsky/slp3/"><em>Speech &amp; Language Processing: An Intro. to Natural Language Processing, Computational Linguistics &amp; Speech Recognition with Language Models</em></a> by Jurafsky &amp; Martin</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4756/2026sp/">Robot Learning</a></strong> <br /> CS 4756</td>
      <td>◦ <a href="https://cs231n.github.io/python-numpy-tutorial/"><em>Python Numpy Tutorial (with Jupyter &amp; Colab)</em></a> by Justin Johnson <br /> ◦ <a href="https://docs.pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html"><em>Deep Learning with PyTorch: A 60 Minute Blitz</em></a> by Soumith Chintala <br /> ◦ <a href="https://macrl-book.github.io/"><em>Modern Adaptive Control &amp; Reinforcement Learning</em></a> by Bagnell, Boots &amp; Choudhury <br /> ◦ <a href="https://hades.mech.northwestern.edu/index.php/Modern_Robotics"><em>Modern Robotics: Mechanics, Planning &amp; Control</em></a> by Lynch &amp; Park <br /> ◦ <a href="http://incompleteideas.net/book/the-book-2nd.html"><em>Reinforcement Learning: An Intro.</em></a> by Sutton &amp; Barto <br /> ◦ <em>Multiple View Geometry in Computer Vision</em> by Richard Hartley and Andrew Zisserman <br /> ◦ <em>Probabilistic Robotics</em> by Thrun, Burgard &amp; Fox <br /> ◦ <em>Probability Theory: The Logic of Science</em> by Jaynes &amp; Bretthorst</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs4782/2026sp/"><strong>Intro. to Deep Learning</strong></a> <br /> CS 4782</td>
      <td><!-- 📔 [Course notes](https://www.cs.cornell.edu/courses/cs4782/2026sp/#Schedule) <br> --> ◦ <a href="https://d2l.ai/"><em>Dive Into Deep Learning</em></a> by Zhang, Lipton, Li &amp; Smola <br /> ◦ <a href="https://probml.github.io/pml-book/book1.html"><em>Probabilistic Machine Learning: An Intro.</em></a> by Kevin Murphy <br /> ◦ <a href="https://hastie.su.domains/ElemStatLearn/"><em>The Elements of Statistical Learning: Data Mining, Inference &amp; Prediction</em></a> by Hastie, Tibshirani &amp; Friedman</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://spooner.cc/quantum-spring26/"><strong>Quantum Computing</strong></a> <br /> CS 4813</td>
      <td>◦ <a href="https://www.thomaswong.net/#textbook"><em>Introduction to Classical &amp; Quantum Computing</em></a> by Thomas G. Wong <br /> ◦ <em>Quantum Computation &amp; Quantum Information</em> by Nielsen &amp; Chuang <br /> ◦ <a href="https://cs.uwaterloo.ca/~watrous/QC-notes/"><em>Quantum Computation</em> lecture notes</a> by John Watrous <br /> ◦ <a href="https://homepages.cwi.nl/~rdewolf/qcnotes.pdf"><em>Quantum Computing</em> lecture notes</a> by Ronald de Wolf</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs4820/2026sp/"><strong>Intro. to Analysis of Algorithms</strong></a> <br /> CS 4820</td>
      <td><!-- 📔 [Course notes](https://www.cs.cornell.edu/courses/cs4820/2026sp/lectures/) --> <br /> ◦ <em>Algorithm Design</em> by Kleinberg &amp; Tardos <br /> ◦ <em>Algorithms Illuminated</em> by Tim Roughgarden <br /> ◦ <em>Intro. to Algorithms</em> by Cormen et al. <br /> ◦ <em>The Design &amp; Analysis of Algorithms</em> by Dexter Kozen</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4850/2026sp/">Probability, Vectors &amp; Matrices in Computing</a></strong> <br /> CS 4850</td>
      <td>◦ <em>Foundations of Data Science</em> by Blum, Hopcroft &amp; Kannan <br /> ◦ <em>Probability and Computing: Randomized Algorithms &amp; Probabilistic Analysis</em> by Mitzenmacher &amp; Upfal <br /> ◦ <em>Randomized Algorithms</em> by Motwani &amp; Raghavan <br /> ◦ <em>Algorithm Design</em> by Kleinberg &amp; Tardos</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Masters level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5150/2026sp/">Software Engineering</a></strong> <br /> CS 5150</td>
      <td><!-- 📔 [Course notes](https://www.cs.cornell.edu/courses/cs5150/2026sp/schedule.html) <br> --> ◦ <a href="https://abseil.io/resources/swe-book"><em>Software Engineering at Google: Lessons Learned from Programming Over Time</em></a> by Winters, Manshreck &amp; Wright <br /> ◦ <em>Better Embedded System Software</em> by Philip Koopman <br /> ◦ <em>The Mythical Man-Month: Essays on Software Engineering</em> by Frederick P. Brooks, Jr. <br /> ◦ <em>Software Engineering</em> by Ian Sommerville <br /> ◦ <em>The Pragmatic Programmer: Your Journey to Mastery</em> by Thomas &amp; Hunt</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs5220/2026sp/"><strong>Applied High-Performance &amp; Parallel Computing</strong></a> <br /> CS 5220</td>
      <td>◦ <em>Intro. to High Performance Computing for Scientists &amp; Engineers</em> by Hager &amp; Wellein <br /> ◦ <em>Structured Parallel Programming: Patterns for Efficient Computation</em> by McCool, Robison &amp; Reinders <br /> ◦ <em>Programming Massively Parallel Processors: A Hands-on Approach</em> by Kirk &amp; Hwu <br /> ◦ <em>Performance Optimization of Numerically Intensive Codes</em> by Goedecker &amp; Hoisie <br /> ◦ <em>Principles of Parallel Programming</em> by Lin &amp; Snyder <br /> ◦ <em>An Intro. to Parallel Programming</em> by Peter Pacheco <br /> ◦ <em>Parallel Programming: Techniques &amp; Applications Using Networked Workstations &amp; Parallel Computers</em> by Wilkinson &amp; Allen <br /> ◦ <a href="https://swcarpentry.github.io/shell-novice/"><em>The Unix Shell</em></a> by Software Carpentry <br /> ◦ <a href="https://swcarpentry.github.io/git-novice/"><em>Version Control with Git</em></a> by Software Carpentry <br /> ◦ <a href="https://cvw.cac.cornell.edu/Linux"><em>An Intro. to Linux</em></a> by Cornell Center for Advanced Computing <br /> ◦ <em><a href="https://git-scm.com/book/en/v2">Pro Git: Everything You Need to Know about Git</a></em> by Chacon &amp; Straub <br /> ✔️ <strong><em>The C Programming Language</em></strong> by Kernighan &amp; Ritchie <br /> ◦ <a href="https://cvw.cac.cornell.edu/python-intro"><em>Intro. to C Programming</em></a> by Cornell Center for Advanced Computing <br /> ◦ <a href="https://www.learncpp.com/"><em>Learn C++</em></a> <br /> ◦ <em>A Tour of C++</em> by Bjarne Stroustrup <br /> ◦ <a href="https://cvw.cac.cornell.edu/python-intro"><em>Intro. to Python Programming</em></a> by Cornell Center for Advanced Computing <br /> ◦ <a href="https://cvw.cac.cornell.edu/python-performance"><em>Python for High Performance</em></a> by Cornell Center for Advanced Computing <br /> ◦ <a href="https://lectures.scientific-python.org/"><em>Scientific Python Lectures</em></a> <br /> ◦ <em>Python Essential Reference</em> by David Beazley <br /> ✔️ <a href="https://allendowney.github.io/ThinkPython/"><strong><em>Think Python: How to Think Like a Computer Scientist</em></strong></a> by Allen B. Downey <br /> ◦ <a href="https://www.openbookproject.net/thinkcs/python/english3e/"><em>How to Think Like a Computer Scientist: Learning with Python 3</em></a> by Wentworth, Elkner, Downey &amp; Meyers</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs5430/2026sp/"><strong>System Security</strong></a> <br /> CS 5430</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs5630/2026sp/"><strong>Physically Based Realistic Rendering</strong></a> <br /> CS 5630</td>
      <td>◦ <a href="https://www.pbrt.org/"><em>Physically Based Rendering: From Theory to Implementation</em></a> by Pharr, Jakob &amp; Humphreys <br /> ◦ <em>Fundamentals of Computer Graphics</em> by Marschner &amp; Shirley</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs5757/2026sp/"><strong>Optimization Methods for Robotics</strong></a> <br /> CS 5757</td>
      <td>◦ <em>Numerical Optimization</em> by Nocedal &amp; Wright <br /> ◦ <a href="https://underactuated.mit.edu/"><em>Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying &amp; Manipulation</em></a> by Russ Tedrake <br /> ◦ <a href="http://asrl.utias.utoronto.ca/~tdb/"><em>State Estimation for Robotics</em></a> by Timothy D. Barfoot <br /> ◦ <a href="https://web.stanford.edu/~boyd/cvxbook/">Convex Optimization</a> by Boyd &amp; Vandenberghe <br /> ◦ <a href="https://hades.mech.northwestern.edu/index.php/Modern_Robotics"><em>Modern Robotics: Mechanics, Planning &amp; Control</em></a> by Lynch &amp; Park <br /> ◦ <a href="https://algorithmsbook.com/optimization/"><em>Algorithms for Optimization</em></a> by Kochenderfer &amp; Wheeler  <br /> ◦ <a href="https://www.nicolasboumal.net/book/"><em>An Intro. to Optimization on Smooth Manifolds</em></a> by Nicolas Boumal</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://abdelfattah-class.github.io/ece5545/"><strong>Machine Learning Hardware &amp; Systems</strong></a> <br /> CS 5775</td>
      <td>◦ <em>Efficient Processing of Deep Neural Networks</em> by Sze, Chen, Yang &amp; Emer <br /> ◦ <em>Computer Architecture: A Quantitative Approach</em> by Hennessy, Patterson &amp; Kozyrakis <br /> See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs3780/2026sp/"><strong>Intro. to Machine Learning</strong></a> <br /> CS 5780</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs5788/2026sp/"><strong>Intro. to Generative Models</strong></a> <br /> CS 5788</td>
      <td>◦ <a href="https://probml.github.io/pml-book/book2.html"><em>Probabilistic Machine Learning: Adv. Topics</em></a> by Kevin P. Murphy <br /> ◦ <a href="https://www.deeplearningbook.org/"><em>Deep Learning</em></a> by Goodfellow, Bengio &amp; Courville <br /> ◦ <em>Information Theory, Inference &amp; Learning Algorithms</em> by David J.C. MacKay <br /> ◦ <a href="https://visionbook.mit.edu/"><em>Foundations of Computer Vision</em></a> by Torralba, Isola &amp; Freeman</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Doctoral level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs6156/2026sp/"><strong>Runtime Verification</strong></a> <br /> CS 6156</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs6682/2026sp/"><strong>Computation for Content Creation</strong></a> <br /> CS 6682</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs6787/2026sp/"><strong>Adv. Machine Learning Systems</strong></a> <br /> CS 6787</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.cornell.edu/courses/cs6810/2026sp/"><strong>Theory of Computing</strong></a> <br /> CS 6810</td>
      <td>◦ <a href="https://theory.cs.princeton.edu/complexity/"><em>Computational Complexity: A Modern Approach</em></a> by Arora &amp; Barak <br /> ◦ <a href="https://www.wisdom.weizmann.ac.il/~oded/cc-drafts.html"><em>Computational Complexity: A Conceptual Perspective</em></a> by Oded Goldreich <br /> ◦ <em>Mathematics and Computation: A Theory Revolutionizing Technology &amp; Science</em> by Avi Wigderson</td>
    </tr>
  </tbody>
</table>

<!-- | Cornell Engineering requirements | |
| :---: | --- |
| **[Calculus for Engineers](https://math.cornell.edu/textbooks)** / **[Multivariable Calculus for Engineers](https://math.cornell.edu/textbooks)** <br> MATH 1910 / 1920 | ◦ *Calculus* by Rogawski, Adams & Franzosa |
| **[Linear Algebra for Engineers](https://math.cornell.edu/textbooks)** <br> MATH 2940 | ◦ *Linear Algebra and Its Applications* by Lay, Lay & McDonald | -->

<h3 id="-fall-2025-1"><a href="https://dantasfiles.com/2025/08/25/cornell-cs-fa25.html">← Fall 2025</a></h3>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[This is an unofficial list of books that are recommended in Spring 2026 computer science classes at Cornell]]></summary></entry><entry><title type="html">The Year in Tech Fiction</title><link href="https://dantasfiles.com/2025/12/31/fiction-2025.html" rel="alternate" type="text/html" title="The Year in Tech Fiction" /><published>2025-12-31T00:00:00+00:00</published><updated>2025-12-31T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/12/31/fiction-2025</id><content type="html" xml:base="https://dantasfiles.com/2025/12/31/fiction-2025.html"><![CDATA[<p>📕 <em>Cold Eternity</em> by S.A. Barnes <!-- 6/14/2025 --></p>

<p>📺 <a href="https://en.wikipedia.org/wiki/List_of_Love,_Death_%26_Robots_episodes#Volume_IV_(2025)"><em>Love, Death &amp; Robots</em>, s.4</a> by Netflix <!-- 5/15/2025 --></p>

<p>📺 <a href="https://en.wikipedia.org/wiki/Moonrise_(TV_series)"><em>Moonrise</em></a> by Netflix <!-- 5/2/2025 --></p>

<p>📺 <a href="https://en.wikipedia.org/wiki/The_Electric_State"><em>The Electric State</em></a> by Netflix <!-- 3/18/2025 --></p>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[📕 Cold Eternity by S.A. Barnes]]></summary></entry><entry><title type="html">The Year in Tech</title><link href="https://dantasfiles.com/2025/12/31/learn-2025.html" rel="alternate" type="text/html" title="The Year in Tech" /><published>2025-12-31T00:00:00+00:00</published><updated>2025-12-31T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/12/31/learn-2025</id><content type="html" xml:base="https://dantasfiles.com/2025/12/31/learn-2025.html"><![CDATA[<p>🗣️ <a href="https://alumni.princeton.edu/events/tigerside-chat-history-science-funding-united-states"><em>The History of Science Funding in the United States</em></a> by 🐯Michael Gordin <!-- 6/10/2025 --></p>

<p>🗣️ <a href="https://bcf.princeton.edu/events/jonathan-haskel-on-ai-and-productivity-a-general-purpose-technology-approach/"><em>AI &amp; Productivity: A General Purpose Technology Approach</em></a> by Jonathan Haskel <!-- 6/5/2025 --></p>

<p>🗣️ <a href="https://bcf.princeton.edu/events/martin-chorzempa-on-geopolitics-of-payments-the-dollar-the-rmb-and-digital-currencies/"><em>Geopolitics of Payments: The Dollar, the RMB &amp; Digital Currencies</em></a> by Martin Chorzempa <!-- 5/28/2025 --></p>

<p>🗣️✨🐯<a href="https://innovation.princeton.edu/reunions2025"><strong>Innovation Conference: Going Boldly: From Idea to Impact</strong></a>✨ <!-- 5/23/2025 --></p>

<!--📔 [_New Scientist_](https://www.newscientist.com/): Science & Technology News, Mar. 22 - Apr. 4  4/2/2025 -->

<p>📺 Frontline: <a href="https://www.pbs.org/wgbh/frontline/documentary/the-rise-and-fall-of-terrorgram/"><em>The Rise and Fall of Terrorgram</em></a> by PBS <!-- 4/1/2025 --></p>

<p>🗣️✨<a href="https://tcf-nj.org/"><strong>Trenton Computer Festival</strong></a>✨ (TCF) <!-- 3/29/2025 --></p>
<ul>
  <li><em>After Twenty Years, the Maker Movement Is Still Fun</em>	by Dale Dougherty</li>
  <li><em>A Glimpse into the World of Immersive Technology of Otherworld</em>	by	Schenck &amp; Skovron</li>
  <li><em>Using Generative AI to Predict Machine Behavior</em> by Perlowin &amp; Alabsi</li>
  <li><em>Putting Sense into Artificial Intelligence</em> by Edward E. Herceg</li>
  <li><em>Temperature Logger Using a Low-cost Raspberry Pi Single-Board Computer</em> by Don Arrowsmith</li>
  <li><em>Using SysML to Model a Hospital Blood Analyzer</em> by Brian Berenbach</li>
</ul>

<!-- 📔 [_Popular Mechanics_](https://www.popularmechanics.com/), Mar. - Apr.  3/28/2025 -->

<!-- 📔 [_Quanta_](https://www.quantamagazine.org/), Jan. - Feb. 19 3/21/2025 -->

<p>🗣️ <a href="https://www.pppl.gov/events/2025/science-saturday-will-quantum-computers-solve-world%E2%80%99s-greatest-problems"><em>Will Quantum Computers Solve the World’s Greatest Problems?</em></a> by 🐯Andrew Houck <!-- 3/1/2025 --></p>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[Learning about technology from 2025]]></summary></entry><entry><title type="html">🐯 Princeton CS unofficial reading list (Fall 2025)</title><link href="https://dantasfiles.com/2025/09/02/princeton-cs-fa25.html" rel="alternate" type="text/html" title="🐯 Princeton CS unofficial reading list (Fall 2025)" /><published>2025-09-02T00:00:00+00:00</published><updated>2025-09-02T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/09/02/princeton-cs-fa25</id><content type="html" xml:base="https://dantasfiles.com/2025/09/02/princeton-cs-fa25.html"><![CDATA[<h3 id="spring-2025--spring-2026"><a href="https://dantasfiles.com/2025/01/27/princeton-cs-sp25.html">←Spring 2025</a> | <a href="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html">Spring 2026→</a></h3>

<p>This is an unofficial list of books that are recommended in Fall 2025 computer science classes at Princeton<br />
I’ve read sections of many of these, but the books marked with a <strong>bold</strong> ✔️ are ones I’ve been interested enough in to read at length</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Freshman level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos126/">Computer Science: An Interdisciplinary Approach</a></strong> <br /> COS 126</td>
      <td>• <em><a href="https://introcs.cs.princeton.edu/java/home/">Computer Science: An Interdisciplinary Approach</a></em> by Sedgewick &amp; Wayne</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Sophomore level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos217/">Intro. to Programming Systems</a></strong> <br /> COS 217</td>
      <td>• <em>C Programming: A Modern Approach</em> by K.N. King <br /> • <em>ARM 64-Bit Assembly Language</em> by Pyeatt &amp; Ughetta <br /> ✔️ <strong><em>The Practice of Programming</em></strong> by Kernighan &amp; Pike <br /> ◦ <em>Linux Pocket Guide</em> by Daniel J. Barrett</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos226/">Algorithms &amp; Data Structures</a></strong> <br /> COS 226</td>
      <td>✔️ <a href="https://algs4.cs.princeton.edu/home/"><strong><em>Algorithms</em></strong></a> by Sedgewick &amp; Wayne</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos240/">Reasoning About Computation</a></strong> <br /> COS 240</td>
      <td>• <em>Mathematics for Computer Science</em> by Lehman, Leighton &amp; Meyer</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Junior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://cos302.notion.site/f25">Mathematics for Numerical Computing &amp; Machine Learning</a></strong> <br /> COS 302</td>
      <td>✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Contemporary Logic Design</strong> <br /> COS 306</td>
      <td>• <em>Digital Design with RTL Design, VHDL &amp; Verilog</em> by Frank Vahid</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://aaa.princeton.edu/orf363">Computing &amp; Optimization for the Physical &amp; Social Sciences</a></strong> <br /> COS 323</td>
      <td>◦ <em>An Introduction to Optimization: With Applications to Machine Learning</em> by Chong, Lu &amp; Zak <br /> ◦ <em>Algorithms</em> by Dasgupta, Papadimitriou &amp; Vazirani <br /> ◦ <em><a href="https://web.stanford.edu/~boyd/vmls/">Introduction to Applied Linear Algebra: Vectors, Matrices &amp; Least Squares</a></em> by Boyd &amp; Vandenberghe <br /> ◦ <em>Linear Programming: Foundations and Extensions</em> by Robert J. Vanderbei <br /> ◦ <em><a href="https://web.stanford.edu/~boyd/cvxbook/">Convex Optimization</a></em> by Boyd &amp; Vandenberghe</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://cos324.io/">Intro. to Machine Learning</a></strong> <br /> COS 324</td>
      <td>• <em><a href="https://princeton-introml.github.io/">Introduction to Machine Learning</a></em> by Arora, Park, Jacob &amp; Chen <br /> • <em><a href="https://www.statlearning.com/">An Introduction to Statistical Learning</a></em> by James, Witten, Hastie &amp; Tibshirani <br /> • <em><a href="https://web.stanford.edu/~jurafsky/slp3/">Speech &amp; Language Processing</a></em> by Jurafsky &amp; Martin <br /> • <em><a href="http://incompleteideas.net/book/the-book-2nd.html">Reinforcement Learning: An Introduction</a></em> by Sutton &amp; Barto<br /> ✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong <br /> ◦ <em><a href="https://www.deeplearningbook.org/">Deep Learning</a></em> by Goodfellow, Bengio &amp; Courville<br /> ◦ <em>Introduction to Probability</em> by Blitzstein &amp; Hwang<br /> ◦ <em><a href="https://learningds.org/">Learning Data Science: Data Wrangling, Exploration, Visualization &amp; Modeling with Python</a></em> by Lau, Gonzalez &amp; Nolan<br /> ◦ <em><a href="https://www.microsoft.com/en-us/research/publication/pattern-recognition-machine-learning/">Pattern Recognition &amp; Machine Learning</a></em> by Christopher M. Bishop<br /> ◦  <em><a href="https://www.wolfram.com/language/introduction-machine-learning/">Introduction to Machine Learning</a></em> by Etienne Bernard</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos326/"><strong>Functional Programming</strong></a> <br /> COS 326</td>
      <td>✔️ <a href="https://cs3110.github.io/textbook/cover.html"><strong><em>OCaml Programming: Correct + Efficient + Beautiful</em></strong></a> by Michael Clarkson <br /> ◦ <em><a href="https://dev.realworldocaml.org/">Real World OCaml: Functional Programming for the Masses</a></em> by Madhavapeddy &amp; Minsky</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos330/">Great Ideas in Theoretical CS</a></strong> <br /> COS 330</td>
      <td>◦ <em>Introduction to Algorithms</em> by Cormen, Leiserson, Rivest &amp; Stein <br /> ◦ <em><a href="https://jeffe.cs.illinois.edu/teaching/algorithms/">Algorithms</a></em> by Jeff Erikson</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos333/">Adv. Programming Techniques</a></strong> <br /> COS 333</td>
      <td>✔️ <strong><em>The Practice of Programming</em></strong> by Kernighan &amp; Pike<br /> ◦ <em>Python in a Nutshell: A Desktop Quick Reference</em> by Martelli, Ravenscroft, Hoden &amp; McGuire<br /> ◦  <em>Flask Web Development: Developing Web Applications with Python</em> by Miguel Grinberg<br /> ◦ <em>JavaScript: The Definitive Guide: Master the World’s Most-Used Programming Language</em> by David Flanagan <br /> ◦ <em>Beginning Software Engineering</em> by Rod Stephens</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://github.com/Princeton-Introduction-to-Robotics/F2025">Introduction to Robotics</a></strong> <br /> COS 346</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.polarislab.org/ai-law-2025/index.html">Artificial Intelligence, Law &amp; Public Policy</a></strong> <br /> COS 352</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Computer Architecture &amp; Organization</strong> <br /> COS 375</td>
      <td>✔️ <strong><em>Computer Organization &amp; Design: The Hardware Software Interface</em></strong> by Patterson &amp; Hennessy</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Senior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos418/">Distributed Systems</a></strong> <br /> COS 418</td>
      <td>◦ <em>The Go Programming Language</em> by Donovan &amp; Kernighan <br /> ◦ <em>Distributed Systems: Principles &amp; Paradigms</em> by Tanenbaum &amp; van Steen <br /> ◦ <em>Guide to Reliable Distributed Systems: Building High-Assurance Applications &amp; Cloud-Hosted Services</em> by Kenneth P. Birman</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://cos426.cs.princeton.edu/">Computer Graphics</a></strong> <br /> COS 426</td>
      <td>• <em>Computer Graphics with Open GL</em> by Hearn, Baker &amp; Carithers</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://sites.google.com/view/alex-lombardi/home/cos-433-fall-2025-princeton">Cryptography</a></strong> <br /> COS 433</td>
      <td>◦  <em>Introduction to Modern Cryptography</em> by Katz &amp; Lindell <br /> ◦ <em><a href="https://toc.cryptobook.us/">A Graduate Course in Applied Cryptography</a></em> by Boneh &amp; Shoup <br /> ◦ <em><a href="https://www.wisdom.weizmann.ac.il/~/oded/foc-book.html">Foundations of Cryptography</a></em> by Oded Goldreich</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos461/">Computer Networks</a></strong> <br /> COS 461</td>
      <td>• <em>Computer Networking: A Top-Down Approach</em> by Kurose &amp; Ross</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Design of Very Large-Scale Integrated (VLSI) Systems</strong> <br /> COS 462</td>
      <td>• <em>Digital Integrated Circuits: A Design Perspective</em> by Rabaey, Chandrakasan &amp; Nikolic</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Graduate level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://princetonuniversity.github.io/princeton-cos514-fall25.github.io/">Fundamentals of Deep Learning</a></strong> <br /> COS 514</td>
      <td>• <em><a href="https://www.cs.princeton.edu/~arora/TheoryDL.pdf">Theory of Deep Learning</a></em> by Sanjeev Arora</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos516/">Automated Reasoning about Software</a></strong> <br /> COS 516</td>
      <td>See website for paper list <br /> • <em>The Calculus of Computation: Decision Procedures with Applications to Verification</em> by Bradley &amp; Manna</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/courses/archive/fall25/cos418/518.html">Adv. Computer Systems</a></strong> <br /> COS 518</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.princeton.edu/~hy2/teaching/fall25-cos521/">Adv. Algorithm Design</a></strong> <br /> COS 521</td>
      <td>◦ <em>Algorithmic Game Theory</em> by Nisan, Roughgarden, Tardos &amp; Vazirani <br /> ◦ <em>Randomized Algorithms</em> by Motwani &amp; Raghavan <br /> ◦ <em>Online Computation &amp; Competitive Analysis</em> by Borodin &amp; El-Yaniv <br /> ◦ <em>The Probabilistic Method</em> by Alon &amp; Spencer <br /> ◦ <em>Approximation Algorithms</em> by Vijay V. Vazirani <br /> ◦ <em><a href="https://designofapproxalgs.com/">The Design of Approximation Algorithms</a></em> by Williamson &amp; Shmoys <br /> ◦ <em>Spectral Graph Theory</em> by Fan R.K. Chung</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://rpmml.github.io/">Robot Planning Meets Machine Learning</a></strong> <br /> COS 531</td>
      <td>◦ <em>Planning with Markov Decision Processes: An AI Perspective</em> by Mausam &amp; Kolobov <br /> ◦ <em>Algorithms for Decision Making</em> by Kochenderfer, Wheeler &amp; Wray <br /> ◦ <em>Planning Algorithms</em> by Steven M. LaValle <br /> ◦ <em>Artificial Intelligence: A Modern Approach</em> by Norvig &amp; Russell <br /> ◦ <a href="https://probml.github.io/pml-book/book1.html"><em>Probabilistic Machine Learning: An Introduction</em></a> by Kevin P. Murphy <br /> ◦ <em><a href="https://www.microsoft.com/en-us/research/publication/pattern-recognition-machine-learning/">Pattern Recognition &amp; Machine Learning</a></em> by Christopher M. Bishop <br /> ◦ <em><a href="http://incompleteideas.net/book/the-book-2nd.html">Reinforcement Learning: An Introduction</a></em> by Sutton &amp; Barto <br /> ◦ <em>Machine Learning Methods for Planning</em> by Steven Minton</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://tridao.me/cos597a/">Efficient Systems for Foundation Models</a></strong> <br /> COS 597A</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://kyleatprinceton.github.io/cos597e-f25/">Neural Sensing, Modeling &amp; Understanding</a></strong> <br /> COS 597E</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://ben-eysenbach.github.io/inference-action-f25/">Probabilistic Topics in RL</a></strong> <br /> COS 597R</td>
      <td>See website for paper list <br /> • <em><a href="https://www.deeplearningbook.org/">Deep Learning</a></em> by Goodfellow, Bengio &amp; Courville <br /> • <em><a href="https://probml.github.io/pml-book/book2.html">Probabilistic Machine Learning: Advanced Topics</a></em> by Kevin P. Murphy <br /> • <em><a href="http://incompleteideas.net/book/the-book-2nd.html">Reinforcement Learning: An Introduction</a></em> by Sutton &amp; Barto</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong>Domain-specific Computer Systems Architecture</strong> <br /> COS 597V</td>
      <td>• <em>Computer Architecture: A Quantitative Approach</em> by Hennessy &amp; Patterson</td>
    </tr>
  </tbody>
</table>

<!-- 
| Other technology courses | |
| :---: | --- |
| **Economics of the Internet & Artificial Intelligence: The Digital Revolution** <br> ECO 326 | • _AI Snake Oil: What Artificial Intelligence Can Do, What It Can't & How to Tell the Difference_ by Narayanan & Kapoor <br> • [_Networks, Crowds & Markets: Reasoning about a Highly Connected World_](https://www.cs.cornell.edu/home/kleinber/networks-book/) by Easley & Kleinberg <br> ◦ _The Attention Deficit: Unintended Consequences of Digital Connectivity_ by Swati Bhatt <br> ◦ _How Digital Communication Technology Shapes Markets: Redefining Competition, Building Cooperation_ by Swati Bhatt |

| B.S.E. Basic Math and Science | |
| :---: | --- |
| **Calculus I** / **II** <br> MAT 103 / 104 | ◦ _Thomas' Calculus: Early Transcendentals, Single Variable_ by Hass, Heil, Bogacki & Weir |
| **Multivariable Calculus** <br> MAT 201 | ◦ _Thomas' Calculus: Multivariable_ by Hass, Heil, Bogacki & Weir |
| **Linear Algebra with Applications** <br> MAT 202 | ◦ _Linear Algebra with Applications_ by Otto Bretscher | 
| **General Chemistry: Applications in Modern Technology** <br> CHM 207 | • _Chemical Principles_ by Zumdahl & DeCoste | 
-->

<h3 id="spring-2025--spring-2026-1"><a href="https://dantasfiles.com/2025/01/27/princeton-cs-sp25.html">←Spring 2025</a> | <a href="https://dantasfiles.com/2026/01/26/princeton-cs-sp26.html">Spring 2026→</a></h3>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[This is an unofficial list of books that are recommended in Fall 2025 computer science classes at Princeton]]></summary></entry><entry><title type="html">🐻 Cornell CS unofficial reading list (Fall 2025)</title><link href="https://dantasfiles.com/2025/08/25/cornell-cs-fa25.html" rel="alternate" type="text/html" title="🐻 Cornell CS unofficial reading list (Fall 2025)" /><published>2025-08-25T00:00:00+00:00</published><updated>2025-08-25T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/08/25/cornell-cs-fa25</id><content type="html" xml:base="https://dantasfiles.com/2025/08/25/cornell-cs-fa25.html"><![CDATA[<h3 id="-spring-2026"><!-- [← Spring 2025](https://dantasfiles.com/2025/01/22/cornell-cs-sp25.html) | --> <a href="https://dantasfiles.com/2026/01/20/cornell-cs-sp26.html">Spring 2026→</a></h3>

<p>This is an unofficial list of books that are recommended in Fall 2025 computer science classes at Cornell<br />
I’ve read sections of many of these, but the books marked with a <strong>bold</strong> ✔️ are ones I’ve been interested enough in to read at length</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Freshman level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs1110/2025fa/">Intro. to Computing: A Design &amp; Development Perspective</a></strong> <br /> CS 1110</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Sophomore level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs2024/2025fa/">C++ Programming</a></strong> <br /> CS 2024</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs2110/2025fa/">Object-Oriented Programming &amp; Data Structures</a></strong> <br /> CS 2110</td>
      <td>✔️ <a href="https://andrewcmyers.github.io/oodds/"><strong><em>Object-Oriented Design &amp; Data Structures</em></strong></a> by Myers &amp; Kozen <br /> ✔️ <a href="https://www.cs.cornell.edu/info/people/tt/Principled_Programming.html"><strong><em>Principled Programming: Introduction to Coding in Any Imperative Language</em></strong></a> by Tim Teitelbaum <br /> ◦ <em>Data Structures &amp; Algorithms in Java: A Project-Based Approach</em> by Dan S. Myers</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs2112/2025fa/">Object-Oriented Design &amp; Data Structures - Honors</a></strong> <br /> CS 2112</td>
      <td>✔️ <a href="https://andrewcmyers.github.io/oodds/"><strong><em>Object-Oriented Design &amp; Data Structures</em></strong></a> by Myers &amp; Kozen <br /> • <em>Data Structures &amp; Abstractions with Java</em> by Carrano &amp; Henry <br /> ◦ <em>Data Structures &amp; Problem Solving Using Java</em> by Mark Allen Weiss <br /> ◦ <em>Program Development in Java: Abstraction, Specification &amp; Object-Oriented Design</em> by Liskov &amp; Guttag <br /> ◦ <em>Java Precisely</em> by Peter Sestoft <br /> ✔️ <strong><em>Design Patterns: Elements of Reusable Object-Oriented Software</em></strong> by Gamma, Helm, Johnson &amp; Vlissides <br /> ◦ <em>Java in a Nutshell: A Desktop Quick Reference</em> by Evans, Clark &amp; Flanagan <br /> ✔️ <strong><em>Effective Java: Best Practices for the Java Platform</em></strong> by Joshua Bloch</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Junior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs3110/2025fa/">Data Structures &amp; Functional Programming</a></strong> <br /> CS 3110</td>
      <td>✔️ <a href="https://cs3110.github.io/textbook/cover.html"><strong><em>OCaml Programming: Correct + Efficient + Beautiful</em></strong></a> by Michael Clarkson</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs3410/2025fa/">Computer System Organization &amp; Programming</a></strong> <br /> CS 3410</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs3780/2025fa/">Intro. to Machine Learning</a></strong> <br /> CS 3780</td>
      <td>• <em><a href="https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/">Understanding Machine Learning: From Theory to Algorithms</a></em> by Shalev-Shwartz &amp; Ben-David <br /> ✔️ <a href="https://mml-book.github.io/"><strong><em>Mathematics for Machine Learning</em></strong></a> by Deisenroth, Faisal &amp; Ong <br /> ◦ <em>Machine Learning</em> by Tom Mitchell <br /> ◦  <em><a href="https://probml.github.io/pml-book/">Probabilistic Machine Learning</a></em> by Kevin Murphy <br /> ◦ <em>An Introduction to Support Vector Machines &amp; Other Kernel-based Learning Methods</em> by Cristianini &amp; Shawe-Taylor <br /> ◦  <em>Learning with Kernels: Support Vector Machines, Regularization, Optimization &amp; Beyond</em> by Scholkopf &amp; Smola <br /> ◦ <em>Pattern Recognition &amp; Machine Learning</em> by Christopher M. Bishop <br /> ◦ <em>Introduction to Machine Learning</em> by Ethem Alpaydin <br /> ◦ <em>Pattern Classification</em> by Duda, Hart &amp; Stork <br /> ◦ <em><a href="https://hastie.su.domains/ElemStatLearn/">The Elements of Statistical Learning: Data Mining, Inference &amp; Prediction</a></em> by Hastie, Tibshirani &amp; Friedman <br /> ◦  <em>Causal Inference for Statistics, Social &amp; Biomedical Sciences: An Introduction</em> by Imbens &amp; Rubin <br /> ◦ <em>Foundations of Statistical Natural Language Processing</em> by Hamming &amp; Schutze <br /> ◦ <em><a href="https://nlp.stanford.edu/IR-book/">Introduction to Information Retrieval</a></em> by Manning, Raghavan &amp; Schutze <br /> ◦ <em>Statistical Learning Theory</em> by Vladimir N. Vapnik</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Senior level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4110/2025fa/">Programming Languages &amp; Logics</a></strong> <br /> CS 4110</td>
      <td>✔️ <a href="https://cs3110.github.io/textbook/cover.html"><strong><em>OCaml Programming: Correct + Efficient + Beautiful</em></strong></a> by Michael Clarkson <br /> • <em><a href="https://dev.realworldocaml.org/">Real World OCaml: Functional Programming for the Masses</a></em> by Madhavapeddy &amp; Minsky <br /> • <em>The Formal Semantics of Programming Languages</em> by Glynn Winskel <br /> • <em>Types &amp; Programming Languages</em> by Benjamin C. Pierce <br /> • <a href="https://www.plai.org/"><em>Programming Languages: Application &amp; Interpretation</em></a> by Shriram Krishnamurthi <br /> • <a href="https://www.cis.upenn.edu/~bcpierce/sf/"><em>Software Foundations</em></a> by Pierce et al.</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://math.cornell.edu/textbooks">Numerical Analysis &amp; Differential Equations</a></strong> <br /> CS 4210</td>
      <td>• <em>An Introduction to Numerical Analysis</em> by Suli &amp; Mayers</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4414/2025fa/">Systems Programming</a></strong> <br /> CS 4414</td>
      <td>• <em>Computer Systems: A Programmer’s Perspective</em> by Bryant &amp; O’Hallaron <br /> • <em>A Tour of C++</em> by Bjarne Stroustrup</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.csl.cornell.edu/courses/ece4750/">Computer Architecture</a></strong> <br /> CS 4420</td>
      <td>• <em>Computer Architecture: A Quantitative Approach</em> by Hennessy &amp; Patterson <br /> • <em>Digital Design &amp; Computer Architecture</em> by Harris &amp; Harris <br /> ◦ <em>Superscalar Microprocessor Design</em> by Mike Johnson <br /> ◦ <em>Processor Architecture: From Dataflow to Superscalar &amp; Beyond</em> by Silc, Robic &amp; Ungerer <br /> ◦ <em>Modern Processor Design: Fundamentals of Superscalar Processors</em> by Shen &amp; Lipasti <br /> ◦ <em>A Primer on Memory Consistency &amp; Cache Coherence</em> by Nagarajan, Sorin, Hill &amp; Wood <br /> ◦ <em>Principles &amp; Practices of Interconnection Networks</em> by Dally &amp; Towles</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4620/2025fa/">Intro. to Computer Graphics</a></strong> <br /> CS 4620</td>
      <td>•  <em>Fundamentals of Computer Graphics</em> by Marschner &amp; Shirley</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5750/2025fa/">Foundations of Robotics</a></strong> <br /> CS 4750</td>
      <td>◦ <em>Probabilistic Robotics</em> by Thrun, Burgard &amp; Fox <br /> ◦ <em><a href="https://lavalle.pl/planning/">Planning Algorithms</a></em> by Steven M. LaValle <br /> ◦ <em>Artificial Intelligence: A Modern Approach</em> by Russell &amp; Norvig <br /> ◦ <em>Modelling &amp; Control of Robot Manipulators</em> by Sciavicco &amp; Siciliano <br /> ◦ <em>Modern Robotics: Mechanics, Planning &amp; Control</em> by Lynch &amp; Park</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4787/2025fa/">Principles of Large-Scale Machine Learning Systems</a></strong> <br /> CS 4787</td>
      <td>• <em><a href="https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/">Understanding Machine Learning: From Theory to Algorithms</a></em> by Shalev-Shwartz &amp; Ben-David <br /> • <em><a href="https://www.deeplearningbook.org/">Deep Learning</a></em> by Goodfellow, Bengio &amp; Courville <br /> • <a href="http://sbubeck.com/book.html"><em>Convex Optimization: Algorithms &amp; Complexity</em></a> by Sebastien Bubeck</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs4820/2025fa/">Intro. to Analysis of Algorithms</a></strong> <br /> CS 4820</td>
      <td>• <em>Algorithm Design</em> by Kleinberg &amp; Tardos <br /> ◦ <em>Introduction to Algorithms</em> by Cormen, Leiserson, Rivest &amp; Stein <br /> ◦ <em>Algorithms</em> by Dasgupta, Papadimitriou &amp; Vazirani <br /> ◦ <em>The Design &amp; Analysis of Computer Algorithms</em> by Aho, Hopcroft &amp; Ullman <br /> ◦ <em>Computers &amp; Intractability: A Guide to the Theory of NP-Completeness</em> by Garey &amp; Johnson <br /> ◦ <em>The Design &amp; Analysis of Algorithms</em> by Dexter Kozen</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Masters level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://github.com/ajhconway/cs5112-fall2025">Algorithms &amp; Data Structures for Applications</a></strong> <br /> CS 5112</td>
      <td>◦ <em>Algorithm Design</em> by Kleinberg &amp; Tardos</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5154/2025fa/">Software Testing</a></strong> <br /> CS 5154</td>
      <td>• <em>Introduction to Software Testing</em> by Ammann &amp; Offutt <br /> • <a href="https://math.hws.edu/javanotes/index.html"><em>Introduction to Programming Using Java</em></a> by David J. Eck</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5306/2025fa/">Crowdsourcing &amp; Human Computation</a></strong> <br /> CS 5306</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5414/2025fa/">Distributed Computing Principles</a></strong> <br /> CS 5414</td>
      <td>• <em>Distributed Systems</em> by Sape Mullender <br /> See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5416/2025fa/">Cloud Computing and ML Hosting</a></strong> <br /> CS 5416</td>
      <td>• <em>Computer Systems: A Programmer’s Perspective</em> by Bryant &amp; O’Hallaron <br /> • <em>A Tour of C++</em> by Bjarne Stroustrup</td>
    </tr>
    <tr>
      <td style="text-align: center"><a href="https://canvas.cornell.edu/courses/80789/"><strong>Developing &amp; Designing Interactive Devices</strong></a> <br /> CS 5424</td>
      <td>• <em>Practical Electronics for Inventors</em> by Scherz &amp; Monk</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://trustworthy-ai-2025.github.io/">Trustworthy AI</a></strong> <br /> CS 5434</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.racheesingh.com/sysml/">Systems for Large-Scale ML</a></strong> <br /> CS 5470</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5670/2025fa/">Intro. to Computer Vision</a></strong> <br /> CS 5670</td>
      <td>• <a href="https://visionbook.mit.edu/"><em>Foundations of Computer Vision</em></a> by Torralba, Isola &amp; Freeman <br /> ◦ <em><a href="https://szeliski.org/Book/">Computer Vision: Algorithms &amp; Applications</a></em> by Richard Szeliski <br /> ◦ <em><a href="https://www.deeplearningbook.org/">Deep Learning</a></em> by Goodfellow, Bengio &amp; Courville <br /> ◦ <em>Multiple View Geometry in Computer Vision</em> by Hartley &amp; Zisserman <br /> ◦ <em>Computer Vision: A Modern Approach</em> by Forsyth &amp; Ponce</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs5672/2025fa/">Frontiers of Computer Vision</a></strong> <br /> CS 5672</td>
      <td>• <a href="https://visionbook.mit.edu/"><em>Foundations of Computer Vision</em></a> by Torralba, Isola &amp; Freeman <br /> • <em><a href="https://szeliski.org/Book/">Computer Vision: Algorithms &amp; Applications</a></em> by Richard Szeliski</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://canvas.cornell.edu/courses/80405">Applied Machine Learning</a></strong> <br /> CS 5785</td>
      <td>• <a href="https://kuleshov-group.github.io/aml-book/"><em>Applied Machine Learning</em></a> by Kuleshov, Kallus &amp; Belongie <br /> ◦ <em><a href="https://hastie.su.domains/ElemStatLearn/">The Elements of Statistical Learning: Data Mining, Inference &amp; Prediction</a></em> by Hastie, Tibshirani &amp; Friedman <br /> ◦ <a href="https://probml.github.io/pml-book/"><em>Machine Learning: A Probabilistic Perspective</em></a> by Kevin Murphy <br /> ◦ <em>Pattern Recognition &amp; Machine Learning</em> by Christopher M. Bishop</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Doctoral level</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6117/2025fa/">Category Theory for Computer Scientists</a></strong> <br /> CS 6117</td>
      <td>• <em>Categories for Types</em> by Roy F. Creole <br /> • <a href="https://arxiv.org/abs/1612.09375"><em>Basic Category Theory</em></a> by Tom Leinster <br /> • <em>Category Theory</em> by Steve Awodey  <br /> ◦ <a href="https://math.jhu.edu/~eriehl/"><em>Category Theory in Context</em></a> by Emily Riehl <br /> ◦ <em>Categorical Logic and Type Theory</em> by B. Jacobs <br /> ✔️ <strong><em>Practical Foundations for Programming Languages</em></strong> by Robert Harper <br /> ◦ <em>Types &amp; Programming Languages</em> by Benjamin C. Pierce <br /> See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6120/2025fa/">Advanced Compilers</a></strong> <br /> CS 6120</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://angelina-wang.github.io/teaching.html">Non-Ideal Algorithmic Fairness</a></strong> <br /> CS 6125</td>
      <td>• <em><a href="https://fairmlbook.org/">Fairness &amp; Machine Learning: Limitations &amp; Opportunities</a></em> by Barocas, Hardt &amp; Narayanan</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6158/2025fa/">Software Engineering in the Era of Machine Learning</a></strong> <br /> CS 6158</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6210/2025fa/">Matrix Computations</a></strong> <br /> CS 6210</td>
      <td>• <em>Applied Numerical Linear Algebra</em> by James W. Demmel <br /> • <em>Matrix Computations</em> by Golub &amp; Van Loan <br /> ◦ <em>Matrix Analysis &amp; Applied Linear Algebra</em> by Carl D. Meyer <br /> ◦ <em>Linear Algebra &amp; Its Applications</em> by David C. Lay <br /> ◦ <em>Linear Algebra &amp; Its Applications</em> by Gilbert Strang <br /> ◦ <em>Introduction to Linear Algebra</em> by Gilbert Strang <br /> ◦ <a href="https://www.mathworks.com/moler/index_ncm.html"><em>Numerical Computing with MATLAB</em></a> by Cleve B. Mohler <br /> ◦ <em>Insight Through Computing: A Matlab Introduction to Computational Science &amp; Engineering</em> by Van Loan &amp; Fan <br /> ◦ <em>Getting Started with MATLAB 7: A Quick Introduction for Scientists &amp; Engineers</em> by Rudra Pratap <br /> ◦ <em>MATLAB: An Introduction with Applications</em> by Amos Gilat <br /> ◦ <em>Mastering Matlab 7</em> by Hanselman &amp; Littlefield</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6410/2025fa/">Adv. Systems</a></strong> <br /> CS 6410</td>
      <td>See website for paper list <br /> ◦ <em>The Design &amp; Implementation of the 4.4BSD Operating System</em> by McKusic, Bostic, Karels &amp; Quarterman <br /> ◦ <em>Understanding the Linux Kernel: From I/O Ports to Process Management</em> by Bovet &amp; Cesati <br /> ◦ <em><a href="https://greenteapress.com/wp/semaphores/">The Little Book of Semaphores: The Ins and Outs of Concurrency Control &amp; Common Mistakes</a></em> by Allen B. Downey <br /> ◦ <em>Computer Networking: A Top-Down Approach</em> by Kurose &amp; Ross</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6758/2025fa/">Deep Learning for Robotics</a></strong> <br /> CS 6758</td>
      <td>See website for paper list <br /> ◦ <em>Modern Robotics: Mechanics, Planning &amp; Control</em> by Lynch &amp; Park <br /> ◦ <em><a href="http://incompleteideas.net/book/the-book-2nd.html">Reinforcement Learning: An Introduction</a></em> by Sutton &amp; Barto</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6783/2025fa/">Machine Learning Theory</a></strong> <br /> CS 6783</td>
      <td>• <em><a href="https://www.cs.cornell.edu/~sridharan/research.html#books">Statistical Learning Theory &amp; Sequential Prediction</a></em> by Rakhlin &amp; Sridharan <br /> • <em>Prediction, Learning &amp; Games</em> by Cesa-Bianchi &amp; Lugosi <br /> • <em><a href="https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/">Understanding Machine Learning: From Theory to Algorithms</a></em> by Shalev-Shwartz &amp; Ben-David <br /> • <em><a href="https://sites.google.com/view/intro-oco/">Introduction to Online Convex Optimization</a></em> by Elad Hazan <br /> • <em><a href="https://www.cs.cornell.edu/~sridharan/research.html#lecturenotes">A Gentle Introduction to Concentration Inequalities</a></em> by Karthik Sridharan</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6784/2025fa/">Advanced Topics in Machine Learning</a></strong> <br /> CS 6784</td>
      <td>See website for paper list</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://spooner.cc/qcrypt-fall25/">Quantum Cryptography</a></strong> <br /> CS 6832</td>
      <td> </td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6840/2025fa/">Algorithmic Game Theory</a></strong> <br /> CS 6840</td>
      <td>◦ <em>Twenty Lectures on Algorithmic Game Theory</em> by Tim Roughgarden <br /> ◦ <em><a href="https://www.cs.cornell.edu/home/kleinber/networks-book/">Networks, Crowds &amp; Markets: Reasoning About a Highly Connected World</a></em> by Easley &amp; Kleinberg <br /> ◦ <em>Algorithmic Game Theory</em> by Nisan, Roughgarden, Tardos &amp; Vazirani</td>
    </tr>
    <tr>
      <td style="text-align: center"><strong><a href="https://www.cs.cornell.edu/courses/cs6861/2025fa/">Introduction to Kleene Algebra</a></strong> <br /> CS 6861</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<!--
| Cornell Engineering requirements | |
| :---: | --- |
| **[Calculus for Engineers](https://math.cornell.edu/textbooks)** <br> MATH 1910 | • _Calculus_ by Rogawski, Adams & Franzosa |
| **[Multivariable Calculus for Engineers](https://math.cornell.edu/textbooks)** <br> MATH 1920 | • _Calculus_ by Rogawski, Adams & Franzosa |
| **[Linear Algebra for Engineers](https://math.cornell.edu/textbooks)** <br> MATH 2940 | • *Linear Algebra and Its Applications* by Lay, Lay & McDonald | 
-->

<h3 id="-spring-2026-1"><!-- [← Spring 2025](https://dantasfiles.com/2025/01/22/cornell-cs-sp25.html) | --> <a href="https://dantasfiles.com/2026/01/20/cornell-cs-sp26.html">Spring 2026→</a></h3>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[This is an unofficial list of books that are recommended in Fall 2025 computer science classes at Cornell]]></summary></entry><entry><title type="html">Notes on 🐻Introduction to Machine Learning</title><link href="https://dantasfiles.com/2025/05/06/notes-on-cornell-cs-3780.html" rel="alternate" type="text/html" title="Notes on 🐻Introduction to Machine Learning" /><published>2025-05-06T00:00:00+00:00</published><updated>2025-05-06T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/05/06/notes-on-cornell-cs-3780</id><content type="html" xml:base="https://dantasfiles.com/2025/05/06/notes-on-cornell-cs-3780.html"><![CDATA[<p>I was curious to learn what has been updated since I took a <a href="https://dantasfiles.com/2001/01/22/cornell-junior-spring.html">version of CS 3780</a>, so I am reading through the <a href="https://www.cs.cornell.edu/courses/cs3780/2025sp/">lecture slides for the Spring 2025 semester</a></p>

<p>I use these notes to keep track of my thoughts while reading and to record anything that sticks out to me as interesting. The notes are incomplete as I have not yet finished reading the slides</p>

<h2 id="introduction">Introduction</h2>
<ul>
  <li>I’ve heard many definitions of machine learning and artificial intelligence, but the ones use by this course are machine learning: “<em>programs that improve with experience, a subfield of artificial intelligence</em>” and artificial intelligence: “<em>programs that demonstrate ‘intelligence’ in some sense</em>”</li>
  <li>The slides contain a fun flowchart: <em>(training data + training output → program / model) + test data → test output</em></li>
</ul>

<h2 id="ml-basics">ML basics</h2>
<ul>
  <li>Definitions adapted from notes:
    <ul>
      <li><a href="https://en.wikipedia.org/wiki/Supervised_learning">Supervised learning</a>: “<em>make predictions from data</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Statistical_classification">Classifier</a>: “<em>a program to predict the correct label of each annotated data instance</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Binary_classification">Binary classification</a>: a label is one of two possibilities</li>
      <li><a href="https://en.wikipedia.org/wiki/Multiclass_classification">Multi-class classification</a>: a label is one of K possibilities</li>
      <li><a href="https://en.wikipedia.org/wiki/Regression_analysis">Regression</a>: the label space is the real numbers</li>
      <li><a href="https://en.wikipedia.org/wiki/Feature_(machine_learning)#Feature_vectors">Feature vector</a>: <em>the input vector of a sample</em></li>
      <li><a href="https://en.wikipedia.org/wiki/Feature_(machine_learning)">Feature</a>: a dimension of the feature vector</li>
      <li>Dense feature vector: <em>the number of nonzero coordinates in the feature vector is large relative to the number of features</em></li>
      <li>Sparse feature vector: <em>the feature vector consists of mostly zeros</em></li>
      <li>Hypothesis class: <em>the set of possible hypothesis functions</em>, <em>the set of hypothesis functions we can possibly learn</em>, “<em>encodes your assumptions about the data set / distribution</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/No_free_lunch_theorem">No Free Lunch Theorem</a>: “<em>every successful ML algorithm must make assumptions. This also means that there is no single ML algorithm that works for every setting</em>”, “<em>you must make assumptions in order to learn. no Algorithm Works in all settings</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Loss_function">Loss function</a> / risk function: “<em>evaluates a hypothesis on our training data and tells us how bad it is</em>”, “<em>tells us how good
a model did on an instance</em>”</li>
      <li>Loss: “<em>the higher the loss, the worse a hypothesis is - a loss of zero means it makes perfect predictions</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Loss_function#0-1_loss_function">Zero-one loss</a>: “<em>counts how many mistakes a hypothesis function makes on the training set</em>”</li>
      <li>Normalized zero-one loss / training error: “<em>the fraction of misclassified training samples</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Overfitting">Overfitting</a>: <em>get low error on the training data, but does horribly with samples not in the training data</em></li>
      <li><a href="https://en.wikipedia.org/wiki/Law_of_large_numbers#Weak_law">Weak law of large numbers</a>: “<em>the empirical average of data drawn from a distribution converges to its mean</em>”</li>
      <li><a href="https://en.wikipedia.org/wiki/Feature_engineering">Feature extraction</a>: Selecting “<em>part of instances we deem relevant for predicting output</em>”</li>
      <li>Model / program / hypothesis: function from input to “<em>label / output we would like to predict</em>”</li>
    </ul>
  </li>
</ul>

<h2 id="k-nearest-neighbors-and-the-curse-of-dimensionality">K-nearest neighbors and the curse of dimensionality</h2>
<ul>
  <li>Definitions:
    <ul>
      <li><a href="https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm">k-NN algorithm</a>: “<em>or a test input, assign the most common label amongst its k most similar training inputs</em>”</li>
      <li>
        <table>
          <tbody>
            <tr>
              <td><a href="https://en.wikipedia.org/wiki/Bayes_classifier">Bayes optimal classifier</a>: “_you knew P(y</td>
              <td>x), then you would simply predict the most likely label_”</td>
            </tr>
          </tbody>
        </table>
      </li>
    </ul>
  </li>
  <li>According to Wikipedia: “[<em>Minkowski distance](https://en.wikipedia.org/wiki/Minkowski_distance) is typically used with p being 1 or 2, which correspond to the <a href="https://en.wikipedia.org/wiki/Taxicab_geometry">Manhattan distance</a> and the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">Euclidean distance</a>, respectively. In the limiting case of p reaching infinity, we obtain the <a href="https://en.wikipedia.org/wiki/Chebyshev_distance">Chebyshev distance</a></em>”</li>
  <li></li>
</ul>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[In-progress, incomplete]]></summary></entry><entry><title type="html">Notes on 🐯Introduction to Programming Systems</title><link href="https://dantasfiles.com/2025/04/23/notes-on-princeton-cos-217.html" rel="alternate" type="text/html" title="Notes on 🐯Introduction to Programming Systems" /><published>2025-04-23T00:00:00+00:00</published><updated>2025-04-23T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/04/23/notes-on-princeton-cos-217</id><content type="html" xml:base="https://dantasfiles.com/2025/04/23/notes-on-princeton-cos-217.html"><![CDATA[<p>I am reading through the <a href="https://www.cs.princeton.edu/courses/archive/spring25/cos217/">lecture slides for the Spring 2025 semester</a></p>

<p>I use these notes to keep track of my thoughts while reading and to record anything that sticks out to me as interesting</p>

<h2 id="course-intro-linux-and-bash">Course intro, Linux and bash</h2>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[Developing skills for composing large programs, including modularity, abstraction, programming style, and best practices for code development, testing, debugging, and performance tuning]]></summary></entry><entry><title type="html">Notes on 🐯Computer Science: An Interdisciplinary Approach</title><link href="https://dantasfiles.com/2025/04/21/notes-on-princeton-cos-126.html" rel="alternate" type="text/html" title="Notes on 🐯Computer Science: An Interdisciplinary Approach" /><published>2025-04-21T00:00:00+00:00</published><updated>2025-04-21T00:00:00+00:00</updated><id>https://dantasfiles.com/2025/04/21/notes-on-princeton-cos-126</id><content type="html" xml:base="https://dantasfiles.com/2025/04/21/notes-on-princeton-cos-126.html"><![CDATA[<p>I was curious to learn what has been updated since I was a <a href="https://dantasfiles.com/2005/05/30/princeton-cos-126.html">teaching assistant for COS 126</a>, so I am reading through the <a href="https://www.cs.princeton.edu/courses/archive/spr25/cos126/">lecture slides for the Spring 2025 semester</a></p>

<p>I use these notes to keep track of thoughts I have during reading, and anything that sticks out to me as interesting. My notes are incomplete as I have not yet finished reading the slides</p>

<h2 id="0-introduction">0. Introduction</h2>
<ul>
  <li>
    <p>The <em>everything</em> is correctly in quotes in the statement “ <em>‘Everything’ can be encoded as a sequence of bits</em> ” because continuous things, like real numbers, cannot always be encoded in a <em>finite</em> sequence of bits</p>
  </li>
  <li>
    <p>The class continues to use <em>Java</em> as it did when I was a teaching assistant <br />
The upside is that Java’s verbosity and strong typing make it very explicit what you are doing, and provide a strong foundation of understanding. The downside is that those same features make Java a more difficult first language\ 
Some universites, like <a href="https://dantasfiles.substack.com/p/cornell-cs-reading-list-spring-2025">Cornell</a>, use a looser language like Python for the <a href="https://dantasfiles.substack.com/p/notes-on-introduction-to-computing">first programming course</a> to get students coding quickly, then Java for the <a href="https://www.cs.cornell.edu/courses/cs2110/2025sp/">second</a> to learn the deeper details of programming<br />
I don’t know which system works best—it probably depends on the student</p>
  </li>
</ul>

<h2 id="0-hello-world">0. Hello, world</h2>
<ul>
  <li>Machine language, natural language, and high-level programming language are contrasted, and it is pointed out that natural language is getting more understandable by computers since I was a teaching assistant for the course</li>
</ul>

<h2 id="0-built-in-data-types">0. Built-in data types</h2>
<ul>
  <li>
    <p>“ <em>A data type (type) is a set of values and a set of operations on those values</em> ” is a key concept in programming languages</p>
  </li>
  <li>
    <p>Java overloading the division symbol (<code class="language-plaintext highlighter-rouge">/</code>) to perform both integer and floating point division causes confusion</p>
  </li>
  <li>
    <p>The standard warning not to use equality testing (<code class="language-plaintext highlighter-rouge">==</code>) with floating point numbers is presented</p>
  </li>
  <li>
    <p>Java is <a href="https://en.wikipedia.org/wiki/Type_system#Static_type_checking">statically typed</a>: the types of expressions are determined at compile time, and the compiler will use the type system to catch common errors</p>
  </li>
  <li>
    <p>Java will concatenate (<code class="language-plaintext highlighter-rouge">+</code>) strings with other types automatically (e.g. using the <a href="https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/Object.html#toString\(\)">toString</a> method for objects)</p>
  </li>
  <li>
    <p>Explicitly casting floating point numbers to integers rounds down</p>
  </li>
</ul>

<h2 id="1-conditionals">1. Conditionals</h2>
<ul>
  <li>
    <p>Local variables declared in a Java code block are not accessible outside the block</p>
  </li>
  <li>
    <p>Even if the body of an <code class="language-plaintext highlighter-rouge">if</code> statement only has a single statement, it is recommended to put that single statement in a code block, which is good advice.</p>
  </li>
</ul>

<h2 id="1-loops">1. Loops</h2>

<ul>
  <li>Java’s for-each / enhanced-for statements are not explored, because which limits the power of for statements, but avoids talking about Collections this early in the class.</li>
</ul>

<h2 id="2-arrays">2. Arrays</h2>
<ul>
  <li>The example <code class="language-plaintext highlighter-rouge">double[] a = new int[10];</code> is used to demonstrate a compile-time type mismatch error.<br />What’s interesting is that arrays of reference types in Java are <em>covariant</em>, allowing <code class="language-plaintext highlighter-rouge">Object[] a = new String[10];</code>. However, this will cause a runtime <code class="language-plaintext highlighter-rouge">ArrayStoreException</code> if you try to store anything other than a <code class="language-plaintext highlighter-rouge">String</code> in array <code class="language-plaintext highlighter-rouge">a</code>.<br />When <em>generics</em> (<code class="language-plaintext highlighter-rouge">List&lt;T&gt;</code>) were added to Java, they were correctly invariant–<code class="language-plaintext highlighter-rouge">List&lt;Object&gt; l = new ArrayList&lt;String&gt;();</code> will fail to compile with a type-mismatch error.</li>
  <li>I was uncertain if the shuffle algorithm presented was correct, because it was different from the <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm">traditional presentation</a>, but <a href="https://stackoverflow.com/questions/68064254/correctness-of-fisher-yates-shuffle-executed-backward">apparently it is indeed correct</a> so that was cool to learn</li>
</ul>

<h2 id="3-functions">3. Functions</h2>
<ul>
  <li>Functions can only return a single item. Unlike in languages that have tuples built-in, if you want to return more information from a function, you can create a class to hold the information, or you can use the <a href="https://en.wikipedia.org/wiki/Syntactic_sugar">syntactic sugar</a> of <a href="https://docs.oracle.com/en/java/javase/23/language/records.html">record classes</a></li>
  <li>Java chooses which overloaded function to call based on the arguments and their types, not based on the return type</li>
  <li>The scope of a Java variable is until the end of the block in which it is declared</li>
</ul>

<h2 id="3-libraries--clients">3. Libraries &amp; Clients</h2>
<ul>
  <li>A <a href="https://en.wikipedia.org/wiki/Sawtooth_wave">sawtooth function</a> is implemented: <code class="language-plaintext highlighter-rouge">2 * (freq*t - Math.floor(freq*t + 0.5))</code></li>
</ul>

<h2 id="4-recursion">4. Recursion</h2>
<ul>
  <li>Fun use of M.C. Escher’s <a href="https://www.escherinhetpaleis.nl/escher-today/circle-limit-iv-heaven-and-hell/">Circle Limit IV (Heaven and Hell)</a></li>
  <li>Dynamic programming can be top-down memoization, or can build the solutions from the bottom-up. Top-down can be simpler to program (just add memoization to existing recursive code), but is usually slower because still involves recursive calls.</li>
</ul>

<h2 id="4-performance">4. Performance</h2>
<ul>
  <li>Algorithms topics focus on system-independent effects, while systems topics focus on system-dependent effects like hardware, systems software, and operating system. I always found the latter super-interesting</li>
  <li>Reminder that <code class="language-plaintext highlighter-rouge">(n choose k) = n!/k!(n-k)! = (n*…*(n-k+1))/k! </code>This <a href="https://en.wikipedia.org/wiki/Binomial_coefficient">definition</a> often comes in useful</li>
  <li>There used to be confusion over the size of a kilobyte: 10^3 (1,000) or 2^10 (1,024). Now <em><a href="https://en.wikipedia.org/wiki/Kilobyte">kilo</a></em><a href="https://en.wikipedia.org/wiki/Kilobyte">bytes</a> are 10^3 (1,000) bytes, while <em><a href="https://en.wikipedia.org/wiki/Byte#Multiple-byte_units">kibi</a></em><a href="https://en.wikipedia.org/wiki/Byte#Multiple-byte_units">bytes</a> are 2^10 (1,024) bytes. The same holds for other prefixes: <em>mega</em> / <em>mebi</em> , <em>giga</em> / <em>gibi</em> …</li>
  <li>In <a href="https://docs.oracle.com/javase/specs/jls/se23/html/jls-4.html#jls-4.2">Java</a>, <em>bytes</em> are 8 bits, <em>short</em> : 16 bits, <em>int</em> : 32 bits, <em>long</em> : 64 bits, <em>float</em> : 32 bits, <em>double</em> : 64 bits, <em>char</em> : 16 bit <a href="https://en.wikipedia.org/wiki/UTF-16">unicode</a>, <em>boolean</em> s use an unspecified number of bits</li>
</ul>]]></content><author><name>Daniel Dantas</name></author><summary type="html"><![CDATA[Incomplete, in-progress]]></summary></entry></feed>