Computer Organization
- Level
- Undergraduate
- Status
- Under development
Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.
Syllabus
Course Overview
Computer Organization explains the layers from logic gates to executable programs: digital logic, datapaths, controllers, ISAs, assembly, memory, and I/O. The goal is for students to understand the machine underneath software instead of treating hardware as a black box.
This is the low-level foundation for assembly, systems programming, architecture, operating systems, and trusted computing.
Prerequisites
- Programming fundamentals and basic discrete mathematics.
- Ability to read simple C programs and understand binary representation.
- Willingness to complete hardware-description or simulation labs.
Learning Outcomes
- Explain digital circuits, combinational logic, and sequential logic.
- Construct basic datapaths and controllers.
- Understand instruction encoding, calling conventions, and memory access.
- Analyze basic behavior of caches, pipelines, and I/O.
- Map high-level language behavior to machine-level execution.
Course Format
- Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
- The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
- Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.
Weekly Plan
Information representation and Boolean logic
Complete integer, floating-point, and logic-circuit exercises.
Information representation and Boolean logic: lab and review
Complete integer, floating-point, and logic-circuit exercises. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Combinational and sequential logic
Implement an ALU and register file.
Combinational and sequential logic: lab and review
Implement an ALU and register file. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Instruction sets from the assembly view
Trace instruction execution and call stacks by hand.
Instruction sets from the assembly view: lab and review
Trace instruction execution and call stacks by hand. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Single-cycle and multi-cycle datapaths
Extend a teaching CPU with one instruction.
Single-cycle and multi-cycle datapaths: lab and review
Extend a teaching CPU with one instruction. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Pipelines and hazards
Analyze data and control hazards.
Pipelines and hazards: lab and review
Analyze data and control hazards. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Memory hierarchy and caches
Measure the impact of locality on program behavior.
Memory hierarchy and caches: lab and review
Measure the impact of locality on program behavior. Complete the paired lab, record issues, and explain design tradeoffs in class review.
I/O, interrupts, and buses
Explain the full path of a device interaction.
I/O, interrupts, and buses: lab and review
Explain the full path of a device interaction. Complete the paired lab, record issues, and explain design tradeoffs in class review.
From organization to systems software
Submit the processor lab and machine-level analysis report.
From organization to systems software: lab and review
Submit the processor lab and machine-level analysis report. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Assessment
Concept questions, reading responses, design tasks, and small programming or lab exercises.
Hardware or simulator labs, test programs, and machine-level explanations.
Participation in discussions, demos, code or paper reviews, and peer feedback.
Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.
Course Project
Students implement or extend a teaching processor, assembler, or simulator and prove correctness with test programs.
Policies
- AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
- Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
- Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.
Reference Courses
International
- CMU18-447: Introduction to Computer Architecture
- CornellCS 3410: Computer System Organization and Programming
- ETH ZurichComputer Architecture
- Georgia TechCS 2200: Introduction to Systems and Networking
- MIT6.191: Computation Structures
- PrincetonCOS/ELE 375: Computer Architecture and Organization
- StanfordCS 107: Computer Organization & Systems
- UC BerkeleyCS 61C: Great Ideas in Computer Architecture
- UIUCCS 233: Computer Architecture
- University of WashingtonCSE 378: Machine Organization & Assembly Language
China 985 Universities
- 上海交通大学计算机组成与系统结构
- 中国科学技术大学计算机组成原理
- 北京大学计算机组成原理
- 北京航空航天大学计算机组成原理
- 华中科技大学计算机组成原理
- 南京大学计算机系统基础(ICS)
- 哈尔滨工业大学计算机组成原理
- 复旦大学计算机体系结构(组成原理)
- 武汉大学计算机组成原理与设计
- 浙江大学计算机组成原理
- 清华大学计算机组成原理
- 西安交通大学计算机组成原理与系统结构