ECE 550D
Fundamentals of Computer Systems and Engineering
Fall 2026

based on a diagram by Dr. Tyler Bletsch
Class meeting times and location: TuTh 11:45–1:00pm — Hudson Hall 125
Recitation meeting time and location: Fr 11:45–1:00pm — Hudson Hall 125
Lab location: Hudson Hall 214

Instructor: Dr. Rabih Younes
Duke e-mail: rabih.younes
Instructor 1-on-1 office hours are available by appointment (link to make appointments on our Canvas homepage).
To provide anonymous feedback about anything related to the course, please follow the link provided on our Canvas homepage.

Teaching Assistants (TAs): TA office hours (start on week 2): TuWeTh 3–4pm — Hudson Hall 214

Course Description

Fundamentals of computer systems and engineering for Master's students whose undergraduate background did not cover this material. Topics covered include: Digital logic, assembly programming, computer architecture, memory hierarchies and technologies, IO, and hardware implementation in HDL. Undergraduates may not take this course, and should take ECE 250D, ECE 353, and/or ECE 356 instead. Not open to students who have taken or are taking ECE 552.

Learning Outcomes

Having successfully completed this course, the student will be able to:

Textbook and Other Course Material

Textbook not required. One suggested textbook is: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 5th edition, Morgan-Kaufmann. (Amazon, AddAll) — (Not the "ARM" edition or the "Revised Printing").
All needed material will be posted on Canvas.

Grading Policy

Important Notes

Extremely important advice:

We can only grade what we receive. Always check what you are submitting and make sure you submit the right files.

Contacting the instructor and the TAs:

Misconduct

Tentative Schedule

Week Date Topic Project Checkpoint Due Recitation (Fridays, in teams of 2)
1 Tue 8/25 Syllabus + Intro
1 Thu 8/27 Transistor-Level Design Quartus + Verilog Intro
2 Tue 9/1 Gate-Level Design
2 Thu 9/3 Digital Arithmetic Adder
3 Tue 9/8 Digital Arithmetic
3 Thu 9/10 Storage and Clocking Multiplier
4 Tue 9/15 Finite State Machines Simple ALU (PC1)
4 Thu 9/17 ISA FSM
5 Tue 9/22 ISA
5 Thu 9/24 Datapath Full ALU (PC2) Behavioral Verilog
6 Tue 9/29 Datapath
6 Thu 10/1 Clock Division + FPGAs + Pipelining FPGA Board Intro
7 Tue 10/6 Pipelining Register File (PC3)
7 Thu 10/8 Practice Problems I/O Interfacing: PS2
8 Tue 10/13 NO CLASS (Fall Break)
8 Thu 10/15 Exam 1 Review Exam 1 [beginning - Datapath]
9 Tue 10/20 Exam 1 Muddiest Points
9 Thu 10/22 Memory Hierarchy Work on processor
10 Tue 10/27 Memory Hierarchy Simple Processor (PC4) (in teams of 2)
10 Thu 10/29 Virtual Memory I/O Interfacing: VGA
11 Tue 11/3 Virtual Memory
11 Thu 11/5 Interrupts, Exceptions, and System Calls Work on processor
12 Tue 11/10 OS
12 Thu 11/12 I/O + Final Remarks Work on processor
13 Tue 11/17 Practice Problems Full Processor (PC5) (in teams of 2)
13 Thu 11/19 Exam 2 Review Exam 2 [Pipelining - I/O]
14 Tue 11/24 NO CLASS
16 12/9-11 NO FINAL EXAM Interactive Game (PC6) Demo (in teams of 2-3)