# CS Learning Resources

## Coding Practice

## Free Online Textbooks

### Other Similar Lists

### Intro CS

*Think Python*, by Allen Downey*Java for Python Programmers**Introduction to Programming Using Java*, by David Eck*Think Java: How to Think Like a Computer Scientist*, by Allen Downey*Python Tutor**Practical Python*, by David Beazley

### Data Structures

*Problem Solving with Algorithms and Data Structures using Python*, by Brad Miller and David Ranum*Data Structures 1*, by the OpenDSA Project*Data Structures 2*, by the OpenDSA Project*Java Structures*, by Duane Bailey*Open Data Structures*, by Pat Morin*Data Structures and Algorithms with Object-Oriented Design Patterns in Java*, by Bruno Preiss- Data Structure Visualizations

### Computer Organization

### "Missing Semester" - command line, git, etc.

### Discrete Maths

*An Active Introduction to Discrete Mathematics and Algorithms*, by Chuck Cusack*Connecting Discrete Mathematics and Computer Science*, by David Liben-Nowell*Foundations of Computer Science*, by Al Aho and Jeff Ullman

### Linear Algebra

### Algorithms

## Specific Topics

### C++

### Machine Learning

### Deep Learniing

*Deep Learning*, by Ian Goodfellow, Yoshua Bengio, and Aaron Courville*Dive into Deep Learning*, Aston Zhang and Zack C. Lipton and Mu Li and Alex J. Smola

### Knowledge Representation

### Operating Systems

*Operating Systems: Three Easy Pieces*, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau*Computer Systems Fundamentals*, by Michael S. Kirkpatrick*The 539kernel Book*, by Mohammed Q. Hussain

### Quantum Computing

### Programming Languages/Compilers

*Programming Languages*, by Scott F. Smith*Crafting Interpreters*, by Bob Nystrom*Programming Languages: Application and Interpretation*, by Shriram Krishnamurthi- Advance Compilers

### Databases

### SQL

### Human-Computer Interaction

### Data Science

*Computer Age Statistical Inference*, by Bradley Efron and Trevor Hastie*Python Data Science Handbook*, by Jake VanderPlas

### Software Engineering

### Graphics

*Introduction to Computer Graphics*, by David J. Eck*Computer Graphics from Scratch*, by Gabriel Gambetta*Physically Based Rendering: From Theory To Implementation*, by Matt Pharr, Wenzel Jakob, and Greg Humphreys