A Collection of Free Downloadable E-Books
A Pre-Publication E-Book on Algorithms
This is the 331 page e-book Algorithms by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani. This is a penultimate draft of a soon to appear textbook, downloadable as ten PDFs, one to a chapter or one PDF with the entire draft of the book.
Advanced Linux Programming E-Book
This is for C/C++ programmers who are familiar with Unix and/or Linux and wish to progress into more advanced topics such as threads, interprocess communication, sockets, and security. it's divided into 11 chapters plus 6 appendices, each in a separate pdf.
AES exlained by Stickmen!
Developer Jeff Moser illustrates the AES (Advanced Encryption System) using stick men. Very informative and educational.
An Introduction to GCC for the GNU Compilers gcc and g++
This manual provides an introduction to the GNU C and C++ Compilers, gcc and g++, which are part of the GNU Compiler Collection (GCC). The development of this manual was funded entirely by Network Theory Ltd.
Essentials of Metaheuristics
This is a 217 page PDF book of undergrad lectures on Metaheuristics by Sean Luke, Assoc. Prof. at the Dept. of Comp. Sci. at George Mason University, Fairfax VA. It covers "I know it when I see it" problems such as Hill Climbing, Simulated Annealing, Genetic Algorithms, Particle Swarm, Cellular Encoding, Coevolution, Random Number Generators and more. All algorithms are in pseudo-code.
Global Optimization Algorithms - Theory and Application
This book elaborates on many of the basic principles in global optimization, evolutionary algorithms, and genetic programming and describes how they can efficiently be realized in software.
Handbook of Applied Cryptography
This is an online version of a classic book on Cryptography. It includes over 200 algorithms and protocols, and 200 tables and figures. More than 1,000 numbered definitions, facts, examples, notes, and remarks. It has a fair amount of mathematics as well as links to sample implementations of algorithms in C from ten of the book's 15 chapters.
How to be a Programmer: A short Comprehensive and Personal Summary
Licensed under the GNU Free Documentation License, this is a book that discusses all aspects of programming but is as much about programmers as programming. It's full of excellent advice and highly recommended for all programmers.
How to Write Parallel Programs - A First Course
This is a 97 page book, published in 1992 and reproduced with permission of MIT Press. It's also available as an 19 MB PDF. It's the raw material for a hands-on, "workshop" type course for undergraduates or graduate students in parallel programming. Not so many code examples but plenty of diagrams.
Learning Modern 3D Graphics Programming
This is a book for beginning graphics programmers as well as for those who want to understand programmable rendering better. But this is not a book for beginners to programming. It covers3D graphics programming from the ground up.
Microsoft Application Architecture Guide
This 560 page PDF E-Book helps you to understand the underlying architecture and design principles for creating applications on .NET, including identifying appropriate strategies and design patterns, key engineering decision points and the key quality attributes and crosscutting concerns for your solution.
Mobile Design and Development
Published as a book written by Brian Fling, and published by O'Reilly this is an online version which looks at mobile design and development just after the introduction of the iPhone 3G and examines the different mobile development types and what makes a mobile website or web app.
Parsing Techniques - A Practical Guide
Now out of Print this is the pdf of the first edition. You will be able to buy the 2nd edition once published. This 320 page version covers most parsing techniques in greater depth than found in most books, including recovery from errors.
Producing Open Source Software
Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software. The book is released under an open copyright.
Programming from the Ground Up - Learn Assembly Language on Linux
This is an introductory book to programming assembly language on Linux. It's a very useful way to learn about programming in Linux and does include a small amount of C programming as well.
Programming the Nintendo GameBoy Advance E-Book
This was never published due to legal threats by Nintendo but is pretty good otherwise and consists of 6.7 MB (7Zipped up) of pdf files. The author is an Associate Professor of Game Development at Tempe University of Advancing technology.
ShaderX Books 1-3 Edited by Wolfgang Engel
These three free books in PDF format date from 2002 on and cover Shader programming in DirectX 8 and 9. The code from the books is also linked. If you want to get into games programming details these are a fantastic resource.
Subversion Version Control Book
This is a free E-Book Version Control with Subversion about Subversion, the version control system designed to supplant CVS. It's also a published book by O'Reilly Media. Since this version appeared a 2nd edition of the book has been published.
What Every Computer Scientist Should Know About Floating Point Arithme
This is a 230 page PDF (accessed by the View or Download at the foot of the linked page). Its all about how floating point arithmetic is done in computers with reference to various IEEE standards. there's a bit of maths but it provides an in-depth look at the subject.