Big Goals This class is an exercise in building a computer in software. The overall goal is to understand the layers of abstraction in a modern computer and to gain insight into how modern computer systems work.
Course Objectives (What the students will be doing in class) In this course, students will:
- learn how to implement combinatorial circuits in software.
- learn to code in the Hack Machine's machine language.
- build an assembler that converts Hack Assembly Code into Hack Machine Language.
- learn about virtual machine language and have it convert VM language to assembly code.
- learn about the high-level language Jack and to convert it into VM language.
- build a compiler for the Jack language that generates VM code.
- build an OS for the Hack Virtual Computer.
Learning Outcomes (What the students will be able to do, think, and feel at the conclusion of class) Upon successful completion of this course, the student will be able to:
- describe how combinatorial circuits work and generate them programmatically.
- code in the Hack machine's machine language. (ABCH)
- describe how an assembler converts assembly code into machine language and implement this in a program. (ABCDH)
- work with virtual machine language and have it convert VM language to assembly code. (ABCDH)
- program in the high-level language Jack and to convert it into VM language. (ABCDH)
- build a compiler for the Jack language that generates VM code. (ABCDH)
- build an OS for the Hack Virtual Computer. (ABCDEH)
Key to Learning Outcomes
- A) Knowledge
- B) Critical Thinking and Problem Solving;
- C) Communication;
- D) Technological Literacy;
- E) Work Ethic, Teamwork, Collaboration;
- F) Personal Responsibility, Health, and Wellness;
- G) Ethics, Civic Responsibility, and Leadership;
- H) Innovation and Invention;
- I) Global Awareness and Engagement.
NCSSM Learning Outcomes Document