Build a Modern Computer from First Principles

Taught by Prof. Shimon Schocken and Prof. Noam Nisan from the Hebrew University of Jerusalem

Course Topics:

A course which builds a modern software hierarchy starting from simulated bare-bones computer hardware and ending at the implementation of a high-level, object-oriented langauge.

Part I

Covered stages from the hardware level to the Hack assembly language.
Topics include:
  • Boolean functions, logic gates, and hardware simulation
  • boolean arithmatic, storing and adding bits, and arithmetic logic units
  • RAM, sequential logic, and counters
  • Building a CPU and intergrating it and the RAM into the Hack computer
  • Marchine languages, the Hack assembly language and its interpretor

Part II

Focused on building a series of interpretors that connect machine and assembly language to the high-level Jack language:
  • Virtual machine implementation, including memory segments, working memory stack, branching, functions, and call stacks
  • Interpretor methods, including syntax and lexigraphical analysis, parse logic and trees, and the Jack language's implementation
  • Object-oriented implementation, from variables to expressions to objects and arrays
  • Creating programs and libraries on the Hack computer with the Jack language, stretching over mathematical operators, memory access and heap management, graphics, textual output, string and array processing, and the OS itself
  • The Jack language, its implementation, and how to program in it, as well as graphics optimization


Course Statistics:

  • Final Grades: 100% (using provided autograders given to auditing students)
  • University: Hebrew University of Jerusalem (through Coursera.org)
  • Instructors: Prof. Shimon Schocken and Prof. Noam Nisan
  • Textbook: The Elements of Computing Systems by Shimon Schocken and Noam Nisan
Classes Completed:
  • coursera.org/learn/build-a-computer
  • coursera.org/learn/nand2tetris2

    Projects (Click to Download):
  • Multiplication Program made with assembler lanauge
  • Memory Chip contructed from lower-level simulated hardware chips


  • Copyright © Samantha S. 2020