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