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):
Xuan Liu — Lead TA for projects
Endong Dai — Lead TA for recitations
Xiaotian Tong — Lead TA for student support
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:
design combinational and sequential circuits at the transistor (CMOS) and gate/logic levels;
implement, simulate, and test logic circuits;
use Verilog hardware description language;
write programs using Assembly language;
describe and analyze how computer memory operates;
describe the basic operations of IO devices, interrupts, and exceptions; and
design, implement, and test a processor.
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
Recitations (15%): Recitations are sessions for hands-on practice using software and hardware
tools. Grades are based on completion (must demonstrate working module to TA).
Exam 1 (20%).
Exam 2 (20%).
Project (40%): Checkpoints that build up to implementing a processor.
Project checkpoint 1 (Simple ALU): 6%
Project checkpoint 2 (Full ALU): 7%
Project checkpoint 3 (Register File): 7%
Project checkpoint 4 (Simple Processor): 10%
Project checkpoint 5 (Full Processor): 10%
Project checkpoint 6 (Interactive Game): +5 extra credit points on the final course grade
Concept maps (5%): Pre- and post-course concept maps to help measure and reflect on learning.
NO FINAL EXAM!
Late policy: Late submissions are not allowed unless you have a valid excuse. In that case, email
your
instructor about it as soon as possible and wait for a decision (might involve a penalty, depending on
the
excuse). Refer to this
list of common but unacceptable excuses borrowed from Dr. Bletsch.
Regrading policy: Regrading must be requested no later than one week after the assignment grade
is
released.
Grading schema:
≥ 97.00: A+
≥ 93.00: A
≥ 90.00: A-
≥ 87.00: B+
≥ 83.00: B
≥ 80.00: B-
≥ 77.00: C+
≥ 73.00: C
≥ 70.00: C-
< 70.00: F
Important Notes
Extremely important advice:
Start as early as you can! Leave ample time for testing!
Review class material after/before every class.
Manage your time well and work on multiple assignments (in different courses) concurrently.
Split bigger task into smaller (realistic) ones. Make sure you use a calendar and a to-do list.
Use Git to keep track of previous versions of your work and use a cloud storage service to back
up your work (GitLab, GitHub, etc.). Note that this is a REQUIREMENT for this course.
Ask questions! We are here to help! We want you to succeed!
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:
For questions that can be answered by a TA or the instructor: use Ed Discussion
To contact a specific TA or the instructor: use email (do not use texting, social media, ...)
Misconduct
Academic misconduct will not be tolerated and will be taken very seriously.
You are expected to complete the assignments individually unless otherwise stated.
Students are encouraged to share ideas, learn from each other, and learn from online sources, but
cheating is not tolerated.
Any borrowed design/code/etc. — if allowed to be borrowed — should be properly cited.