VCA-CSA-101 — Fundamentals of Computing Systems
A student who has completed VCA-FND-101 knows what binary is. A student who has completed VCA-FND-102 can write a small program. But the gap between “I wrote this Python statement” and “a transistor somewhere turned on” is immense. VCA-CSA-101 closes that gap. Over twelve modules, students build a complete computer system from NAND gates upward — each module a working project the student implements and tests.
Course Overview
Graduates can trace a Python statement through the compiler, through the bytecode, through the CPU instructions, through the logic gates, through the transistors — not as a memorized mantra, but as a model they have personally built. This is not reverse engineering. It is the converse: forward engineering of a complete computing stack. But it is the ideal conceptual foundation for reverse engineering, because a student who has built each layer of the stack can reason about each layer as a target.
Principal reading: Nisan & Schocken, The Elements of Computing Systems: Building a Modern Computer from First Principles, 2nd ed. (MIT Press, 2021). Tools are Virtus-original — a Virtus-built HDL simulator, assembler, VM interpreter, and compiler test harness, functionally equivalent to what students need to complete the textbook’s projects.
Twelve Modules
| Module | Topic | Project |
|---|---|---|
| 1 | Boolean logic | AND / OR / NOT / XOR / MUX / DMUX in HDL, starting from NAND only |
| 2 | Boolean arithmetic | Half-adder, full-adder, 16-bit adder, ALU |
| 3 | Memory | Bit register, 16-bit register, RAM8, RAM64, RAM16K |
| 4 | Machine language | Hand-write assembly for the target CPU |
| 5 | Computer architecture | Assemble Memory + ALU + CPU into a working computer |
| 6 | Assembler | Write an assembler that translates symbolic assembly to binary |
| 7 | Virtual machine I | Stack arithmetic, memory segments |
| 8 | Virtual machine II | Program flow, function calls |
| 9 | High-level language | Specification and syntax of the HLL targeting the VM |
| 10 | Compiler I | Syntax analysis — tokenizer and parser |
| 11 | Compiler II | Code generation |
| 12 | Operating system | OS services: math, memory, I/O, screen |
Learning Outcomes
- Design and implement combinational logic in an HDL, starting from primitive gates.
- Design and implement sequential logic (registers and RAM) using D-flip-flop primitives.
- Specify and implement a simple ALU supporting a useful instruction set.
- Specify and implement a stored-program computer architecture (instruction fetch, decode, execute).
- Write, assemble, and execute programs in the computer’s native assembly.
- Implement a two-pass assembler in Python.
- Implement a stack-based virtual machine interpreter.
- Implement the front end of a compiler (tokenizer + parser) for a specified language.
- Implement the back end of that compiler (code generation to the VM).
- Implement minimal operating-system services (math library, memory allocator, screen driver).
- Integrate all of the above into a system that runs a real application.
- Reason about computing abstractions as implementations, not as mysteries.
Capstone
A functioning computing system — HDL-simulated hardware + Virtus-assembler + Virtus-VM + Virtus-compiler + Virtus-OS — running a non-trivial application the student chose (game, editor, simple interpreter, visualization). Deliverable: the full codebase, a written technical report, and a five-minute recorded demo.
Required Hardware & Software
- No additional hardware beyond the standard student compute environment. Everything is HDL-simulated.
- Virtus-original HDL simulator, assembler, VM interpreter, compiler test harness (shipped with the course).
- Python 3 for the assembler and compiler implementations.
- Textbook: Nisan & Schocken, The Elements of Computing Systems, 2nd ed. (MIT Press, 2021). Students purchase individually.
Certification Alignment
No direct industry certification covers this content. The capstone artifact — a working computer the student built — is a stronger portfolio piece than any multiple-choice exam. The course strengthens readiness for any introductory university computer-architecture course (articulation value for college credit) and for all downstream Virtus courses that touch instruction-set architecture (RE-101, ADV-101, RE-201).
Interested in VCA-CSA-101?
Email academy@virtuscybersecurity.com with your register and why.