Introduction to Computation and Programming Using Python |
John V. Guttag |
Discrete Mathematics with Applications (4th Edition) |
Susanna S. Epp |
How to Design Programs |
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi |
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 |
Introduction to Algorithms (3rd Edition) |
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein |
Modern Operating Systems (4th Edition) |
Andrew S. Tanenbaum, Herbert Bos |
Computer Networking: A Top-Down Approach (6th Edition) |
James F Kurose, Keith W Ross |
Design Patterns: Elements of Reusable Object-Oriented Software |
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides |
Refactoring |
Martin Fowler |
The Architecture of Open Source Applications |
Michael DiBernardo (editor) |
Compilers: Principles, Techniques, and Tools (2nd Edition) |
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman |
Computer Networks (5th Edition) |
Andrew S. Tanenbaum, David J. Wetherall |
Clean Code |
Robert Martin |
Code Complete |
Steve McConnell |
The Pragmatic Programmer |
Andrew Hunt, David Thomas |
The Mythical Man-Month |
Fred Brooks, Jr. |
Structure and Interpretation of Computer Programs |
Hal Abelson, Jerry Sussman, Julie Sussman |
Introduction to Computing: Explorations in Language, Logic, and Machines |
David Evans |
Applied Discrete Structures |
Alan Doerr, Ken Levasseur |
Calculus Made Easy |
Silvanus P. Thompson |
Grinstead and Snell’s Introduction to Probability |
Charles M. Grinstead, J. Laurie Snell |
Compiler Construction |
Niklaus Wirth |
Deep Learning |
Ian Goodfellow, Yoshua Bengio and Aaron Courville |
Bayesian Reasoning and Machine Learning |
David Barber |