Course Information

Class Meeting Times and Locations

Canvas Web Page: Students can see copy of this syllabus, as well as homework and other assignment details on the Canvas web page:

Lectures: Classes will be held on Mondays and Wednesdays from 10:30am to 11:20am in 17 Hillhouse, Room 05 (located on the lower level).

Labs: Each student will be assigned a lab session to attend. Lab sessions will be Monday, Tuesday, or Wednesday, from 7pm to 9:30pm. The labs are in the new Greenberg Engineering Teaching Concourse, Room C045 and C043. Students usually need to work on the lab projects outside of their assigned lab session hours if they are not finished. Students can use DL 120 computer room 24 hours a day, which has needed software; althought some hardware is only available in lab.

Course Description

Description: Introduction to the theoretical principles underlying the design and programming of simple processors that can perform algorithmic computational tasks. Topics include combinational logic design and Boolean algebra, sequential logic design and finite state machines, and basic computer architecture principles. Hands-on lab projects involve learning about logic analyzers, understanding hardware description languages, and the active design and construction of combinatorial and sequential circuits, state machines and design of a simple processor.

Motivation: Processors are at the heart of all modern electronics, and almost all devices we use. From smartphones to medical devices to autonomous cars, processors execute algorithms that control these devices. In this course, students will receive introduction to the theoretical principles underlying the design and construction of computer logic that will ultimately let them design simple processors that can perform algorithmic computational tasks. The course provides students with the ability to design combinatorial and sequential digital circuits for a given algorithmic information processing task. Hands-on lab projects provides students ability to realize their simple logic and processor designs in field programmable gate arrays (FPGAs).

Topics Covered: Boolean algebra, combinational network analysis and design, sequential network analysis and design, finite state machines, basic digital logic and computer systems design, computer organization and control. Selected topics in computer security are also included.

Prerequisites: None

Learning Materials and Grading Information

Textbook: Digital Design: A Systems Approach by William J. Dally; R. Curtis Harting, 2012 (not the 2016 VHDL version). (approx. 100$ new, 50$ used on AbeBooks)

Optional Textbook: The Verilog Hardware Description Language, Fifth Edition, by Thomas & Moorby. (approx. 90$) (free PDF access for Yale students when on Yale's computer network via

Student Evaluation: is based on number of assignments and lab projects:

  • Homework: Weekly homeworks, total 25%
  • Exams: There will be two mid-term exams (10% each) and a final exam (15%)
  • Lab projects: There will be weekly labs during which students work on number of projects, total 35%
  • Lab etiquette: Keeping lab clean, pushing in chairs, turning off monitors, etc., total 2%
  • Other: Class participation, etc., total 3%

Grade Distribution: It is expected that there will be a distribution of the grades and the goal is to have mean for the course that will be at or below the FAS (Faculty of Arts and Sciences) mean. However, in case the entire class is exceptional, students can expect better grades and a higher mean. In general, student outcomes will be represented by the letter grades: exemplary (A), very good (A- and B+), adequate (B and B-), and unsatisfactory (C, or lower).

Course Policies

Deadlines and Work Submission: All deadlines are posted in the schedule. Homeworks are due by 5pm Eastern Time unless otherwise stated.

Common Points Deductions for Submitted Work:

  • Late work -- for homeworks, there is 20% penalty for each day late, penalty will not be prorated, e.g. 1 hour late is still 20% penalty, all work is to be submitted electroncially. Late policy for other work will be specified by the instructor.
  • Wrong format -- there is 10% penalty for submitting work in wrong format (not meeting length, font or other requirements if specified).
  • Missing name -- there is 10% penalty for any work that is submitted without student's name clearly written on the front page.
  • Overly large file sizes -- there will be 10% penalty for electronic work submitted which has overly large file sizes, e.g. PDFs which are just images taken of the homework with a smarpthone app, please use a scanner to scan your work (e.g. in room DL 120) to generate modeslty sized PDF files.
  • Messy work -- points may be deducted for messy or unclear answers.
  • Simplify your answers -- unless stated otherwise, attempt to provide the most simplified answer (simplest formula, least number of states, etc.), points may be deducted for work that is not simplified.

Collaboration Policy: Collaboration can be a great learning tool, so students are encouraged to study together and help each other out. However, unless otherwise stated, all work is individual. Do not copy other's homework or lab answers or code. Violations of this policy will not be tolerated and referred to the Dean.

Attendance: You are responsible for all the material covered in class. The course covers materials that may not all be in the textbook or printed handouts, so attendance is crucial for good performance in the course. If you miss a class, please get a Dean's excuse and make an appointment with the instructor to go over the material that was in the missed lecture.

Academic Integrity: Please do not cheat or copy other's work. Make sure to cite any sources. All homeworks and submitted code will be reviewed for similarities.

Re-grading Policy: Please bring up any issues with re-grading homework, lab report and deliverable, or examination within one week from when the graded work was returned. Please write 2 ~ 3 sentences to justify each problem you would like re-graded and state why. The written request should be submitted by e-mail. For exams, original graded examination sheets should be returned to instructor.

Portable Electronic Devices: Using portable electronic devices for nonacademic purposes during class time is distracting to your peers and the instructor. Please silence all such devices.

Special Accommodations: If you require any special accommodations please notify the instructor as soon as possible. This includes any religious practice which may interfere with completion of a scheduled examination, lab or homework. Please contact instructor early on in the course to arrange a meeting where we can plan for any needed accommodations.

Staff, Contact Information and Office Hours

Instructor: Prof. Jakub Szefer

Lab Supervisor: Kevin Ryan

Teaching Fellows (TFs): Shuwen Deng and Shanquan Tian

Undergraduate Learning Assistants (ULAs): Kevin Truong and Eric Takada

Office Hours:
Jakub S. -- by appointment, please e-mail
Kevin R. -- none, but please e-mail about open lab hours
Shuwen D. and Shanquan T. -- by appointment, please e-mail
Kevin T. -- Wednesdays 4:00pm to 6:30pm and Fridays 9:00am to 11:30am
Erik K. -- Tuesdays 4:00pm to 6:30pm and Thursdays 4:00 to 6:30pm

Office Hours Location: Dunham Lab 5th floor, Room 518

Open Lan Hours: Please contact Kevin Ryan about open lab hours, tentatively they are Wednesdays and Thursdays from 2:00 to 3:00 pm in the teaching labs (rooms C045/C043).

Contact Information: To contact the instructor and TFs, please send e-mail to To contact the ULAs or the lab supervisor, please use the Yale Directory,, to find their respective e-mail addresses.