Free Textbooks: Computer Science
Free textbooks (aka open textbooks) written by knowledgable scholars are a relatively new phenomenon. Below, find a meta list of Free Computer Science Textbooks, part of our larger collection 200 Free Textbooks: A Meta Collection. Also see our online collection, 1,700 Free Online Courses from Top Universities.
- A Byte of Python, by Swaroop C H
- A First Course in Electrical and Computer Engineering by Louis Scharf, Colorado State
- Artificial Intelligence: Foundations of Computational Agents by David Poole and Alan Mackworth, University of British Columbia
- Bits, Signals, and Packets: An Introduction to Digital Communications and Networks by Hari Balakrishnan, Christopher Terman, and George Verghese, MIT
- Code Like a Pythonista: Idiomatic Python, by David Goodger
- Computational Geometry by Nicholas M. Patrikalakis, Takashi Maekawa, MIT
- Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits by Charles W. Kann, Gettysburg College
- Dive into Python, by Mark Pilgrim
- Foundations of Computer Science by Al Aho (Columbia) and Jeff Ullman (Stanford)
- High Performance Computing by Charles Severance, University of Michigan
- How to Design Programs: An Introduction to Computing and Programming, Multiple Authors
- How to Think Like a Computer Scientist: C ++ ( PDF) by Allen B. Downey, Olin College
- How to Think Like a Computer Scientist: Java by Allen B. Downey, Olin College
- How to Think Like a Computer Scientist: Python by Allen B. Downey, Olin College
- Implementing a One Address CPU in Logisim by Charles W. Kann III, Gettysburg College
- Information Technology and the Networked Economy by Patrick McKeown, University of Georgia
- Information Theory, Inference, and Learning Algorithms by David MacKay, Cambridge
- Introduction To MIPS Assembly Language Programming by Charles W. Kann III, Gettysburg College
- Learn Python the Hard Way, by Zed A. Shaw
- Neural Networks and Deep Learning, by Michael Nielsen, Research Fellow at the Recurse Center
- Patterns for Beginning Programmers (with Examples in Java), by David Bernstein, James Madison University
- Philosophy of Computer Science by William J. Rapaport, University at Buffalo, The State University of New York
- Principles of Computer System Design: An Introduction (Part II) by Jerome Saltzer and M. Frans Kaashoek.
- Principles of Programming Languages by Grad Students, Johns Hopkins
- Programming Languages: Application and Interpretation by Dr. Shriram Krishnamurthi, Brown University.
- Prolog and Natural-Language Analysis by Fernando C. N. Pereira and Stuart M. Shieber, U Penn & Harvard
- Python for Informatics: Exploring Information by Charles Severance, University of Michigan
- Structure and Interpretation of Computer Programs by Jerry Sussman & Julie Sussman
- Teach Yourself WordPerfect Mac by John Rethorst
- The Princeton Bitcoin Textbook by Arvind Narayanan (Princeton) and colleagues
create_bookmarks($the_url,$the_title);echo $this_sst; -->
Support Open Culture
We’re hoping to rely on our loyal readers rather than erratic ads. To support Open Culture’s educational mission, please consider making a donation . We accept PayPal, Venmo (@openculture), Patreon and Crypto! Please find all options here . We thank you!