Learning the Basics of CS
:books: Books, :mortar_board: Formal Courses, :tv: YouTube Videos, :male_detective: Cracking Source Codes
Core Goals:
Internalize the following subjects:
- :balance_scale: - Mathematical Logic
- :abacus: - Theory of Computation
- :electric_plug: - Computer Systems
- :robot: - Artificial Intelligence
Stage I: Mathematical Logic & Computation Theory
-
:exclamation: :books: Introduction to the Theory of Computation, Feb. 2019, Sep. 2020
-
:exclamation: :books: The Logic Book, Nov. 2017, Jul. 2019, Sep. 2020
-
:books: The Annotated Turing, Nov. 2017, Sep. 2020
:man_technologist: Selected Implementation: Simulate Turing Machine using JavaScript
-
:books: Gödel’s Proof, Nov. 2017, Sep. 2020
-
:tv: Fundamentals of Lambda Calculus & Functional Programming in JavaScript, Feb. 2019
-
:mortar_board: Automata Theory - Stanford Online
-
:books: A New Kind of Science, Nov. 2017
-
:books: Computers and Intractability
-
:books: Introduction to Automata Theory, Languages, and Computation
-
:books: Elements of Information Theory
Stage II: Computer Systems
Circuit Logic
-
:exclamation: :mortar_board: The Elements of Computing Systems (Project 1 - 5), Feb. 18-20 2019
:man_technologist: Combinatory Logic; ALU; Register & Memory; CPU
-
:exclamation: :books: Computer Systems: A Programmer’s Perspective (Chapter 4), Jul. 2019
-
:exclamation: :books: Code: The Hidden Language of Computer Hardware and Software, Nov. 2017
-
:tv: Build an 8-bit computer from scratch, Spring Festival Holidays, 2019
-
:books: Feynman Lectures On Computation Feb 2019
Assembly and Virtual Machine
-
:exclamation: :books: Computer Systems: A Programmer’s Perspective (Chapter 2 - 3), Mar. 2019
:man_technologist: Selected Implementation
-
:exclamation: :mortar_board: The Elements of Computing Systems (Project 6 - 8), Jun. 2019
:man_technologist: Codes: Project 6 (Assembly Compiler), May 22 2019, Project 7-8 (Virtual Machine Compiler), Jun. 14 2019
Stage III: Languages and Compilers
-
:exclamation::mortar_board: Stanford CS143: Introduction to Compiler (Week 2 - 4), Feb. 2019
-
:exclamation: :mortar_board: The Elements of Computing Systems (Project 10 - 11), Jun. 2019
:man_technologist: Codes: Project 10 (Parser), Jun 21 2019, Project 11 (Generator), Jun. 26-27 2019
-
:male_detective: JISON: Generating Parser using LL LR SLR LALR used in Jison, May 2019
By far, parsing techniques is the hardest part of this learning journey, the main reason might be the lack of ideal learning materials. Things are taught too abstract and too little examples are presented.
:notebook: How to distinguish LL LR SLR LALR?
-
:male_detective: Babel: Babel Parser, Babel Traverse, Babel Generator, Jun. 2019
Babel Parser is for parsing JavaScript, using Recursive Descent Algorithm.
-
:male_detective: Vue.js: Parser for HTML used in Vue.js, Jun. 2019
:man_technologist: Codes: Rewrite
-
:male_detective: KaTeX: Parser for LaTex used in KaTex, Jun. 2019
-
:male_detective: Math.js: Parser for Mathematical Expression used in Math.js, Jun. 2019
-
:man_technologist: Wrote a tiny Mathematica-like computer algeba system for educational purposes. Implemented some rudimental algebra like
Simplify
,Expand
/Factor
andSolve
functionalities. Jan. 2020
Stage IV: Algorithms and Data Structures
-
:exclamation: :mortar_board: Accelerated Computer Science Fundamentals Specialization (Coursera), Aug. 2019
-
:books: Introduction to Algorithms (CLRS)
- :man_technologist: Selected Implementations
Stage V: Computer Graphics
Font & Typesetting
-
:notebook: Font Metrics, :notebook: Important Unicode Codepoint
-
:books: The TeXbook, Jul. 2019, Dec. 2019
-
:male_detective: KaTeX : typeset LaTeX using HTML (table) and CSS struct
-
:male_detective: MathJax : typeset LaTeX into HTML and SVG format
-
:man_technologist: Wrote a typesetting system which basically is a lighter version of MathJax, Dec. 2019
-
:man_technologist: Fixed a minor bug in MathJax (merged into master) when outputing square root
Computer Graphics
-
:mortar_board:UIUC CS 418 Interactive Computer Graphics, Spring 2020
-
:male_detective: three.js 3D Graphics Library, Mar. 2020
- :notebook: WebGL Notes
- :books: WebGL Fundamentals
- :books: Learn WebGL
- :books: 3D Graphics with OpenGL
- :tv: WebGL Tutorial
-
:male_detective: GSAP Javascript Animation Library, Mar. 2020
- :man_technologist: GSAP Core Logic, Mar. 2020
Stage VI: Artificial Intelligence & Machine Learning
Artificial Intelligence
- :books: Artificial Intelligence: A Modern Approach, May 2020
- :mortar_board: Artificial Intelligence (MIT 2010), May 2020
- :mortar_board: Introduction to Artificial Intelligence with Python (Harvard), May 2020
Probability and Statistics
- :mortar_board: STAT 420: Methods of Applied Statistics, Summer 2020
- :books: Applied Statistics with R, Summer 2020
- :books: Probability and Statistics for Computer Science (Forsyth), Fall 2020
Machine Learning
- :mortar_board: CS 498: Applied Machine Learning, Fall 2020
- :books: Applied Machine Learning (Forsyth), Fall 2020
- :books: An Introduction to Statistical Learning with Applications in R, Fall 2020
- :books: Machine Learning: a Probabilistic Perspective, Fall 2020
- :books: Pattern Recognition and Machine Learning
- :mortar_board: Machine Learing (Andrew Ng)
Statistical Learning
- :mortar_board: CS 598: Practical Statistical Learning
- :books: Elements of Statistical Learning
Deep Learning
- :mortar_board: Deep Learning Specialization (Andrew Ng)
- :books: Deep Learning (Goodfellow)
Stage VII: Computer Networking
- :tv: Learn how the Internet works, Aug 2020
Stage VIII: Distributed Systems
Stage IX: Operating Systems
- :mortar_board: The Missing Semester - MIT
Stage X: Databases
Master’s Degree: UIUC MCS Courses
:computer: Major Branches of Computer Science, :robot: Artificial Intelligence Related
Prefered Path
-
:star: :computer: CS 418: Interactive Computer Graphic (Spring 2020, A+, 98%)
-
:cloud: :robot: STAT 420: Methods of Applied Statistics (Summer 2020, A+, 99.5%)
-
:star: :robot: CS 498: Applied Machine Learning (Fall 2020, A, 100%)
-
:star: :robot: CS 412: Introduction to Data Mining (Spring 2021)
-
:fire: :robot: CS 598: Advanced Bayesian Modeling (Spring 2021)
-
:fire: :robot: CS 598: Data Mining Capstone (Summer 2021)
-
:fire: :robot: STAT 542: Practical Statistical Learning (Fall 2021)
-
:star: :computer: CS 425: Distributed Systems (Fall 2021)
Additinal Possible Courses
-
:star: :computer: CS 411: Database Systems (Spring)
-
:star: :computer: CS 421: Programming Languages and Compilers (Summer)
-
:fire: :computer: CS 598: Cloud Computing Capstone (Summer)
-
:star: :computer: CS 427: Software Engineering (Fall)
-
:star: :computer: CS 427: Cloud Networking (Fall)