OSSU-computer-science/extras/readings.md
2017-03-09 20:06:22 -05:00

4.2 KiB
Raw Blame History

Computer Science - Great Readings

This document consists of great books or articles on computer science. Some are here because there is a course covering the same material; some are just great books that you should read at some point in your career.

Once you have made it through most of the curriculum, knowing whether a book is worth your time will become easier. Or, if you are struggling in one of the courses, perhaps reading a book on the subject will help.

Programming

Name Author(s)
Introduction to Computation and Programming Using Python John V. Guttag
How to Design Programs Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Structure and Interpretation of Computer Programs Hal Abelson, Jerry Sussman, Julie Sussman
Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Refactoring Martin Fowler
Clean Code Robert Martin
Code Complete Steve McConnell
The Pragmatic Programmer Andrew Hunt, David Thomas

Math

Name Author(s)
Calculus Made Easy Silvanus P. Thompson
Discrete Mathematics with Applications (4th Edition) Susanna S. Epp
Applied Discrete Structures Alan Doerr, Ken Levasseur
Grinstead and Snells Introduction to Probability Charles M. Grinstead, J. Laurie Snell

Systems

Name Author(s)
Modern Operating Systems (4th Edition) Andrew S. Tanenbaum, Herbert Bos
Computer Networks (5th Edition) Andrew S. Tanenbaum, David J. Wetherall
Computer Networking: A Top-Down Approach (6th Edition) James F Kurose, Keith W Ross

Theory

Name Author(s)
Introduction to Computing: Explorations in Language, Logic, and Machines David Evans
Introduction to Algorithms (3rd Edition) Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Applications

Name Author(s)
Transaction Processing: Concepts and Techniques Jim Gray, Andreas Reuter
Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World William Kent
Architecture of a Database System Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
The Architecture of Open Source Applications Michael DiBernardo (editor)
Deep Learning Ian Goodfellow, Yoshua Bengio and Aaron Courville
Bayesian Reasoning and Machine Learning David Barber
Compilers: Principles, Techniques, and Tools (2nd Edition) Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
Compiler Construction Niklaus Wirth
The Mythical Man-Month Fred Brooks, Jr.