Yingkui

Solving Problems. Making Progress.

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:

  1. :balance_scale: - Mathematical Logic
  2. :abacus: - Theory of Computation
  3. :electric_plug: - Computer Systems
  4. :robot: - Artificial Intelligence

Stage I: Mathematical Logic & Computation Theory

  1. :exclamation: :books: Introduction to the Theory of Computation, Feb. 2019, Sep. 2020

  2. :exclamation: :books: The Logic Book, Nov. 2017, Jul. 2019, Sep. 2020

  3. :books: The Annotated Turing, Nov. 2017, Sep. 2020

    :man_technologist: Selected Implementation: Simulate Turing Machine using JavaScript

  4. :books: Gödel’s Proof, Nov. 2017, Sep. 2020

  5. :tv: Fundamentals of Lambda Calculus & Functional Programming in JavaScript, Feb. 2019

  6. :mortar_board: Automata Theory - Stanford Online

  7. :books: A New Kind of Science, Nov. 2017

  8. :books: Computers and Intractability

  9. :books: Introduction to Automata Theory, Languages, and Computation

  10. :books: Elements of Information Theory

Stage II: Computer Systems

Circuit Logic

  1. :exclamation: :mortar_board: The Elements of Computing Systems (Project 1 - 5), Feb. 18-20 2019

    :man_technologist: Combinatory Logic; ALU; Register & Memory; CPU

  2. :exclamation: :books: Computer Systems: A Programmer’s Perspective (Chapter 4), Jul. 2019

  3. :exclamation: :books: Code: The Hidden Language of Computer Hardware and Software, Nov. 2017

  4. :tv: Build an 8-bit computer from scratch, Spring Festival Holidays, 2019

  5. :books: Feynman Lectures On Computation Feb 2019

Assembly and Virtual Machine

  1. :exclamation: :books: Computer Systems: A Programmer’s Perspective (Chapter 2 - 3), Mar. 2019

    :man_technologist: Selected Implementation

  2. :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

  1. :exclamation::mortar_board: Stanford CS143: Introduction to Compiler (Week 2 - 4), Feb. 2019

  2. :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

  3. :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?

  4. :male_detective: Babel: Babel Parser, Babel Traverse, Babel Generator, Jun. 2019

    Babel Parser is for parsing JavaScript, using Recursive Descent Algorithm.

  5. :male_detective: Vue.js: Parser for HTML used in Vue.js, Jun. 2019

    :man_technologist: Codes: Rewrite

  6. :male_detective: KaTeX: Parser for LaTex used in KaTex, Jun. 2019

  7. :male_detective: Math.js: Parser for Mathematical Expression used in Math.js, Jun. 2019

  8. :man_technologist: Wrote a tiny Mathematica-like computer algeba system for educational purposes. Implemented some rudimental algebra like Simplify, Expand / Factor and Solve functionalities. Jan. 2020

Stage IV: Algorithms and Data Structures

  1. :exclamation: :mortar_board: Accelerated Computer Science Fundamentals Specialization (Coursera), Aug. 2019

  2. :books: Introduction to Algorithms (CLRS)

Stage V: Computer Graphics

Font & Typesetting

  1. :notebook: Font Metrics, :notebook: Important Unicode Codepoint

  2. :books: The TeXbook, Jul. 2019, Dec. 2019

  3. :male_detective: KaTeX : typeset LaTeX using HTML (table) and CSS struct

  4. :male_detective: MathJax : typeset LaTeX into HTML and SVG format

  5. :man_technologist: Wrote a typesetting system which basically is a lighter version of MathJax, Dec. 2019

  6. :man_technologist: Fixed a minor bug in MathJax (merged into master) when outputing square root

Computer Graphics

  1. :mortar_board:UIUC CS 418 Interactive Computer Graphics, Spring 2020

  2. :male_detective: three.js 3D Graphics Library, Mar. 2020

  3. :male_detective: GSAP Javascript Animation Library, Mar. 2020

Stage VI: Artificial Intelligence & Machine Learning

Artificial Intelligence

  1. :books: Artificial Intelligence: A Modern Approach, May 2020
  2. :mortar_board: Artificial Intelligence (MIT 2010), May 2020
  3. :mortar_board: Introduction to Artificial Intelligence with Python (Harvard), May 2020

Probability and Statistics

  1. :mortar_board: STAT 420: Methods of Applied Statistics, Summer 2020
  2. :books: Applied Statistics with R, Summer 2020
  3. :books: Probability and Statistics for Computer Science (Forsyth), Fall 2020

Machine Learning

  1. :mortar_board: CS 498: Applied Machine Learning, Fall 2020
  2. :books: Applied Machine Learning (Forsyth), Fall 2020
  3. :books: An Introduction to Statistical Learning with Applications in R, Fall 2020
  4. :books: Machine Learning: a Probabilistic Perspective, Fall 2020
  5. :books: Pattern Recognition and Machine Learning
  6. :mortar_board: Machine Learing (Andrew Ng)

Statistical Learning

  1. :mortar_board: CS 598: Practical Statistical Learning
  2. :books: Elements of Statistical Learning

Deep Learning

  1. :mortar_board: Deep Learning Specialization (Andrew Ng)
  2. :books: Deep Learning (Goodfellow)

Stage VII: Computer Networking

  1. :tv: Learn how the Internet works, Aug 2020

Stage VIII: Distributed Systems

Stage IX: Operating Systems

  1. :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

  1. :star: :computer: CS 418: Interactive Computer Graphic (Spring 2020, A+, 98%)

  2. :cloud: :robot: STAT 420: Methods of Applied Statistics (Summer 2020, A+, 99.5%)

  3. :star: :robot: CS 498: Applied Machine Learning (Fall 2020, A, 100%)

  4. :star: :robot: CS 412: Introduction to Data Mining (Spring 2021)

  5. :fire: :robot: CS 598: Advanced Bayesian Modeling (Spring 2021)

  6. :fire: :robot: CS 598: Data Mining Capstone (Summer 2021)

  7. :fire: :robot: STAT 542: Practical Statistical Learning (Fall 2021)

  8. :star: :computer: CS 425: Distributed Systems (Fall 2021)

Additinal Possible Courses

  1. :star: :computer: CS 411: Database Systems (Spring)

  2. :star: :computer: CS 421: Programming Languages and Compilers (Summer)

  3. :fire: :computer: CS 598: Cloud Computing Capstone (Summer)

  4. :star: :computer: CS 427: Software Engineering (Fall)

  5. :star: :computer: CS 427: Cloud Networking (Fall)