mirror of
https://git.hackliberty.org/Awesome-Mirrors/OSSU-computer-science.git
synced 2024-09-12 01:08:47 -06:00
![Alexey Filatov](/assets/img/avatar_default.png)
This books contains easy to understand introduction to the automata theory, which is missing in "Introduction to computing" book by David Evans. It does not require complicated math, so it can be useful to students who do not want to become theoretical computer scientists, but want do have general understanding of it's topics. Also, it almost perfectly matches The Automata Theory course we have in the curriculum.
6.9 KiB
6.9 KiB
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 |
Think Python 2e | Allen B. Downey |
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 |
Concepts, Techniques, and Models of Computer Programming | Peter Van Roy, Seif Haridi |
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 2e | Steve McConnell |
The Pragmatic Programmer | Andrew Hunt, David Thomas |
Programming Languages: Application and Interpretation | Shriram Krishnamurthi |
Programming and Programming Languages | Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz |
Math
Name | Author(s) |
---|---|
Calculus Made Easy | Silvanus P. Thompson |
Ximera: Interactive Calculus Textbooks | Ximera team |
Discrete Mathematics with Applications (4th Edition) | Susanna S. Epp |
Discrete Mathematics: An Open Introduction | Oscar Levin |
Applied Discrete Structures | Alan Doerr, Ken Levasseur |
Grinstead and Snell’s Introduction to Probability | Charles M. Grinstead, J. Laurie Snell |
Introduction to Linear Algebra | Gilbert Strang |
Systems
Name | Author(s) |
---|---|
Computer Systems: A Programmer's Perspective (3rd Edition) | Randal E. Bryant, David R. O'Hallaron |
Modern Operating Systems (4th Edition) | Andrew S. Tanenbaum, Herbert Bos |
Computer Organization and Design: The Hardware/Software Interface | David Patternson, John Hennessy |
Computer Networks (5th Edition) | Andrew S. Tanenbaum, David J. Wetherall |
Computer Networking: A Top-Down Approach (6th Edition) | James F Kurose, Keith W Ross |
Distributed Systems: Principles and Paradigms | Andrew Tanenbaum |
Distributed Systems Reading Group | Various |
System Design: Design large-scale systems | Various |
Theory
Name | Author(s) |
---|---|
Introduction to Computing: Explorations in Language, Logic, and Machines | David Evans |
Introduction to the Theory of Computation | Michael Sipser |
Introduction to Algorithms (3rd Edition) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein |
The Algorithm Design Manual | Steven Skiena |
Category Theory: A Gentle Introduction | Peter Smith |
Category Theory for Programmers: The Preface | Bartosz Milewski |
An Introduction to Information Retrieval | Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze |