CS 14 -- Course Information

Be sure to read all of this page!

Overview

CS 14 is a course that will cover the basic topics of computing architecture. More specifically, we will see how basic propositional logic can be the basis for computing any function. From there, we will develop computing devices with memories and programmable instructions -- in essence, we will see the basics of how a CPU is constructed.

Here is a brief list of many (but not all) of the topics that we will cover, in roughly the order that we will cover them:

A good deal of time will be spent in our digital lab, where we will create computing circuits from basic electronic parts. That is, we'll be working with chips, wires, buttons, and blinking lights. There will also be some time spent on assembly language programming, as we will need to understand how CPU's are programmed before building such a computational device.

This course should be fun, as there is a great deal of hands-on experience with the material. It is also a great demystifying course, as you will have a much better understanding of the operation and principles behind the computers that surround us. Note, however, that it is a course with a great many details, as well as a course that is exceedingly cumulative. It will be critical that you stay on top of lectures and labs at all times.


Lectures and labs

Lectures are every Monday, Wednesday, and Friday at 11 am in Seeley Mudd 206.

Labs are on Tuesdays, in Seeley Mudd 111 (a.k.a. the Digital Lab), and last for 50 minutes. There are four lab sections:

  1. 11:30 am
  2. 1 pm
  3. 2 pm
  4. 3 pm

You will have registered for one of these sections, and you must attend the lab section for which you have registered. While you may request to attend a different lab section from your usual one due to a transient conflict, the lab sections must be kept small and balanced in numbers, so section-jumping will not be allowed.

You will be responsible for all of the lectures and labs, and so missing either is strongly discouraged. I will not teach material twice, so if you miss a lecture or a lab, you're on your own. If you must skip due to illness or legitimate conflict, you must contact me before the lecture or lab (unless such contact is not possible, which is a situation that will be handled on a case-by-case basis.)

Participation will be a very important element of this class, both in the lectures and the labs. As you will see in the Grading section, below, your participation will affect your final grade in a substantial way. The points to be earned for partitipation are not perfunctory! You really must participate in order to earn these points. Participation implies preparation: If you do not understand the material, then you should come and talk to me immediately in order to get up to speed.


Texts and materials

The text we will use is Patterson and Hennessy's, Structured Computer Organization, Second Edition. You can find this book at the Jeffery Amherst College Store, or (quite likely) at used-book outlets such as The Option and other on-line venues. This is one of the few well-written CS texts, and is worth having. It will also be the case that the book will provide more in-depth presentation of many of the topics that we cover in lectures. It is strongly recommended that you regularly review the lecture material by reading the relevant text.

There will also be a body of references for the chips that we use in labs. These will be posted in PDF format on the course's Documents page. I will also bring copies to labs, but you may find the online versions easier to keep track of, depending on your organizational proclivities.


Assignments, deadlines, and extensions

There will be a number of labs and problem sets. The deadline for each will be stated clearly on the assignment, down to the minute. The assignment will also state the manner in which you are expected to submit or show your work. It is important to note that late submissions will receive failing grades. Futhermore, failure on any one of the labs may result in a failing grade for the course. The labs are too important to the course not to be completed.

An extension for any assignment must be requested, in writing (email counts as writing), at least 72 hours prior to the deadline. The determination as to whether or not a particular situation merits an extension will be made on a case-by-case basis. Scheduled events are not sufficient reason to warrant an extension. Rather, extensions are intended for unusual circumstances that prevent you from planning your time well in order to meet the deadline. Note that a sudden onset of illness less than 72 hours before a deadline will be treated as a special case.


Exams

There will be three exams in this course:

  1. A one-hour mid-term exam, given around week 7 or 8 of classes, during a lecture hour. This exam will cover the first half of the course.
  2. A one-hour end-term exam, given during the last week of classes, during a lecture hour. This exam will cover the second half of the course.
  3. A three-hour final exam, given during a scheduled final examination slot. This exam will cover all of the course material.

The exams will all be closed-book and closed-note. Again, you are required to be present for the exams at their scheduled times. While there are appropriate circumstances for rescheduling the time at which you take one of the exams (illness, emergency, too many final exams in a brief period of time as defined by the college regulations), these are the only situations in which an exam will be rescheduled. That is, leaving early for spring break is NOT sufficient reason for rescheduling. Do not buy airplane tickets that would require you to leave early for spring break or arrive late from spring break, as this circumstance will not be considered a legitimate reason for rescheduling an exam. The same approach will be taken for the final exam -- Do not plan to leave at the end of the semester before that final exam, as you must be present for it at the scheduled time.


Grading

Your final grade will be determined by a formula roughly like the one below:


Academic dishonesty

You will be expected to do your own work on all labs, problem sets, and exams in this course except where explicitly noted on the assignment. While I encourage you to interact with your classmates and discuss the material and assignments, there is a limit to the specificity of such discussions. I seek to make that limit clear here.

It is acceptable to discuss any assignment for the class with a classmate. You may even discuss your approach to a particular problem, or review relevant material for a problem with another person. However, you may not show another your work, nor see another's work. On programming assignments, that means no sharing of code, whether that be proper, formal, compiling code or mere pseudocode. On circuit designs, that means no sharing of circuits or circuit diagrams. Most importantly, if in doubt, ASK ME. If you are unusure whether or not a particular kind of communication would rise to the level of academic dishonesty, then you should contact me immediately and find out.


Scott F. Kaplan
Last modified: Sat Jan 18 13:38:46 EST 2002