| |
Recommended Books for Computer Science
Students |
| |
Theory of Computing |
|
Introduction to Automata Theory, Languages, and Computation
by John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman |
|
Introduction to the Theory of Computation
by Michael Sipser |
|
Introduction to Computer Theory
Daniel I. A. Cohen |
| |
Compiler Construction |
|
Compilers: Principles, Techniques, and Tools
by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman |
| |
Operating Systems |
|
Operating System Concepts
by Abraham Silberschatz, Peter Baer Galvin, Greg Gagne |
|
Operating Systems Design and Implementation
by Andrew S Tanenbaum |
|
Modern Operating Systems
Andrew Tanenbaum |
| |
Computer Architecture and Organization |
|
Computer Organization and Design: The Hardware/software Interface
by David A. Patterson, John L. Hennessy
New Edition
|
|
Computer Architecture: A Quantitative Approach
by John L. Hennessy, David A. Patterson
New Edition
|
|
Computer System Architecture
by M. Morris Mano |
|
Computer Organization and Architecture: Designing for Performance
by William Stallings |
| |
Data Structures and Algorithms |
|
Art of Computer Programming, Volume 1: Fundamental Algorithms
by Donald E. Knuth |
|
Art of Computer Programming, Volume 2: Seminumerical Algorithms
by Donald E. Knuth |
|
Art of Computer Programming, Volume 3: Sorting and Searching
by Donald E. Knuth |
|
|
Introduction to Algorithms
by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein |
|
The Algorithm Design Manual
by Steve S. Skiena |
|
Fundamentals of Data Structures in C++
by Ellis Horowitz, Sartaj Sahni, Dinesh Mehta |
|
Data Structures and Algorithm Analysis in C++
by Mark Allen Weiss |
|
Data Structures and Algorithms in 24 Hours
Robert Lafore |
|
Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching
by Robert Sedgewick |
|
Data Structures and Algorithms
Alfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft |
|
The Design and Analysis of Computer Algorithms
Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman |
| |
Computer Networks |
|
Computer Networking: A Top-Down Approach Featuring the Internet
by James F. Kurose, Keith W. Ross |
|
Computer Networks
by Andrew S. Tanenbaum |
|
Computer Networks: A Systems Approach
by Larry L. Peterson, Bruce S. Davie |
|
Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture
by Douglas E. Comer |
| |
Database Systems |
|
An Introduction to Database Systems
by C.J. Date |
|
Database Systems: A Practical Approach to Design, Implementation and Management
by Thomas M. Connolly, Carolyn E. Begg |
|
Fundamentals of Database Systems
by Ramez Elmasri, Shamkant B. Navathe |
|
Principles of Transaction Processing
by Philip A. Bernstein, Eric Newcomer
|
|
Database in Depth: Relational Theory for Practitioners
by C.J. Date |
|
Data Modeling Essentials
by Graeme Simsion, Graham Witt |
|
Joe Celko's SQL for Smarties: Advanced SQL Programming
by Joe Celko |
|
SQL in a Nutshell: A Desktop Quick Reference
by Kevin Kline |
| |
Artificial Intelligence |
|
Artificial Intelligence: A Modern Approach by
Stuart J. Russell, Peter Norvig |
| |
Computer Graphics |
|
Computer Graphics: Principles and Practice in C
by James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes |
|
Computer Graphics Using OpenGL
by Francis S Hill Jr., Stephen M Kelley |
| |
Wireless Networks and Communications |
|
Mobile Communications
by Jochen Schiller |
|
Wireless Communications: Principles and Practice
by Theodore S. Rappaport |
|
Wireless Communications & Networks
by William Stallings |
|
Principles of Wireless Networks: A Unified Approach
by Kaveh Pahlavan, Prashant Krishnamurthy |
|
Wireless and Cellular Communications
by William C. Y. Lee |
|
Antennas and Propagation for Wireless Communication Systems
by Simon R. Saunders, Alejandro Aragon-Zavala |
|
Mobile IP the Internet Unplugged
by James Solomon |
|
Fundamentals of Wireless Communication
by David Tse, Pramod Viswanath |
| |
Digital Communication and Systems |
|
Digital Communications: Fundamentals and Applications
by Bernard Sklar |
|
Modern Digital and Analog Communication Systems
by B. P. Lathi |
|
Digital Communications
by John G. Proakis |
|
Communications Systems
by Simon Haykin |
|
Communications Systems and Networks
by Ray Horak, Harry Newton, Mark A. Miller |
| |
C |
|
The C Programming Language
by Brian W. Kernighan, Dennis Ritchie |
|
A Book on C: Programming in C
by Al Kelley, Ira Pohl |
|
C for Dummies, Volume 1
by Dan Gookin
New Edition |
| |
C++ |
|
Object-Oriented Programming in C++
by Robert Lafore
New Edition
|
|
C++ How to Program
by Harvey & Paul Deitel & Associates
New Edition
|
|
C++ Primer Plus
by Stephen Prata |
|
C++ Primer
by Stanley B. Lippman, Josée Lajoie, Barbara E. Moo |
|
The C++ Programming Language
by Bjarne Stroustrup |
|
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
by Scott Meyers |
|
More Effective C++: 35 New Ways to Improve Your Programs and Designs
by Scott Meyers |
|
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
by Scott Meyers |
|
Modern C++ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu |
|
Thinking in C++, Volume 1: Introduction to Standard C++
by Bruce Eckel |
|
Thinking in C++, Vol. 2: Practical Programming
by Bruce Eckel, Chuck Allison |
|
The Design and Evolution of C++
by Bjarne Stroustrup |
|
The Annotated C++ Reference Manual
by Margaret A. Ellis, Bjarne Stroustrup |
|
Inside the C++ Object Model
by Stanley B. Lippman |
|
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter |
|
More Exceptional C++
Herb Sutter |
|
Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter |
|
Accelerated C++: Practical Programming by Example
Andrew Koenig, Barbara E. Moo |
|
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Herb Sutter, Andrei Alexandrescu |
| |
JAVA |
|
Beginning Java 2
by Ivor Horton
New Edition
|
|
Java 2: The Complete Reference
by Herbert Schildt
New Edition
|
|
Thinking in Java
by Bruce Eckel |
|
Core Java 2, Volume I-Fundamentals
by Cay Horstmann, Gary Cornell |
|
Core Java 2, Volume II-Advanced Features
by Cay Horstmann, Gary Cornell |
|
Concurrent Programming in Java: Design Principles and Pattern
by Doug Lea |
|
Head First Java
by Kathy Sierra, Bert Bates |
|
Effective Java Programming Language Guide
by Joshua Bloch
|
|
Effective Enterprise Java
by Ted Neward |
|
Java Servlet Programming
by Jason Hunter |
|
Head First Servlets and JSP by
Bryan Basham, Kathy Sierra, Bert Bates |
| |
Programming |
|
Structure and Interpretation of Computer Programs
by Harold Abelson, Gerald Jay Sussman |
|
Refactoring: Improving the Design of Existing Code
by Martin Fowler |
|
Programming Pearls
by Jon Bentley |
|
The Practice of Programming
by Brian W. Kernighan, Rob Pike |
|
Programming Challenges
by Steven S. Skiena, Miguel Revilla |
|
The Psychology of Computer Programming
by Gerald M. Weinberg |
|
Advanced Programming in the UNIX Environment
by W. Richard Stevens, Stephen A. Rago |
|
Extreme Programming Explained: Embrace Change
by Kent Beck, Cynthia Andres |
|
Planning Extreme Programming
by Kent Beck, Martin Fowler |
|
Computer Systems: A Programmer's Perspective
by Randal E. Bryant, David R. O'Hallaron |
|
Concepts of Programming Languages
by Robert W. Sebesta
|
|
Programming Ruby: The Pragmatic Programmers' Guide
by Dave Thomas, Chad Fowler, Andy Hunt |
|
UNIX Network Programming, Volume 2: Interprocess Communications
by
W. Richard Stevens |
|
Unix Network Programming, Vol. 1: The Sockets Networking API by
W. Richard Stevens, Bill Fenner, Andrew M. Rudoff |
|
UNIX Network Programming by
W. Richard Stevens |
| |
Software Engineering |
|
Software Engineering: A Practitioner's Approach
by Roger S Pressman, Roger Pressman |
|
Software Engineering
by Ian Sommerville |
|
The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt, David Thomas |
|
Code Complete
by Steve McConnell |
|
The Mythical Man-Month: Essays on Software Engineering
by Frederick P. Brooks |
|
Dynamics of Software Development
by Jim McCarthy |
|
Crossing the Chasm
by Geoffrey A. Moore |
|
Agile Software Development, Principles, Patterns, and Practices
by Robert C. Martin |
|
Facts and Fallacies of Software Engineering
by Robert L. Glass |
|
Inside the Tornado: Strategies for Developing, Leveraging, and Surviving Hypergrowth Markets
by Geoffrey A. Moore |
|
Test Driven Development: By Example
by Kent Beck |
|
Rapid Development
by Steve McConnell |
|
After the Gold Rush: Creating a True Profession of Software Engineering
by Steve C McConnell |
|
Component Software
by Clemens Szyperski |
|
The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
by Alan Cooper |
|
Practices of an Agile Developer: Working in the Real World by
Venkat Subramaniam, Andy Hunt |
|
Agile Software Development by
Alistair Cockburn
New Edition
|
|
Ship it! A Practical Guide to Successful Software Projects by
Jared Richardson, William Gwaltney |
|
Writing Secure Code by
Michael Howard, David C. LeBlanc |
|
Dreaming in Code
by Scott Rosenberg |
| |
OOP, UML and Design Patterns |
|
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design
by Craig Larman |
|
|
Design Patterns: Elements of Reusable Object-Oriented Software
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides |
|
Object-Oriented Analysis and Design with Applications
by Grady Booch, Robert A. Maksimchuk, Michael W. Engel, Bobbi J. Young, Jim Conallen, Kelli A. Houston |
|
Head First Design Patterns
by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra |
|
UML Distilled: A Brief Guide to the Standard Object Modeling Language
by Martin Fowler |
|
Design Patterns Explained: A New Perspective on Object-Oriented Design
by Alan Shalloway, James Trott |
|
Object-Oriented Software Construction
by Bertrand Meyer |
|
Object-Oriented Modeling and Design with UML
by Michael R Blaha, James R Rumbaugh |
|
Patterns of Enterprise Application Architecture
by Martin Fowler |
|
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal |
|
Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects
by Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann |
| |
Debugging |
|
Debugging by
David, J Agans |
|
Find the Bug: A Book of Incorrect Programs by
Adam Barr |
| |
Project Management |
|
The Art of Project Management
by Scott Berkun |
|
Peopleware: Productive Projects and Teams
by Tom DeMarco, Timothy Lister |
|
Death March: The Complete Software Developer's Guide to Surviving 'Mission Impossible' Projects
by Edward Yourdon
New Edition
|
|
Waltzing With Bears: Managing Risk on Software Projects
by Tom Demarco, Timothy Lister |
| |
Software Interface Design |
|
The Design of Everyday Things
by Donald A. Norman |
|
How to Design Programs: An Introduction to Programming and Computing
by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi |
|
User Interface Design for Programmers
by Joel Spolsky |
|
GUI Bloopers: Don'ts and Do's for Software Developers and Web Designers
by Jeff Johnson |
|
The Non-Designer's Design Book
by Robin Williams |
|
Web Design and Development |
|
Non-Designer's Web Book
by Robin Williams, John Tollett |
|
Don't Make Me Think: A Common Sense Approach to Web Usability
by Steve Krug |
|
Homepage Usability: 50 Websites Deconstructed
by Jakob Nielsen, Marie Tahir |
|
HTML, XHTML, and CSS by
Elizabeth Castro |
| |
General Computer Science |
|
Computer Science: An Overview
by J. Glenn Brookshear |
| |
Math for Computer Science/Engineering |
|
Mathematics Handbook for Science and Engineering
by
Lennart Rade, Bertil Westergren |
|
Math for Computer Science by
A. Arnold, Irene Guessarian |
|
All the Mathematics You Missed
by
Thomas A. Garrity, Lori Pedersen |
|
Math Refresher for Scientists and Engineers by
John R. Fanchi |
|
How to Solve It: A New Aspect of Mathematical Method by
G. Polya |
| |
Misc. |
|
Mastering Regular Expressions
by Jeffrey Friedl |