Free Computer Books Online

Principles of Programming Languages
This book is an introduction to the study of programming languages. The material has evolved from lecture notes used in a programming languages course for juniors, seniors, and graduate students at Johns Hopkins University.

Pro Git
The entire Pro Git book, written by Scott Chacon and published by Apress, is available here. Git is a free version control system.

Concrete Abstractions
An Introduction to Computer Science Using Scheme - this is an out of print book that is available for download in pdf form.

Software Engineering for Internet Applications

How to be a Programmer: A Short, Comprehensive, and Personal Summary

How to be a Programmer: A Short, Comprehensive, and Personal Summary
In this essay Robert Read attempts to summarize as concisely as possible those things that he wishes someone had explained to him when he was twenty-one.

Elements of Abstract and Linear Algebra
This is a foundational textbook on abstract algebra with emphasis on linear algebra. You may download parts of the book or the entire textbook. It is provided free online in PDF, DVI, postscript, and gzipped postscript.

Let's Build a Compiler, by Jack Crenshaw
This fifteen-part series, written from 1988 to 1995, is a non-technical introduction to compiler construction. You can read the parts on-line or download them in a ZIP file.

Open Source Development with CVS
The complete Open Source Development with CVS, 3rd Edition is available under the GNU General Public License:

Programming from the Ground Up (1.4 Mb PDF file)
A book on assembly for the newbie to the pro. It covers how the cpu works as well as writting programs.

Apache Desktop Reference
On this website you will find the electronic version of the book for download, the book errata, hints how to easily order the print version from online bookstores and a browsable online version of the large reference parts of the book.

How to Design Programs
Publisher-endorsed, on-line version of the book from MIT Press in html format.

Creating Applications with Mozilla
Mozilla is not just a web browser. It is also a framework for building cross-platform applications using standards such as Cascading Style Sheets (CSS), XML languages such as the XML-based User-interface Language (XUL), eXtensible Binding Language (XBL), and Resource Description Framework (RDF). This book explains how applications are created with Mozilla and provides step-by-step information that shows how to create your own programs using Mozilla's powerful cross-platform development framework. It also includes examples of different existing applications to demonstrate the possibilities of Mozilla development.

Dictionary of Algorithms and Data Structures
"This is a dictionary of algorithms, algorithmic techniques, data structures, archetypical problems, and related definitions. Algorithms include common functions, such as Ackermann's function. Problems include traveling salesman and Byzantine generals. Some entries have links to implementations and more information. Index pages list entries by area and by type."

Handbook of Applied Cryptography
pdf and postscript files.

Open Sources: Voices from the Open Source Revolution
Sam Ockman, Linus Torvalds, Eric S. Raymond, Richard Stallman, et al

Free as in Freedom: Richard Stallman's Crusade for Free Software

Complete Idiot's Guide to Writing Shell Extensions
This is an index of all the articles in the guide rather than a formal book. There are Russian and Italian translations available according to the index page.

KDE 2.0 Development
"The K Desktop Environment (KDE) project is a worldwide collaboration of hundreds of software engineers and hobbyists who are working to create a free, modern desktop interface with a consistent graphical user interface (GUI) style across applications. The desktop is network transparent, meaning that remote and local files can all be viewed, edited, and managed in the same way; it has online hypertext help and features an integrated, full-featured Web browser. The purpose of this book is to teach you how to take advantage of all that the KDE libraries have to offer when you write your own applications."

Securing and Optimizing Linux

A Compact Guide to Lex and Yacc
This document explains how to construct a compiler using lex and yacc. Lex and yacc are tools used to generate lexical analyzers and parsers.

Algorithms and Complexity
This is the first edition of Algorithms and Complexity, in the form of a single Acrobat file of about 1.1Mb

Object-Oriented System Development
This book is intended to help the reader better understand the role of analysis and design in the object-oriented software development process.

Common Lisp the Language, 2nd Edition
This document contains the complete text of the book. Unfortunately the table of contents page was missing when I visited, so I had to navigate it through the link to the index instead.

AppleScript Language Guide
This document is a complete guide to the AppleScript language. It is intended primarily for use with AppleScript 2.0 or later and OS X version 10.5 or later.

Parsing TechniquesA Practical Guide
This 320-page book treats parsing in its own right, in greater depth than is found in most computer science and linguistics books.

Working with objects: The OOram Software Engineering Method (PDF Link)
The main theme of this book is to describe complex phenomena as structures of interacting objects. Object technology is applicable to a wide range of phenomena on many different levels. Examples are work procedures on the enterprise level; large-scale applications on the systems level; and small, technical details on the program design level.

Structure and Interpretation of Computer Programs
Contains the full text of the influential computer-science text Structure and Interpretation of Computer Programs, as well as the source code and programming examples from the books. SICP uses the Scheme dialect of Lisp and there are links for obtaining Scheme implementations are available for most common platforms.

Structure and Interpretation of Computer Programs
This book is one of a series of texts written by faculty of the Electrical Engineering and Computer Science Department at the Massachusetts Institute of Technology.

The Complexity of Boolean Functions
The Complexity of Boolean Functions assumes a basic knowledge of computer science and mathematics. It deals with both efficient algorithms and lower bounds. At the end of each chapter there are exercises with varying levels of difficulty to help students using the book. The book can be downloaded in PostScript Format.

Patterns for Adaptive Programming (AP)
The first book on adaptive programming.

Machine Language For Beginners (1983)
This book is designed to teach machine language to those who have a working knowledge of BASIC.

Practical Programming in Tcl and Tk
Sample chapters available for download in a mixture of pdf and html, a few from each edition of this free tcl book. There also appears to be a partial first draft of the first edition in pdf form.

The Art of Assembly Language Programming
Available for Windows, DOS and Linux. Teaches High Level Assembly (HLA) - you will have to download the HLA compilers and supporting files to use it.

On Lisp
On Lisp is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme.

The Second Book Of Machine Language (1984)

Designing and Building Parallel Programs
Designing and Building Parallel Programs (Online) is an innovative traditional print and online resource publishing project. It incorporates the content of a textbook published by Addison-Wesley into an evolving online resource.

PVM: Parallel Virtual Machine
The Parallel Virtual Machine (PVM) system described in this book uses the message-passing model to allow programmers to exploit distributed computing across a wide variety of computer types, including MPPs. A key concept in PVM is that it makes a collection of computers appear as one large virtual machine, hence its name.

Programming in Lua
First draft of a book about the Lua programming language is available for download in pdf format.

Supercomputers: Directions in Technology and Applications (1989)
A 1989 symposium on supercomputer development that is available as a free online book in image presentation format. You can browse the images of pages and then choose to print the ones you want from a .pdf format link.

Academic Careers for Experimental Computer Scientists and Engineers
Chapters from this book are available in postscript or plain text format.

Tools For Thought: The People and Ideas of the Next Computer Revolution
This is a 1985 book about the historical development of the computer.

The Zope Book Releases
The contents of this book are licensed under the Open Publication License v1.0 without any options.