computer organization
c m s c 311  
f a l l   2 0 0 2  

(as of September 18, 2002)


Name Charles Lin
Section 0101
Lecture Time 5:00 PM-6:15 PM Mon/Wed
Phone 405-2709

Only call the instructor for administrative matters (e.g., you are sick and can't make the exam). You should not call about project debugging/homeworks or extensions. See TAs for that. Email is generally preferable, instead of calling.

Office Hours

W 2:15-3:15, Th 11:15-12:15, F 2:15-4:15


Prerequisite: CMSC 214 with a grade of C or better and CMSC 250 with a grade of C or better and permission of department.

Topic Introduction to assembly language. Design of digital logic circuits. Organization of central processors, including instruction sets, register transfer operations, control microprogramming, data representation, and arithmetic algorithms. Memory and input/output organization.


Computer Organization & Design: The Hardware/Software Interface, David Patterson & John Hennessy, Second Edition, Morgan Kaufmann, 1997. ISBN: 1558604286

This is the required textbook. Sorry that it is so expensive. You may wish to share textbooks with a friend or buy a used textbook. This is NOT the same textbook as the one used in CMSC 411 (although the authors are the same).

Teaching Assistants

The TA for this summer is:

Office Hours


Kinga and Stuart hold office hours in AVW 1151, which is the TA room. Kinga's office hours are 12:30-2:30 on Tuesday and Thursdays. Stuart's office hours are 1-3 PM on Mondays and Fridays.

Dr. Preston's TA is Konstantinos Bitsakos, and he holds his hours 10:15-12:15 on Tuesdays and Thursdays.

Dr. Kruskal's TA is Anuradha Penmetcha, and she holds her hours 1-4 on Mondays.

These TAs are available for all courses. However, 311 TAs are better for project questions, which can also be emailed to the instructor.


Much of the course material will be available on the webpage. This webpage is located at:
It is your responsibility to read the webpage often.

In addition to this webpage, Dr. Hugue has provided a large number of resources on her main CMSC 311 including old homeworks, exams, etc.

Visit Meesh's 311 Webpage

Posting Account

The posting account is on the DC cluster. It is ~chf11001.

Course Grading Policy

Your grade will primary be based on three exams. They consist of two midterms and a final exam. The breakdown of the midterms and final is: There are occasional HWs and quizzes, but they are not counted in your final grade.

Your final grade is also based on projects given throughout the semester.

Basically, two grades are computed.

Method 1

If you pass the primaries of the required projects (currently, Project 0 through Project 4 are "required"), plus possibly passing secondaries (this will be decided during the semester), you will receive a "check" indicating you have completed the minimum requirements of the projects.

You will have grades computed based on the percentages of exams given above.

Method 2

You will also be given points on the projects. Your grades will be based on your relative ranking with other students in the course. More than likely this means grading on some 100 point scale (or similar), and then determining letter grades for projects.

The project grades will then count as 20% of your grade. The scores are combined with exam grades (exams are scaled to 80%), and then your grade with projects are counted.

If your projects do not pass primary, then Method 1 is used, and deductions are taken on your letter grade. Basically, there will be a scheme for determining the weight of each project, that number will be scaled and the deductions taken. This may cause you not to pass the course.

Also, if you receive an F using Method 1, then no matter what you do on projects, the best you can do is a D.


Homeworks are not required in this course. However, experience has shown that students who do not prepare for exams by working on homework problems traditionally do very poorly on exams. As you progress in your academic career, it should no longer be mandatory that homeworks be required, and you should learn to keep up.

Solutions to text problems and additional HW problems are available on Dr. Hugue's CMSC 311 website.

Additional problems may be provided to help you prepare for exams.

In addition, you are expected to read the textbook. While many students find such a task painful (often because English is a second language), it is, nevertheless, an important skill to learn, and it's better to learn now than later.


There are expected to be 5 required projects. The topics are shown below.

Then, there is the optional projects.

The optional projects may make the project grade worth more than the 20%. They are likely to be graded independently of the other projects (for example, if it's worth 10% more, you will get a numeric grade for the 10%). Generally, if you get something working that looks reasonable, you will get a good grade on this section.

Project Late Policy

There will be a late policy on projects, which will be stated in each project description. If other courses are causing problems for your submission, let the instructor know, and perhaps something can be worked out.


There will be two midterms and a comprehensive final exam given on the dates shown earlier. The midterms will be given in class. The location of the final exam will be announced in class and in the webpage. There may be makeups given to students who are unable to attend the exam. Under most circumstances, the makeups will be given within a week of the original exam.

Makeups will only be given to students with valid documentation. If you are sick, you must have a doctor state dates of incapacitation. In particular, it must state (1) the date which you were incapacitated, (2) and that you were too sick to attend classes).

You must contact the instructor via email/phone as soon as possible. If the instructor is contacted over a week after the exam has been given, you may receive a 0 on the exam, for failing to contact the instructor in a timely manner.

Requests for regrades on an exam must be made IN WRITING within a week of the exam being handed back. If such a request is not made within a week, the instructor reserves the right not to regrade the exam.

Academic Honesty Statement

Please carefully read and consider the Computer Science Department policy regarding the use of computer systems, and the Office of Information Technology's policy regarding acceptable use of computer accounts provided for instructional use, in the Spring 2002 issue of the departmental newsletter, CS Tid-Bits, handed out with this syllabus. Note in particular the penalties for impermissible cooperation on programming projects, which is a violation of the University's Code of Academic Integrity. Any evidence of unacceptable use of computer accounts or unauthorized cooperation on exams or projects will be submitted to the appropriate authorities or to the Student Honor Council, which could result in an XF for the course, suspension, or expulsion from the University.

NOTE SPECIFICALLY that projects are to be done INDIVIDUALLY, unless otherwise specified by your instructor IN WRITING TO ENTIRE CLASS (verbal assurances don't count). For academic honesty purposes, projects are to be considered comparable to an extended take-home exam. That is, any cooperation or exchange of ideas which would be prohibited on an exam is also prohibited on a project assignment. Working IN ANY WAY with another student will be considered a violation and WILL BE REPORTED to the Honor Council. Students may not discuss pseudocode, design of a program or of individual functions, coding of individual functions, or any high-level code with anyone except the instructors and teaching assistants. Should you have difficulty with a programming assignment you should see your instructor or the teaching assistants in office hours, NOT solicit help from anyone else in violation of these rules. Students are welcome to study together or to receive help in learning the course concepts from any others, but exams and projects are to be solely and entirely each student's own work.


  1. failing to do all or any of the work on a project by yourself, other than assistance from the instructional staff.
  2. using any ideas or any part of another student's project, or copying any other individual's work in any way.
  3. giving any parts or ideas from your project, including test data, to another student.
  4. having programs on an open account or on a PC that other students can access.
  5. transferring any part of a project to or from another student or individual by any means, electronic or otherwise.
  6. publishing any of your code publicly (e.g., via a webpage) which other students can access, even if the project has already been completed.


Working in Teams

From time to time, you will be permitted to work in teams on projects. Teams will almost always be in groups of two. You should submit a single project, with both your names on it. The rules of collaboration are that you can talk and code as much with your team-mate, as you want. But you must observe the rules of no collaboration with anyone else.

Also, for your benefit, you should indicate who your team member is early on. Thus, if you are a team member, and you change your mind, and break the team up, and there is similar code between you and a former team member, you will still be considered violating academic integrity.

You may also work individually on projects. For now, working individually does not confer any benefits. However, this may change, depending on the project description.


This list may vary according to the pace of lecture topics.

Overview (1 lecture)

Number Represenation (5 lectures)

Combinational Logic (5 lectures)

Sequential Logic (5-7 lectures)

Assembly Language

Datapath and Control (4-5 lectures)


Random Topics

Pipelining (2 lectures)