Computer Science Theory
Here you'll learn about a range of topics surrounding the discpiline of Computer Science.

IoT
-
IoT in five days- V1.1 (PDF, EPUB)
Mathematics
-
A First Course in Linear Algebra - Robert A. Beezer
-
Bayesian Methods for Hackers - Cameron Davidson-Pilon
-
Calculus Made Easy - Silvanus P. Thompson
-
Differential Equations - Paul Dawkins
-
Elementary Differential Equations - William F. Trench
-
Essentials of Metaheuristics by Sean Luke
-
Introduction to Probability - Charles M. Grinstead and J. Laurie Snell
-
Introduction to Statistical Thought - Michael Lavine
-
Linear Algebra: An Introduction to Mathematical Discourse - Jim Hefferon
-
Power Programming with Mathematica - David B. Wagner
-
Statistics Done Wrong - Alex Reinhart
-
Think Bayes: Bayesian Statistics Made Simple - Allen B. Downey
-
Think Stats: Probability and Statistics for Programmers (code written in Python) - Allen B. Downey
-
A First Course in Linear Algebra - Robert A. Beezer
-
Advanced Algebra - Anthony W. Knapp (PDF)
-
An Introduction to the Theory of Numbers - Leo Moser (PDF)
-
Basic Algebra - Anthony W. Knapp (PDF)
-
Book of Proof - Richard Hammack (PDF)
-
Calculus - Gilbert Strang (PDF)
-
Computational and Inferential Thinking. The Foundations of Data Science
-
Differential Equations - Paul Dawkins (PDF, use form to download)
-
Discrete Mathematics - Dr. Arbind K Lal, IIT Kanpur (PDF)
-
Introduction to Statistical Thought - Michael Lavine
-
Knapsack Problems - Algorithms and Computer Implementations - Silvano Martello and Paolo Toth
-
Lecture Notes of Linear Algebra - Dr. P. Shunmugaraj, IIT Kanpur (PDF)
-
Linear Algebra - Dr. Arbind K Lal, IIT Kanpur (PDF)
-
Linear Algebra: An Introduction to Mathematical Discourse - Jim Hefferon
-
Mathematics, MTH101A - P. Shunmugaraj, IIT Kanpur
-
Number Theory - Holden Lee MIT
-
Statistics Done Wrong - Alex Reinhart
-
Discrete Structures for Computer Science: Counting, Recursion, and Probability - Michiel Smid
-
Mathematics for Computer Science (November 2013 Version) (PDF) - Eric Lehman
Networking
-
802.11ac: A Survival Guide - Matthew Gast
-
Code Connected vol.1(PDF) (book on ZeroMQ)
-
Computer Networking: Principles, Protocols and Practice, 2nd edition
-
An Introduction to Computer Networks (HTML, PDF, Kindle)
-
Bits, Signals, and Packets: An Introduction to Digital Communications and Networks
-
Code Connected vol.1 (PDF) (book on ZeroMQ)
-
Computer Networking : Principles, Protocols and Practice (HTML, ePub, PDF, Kindle)
-
HTTP2 Explained - Daniel Stenberg
-
Understanding IP Addressing: Everything you ever wanted to know (PDF)
Open Source
-
The Cathedral and the Bazaar - Eric S. Raymond
-
Fintech, Open Source, and Emerging Markets Digital Banking for Everyone
-
Free as in Freedom (PDF)
-
How to get started with open source (ePub & ODT)
-
Open Advice: FOSS: What We Wish We Had Known When We Started
-
The Art of Community - Jono Bacon (PDF)
-
The Wealth of Networks: How Social Production Transforms Markets and Freedom - Yochai Benkler
Operating Systems
-
The Art of Unix Programming - Eric S. Raymond
-
The Little Book of Semaphores - Allen B. Downey
-
Operating Systems and Middleware (PDF and LaTeX)
-
Practical File System Design:The Be File System (PDF) - Dominic Giampaolo
-
How to write a simple operating system in assembly language - Mike Saunders (HTML)
-
Operating Systems Concept 9th edition - Avi Silberschatz, Peter Baer, Galvin Greg Gagne (PDF)
-
Project Oberon: The Design of an Operating System, a Compiler, and a Computer - Niklaus Wirth & Jürg Gutknecht (PDF)
-
The Design and Implementation of the Anykernel and Rump Kernels - Antti Kantee
-
The little book about OS development - Erik Helin, Adam Renberg
-
Think OS: A Brief Introduction to Operating Systems - Allen B. Downey (PDF)
-
UNIX Application and System Programming, lecture notes - Prof. Stewart Weiss (PDF)
-
Writing a Simple Operating System from Scratch - Nick Blundell (PDF)
Parallel Programming
-
High Performance Computing (PDF, ePUB) - Charles Severance & Kevin Dowd
-
High Perofrmance Computing Training (LLNL materials)
-
Is Parallel Programming Hard, And, If So, What Can You Do About It?
-
Introduction to Parallel Computing - Blaise Barney
-
Programming on Parallel Machines; GPU, Multicore, Clusters and More - Norm Matloff
-
High-Performance Scientific Computing (class lectures and slides)
-
Introduction to High-Performance Scientific Computing - Victor Eijkhout
Programming Paradigms
-
Introduction to Functional Programming (class lectures and slides)
Reverse Engineering
-
BIOS Disassembly Ninjutsu Uncovered 1st Edition - Darmawan Salihun (PDF)
-
Hacking the Xbox: An Introduction to Reverse Engineering - Andrew "bunnie" Huang
-
Reverse Engineering for Beginners - Dennis Yurichev (PDF)
Software Architecture
-
Patterns of Software: Tales from the Software Community (PDF)
-
Agile Planning: From Ideas to Story Cards - Launch School
-
Architectural Styles and the Design of Network-based Software Architectures - Roy Thomas Fielding
-
DSL Engineering: Designing, Implementing and Using Domain-Specific Languages - Markus Voelter
-
Kanban for skeptics - Nick Oostvogels
-
Naked objects - Richard Pawson (PDF)
-
Practicing Domain-Driven Design - Scott Millett
-
Test Driven Development, Extensive Tutorial - Daniel Żołopa
-
Working with Web APIs - Launch School
-
Your API Is Bad - Paddy Foran
Theoretical Computer Science
-
Introduction to Theory of Computation (PDF) - Anil Maheshwari and Michiel Smid
-
Programming Languages: Application and Interpretation (2nd Edition)
-
Think Complexity - Allen B. Downey
-
Building Blocks for Theoretical Computer Science - Margaret M. Fleck
-
Homotopy Type Theory: Univalent Foundations of Mathematics (PDF)
-
Introduction to Computer Science - Prof. Subhashis Banerjee, IIT Delhi
-
Models of Computation - John E. Savage
-
Practical Foundations for Programming Languages, Preview - Robert Harper (PDF)
-
Principles of Programming Languages - Scott F. Smith
-
Programming and Programming Languages - Shriram Krishnamurthi
-
Programming in Martin-Löf's Type Theory - Bengt Nordstroem
-
Semantics with Applications: A Formal Introduction - Hanne Riis Nielson, Flemming Nielson