Intro to Build(ing) a Modern Computer from first Principles

Written politely 2021-05-11.

I have begun taking a course on Coursera about building a modern computer. Here is why you might want to take the course.

Course Overview

The course is split into hardware and software for Part 1 and 2, respectively and requires absolutely no prerequisites, so anyone can take this course! Part 1 basically uses a virtual machine, or a program that will allow us to simulate another computer inside of our computer. Part 1 is divided into 6 weeks of material with each week building a system that will build upon the previous system.

When we use computers daily, we often don’t think about the why of how our programming works, but we mainly count on the systems underneath to work wihtout worrying about how of the details that are going on to make our commands happen. This course will give a deep understanding of how these systems are able to execute our commands.

The first week takes about an hour of time to complete and ends with a simple task that everyone that uses a computer should be able to complete without hesitation (just basic downloading and uploading a file).

Futher Exploration

If you want to go deeper than the videos in the course, the instructors have a book that covers Part 1 and Part 2 of the course. This is from the Preface of the book:

“(B)uilding a general-purpose computer from first principles is a huge undertaking. Therefore, we identified a unique educational opportunity not only to build the thing, but also to illustrate, in a hands-on fashion, how to effectively plan and manage large-scale hardware and software development projects. In addition, we sought to demonstrate the ability to construct, through recursive ascent and human reasoning, fantastically complex and useful systems from nothing more than a few primitive building blocks.” -The Elements of Computing Systems: Building a Modern Computer from First Principles

Why do I want to take this course

That got my attention. I am excited to learn a lot in this course. It is free and there are no prerequisites. Having not had a formal background in computer science, but having much experience in programming, I am really looking forward to getting a deep understanding of how the computer is doing everything it is doing when we execute our code. We write code to tell our computers what do, but we usually aren’t worried about how it happens.

How deep does it go?

const hello = (world = 'world') => 'Hello, ${world}!';
console.log(hello());

So we have an H in the code above, and that is H is just a representation of light and dark pixels on our screen. And behind the h is number that represents h, and down the rabbit hole. This course begins at the bottom of the rabbit hole and builds up out of the rabbit hole. To say I am excited would be an understatement.

Punch your ticket and join me for the ride.

And here is the next part if you are ready to continue the course overview.


Lucas McDaniel

Husband, father, teacher, musician, avid gamer, nature enthusiast, and passionate about the human condition.