computer organization
c m s c 311  
s u m m e r   2 0 0 3  

Course Syllabus

Syllabus may be subject to change. Changes will be dated and noted, and announced in class, as well listed here.

Instructor


Name Charles Lin
Section 0101
Lecture Time  
Section 0101 11-12:20 Monday-Friday
Email clin@umd5.umd.edu
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.

Summer session 1 meets from Monday June 2, 2003 through Friday, July 11. There is a holiday on Friday, July 4.

Office Hours

MWF 12:30-1:30, and by appointment. Charles holds his hours in AVW 1151 in the TA room. Try to email ahead of time if you want to drop by.

Mohamed has office hours on 10-11 on Mon-Wed, and from 12:30-1:30 on Tu-Th. He holds his office hours in AVW 1151, the TA room.

Description

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.

Texts

Text:
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). I will provide additional class notes, as well.

Teaching Assistants

The TAs for this semester are:

Office Hours

Mohamed has office hours on 10-11 on Mon-Wed, and from 12:30-1:30 on Tu-Th. He holds his office hours in AVW 1151, the TA room.

Webpage

Much of the course material will be available on the webpage. This webpage is located at:
    http://www.cs.umd.edu/class/sum2003/cmsc311/
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 ~sch1101.

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. The better of the two grades is your final grade, provided that projects meet minimum requirements.

Method 1

If you earn enough points from the projects assigned (the minimum cutoff will eventually be posted in the webpage and this syllabus), then you will be eligible to have your grades computed using Method 1.

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

In addition to meeting the minimum point cutoff, you must attempt at least 3 of the 4 assigned projects. This will be referred to as "meeting minimum requirements".

Method 2

Each project will be weighted a certain fraction of the total project grade, to be determined by the instructor.

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

Note: doing the projects may not always improve your grade.

If you meet minimum requirements on the projects (finish 3 of 4 projects, plus earn enough total points), then your grades will be computed based on the best grade of Method 1 and Method 2. The idea is to make sure you get something out of the projects, but not let your project grades hurt you.

However, should your grade from Method 2 be more than one letter grade higher than from Method 1, then you will receive one letter grade higher. This is again, to make sure that exam grades play an important enough role in your final grade. There may be exceptions to this policy if you do a substantive project. Those exceptions are at the discretion of the instructor.

If you do not meet minimum requirements, then your grades will be based on Method 2 (which presumably would lower your grades). There is at least a 1/3 letter grade deduction for not meeting minimum requirements.

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 in the course. This ensures that the tests still have meaning in the class.

If you wish to do a more substantive project, we can weight the project to be a higher percentage (up to 40% of the grade). You will need to present a project proposal and have it approved by the instructor. This project is generally a semester long project.

Although your grades may be computed as the best of Method 1 and Method 2, you should realize that doing the projects does NOT automatically guarantee your final grades will improve. I generally expect only students who are MUCH stronger programmers than test takers to have grades that will substantively improve.

Homeworks/Readings

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.

Projects

There are expected to be 4 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 25%. This needs to be worked out with the instructor in advance, and the details written down and agreed upon.

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.

Exams

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.


VIOLATIONS OF ACADEMIC HONESTY INCLUDE:

  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.


IT IS THE RESPONSIBILITY, UNDER THE UNIVERSITY'S HONOR POLICY, OF ANY STUDENT WHO LEARNS OF AN INCIDENT OF ACADEMIC DISHONESTY TO REPORT IT TO THEIR INSTRUCTOR.

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.

Course Topics (SUBJECT TO CHANGE)

This list may vary according to the pace of lecture topics. A lecture is defined to be a 75 minute period of class time. The number of lectures is only approximate. Some topics may not be fully covered due to time constraints.

Overview (1 lecture)

Data Represenation (5 lectures)

Low-Level C Programming (3 lectures)

Assembly Language (3 lectures)

Combinational Logic (3-4 lectures)

Sequential Logic (3-4 lectures)

Datapath and Control (5-7 lectures)

Memory (2-3 lectures)

Random Topics

Pipelining (2 lectures)

Web Accessibility