Course Syllabus

This course examines how the 1s and 0s that form the foundation of digital computing are organized, structured, and manipulated to produce full-fledged computer systems. In bridging this gap, the course will cover many subjects beginning with binary logic, combinatorial and sequential circuit design, memory structures, instruction set architectures, and, ultimately, basic processor design.  


An introductory programming course, such as COMS 1004 or 1007. You need to understand the basics of imperative, sequential programming to understand the assembly language programming we will discuss.


Lectures will be held on TuTh 10:10-11:25 in 501 Schermerhorn Hall.  


Prof. Martha Kim
Phone: (212) 939-7094
Office: 469 CSB

Teaching Assistants


Alan Cha


Allison Clark


Daniel Benett


Gary Chen


Joe Campo


Michael Falkenstein


Min Yee Tang


Nancy Xu

Office Hours

Consult calendar.
Recommended Textbook
Digital Design and Computer Architecture, 2nd Edition
Harris and Harris
We will use courseworks to disseminate course materials and assignments.  All project submissions will be handled there too.  
From courseworks you’ll find a link to a Piazza which we will use for questions and answers.  Please use piazza for all technical questions and to contact the TAs/Instructor.  

Academic Integrity and Collaboration Policy

We take academic honesty extremely seriously, and expect the same of you. You are expected to know and adhere to the Computer Science Department's Academic Honesty Policy.  For this course, we expect each student to complete all projects individually.  You may discuss the problems and general strategies with your classmates, but lifting partial or complete solutions from classmates, former students, or the internet is not allowed.  If you have any questions about the policy or specific situations, ask the course staff.

Grading Rubric

Combinational Logic Project: 20%
Sequential Logic Project: 20%
MIPS Programming Project: 30%
Microarchitecture Project: 30%

Late Policy

Projects are due on canvas by 11:59PM on the due date for full credit.  Each student has two penalty-free late days to use to accommodate unforeseen circumstances.  Beyond that, we will accept submissions up to two days late with a 30 point per day deduction.

Regrade Policy

The purpose of regrades are to correct true grading errors, for example, if there was a math error in summing your total points, or the written feedback suggest that course staff overlooked part of your design.  Mistakes can happen and we welcome your help in correcting them.  However, regrades should not be seen as an opportunity to fish for points, argue about partial credit, or other judgement calls made by course staff. 
If you want to request a regrade, you should submit a request to the staff via Piazza with an explanation of why you think the grade was incorrect.  The deadline for such requests is one week from the time scores are posted.

Course Summary:

Date Details