[Crypto 101][repo-crypto-101] ([Site][site-crypto-101], cc-nc) - the introductory book on cryptography
[The little book about OS development][repo-littleosbook] ([Site][site-littleosbook], cc-nc-sa) - This is the source code for the book "The little book about OS development"
How to Design Programs ([Site][site-htdp], cc-nc-nd)
Structure and Interpretation of Computer Programs ([Site][site-sicp], cc-sa)
Programming Languages: Application and Interpretation ([Site][site-plai], cc-nc-sa)
Practical Foundations for Programming Languages ([Site][site-pfpl], cc-nc-nd)
[Open Data Structures][repo-ods] ([Site][site-ods], cc) - To provide a high-quality open content data structures textbook that is both mathematically rigorous and provides complete implementation
Algorithms, Etc. ([Site][site-algorithm-etc], cc-nc-sa) - This page contains lecture notes and other course materials for various algorithms classes Jeff Erickson have taught at the University of Illinois, Urbana-Champaign.
Introduction to Theory of Computation ([Site][site-michiel-computation], cc-sa) - This is a free textbook for an undergraduate course on the Theory of Computation, which we have been teaching at Carleton University since 2002
Discrete Structures for Computer Science: Counting, Recursion, and Probability ([Site][site-michiel-structures], cc-nc-sa) - This is a free textbook for an undergraduate course on Discrete Structures for Computer Science, which I have been teaching at Carleton University since 2013
[graphbook][repo-graphbook] (GNU-FDL) - A GNU-FDL book on algorithmic graph theory by David Joyner, Minh Van Nguyen, and David Phillips. This is an introductory book on algorithmic graph theory
[Operating Systems and Middleware: Supporting Controlled Interaction][repo-operating-middleware] ([Site][site-operating-middleware] cc-sa) - free, modifiable textbook on operating systems principles
Programming on Parallel Machines ([Site][site-parallel-machine], cc-nd) - The purpose of this book is to help you program shared-memory parallel machines without risking your sanity
[Is Parallel Programming Hard, And, If So, What Can You Do About It?][repo-perfbook] ([Site][site-perfbook], cc-sa) - The purpose of this book is to teach new programmers and scientists about the basics of High Performance Computing
High Performance Computing ([Site][site-high-perfomance-computing], cc)
Natural Language Processing for the Working Programmer ([Site][site-nlpwp], cc) - We will go into many of the techniques that so-called computational linguists use to analyze the structure of human language, and transform it into a form that computers work with
Fundamentals of Programming: With Object Oriented Programming ([Site][site-funop], cc-nc-sa) - This book presents a balanced and flexible approach to the incorporation of object-oriented principles in introductory courses using Python
Introduction to Computing ([Site][site-introtocom], cc-nc-sa) - This book introduces the most important ideas in computing using the Scheme and Python programming languages. It focuses on how to describe information processes by defining procedures, how to analyze the costs required to carry out a procedure, and the fundamental limits of what can and cannot be computed mechanically
[Computer Science from the Bottom Up][repo-csftbu] ([Site][site-csftbu], cc-sa) - Computer Science from the Bottom Up — A free, online book designed to teach computer science from the bottom end up. Topics covered include binary and binary logic, operating systems internals, toolchain fundamentals and system library fundamentals
[Problem Solving with Algorithms and Data Structures][repo-psads] ([Site][site-psads], cc-nc-sa) - Examples and work from Problem Solving with Algorithms and Data Structures Using Python