A collection of open access and copyleft computer science textbooks and courses. Select redistributable books are included in this repository.
- Redistributable generally means that you can copy, and give away copies of a work freely.
- Open Access usually means that some copyrighed work may be freely accessed. Not all open access works may be redistributed.
- Copyleft usually means that some copyrighted work may be accessed and redistributed. Licences are modular and may grant additional rights.
- Karmaware generally allows use in exchange for paying it forward in some specified way.
- 📖 Textbook
- 📚 Course
- 📽️ Videos
- 🗒️ Notes
- 🌐 Website
- 📖 The Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman (Open Access)
- 📽️ SICP lectures (Open Access)
- 🗒️ SICP lecture notes (Open Access)
- 📖 Think Python 2e: How To Think Like a Computer scientist by Allan Downey (Creative Commons Attribution-NonCommercial-ShareAlike 3.0)
- 📖 Introduction to Computing: Explorations in Language, Logic and Machines by David Evans (Creative Commons Attribution-NonCommercial-ShareAlike 3.0)
- 📖 Problem Solving with Algorithms and Data Structures using Python (Creative Commons Attribution-NonCommercial-ShareAlike 4.0)
- 📽️ Lectures using the textbook (Open Access)
- 📖 Algorithms by Jeff Erickson (Creative Commons Attribution 4.0)
- 📖 Problems on Algorithms by Ian Parberry (Karmaware)
- 📖 Think Data Structures by Allan Downey (Creative Commons Attribution-NonCommercial-ShareAlike 3.0)
- 📽️ Algorithms and Data Structures, Pavel Mavrin (Open Access)
- 📽️ CSE 373 - Analysis of Algorithms by Steven Skiena (Open Access)
- 🌐 VisuAlgo - visualizing data structures and algorithms through animation (Open Access)
- 📖 Algorithm Notes for Professionals (Creative Commons Attribution-ShareAlike) was compiled from Stack Overflow Documentation.
- 📖 Competitive Programmer's Handbook by Antti Laaksonen (Creative Commons attribution, noncommercial, sharealike 4.0)
- 📖 Principles of Algorithmic Problem Solving by Johan Sannemo (Open Access)
- Uses C++
- 📖 Mathematics for Computer Science by Eric Lehman, F Thomson Leighton, Albert R Meyer (Creative Commons Attribution-NonCommercial-ShareAlike 3.0)
- 📚 Mathematics for Computer Science (Open Access)
- 📖 Foundations of Computation by Carol Critchlow and David Eck (Creative Commons Attribution-NonCommercial-NoDerivs 3.0)
- 📖 Discrete Structures for Computer Science, Michiel Smid (Creative Commons Attribution-ShareAlike 4.0)
- 📖 Discrete Mathematics - An Open Introduction by Oscar Levin (Creative Commons Attribution-ShareAlike 4.0)
- 📖 Analytic Combinatorics (Open Access)
- 📖 Exploring Combinatorial Mathematics (GFDL)
- 📖 Applied Combinatorics by Mitchel T. Keller, William T. Trotter (Creative Commons Attribution-ShareAlike 4.0) (2017)
- 📖 Category Theory for Programmers by Bartosz Milewski (Creative Commons Attribution-ShareAlike 4.0)
- 📖 Abstract Algebra: Theory and Applications by Thomas W. Judson and Robert A. Beezer (GFDL)
- 📖 A First Course in Linear Algebra by Robert A. Beezer (GFDL)
- 🌐 Khan Academy (Open Access) is great for brushing up on high school math.
- 📽️ 3Blue1Brown (Open Access) is a popular math video channel, and is great for building intuition.
- 📚 6.036 - Introduction to Machine Learning (Open Access)
- 🌐 MIT Open Courseware (OCW) (Open Access) is a collection of open access class materials for some MIT courses. Sometimes has video lectures and open access textbooks.