Skip to content
Computer Science

Computer Science Essentials

The foundational textbooks and must-reads for any CS major. From algorithms to programming paradigms, these books will turn you into a real computer scientist — not just someone who can Google Stack Overflow answers.

Published March 5, 2026 · Updated October 27, 2026

Reading list

1
Cover of Introduction to Algorithms

Introduction to Algorithms

by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

5/5
advanced

The standard required text for a sophomore- or junior-level algorithms course, and often reused in graduate courses. Expect proofs, recurrences and asymptotic analysis, so discrete math and comfort with induction are real prerequisites. At 1,312 pages (fourth edition), it works best read chapter by chapter alongside lectures.

2
Cover of Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

by Harold Abelson, Gerald Jay Sussman

5/5
advanced

An advanced pick for students who want the theory behind programming languages: abstraction, recursion, interpreters and evaluation models, all taught in Scheme. It fits a strong first-year honors student or anyone heading into a compilers or programming-languages elective. The full second edition is free to read online.

3
Cover of The Pragmatic Programmer

The Pragmatic Programmer

by David Thomas & Andrew Hunt

5/5
intermediate

Supplementary reading for the junior or senior year, especially before an internship or capstone team project. It covers habits that coursework rarely grades: version control discipline, debugging, automation and estimating. No prerequisites beyond having written a few hundred lines of code in any language.

4
Cover of Clean Code

Clean Code

by Robert C. Martin

4/5
introductory

A good companion to a second-semester programming or software engineering course, when assignments start growing past a single file. The examples are in Java, which suits many intro sequences. Treat its rules as one school of thought to discuss with classmates, not a grading rubric.

5
Cover of Code

Code

by Charles Petzold

5/5
introductory

Ideal summer reading before the first year, or a companion to a computer organization or digital logic course. It builds from switches and binary to logic gates, memory and a working processor, so it needs no math beyond arithmetic. The 2022 second edition adds an interactive companion website.

6
Cover of Cracking the Coding Interview

Cracking the Coding Interview

by Gayle Laakmann McDowell

4/5
intermediate

Career prep rather than coursework: most useful from sophomore year onward, once a data structures course is done and internship applications open. The 189 problems assume you already know arrays, hash tables, trees and graphs; solutions are written mainly in Java. Pace it over a semester instead of cramming.

7
Cover of The Mythical Man-Month

The Mythical Man-Month

by Frederick P. Brooks Jr.

4/5
intermediate

Fits a software engineering or project management course, often assigned for its essays on scheduling and team size. "No Silver Bullet," included in the 1995 anniversary edition, is a common discussion reading. Non-technical prose, so any student can read it, though it lands best after a first group project.

8
Cover of Don't Make Me Think

Don't Make Me Think

by Steve Krug

4/5
introductory

A quick supplementary read for a web development, HCI or capstone course where students build something real users will click. At 216 pages it can be finished in an evening, and its usability-testing chapter gives a cheap method for checking a class project before demo day.

9
Cover of The Design of Everyday Things

The Design of Everyday Things

by Don Norman

5/5
introductory

A frequent assigned reading in introductory human-computer interaction courses. Concepts like affordances, signifiers, mapping and feedback give students shared vocabulary for design critiques. No programming background needed; the 2013 revised edition is the current one.

Which Books to Buy (and Which to Borrow)

Buy the required textbook in the edition your syllabus names. For an algorithms course that usually means Introduction to Algorithms, and the fourth edition renumbered and reorganized enough material that assigned problem numbers may not match an older copy. Check the syllabus before saving money on a used third edition, and ask the instructor if an older one is acceptable.

Supplementary books are a different story. The Pragmatic Programmer, Clean Code, The Mythical Man-Month and Don't Make Me Think are fine in any recent printing, and used copies or the campus library work well. SICP is available free online, so a printed copy is optional. Cracking the Coding Interview is worth owning if you plan to work problems repeatedly and write in the margins.

A Suggested Reading Order

A sensible path follows the typical curriculum. Before or during the first year, Code gives a mental model of what the hardware is doing, which makes later systems courses less mysterious. Clean Code fits the second programming course, when projects get large enough for messy code to hurt. Ambitious students can attempt SICP alongside the intro sequence, but it is fine to save it for later.

Introduction to Algorithms belongs with the data structures and algorithms courses, usually in the second or third year. Cracking the Coding Interview follows naturally once those are done and internship season starts. The Pragmatic Programmer, The Mythical Man-Month, Don't Make Me Think and The Design of Everyday Things fit the junior and senior years, around team projects, HCI electives and the capstone, when advice about collaboration and users has somewhere to land.