ECE 550D
Fundamentals of Computer Systems and Engineering
Fall 2023
Class meeting times and location:
Section 1: TuTh 10:05–11:20am — Wilkinson 126
Section 2: TuTh 1:25–2:40pm — Teer 106
Recitation meeting time and location: Fr 11:45am–1:00pm — FITZPATRICK SCHICIANO B 1466 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 posted on
Canvas).
To provide anonymous feedback about anything related to the course, please follow this
link (password posted on Canvas).
Teaching Assistants (TAs):
Rui Cao (rc384) — Head TA for projects
Yang Xu (yx248) — Head TA for project autograding
Fan Yang (fy62) — Head TA for recitations
Yuanjia Wang (yw520) — Head TA for grading
Hangming Ye (hy201) — Head TA for online student questions
Can Pei (cp357) — Head TA for plagiarism checking
TA office hours (location: Hudson Hall 214):
MoWe: 12:15–1:15 (2 TAs)
TuTh: 11:30–1:15 & 2:45–4:00 (2-4 TAs)
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. 3 units. Co-requisite: ECE 551D.
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 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's webpage.
Regrading policy: Regrade requests must be submitted no later than one week after the assignment
grade is released.
Grading schema (minimum %):
97: A+
93: A
90: A-
87: B+
83: B
80: B-
77: C+
73: C
70: C-
0: 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.).
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 any 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.
In addition to the measures taken by the administration, the affected assignment(s) will receive zero
credit, or possibly -100% in extreme cases.
If you are considering this course of action, please see me instead, and we can work something out! I
want every student in my course to be successful.
Note that programming submissions will be compared to one another and to previous semesters using
Stanford's Measure of Software Similarity (MOSS) to detect signs of plagiarism.
Communications Support at Pratt
Graduate Communications and Intercultural Programs (GCIP) offers customized communications support for all
graduate students at Pratt. They offer one-on-one coaching in the Graduate Communications Center (GCC) for all
communications needs (e.g., academic writing, cover letters, presentations, pronunciation, master's
theses/projects, PhD dissertations/publication/prelims). Additionally, GCIP offers a communication workshop
series to help build specific communication skills throughout the academic year. Visit this link
or email gcc-pratt@duke.edu.