These Books and Resources all use licenses that permit at least personal (non-commercial) use.
- Table of Contents
- Complete 'Computer Architecture';
- Add 'Operational Research' in 'Math';
- Electricity Department a bit weak;
- Complete Syllabus (https://www.wikiwand.com/en/Bachelor_of_Computer_Science has a good list);
- Deposit everything here (?)
- Preliminaries: Precalculus
- Real Analysis:
- Calculus I: Basic Analysis I
- Real Analysis (Calculus I & II): Single Variable Calculus
- Multivariable Calculus: Vector Calculus
- Calculus: Calculus (recommended since it's generously illustrated)
- Linear Algebra:
- A First Course in Linear Algebra
- Linear Algebra, Theory & Applications (complete and verbose; recommended)
- Statistics:
- Introductory Statistics
- Statistics with Python: Think Stats: Exploratory Data Analysis in Python
- Quick Reads:
- Permutations & Combinations (recommended)
- Intuitive Guide to Convolutions
- Practical Guide to the Simplex Method of Linear Programming (elaborate rundown)
- The Art of Linear Algebra
- Theoretical Computer Science: Foundations of Computation
- Quantum Informatics: Lectures on Quantum Information Science
- Physics: College Physics (online; pdf)
- Circuit Theory:
- Computers: Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits
- Operating Systems:
- High Performance Computing
- Complementary Resources:
- What Every Computer Scientist Should Know About Floating-Point Arithmetic
- Number Systems & Codes (recommended)
- The Linux Kernel
- The Little Book of Semaphores (for concurrent programming)
- Signal Processing:
- GIS:
- Essentials of Geographic Information Systems (likely won't need it)
- Computer Networks: Computer Networks: A Systems Approach
- Open Data Structures
- Think Data Structures
- Complementary Resources:
- CSMI 673: Concurrent and Distributed Programming (course notes)
- Databases:
- Embedded Systems:
- Preliminaries: Yet Another Introductory Number Theory Textbook
- The Joy of Cryptography
- Abstract Algebra: Examples & Applications (pdf; html)
- Assembly:
- SASM (there are also precompiled versions; you'll need a nasm/fasm binary)
- Learn Multiplatform 8086 Assembly Programming for World Domination
- A Tiny Guide to Programming in 32-bit x86 Assembly Language
- C: Think C (recommended)
- C++: The C++ Annotation (complete; previous experience with C-like syntax langs recommended)
- Java: Think Java
- Python:
- Think Python (I recommend learning Python; it's very useful)
- Intermediate Python
- The Hitchhiker's Guide to Python
- Lisp: On Lisp (Paul Graham's book)
- Java: jGRASP (Educational IDE)
- Introduction to GNU Octave: A brief tutorial for linear algebra and calculus students
- GNU Linear Programming Kit:
- Deeds (actually good simulator software) Contains:
- Digital Circuit Simulator;
- Finite State Machine Simulator;
- Micro-Computer Simulator
- Spin (you'll need to learn Promela in order to model for Spin)
- Basic Spin Manual (Promela fundamentals)
- Missing Semester (recommended)
- Advanced Bash-Scripting Guide
- Quick Reads: