Here are 3 amazing (if a bit old) Computer Science books from my library.
1. TCP/IP Illustrated Volume 1
|Author||W. Richard Stevens|
This is a fantastic textbook about different network protocols. The protocols are illustrated using the output of tcpdump and other utilities. Protocols discussed include:
Beside the protocols several diagnostic tools such as ping and traceroute are covered in detail. The book contains lots of diagrams, that illustrate the protocols even further. Each chapter ends with exercises. The solutions of some of those exercises can be found in the book as well. I give this book 4 stars out of 5.
2. Database System Concepts
|Authors||Abraham Silberschatz, Henry Korth, S. Sudarshan|
This book teaches about the inner workings, the nuts and bolts of databases without requiring a lot of prior knowledge:
- Data Models
- Relational Databases
- Object Based Databases and XML
- Data Storage and Querying
- Transaction Management
- Database System Architecture
Personally I feel that some material doesn’t belong here, such as XML, but it seems to be a tradition to include it. I found the chapter on indices quite interesting.
At the end of the book there are several chapters on popular commercial databases. It seems that these chapters do not add any value. In any case the authors should have devoted at least one chapter to an open source database. In the real world you have as much chance to work with a commercial database as with an open source one.
My copy is quite outdated by now. New developments, for instance NoSQL databases, are not mentioned. I give this book 3 out of 5 stars.
3. Machine Learning
This is an introductory book on Machine Learning. There is quite a lot of mathematics and statistics in the book, which I like. A large number of methods and algorithms are introduced:
- Neural Networks
- Bayesian Learning
- Genetic Algorithms
- Reinforcement Learning
The material covered is very interesting and clearly explained. I find the presentation, however, a bit lacking. I think it has to do with the chosen fonts and lack of highlighting of important terms. Maybe it would have been better to have shorter paragraphs too.
If you are looking for an introductory book on machine learning right now, I would not recommend this book, because in recent years better books have been written on the subject. These are better obviously, because they include coverage of more modern techniques. I give this book 3 out of 5 stars.