www.freeprogrammingresources.com

Computer Books Online

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

N/A

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

N/A

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.

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:

The Complexity of Boolean Functions

N/A

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

N/A

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

N/A

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.

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.

Open Source Development with CVS

This is a set of free, online chapters about using CVS (Concurrent Versions System) for collaboration and version control. It covers everything from CVS installation and basic concepts all the way to advanced usage and administration. It is intended for anyone who uses or plans to use CVS.

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.

GNU Autoconf, Automake, and Libtool

This book is a tutorial for Autoconf, Automake and Libtool, hereafter referred to as the GNU Autotools. The GNU manuals that accompany each tools adequately document each tool in isolation. Until now, there has not been a guide that has described how these tools work together.

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.

AppleScript Language Guide

This document is a complete guide to the AppleScript language. It is intended for use with AppleScript version 1.3.4 or later and Mac OS 8.5.1 or later, although some descriptions and examples may work with earlier versions.

SQL Guide and Reference

Red Hat Database Documentation.

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)

N/A

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 Ruby

This book is a tutorial and reference for the Ruby programming language. Use Ruby, and you'll write better code, be more productive, and enjoy programming more.

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.

Haskell 98: A Non-strict, Purely Functional Language

N/A

The Zope Book Releases

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

You Should Learn to Program

1982 book about progamming in basic.