This course makes use of Athena, MIT's UNIX-based computing environment. OCW does not provide access to this environment.
Course Meeting Times
Lectures: 2 sessions / week, 1 hour / session
Recitations: 2 sessions / week, 1 hour / session
6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks — logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples.
6.004 is required material for any EECS undergraduate who wants to understand (and ultimately design) digital systems. A good grasp of the material is essential for later courses in digital design, computer architecture and systems. Before taking 6.004, students should feel comfortable using computers; a rudimentary knowledge of programming language concepts (6.001) and electrical fundamentals (6.002) is assumed.
The problem sets and lab exercises are intended to give students "hands-on" experience in designing digital systems; each student completes a gate-level design for a reduced instruction set computer (RISC) processor during the semester. Access to workstations as well as help from the course staff is provided in the lab but it is possible to complete the assignments using Athena machines or one's home computer. Students are encouraged to get help from others in understanding the material, but the designs and measurements they hand in must be their own work.
6.004 Learning Objectives and Measurable Outcomes (PDF)
Students should feel comfortable using computers. A rudimentary knowledge of programming language concepts (C language or 6.001) and electrical fundamentals (6.002) is assumed. Each student must have an Athena account to access the software used to complete the lab assignments.
There is no required text for the course this semester. Readings for some of the course material will be available on-line.
There are no weekly graded problem sets. Instead there are on-line tutorial problems with answers you can use to test your understanding of the material. The recitations give you a chance to work on these problems with the help of the course staff and to ask any questions that you may have.
The assignments are intended to help you understand the material and should be done individually. You are welcome to get help from others but the work you hand in must be your own. Copying another person's work or allowing your work to be copied by others is a serious academic offense and will be treated as such. We do spot-check submissions to the on-line checkoff system for infractions of the collaboration policy. So please don't tempt fate by submitting someone else's work as your own; it will save us all a lot of grief.
There are eight lab assignments due at various times during the term and an optional design project at the end of the term. Completing each part of a lab earns points that count toward your final grade. Points are determined during a short interview about each lab with a member of the course staff. Note that you can submit your work for a lab more than once, for example, as you complete each part. After completing the work on some of the labs, you'll be presented with some on-line lab questions to answer (these are different than the tutorial questions mentioned above), and you'll need to schedule a short lab checkoff meeting for each lab with a member of the course staff. This meeting can happen after the lab's due date but to receive full credit it must be completed within one week of the due date.
You must have a non-zero score for each required lab and all on-line lab questions must be checked-off as a prerequisite for passing the course. A missing required lab (i.e., a lab with a score of 0) will result in a failing grade; incompletes will not be given for unfinished laboratory work.
The lab gets crowded just before an assignment is due so plan accordingly. The lab will be staffed by the course staff during the late afternoon and evening Monday through Thursday, and during the afternoon on Friday.
Late policy for labs: The on-line system will give you 50% of any points earned for submissions after the due date. So if your first submittal is late, you get 50% of the points. But if you submitted on-time for 15 points, and then late for 25 points, you'll get 20 points total for the lab. Note that points reported by JSim/BSim at check-in are for on-time submittals; you can check your on-line status page to see how many points count toward your total. This will be reported as "0" until you complete your checkoff meeting.
Late policy for checkoffs: The on-line system will allow only 50% of any points earned by your lab (including any late penalties you incurred) if you don't complete your checkoff before the checkoff deadline. So if you miss both the lab deadline and the checkoff deadline, you'll only get 25% of the total points.
There are five fifty-minute, closed-book quizzes. The questions will be similar (perhaps identical!) to the tutorial problems and will ask you to provide short, written answers and/or explanations. The quizzes are scheduled roughly every three weeks during recitation.
To ensure everyone has a seat, please attend your assigned section on quiz days. If exceptional circumstances make it impossible to take a quiz at your assigned time, please contact your recitation instructor before the quiz to see if other arrangements can be made. Requests for make-ups after the quiz has been given are unlikely to be successful.
There is no final exam.
The final grade is determined by performance on the quizzes (25 points/quiz, 125 points total), the labs, and the design project (75 points total). In addition, you must have a non-zero score for each of the required labs and all the on-line lab questions must be checked off as a prerequisite for passing the course. A missing required lab will result in a failing grade; incompletes will not be given for unfinished laboratory work.
Once your combined score has been computed as explained above, here's how grades will be assigned:
|A||170 <= total points|
|B||150 <= total points < 170|
|C||130 <= total points < 150|
|D||110 <= total points < 130|
|F||total points < 110, missing required lab|