CMSC 411:
  Computer Systems Architecture

CMSC 411





Primary Text

  • J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach (3rd Edition), Morgan Kaufmann, 2003.

Web resources

Hennessy & Patterson Web Resources

Michelle Hugue's tutorials/FAQs page

SPEC performance benchmarks

TPC database benchmarks

Tentative Grading Plan

Your grade will be determined as follows (subject to minor changes):



% each

% total






7 / 8

1.4 / 1.25







1 20 20






  • The final exam will be comprehensive.
  • There will be no makeup quizzes or exams; students with valid written medical excuses will have their other quizzes/exams weighted appropriately to make up the difference. Students who miss quizzes/exams without a written medical excuse receive a grade of zero.


  • There will be one homework per unit with multiple questions.  You will have to turn in homework for grading on paper in class, but only one question will be graded (and you won't know which one in advance).  No late homework will be accepted.
  • You are allowed to work with other students ONLY on homework, and not on the project.
  • The programming project will be done on the Linux cluster in CSIC 3107.  Accounts will be given out near the beginning of the semester.  Information on the Linux cluster is available here.
  • The programming project will be graded based on correctness. A memory leak is incorrect behavior and you will lose points. A program that you spent a lot of time on and "almost works", but doesn't in fact work on any of the test cases, won't get you any points.
  • The project should be submitted by 6:00 pm on the day it is due. No late projects will be accepted.
  • Submissions of the project will be via an online submit program, which will be described in class. The posted deadline for program submission is sharp; standard Unix time of submission is used.
  • I recommend submitting early and often; only the last submitted version of your program will be graded.  In fact, multiple submissions may save you from disaster, since we may be able to recover a submitted version if you accidentally delete a file.
  • You may use any computing equipment you wish (such as your home computer) to develop your programs. However, this is "at your own risk". Your programming assignment must be electronically submitted from the account provided to you for this class, and will be graded based on how it runs on standard Unix/Linux machines. If you make use of a language extension supported on your machine but not under Unix, or if your programming environment doesn't support standard language features supported under Unix, you will run into problems. No alterations to conditions of the assignment will be made to accommodate peculiarities of your other computing resources.

Intellectual Integrity, Academic Honesty, and Cheating

  • The college policy on academic dishonesty is strictly followed.
    All graded materials, except homework, (quizzes or exams or the project) must be strictly individual efforts.
  • We expect you to follow all OIT guidelines for responsible machine usage.
  • Dr. Sussman is the information owner for all accounts in this class, and all files in those accounts may be inspected by him at any time.
  • Allowing another student to examine a listing of your program or examining the listing of another student's program, for any reason, is strictly forbidden.
  • You may discuss only the following with other students:

    The program statement (e.g., “What size inputs did Sussman say we had to handle?'”).
    Syntax errors and features of programming languages (e.g., “How do I declare a file?'” or ”Do I need to terminate the last line in a function with a semi-colon?”).
  • Logging onto another student's account, for any reason, is cheating.
  • Discussion of solutions to a programming assignment must be limited to a discussion of what was discussed in class, in handouts or in the book. You may not otherwise discuss algorithms to be used to solve programming assignments (e.g., you should not ask or answer “Should I use linked lists to store the input lines?”) except to discuss what was said in class about the issue.
  • Attempting to falsely represent the correctness of your program, or to delay other members of the class from completing a programming assignment, is cheating.
  • The standard penalty for any cheating is to receive a grade of XF in the course. This grade denotes failure due to academic dishonesty, and your transcript will be so annotated.
  • You are discouraged, in the strongest possible terms, from making a habit of getting together with another student while you work on a programming project with the idea that you will limit yourselves to discussion of problems such as syntax errors only. There are too many temptations, and if by chance your programs wind up being very similar, you will find it difficult to make a convincing argument that you limited yourselves to allowable discussions of the project.
  • Automatic tools may be used to compare your solution to that of every other current or past student in this class, so it will be very difficult to hide any collaboration. The risk of getting caught is too high, and the standard penalty is way too high (grade of XF). In Fall 1997, Bill Pugh caught 14 students who thought they could hide their collaboration in CMSC 430.
Last updated Tuesday, 28 January 2003 11:37 AM