└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Important Note 2 | These Books and Resources all use licenses that permit **at least personal (non-commercial) use**. 3 | Creative Commons License 4 | Creative Commons License 5 | Creative Commons License 6 | Creative Commons License 7 | #### ⚠️ This Collection is Work in Progress ⚠️ 8 | ### To do: 9 | * Table of Contents 10 | * Complete 'Computer Architecture'; 11 | * Add 'Operational Research' in 'Math'; 12 | * Electricity Department a bit weak; 13 | * Complete Syllabus *(https://www.wikiwand.com/en/Bachelor_of_Computer_Science has a good list)*; 14 | * Deposit everything here (?) 15 | # Materials by Course 16 | ## Math 17 | * Preliminaries: [Precalculus](https://www.stitz-zeager.com/szprecalculus07042013.pdf) 18 | * Real Analysis: 19 | * Calculus I: [Basic Analysis I](https://www.jirka.org/ra/realanal.pdf) 20 | * Real Analysis (Calculus I & II): [Single Variable Calculus](https://www.whitman.edu/mathematics/calculus/calculus.pdf) 21 | * Multivariable Calculus: [Vector Calculus](https://anton-petrunin.github.io/calc3book/calc3book.pdf) 22 | * Calculus: [Calculus](https://ocw.mit.edu/ans7870/resources/Strang/Edited/Calculus/Calculus.pdf) *(recommended since it's generously illustrated)* 23 | * Linear Algebra: 24 | * [A First Course in Linear Algebra](http://linear.ups.edu/download/fcla-3.50-tablet.pdf) 25 | * [Linear Algebra, Theory & Applications](https://resources.saylor.org/wwwresources/archived/site/wp-content/uploads/2012/02/Linear-Algebra-Kuttler-1-30-11-OTC.pdf) *(complete and verbose; recommended)* 26 | * Statistics: 27 | * [Introductory Statistics](https://saylordotorg.github.io/text_introductory-statistics/) 28 | * Statistics with Python: [Think Stats: Exploratory Data Analysis in Python](http://greenteapress.com/thinkstats2/html/index.html) 29 | * Quick Reads: 30 | * [Permutations & Combinations](https://math.berkeley.edu/~arash/55/6_3.pdf) *(recommended)* 31 | * [Intuitive Guide to Convolutions](https://betterexplained.com/articles/intuitive-convolution/) 32 | * [Practical Guide to the Simplex Method of Linear Programming](http://math.jacobs-university.de/oliver/teaching/iub/spring2007/cps102/handouts/linear-programming.pdf) *(elaborate rundown)* 33 | * [The Art of Linear Algebra](https://raw.githubusercontent.com/kenjihiranabe/The-Art-of-Linear-Algebra/main/The-Art-of-Linear-Algebra.pdf) 34 | ## Theory 35 | * Theoretical Computer Science: [Foundations of Computation](http://math.hws.edu/FoundationsOfComputation/FoundationsOfComputation_2.3.2_6x9.pdf) 36 | * Quantum Informatics: [Lectures on Quantum Information Science](https://thosgood.com/quantum-info/book/) 37 | ## Physics, Electricity & Electronics 38 | * Physics: [College Physics](https://openstax.org/details/books/college-physics) *(online; pdf)* 39 | * Circuit Theory: 40 | * [DC Circuits](https://shareok.org/bitstream/handle/11244/52245/DC%20Circuits,%201st%20Edition%20-%20Davis,%202016.pdf?sequence=17) 41 | * [AC Circuits](https://open.umn.edu/opentextbooks/formats/807) 42 | * [Spinning Numbers](https://spinningnumbers.org/) 43 | ## Computers & Computer Architecture 44 | * Computers: [Digital Circuit Projects: An Overview of Digital Circuits Through Implementing Integrated Circuits](https://cupola.gettysburg.edu/cgi/viewcontent.cgi?article=1000&context=oer) 45 | * Operating Systems: 46 | * [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) 47 | * [Think OS](https://greenteapress.com/wp/think-os/) 48 | * [High Performance Computing](https://cnx.org/exports/bb821554-7f76-44b1-89e7-8a2a759d1347@5.2.pdf/high-performance-computing-5.2.pdf) 49 | * Complementary Resources: 50 | * [What Every Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) 51 | * [Number Systems & Codes](https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-01-unified-engineering-i-ii-iii-iv-fall-2005-spring-2006/comps-programming/number_systems.pdf) *(recommended)* 52 | * [The Linux Kernel](https://tldp.org/LDP/tlk/tlk.html) 53 | * [The Little Book of Semaphores](https://greenteapress.com/wp/semaphores/) *(for concurrent programming)* 54 | ## Systems 55 | 56 | ## Communication & Networks 57 | * Signal Processing: 58 | * [Think DSP](http://greenteapress.com/thinkdsp/thinkdsp.pdf) 59 | * [Signals & Systems](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-003-signals-and-systems-fall-2011/lecture-notes/) 60 | * [Fundamentals of Electrical Engineering](https://cnx.org/exports/778e36af-4c21-4ef7-9c02-dae860eb7d14@9.72.pdf/fundamentals-of-electrical-engineering-i-9.72.pdf) 61 | * GIS: 62 | * [Essentials of Geographic Information Systems](https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/) *(likely won't need it)* 63 | * Computer Networks: [Computer Networks: A Systems Approach](https://book.systemsapproach.org/) 64 | ## Algorithms & Data Structures 65 | * [Open Data Structures](https://www.aupress.ca/app/uploads/120226_99Z_Morin_2013-Open_Data_Structures.pdf) 66 | * [Think Data Structures](http://greenteapress.com/thinkdast/thinkdast.pdf) 67 | * Complementary Resources: 68 | * [CSMI 673: Concurrent and Distributed Programming](https://cs.lmu.edu/~ray/classes/cdp/) *(course notes)* 69 | ## Software Engineering & Databases 70 | * Databases: 71 | * [Database Design](https://web.archive.org/web/20190326200142/http://en.tekstenuitleg.net/articles/software/database-design-tutorial/intro.html) 72 | * [Relational Algebra](http://pages.cs.wisc.edu/~dbbook/openAccess/firstEdition/slides/pdfslides/mod3l1.pdf) 73 | * [Algebra of Bags](http://infolab.stanford.edu/~ullman/fcdb/aut07/slides/ra.pdf) 74 | * [Foundations of Databases](http://webdam.inria.fr/Alice/) 75 | * Embedded Systems: 76 | * [Embedded Controllers Using C and Arduino](http://www.dissidents.com/resources/EmbeddedControllers.pdf) 77 | ## Artificial Intelligence 78 | * [Artificial Intelligence: Foundations of Computational Agents](https://artint.info/2e/index.html) 79 | * [A Course in Machine Learning](http://ciml.info/) 80 | ## Cryptography & Abstract Algebra 81 | * Preliminaries: [Yet Another Introductory Number Theory Textbook](https://www.poritz.net/jonathan/share/yaintt.pdf) 82 | * [The Joy of Cryptography](https://web.engr.oregonstate.edu/~rosulekm/crypto/) 83 | * [Abstract Algebra: Examples & Applications](http://abstractalgebra.altervista.org/index.html) *(pdf; html)* 84 | # Languages & Tools 85 | ## Programming Languages 86 | * Assembly: 87 | * [SASM](https://dman95.github.io/SASM/english.html) *(there are also precompiled versions; you'll need a nasm/fasm binary)* 88 | * [Learn Multiplatform 8086 Assembly Programming for World Domination](https://www.chibialiens.com/8086/) 89 | * [A Tiny Guide to Programming in 32-bit x86 Assembly Language](https://cs.dartmouth.edu/~sergey/cs258/tiny-guide-to-x86-assembly.pdf) 90 | * C: [Think C](https://raw.githubusercontent.com/tscheffl/ThinkC/master/PDF/Think-C.pdf) *(recommended)* 91 | * C++: [The C++ Annotation](http://www.icce.rug.nl/documents/cplusplus/) *(complete; previous experience with C-like syntax langs recommended)* 92 | * Java: [Think Java](https://greenteapress.com/wp/think-java/) 93 | * Python: 94 | * [Think Python](http://www.greenteapress.com/thinkpython/thinkpython.pdf) *(I recommend learning Python; it's very useful)* 95 | * [Intermediate Python](https://book.pythontips.com/en/latest/) 96 | * [The Hitchhiker's Guide to Python](https://docs.python-guide.org/) 97 | * Lisp: [On Lisp](http://www.paulgraham.com/onlisp.html) *(Paul Graham's book)* 98 | * Java: [jGRASP](https://www.jgrasp.org/index.html) *(Educational IDE)* 99 | ## Computational 100 | * [Introduction to GNU Octave: A brief tutorial for linear algebra and calculus students](http://www.wcc.vccs.edu/sites/default/files/Introduction-to-GNU-Octave.pdf) 101 | * GNU Linear Programming Kit: 102 | * [For Arch Linux](https://archlinux.org/packages/extra/x86_64/glpk/) 103 | * [For Debian](https://salsa.debian.org/science-team/glpk) 104 | * [For Windows](http://gnuwin32.sourceforge.net/packages/glpk.htm) 105 | * [Reference Manual for v4.1](https://www.math.ucdavis.edu/~mkoeppe/lehre/opt1-2003/glpk-refman.pdf) 106 | * [A Tutorial of AMPL for Linear Programming](https://www.cs.uic.edu/~hjin/files/ampl_tutorial.pdf) 107 | ## Web-related 108 | * [Learn web development](https://developer.mozilla.org/en-US/docs/Learn) 109 | * [Eloquent JavaScript](https://eloquentjavascript.net/) 110 | * [PHP Apprentice](https://phpapprentice.com/) 111 | ## Digital Electronics Design 112 | * [Deeds](https://www.digitalelectronicsdeeds.com/deeds.html) *(actually good simulator software)* Contains: 113 | * Digital Circuit Simulator; 114 | * Finite State Machine Simulator; 115 | * Micro-Computer Simulator 116 | ## Operating Systems 117 | * [CPU Burst](http://cpuburst.com/) 118 | ## Correctness Verification for Concurrent Programs 119 | * [Spin](https://spinroot.com/spin/Bin/) *(you'll need to learn Promela in order to model for Spin)* 120 | * [Basic Spin Manual](https://courses.cs.washington.edu/courses/csep590/03su/Lectures/Promela.html) *(Promela fundamentals)* 121 | ## Other 122 | * [Missing Semester](https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J) *(recommended)* 123 | * [Advanced Bash-Scripting Guide](https://tldp.org/LDP/abs/html/index.html) 124 | * Quick Reads: 125 | * [10 Most(ly Dead) Influential Programming Languages](https://hillelwayne.com/post/influential-dead-languages/) 126 | --------------------------------------------------------------------------------