I don’t have a CS degree so I’ve had to learn on my own. (@RandallKanna)
This is the title of a twitter thread which is true for me. I found this thread a world of useful resources that a blog post to document them for later use is a good idea. Below are the original post and the links to the courses/material/videos.
Start with a great intro course to get you excited about learning.
[Read More]
Nand2tetris W5
Computer architecture
Last week, my wife came to BKK to see me and we had a wonderful short trip to Koh Lan island just 40 minutes away from Pattaya. It had been almost 2 months since we last met when i was in Vietnam back then, so that we did enjoyed our time together. Moreover, we accompanied 2 great friends in Son and Tik and all four of us took photos, shared stories and laughed so hard in that sea food restaurant while playing Tik-guessing game and drinking beers.
[Read More]
Nand2tetris W4
Machine Language Programming
Background
Every hardware platform is designed to execute commands in a certain machine language, expressed using agreed-upon binary codes. Writing programs directly in binary code is a possible, yet unnecessary. Instead, we can write such programs using a low-level symbolic language, called assembly, and have them translated into binary code by a program called assembler.
Machine Language After making the gates and chips in previous 3 weeks, i had a chance to learn more about the machine language which is in binary form.
[Read More]
Nand2tetris Week3
Memory & Hello Time
Background
The computer’s main memory, also called Random Access Memory, or RAM, is an addressable sequence of n-bit registers, each designed to hold an n-bit value. In this project you will gradually build a RAM unit. This involves two main issues: (i) how to use gate logic to store bits persistently, over time, and (ii) how to use gate logic to locate (“address”) the memory register on which we wish to operate.
[Read More]
Nand2tetris Week2
Boolean Arithmetic - Toughest challenge so far
Background
The centerpiece of the computer’s architecture is the CPU, or Central Processing Unit, and the centerpiece of the CPU is the ALU, or Arithmetic-Logic Unit. In this project you will gradually build a set of chips, culminating in the construction of the ALU chip of the Hack computer. All the chips built in this project are standard, except for the ALU itself, which differs from one computer architecture to another.
[Read More]
Nand2tetris Intro
Build a Modern Computer from First Principles
Course Intro. Excited?
Nand2tetris Week1
Primitive Nand gate
Background
A typical computer architecture is based on a set of elementary logic gates like And, Or, Mux, etc., as well as their bit-wise versions And16, Or16, Mux16, etc. (assuming a 16-bit machine). This project engages you in the construction of a typical set of basic logic gates. These gates form the elementary building blocks from which more complex chips will be later constructed.
Here is what i have learnt in this week.
[Read More]
My Online Courses
Collection of my self-study things
2020
- Accelerated Computer Science Fundamentals, University of Illinois at Urbana-Champaign, June 2020.
2019
- Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course), Hebrew University of Jerusalem.
- Programming with Google Go Specialization, UCI, July 2019
- Structure and Interpretation of Computer Programs, MIT, Summer 2019
2018
- An Introduction to Hyperledger Technologies, LinuxFoundationX, June 2018
- Docker Essentials, IBM, May 2018
- IBM Blockchain Foundation Developer, IBM, Apr 2018
- Learning How to Learn, McMaster University & University of California San Diego, Apr 2018
2017
- Using Python to Access Web Data, U-M, Oct 2017
- Python Data Structures, U-M, Oct 2017
- Programming for Everybody (Getting Started with Python), U-M, Oct 2017
- Using Databases with Python, U-M, Nov 2017
2016
- Regression Modeling in Practice, Wesleyan University, Sep 2016
- Data Analysis Tools, Wesleyan University, Sep 2016
- Excel to MySQL Analytic Techniques for Business Specialization, Duke University, July 2016