# Get Started With A Collection of 247 Free Computer Science Books

Well what can we say, everything these days has something to do with computers, internet and some sort of technology. The development of this area is so fast that we’re not the one who dictate if technology should wait for us but most of us are struggling even to just keep up with the current pace. There are just way too many new information and new set of skills that are emerging in today’s modern world. Artificial Intelligence (AI) is one of them and hopefully movies and stories which are branded as fictions do not turn into non-fictions in the future. New and easier programming languages are sprouting to cater to newer demands and technological advances in various industries today. Basically it’s either we start learning them or we’re losing a lot of opportunities.

The good news is with advancements, resources will also be in abundance. Free ebooks, videos, tutorials, trainings are widely available on the net these days, with a majority of them are available for free. This post echos such effort, listing down 247 free computer science ebooks covering a reasonable amount of topics. We have posted a few other similar posts as well, so feel free to browse around the site, the different categories which you can find on the right bar. Have fun going through the long list below and don’t forget to bookmark our site, share it with your friends and feel free to leave your comments below.

## Get Started With A Collection of 247 Free Computer Science Books

- 10 Print – Free ebook from MIT Press about Commodore 64 BASIC
- A Byte of Python
- A Computer Science Tapestry: Exploring Programming and Computer Science with C++ by Astrachan
- A Course in Machine Learning
- A Field Guide to Genetic Programming
- A First Course on Time Series Analysis with Examples in SAS
- A Machine Made This Book: Ten Sketches Of Computer Science
- A New Kind of Science by Stephen Wolfram
- A Pamphlet against R: Computational Intelligence in Guile Scheme
- A Practical Introduction to Data Structures and Algorithm Analysis by Clifford A. Shaffer
- A Quick and Gentle Guide to Constraint Logic Programming via ECLiPSe by Antoni Niederlinski
- Advanced Data Analysis from an Elementary Point of View by Cosma Rohilla Shalizi
- Advances In Genetic Programming 3 by Lee Spector, William B. Langdon, Una-May O’Reilly and Peter J. Angeline
- Algorithmic Mathematics
- Algorithms and Data Structures for External Memory (Series on Foundations and Trends in Theoretical Computer Science) by Jeffrey S. Vitter
- Algorithms for Clustering Data by Jain and Dubes
- Algorithms Illuminated (video book)
- Algorithms 4th Edition by Robert Sedgewick and Kevin Wayne
- Algorithms by Jeff Erickson
- An implementation of J
- An Introduction to Functional Programming Through Lambda Calculus/Elementary Standard ML by Greg Michaelson
- An Introduction to Probabilistic Programming
- Anisotropic Diffusion in Image Processing by Joachim Weickert
- Applied Mathematical Programming

- Artificial Intelligence: Foundations of Computational Agents by David Poole, Alan Mackworth
- ASN.1 Communication between Heterogeneous Systems by Olivier Dubuisson
- Assemblers And Loaders
- Basic Data Analysis and More: A Guided Tour Using Python
- Basics of Compiler Design
- Beej’s Guide to Network Programming
- Blast from the Past: Unix text Processing
- Building Blocks for Theoretical Computer Science by Margaret M. Fleck
- C# Yellow Book by Rob Miles
- Calculus by Gilbert Strang
- Capability Based Computer Systems
- Category Theory for Computing Science by Michael Barr and Charles Wells
- Category Theory for Programmers by Bartosz Milewski
- Certified Programming with Dependent Types
- Clean Architectures in Python
- Clever Algorithms: Nature-Inspired Programming Recipes
- CODD: The relational model for database management
- Combinatorial Algorithms 2nd Edition by Herbert Wilf
- Combinatorial Optimization: Exact and Approximate Algorithms
- Common Lisp: A Gentle Introduction to Symbolic Computation
- Communicating Sequential Processes (CSP) by C.A.R. Hoare
- Communication Network Analysis
- Compiler Construction by Niklaus Wirth
- Think Complexity by Allen B. Downey
- Computational Statistics with Python (2017 edition)

- Computer Organization and Design Fundamentals
- Computer Science I
- Computer Science: Abstraction to Implementation by Keller
- Computer Vision: Algorithms and Applications
- Computers and Thought: A practical Introduction to Artificial Intelligence
- Computers in Communication by Gordon Brebner
- Concrete Abstractions: An Introduction to Computer Science Using Scheme by Hailperin, Kaiser and Knight
- Concrete Semantics
- Convex Optimization by Stephen Boyd and Lieven Vandenberghe
- Crafting Interpreters
- Cryptography and Data Security by Denning
- Cryptography: An Introduction by Nigel Smart
- Data Structures & Algorithm Analysis (Edition 3.2) by Clifford A. Shaffer
- Data Structures and Algorithms: The Basic Toolbox by Kurt Mehlhorn,Peter Sanders
- Deep Learning by Goodfellow, Bengio, & Courville
- Denotational Semantics: A Methodology for Language Development by Schmidt
- Design of Approximation Algorithms by David P. Williamson and David B. Shmoys
- Designing and Building Parallel Programs
- Digraphs: Theory, Algorithms and Applications 1st Edition
- Distributed Control of Robotic Networks by Bullo, Cortez, Martinez
- Distributed systems for Fun and Profit
- Distributed Systems 3rd Edition by Van Steen & Tannenbaum
- Eloquent JavaScript
- Entropy and Information Theory by Robert M. Gray
- Essentials of Metaheuristics

- Evolved to Win by Moshe Sipper
- F# Succinctly (requires registration)
- Finding Source Code on the Web for Remix and Reuse
- Forecasting: Principles And Practice
- Foundations of Computer Science by Aho and Ullman
- Foundations of Databases: A book on design of databases
- Foundations of Statistical Natural Language Processing
- Free CS articles used at KTH in Stockholm: Basic algorithms, data structures and algorithm analysis, plenty of code examples.
- 26 Free Smalltalk ebooks
- From Algorithms to Z-Scores: Probabilistic and Statistical Modeling in Computer Science (HTML)
- Functional Programming in OCaml by Michael Clarkson
- Game Programming Patterns by Robert Nystrom
- Gaussian Processes for Machine Learning by Carl E. Rasmussen, Christopher K. I. Williams
- GPU Gems 2: Programming Techniques for High-Performance Graphics
- GPU Gems 3: 3D and General Programming Techniques for GPUs
- GPU Gems: 3D Programming Techniques, Tips, and Tricks
- GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics
- Handbook of Applied Cryptography
- Haskell Book
- Higher-Order Perl by Mark Jason Dominus
- Hoare: Essays in computing science
- How to Design Programs
- How to Think Like a Computer Scientist in Python, Java, and C++
- How to Use Scheme
- Human JavaScript by Henry Joreteg

- Implementing Functional Languages
- Implementing Programming Languages
- Information Theory, Inference, and Learning Algorithms
- Introduction to Computing: Explorations in Language, Logic, and Machines by David Evans
- Introduction to Deep Computer Vision
- Introduction to Information Retrieval
- Introduction to Machine Learning
- Introduction to statistical thought by Michael L. Lavine
- Introduction to Theory of Computation
- Invent with Python
- Is Parallel Programming Hard, And What Can You Do About It.
- Learn C: Build Your Own Lisp
- Learn Prolog Now! by Patrick Blackburn, Johan Bos, and Kristina Striegnitz
- Learn Python the Hard Way 3rd Edition by Zed A. Shaw
- Learning JavaScript Design Patterns
- Let Over Lambda
- Linux Device Drivers 3rd Edition
- Linux Kernel in a Nutshell by Greg Kroah-Hartman
- Logic for Computer Science: Foundations of Automatic Theorem Proving by Gallier
- Logic, Programming and Prolog 2nd Edition by Ulf Nilsson and Jan Maluszynski
- Machine Learning, Neural and Statistical Classification by Michie, Spiegelhalter and Taylor
- Math and Computation by Avi Wigderson
- Mathematics for Computer Science by Lehman & Leighton
- Mathematics for Computer Science by Eric Lehman, F. Thomson Leighton, Albert R. Meyer (CCBYNCSA)
- Matters Computational formerly Algorithms for Programmers by Jörg Arndt

- Mercurial: The Definitive Guide
- Prolog Programming in Depth and Natural Language Processing for Prolog Programmers by Michael A. Covington
- Mining of Massive Datasets
- MMURTL V1.0 aka Developing Your own 32 Bit Operating System
- Modern Computer Arithmetic
- Most Influential Books for Programmers
- Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations
- Natural Image Statistics: A Probabilistic Approach to Early Computation Vision by HyvÃ¤rinen, Hurri and Hoyer
- Natural Language Processing Techniques in Prolog by Patrick Blackburn and Kristina Striegnitz
- Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit by Steven Bird, Ewan Klein, and Edward Loper
- Nature of Code
- Networks, Crowds, and Markets: Reasoning about a Highly Connected World by Easley, Kleinberg
- Neural Network Design
- Neural Networks – A Systematic Introduction
- Neural Networks and Deep Learning
- Node.js Succinctly by Emanuele DelBono
- Non-Uniform Random Variate Generation
- Notes on Theory of Distributed Systems (Yale CPSC 465/565: Fall 2017 Course Notes)
- Open Government by Aaron Swartz
- O’Reilly’s Real World OCaml
- Object-oriented Programming in Javaâ„¢
- Object-Oriented Programming with ANSI-C
- Object-Oriented Reengineering Patterns
- On Lisp: A Comprehensive Study of Advanced Lisp Techniques
- Open Data Structures by Pat Morin

- Operating Systems and Middleware: Supporting Controlled Interaction by Max Hailperin
- Operating Systems: Three Easy Pieces
- Optimized Numerical Algorithms Book and Implementations
- Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig
- Parallel and Distributed Computation: Numerical Methods by Dimitri P. Bertsekas and John Tsitsiklis. Athena Scientific
- Partial Evaluation and Automatic Program Generation by Jones, Gomard, Sestoft
- PC Assembly
- Perl 6 at a Glance by Andrew Shitov
- Peter Shirley’s Ray Tracing Books
- Physically Based Rendering: From Theory to Implementation
- Planning Algorithms / Motion Planning by Steven M. LaValle
- Porting UNIX Software
- Practical Common Lisp
- Practical File System Design with the Be File System by Dominic Giampaolo
- Concepts and Applications of Inferential Statistics by Richard Lowry
- Principles of Computer System Design: An Introduction
- Principles of Distributed Computing by Roger Wattenhofer
- Probabilistic Models of Cognition
- Problem Solving with Algorithms and Data Structures using Python
- Producing Open Source Software
- Professor Frisby’s Mostly Adequate Guide to Functional Programming
- Programming and Programming Languages
- Programming Books for Professionals
- Programming from the Ground Up
- Programming in D by Ali Çehreli

- Programming in Lua 1st Edition
- Programming Languages: Application and Interpretation by Shriram Krishnamurthi
- Programming on Parallel Machines – GPU, Multicore, Clusters and More
- Proofs and Types
- Purely Functional Data Structures
- Python 3 Patterns, Recipes and Idioms
- Python Data Science Handbook
- Quantitative System Performance: Computer System Analysis Using Queueing Network Models
- Readings in Database Systems 5th Edition
- Reinforcement Learning And Optimal Control
- Scratchapixel: Learn Computer Graphics From Scratch!
- Do It Yourself Agile 2nd Edition
- Security Engineering by Anderson
- Semantic Mining of Social Networks
- ShaderX Books : ShaderX, ShaderX2: Intro & Tutorials, Tips & Tricks by Engel
- SICP 2nd Edition
- Simply Scheme: Introducing Computer Science 2nd Edition by Brian Harvey, Matthew Wright
- Software Design Using C++ by Br. David Carlson
- Software Engineering for Internet Applications by Andersson, Greenspun, Grumet
- 4 Volumes of Software Foundations
- Specification Case Studies 2nd Ed by Ian Hayes
- Speech and Language Processing by Jurafsky, Martin
- Stack Computers: The New Wave by Philip J. Koopman, Jr.
- Stanford CS Book: Mining of Massive Datasets by Rajaraman, Ullman
- Starting Forth by Leo Brodie

- Strange Attractors: Creating Patterns in Chaos by Sprott
- Successful Lisp
- Reinforcement Learning: An Introduction by Sutton & Barto
- Syncfusion Series of E-books (Assembly, C++, ASP.NET, Data Structures, etc)
- Teach Yourself Scheme in Fixnum Days by Dorai Sitaram
- Text Algorithms by M. Crochemore / W. Rytter
- The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindenmayer
- The Ancient Art of the Numerati: A Programmer’s Guide to Data Mining)
- The Architecture of Open Source Applications
- The Art of Unix Programming
- The C Book
- The Computer Revolution In Philosophy: Philosophy, Science and Models of Mind
- The Craft of Programming by Reynolds
- The Craft of Text Editing
- The Debian Administrator’s Handbook
- The Design and Implementation of Probabilistic Programming Languages by N. D. Goodman and A. Stuhlmüller
- The Design of Approximation Algorithms
- The Elements of Statistical Learning: Data Mining, Inference, and Prediction
- The Haskell Road to Logic, Math and Programming by Doets and van Eijck
- The HoTT Book | Homotopy Type Theory
- The Hundred-Page Machine Learning Book by Andriy Burkov
- The Implementation of Functional Programming Languages, by Simon Peyton Jones
- The Internals of PostgreSQL
- The Linux Command Line by William Shotts
- The Little Book of Semaphores

- The Matrix Calculus You Need for Deep Learning by Terence Parr and Jeremy Howard
- The OpenGL Programming Guide by The Redbook
- The Playful Machine: Theoretical Foundation and Practical Realization of Self-Organizing Robots
- The Power of Prolog
- The Quest for Artificial Intelligence – A History of Ideas and Achievements – by Nils J. Nilsson (Stanford University)
- The Scheme Programming Language, 4th Edition
- The Scientist and Engineer’s Guide to Digital Signal Processing by Dr. Steven W. Smith
- The Theory and Practice of Concurrency by A. W. Roscoe
- The Ultimate Question of Programming, Refactoring, and Everything
- The Way To Go: A Thorough Introduction to the Go Programming Language
- Think Bayes: Bayesian Statistics Made Simple – Allen B. Downey
- Think DSP – Digital Signal Processing in Python
- Think Stats: Probability and Statistics for Programmers
- Thinking Forth
- Type Theory and Functional Programming
- Understanding and Writing Compilers – Richard Bornat
- UNIX Text Processing
- Using Z: Specification, Refinement, and Proof (Formal techniques and formal methods for software engineering)
- Vector Models for Data-Parallel Computing – Guy Blelloch
- VT330/VT340 Programmer Reference Manual – Volume 2: Graphics Programming
- Web Data Management (Abiteboul, Manolescu, Rigaux, Rousset, & Senellart. Cambridge University Press, 2011)
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework – Charles Petzold
- xv6 – a simple, Unix-like teaching operating system

## BONUS

- OVER TEN OF THOUSANDS OF FREE EBOOKS ON COMPUTERS & INTERNET (PART 1)
- 10 FREE COMPUTERS & TECHNOLOGY EBOOKS
- 2 FREE PROGRAMMING FOR COMPUTATIONS EBOOKS – MATLAB/OCTAVE & PYTHON
- 390 FREE LINUX, UNIX, FREEBSD AND OPERATING SYSTEM EBOOKS
- 42 MOST POPULAR AND DOWNLOADED ARTIFICIAL INTELLIGENCE, LOGIC & ROBOTICS EBOOKS

## Interested in videos created exclusively for bookworms?

Watch videos about books, reading and writing. Expect weird, amazing, never known before facts and many more.