computer organization
c m s c 311  
s p r i n g   2 0 0 2  

  Meesh 311 Page
  Project 1
Project 2
Project 3
Project 4
  Exam Dates
Exam Topics
Exam Solutions
  Lecture Topics

Final grades posted to the system. Hopefully, it updates in a reasonable amount of time. Basically, projects helped a small number of people (and only 1/3 letter grade), and I didn't penalize for having really bad projects. Grades were computed by scaling 25% exams (X 2 for both exams) plus 35% on the final, and scaling that to 140. I could discuss grades sometime next week. Look for hours. (Those who had makeups will get grades by tomorrow).

Getting closer. Makeup to Exam 1 has been graded. Final exams almost all graded (except makeups). Projects need to be graded, so I should begin computing scores sometime this evening.

Sorry, an emergency issue came up in CMSC 214. I need to deal with that now, but will attempt to have grades computed by Wednesday evening. Look for the webpage to see when grades have been computed.

Final Exam: CSS 2324 (usual class room)
Wednesday, 10:30-12:30

Project can be turned in by Friday. Please submit a README that explains what you did in your project.

Monday, May 20, 2002: REVIEW SESSION from 6-8 PM at CLB 0111.
Makeup FINAL exams: See me at 10:20 AM on Monday morning, room 1127 AV Williams

Now a DATAPATH control handout. Click on Tutorial. (Next time, show up to review session, and you could have asked about this).

Click on Exam Topics for a brief list of final exam topics.

I will hold office hours at the TA room from 1-3 PM, if you have questions.

Summer 2001 Final exam posted. Click under "Exam Solutions" (no solutions available, however). Some worksheets on caches now posted (updated as of 11:45 PM).

Early cache material ready for studying. Click on the Quiz link on left. More to be posted. Also, read the book on the subject.

Study material should start to appear this evening and Saturday. This should involve data path and cache. Make sure to read the handout on floating point addition and multiplication. There will be assembly language programming, but I should print out a summary of commands.

ALSO, check the primary. A student noticed an error. I will run your output on both new and old, but use the new, if possible.

Some students are going to be unable to make primary by the time the exam rolls around. It would be nice to do the following minimum. Get your P2 to read the primary input and produce the output that was expected from project 1. This means, you wouldn't have to implement any commands. If you do that, you will be penalized 1/3 of a letter grade maximum (which means, most of you do not have your GPA affected), and will not drop below a C- (I will determine cutoffs based on exams first).

Read the FAQ for more details (link for FAQ below).

Project 2 FAQ (LINK fixed)

(5/14) Project 2 can be submitted now. Policy on how grades for project will count to your grade will be posted by Wednesday.

To submit:

  ~ch311002/submit  p2.tar  2
Please submit a file called README. In it, explain how much you were able to complete. Also, if your project 1 handles more cases than your project 2, then indicate how to run your project 1.

I would like to run ONLY p2 if possible, and have the first part count for P1.

(5/12) Primary posted (send email if errors). Check project 2 link. On Tuesday, I will discuss how I plan to compute grades with respect to projects

(Basically, I will compute grades based solely on exams. Then, I will also compute grades with projects. If you did P1, but not P2, but you pass the course, then you will pass the course. If you didn't do either P1 (satisfactorily) nor P2, and you barely passed, you won't pass the course. Not doing P2 will most likely mean a reduction of 2/3 letter grade, but will not fail you, if you are passing when the exams are considered). Again, come to class Tuesday. I want students to do the projects, but that failing to do P2 will not necessarily mean failing the course.

(5/7) Interrupt part of project 2 ready. Primary to be posted over the weekend. In the meanwhile, test on your own input files.

(5/6) Your project should run, if I type:

p1 -d 1000 -t 2000 < input_file
where input_file contains the assembly language code. There is no longer any assem

(5/6) Those of you who submitted last night has a message saying it was 1 day late. This is now corrected, and you now have ontime submissions.

(5/5) Preview: Project 2 is kinda ready. Should be officially ready by class time Tuesday. Take a look if you want to think about what to do.

(5/5) Note: you only need a file called p1.temp. The makefile should mv that file to p1 to "create" it. (this is for people using Java/perl, etc.).

(5/5) Creating a makefile for Java/Perl.

A makefile for Java looks something like:

     mv p1.temp p1
     chmod 755 p1
where is you main java file (it can be named whatever you want) and where you have a "script" called p1.temp (the contortions are needed because if you have a p1 file, it will say that it exists, and won't necessarily do the correct thing).

The job of the makefile is to compile the Java code (not necessary if you have Perl code) and to make sure a script called p1 is "created" with the correct permissions to run.

In p1.temp you will have a simple script that looks like:


java main $*
where main should be replaced by the name of your main Java class (which doesn't have to be main).

In Perl, you can leave out the first line of the makefile since the file doesn't need to be compiled. The contents of p1.temp should have something like $*. You may also want to add a chmod 755 (if that's the name of perl program) to the makefile.

Make sure you TEST your code, before submitting (copy to a temp subdirectory, untar, run "make p1", etc.).

z (5/3) Project 1 is due Monday at 11:59 PM.

(5/3) Final breakdown of percentages should be posted soon. Unofficially, it is 25% for each exam, 35% for the final, 7.5% for each of two projects.

(5/3) How to submit your project.

  1. Make sure each file has your name, login ID, etc. and comments at the top, so we can see who it is when each file is printed.
  2. First, you must create a tar file containing all your files. E.g.
      tar cvf p1.tar <files>
    Make sure your tarfile contains a file called makefile or Makefile.
  3. Second, make sure this file creates an executable called p1 (no other name, please).
  4. Third, make sure you have tested this. You should do this by:
    • Creating a temp subdirectory in your class account
    • Copy your tar file to temp
    • Untar the file
    • Run "make p1" (which should produce p1, either as a real executable, or as an included script as explained in an earlier announcement)
    • Type p1 -d 1000 -t 2000 < input where input is a sample input file. See that it produces reasonable output. Note that -d and -t could be in different order and also have different values from 1000 and 2000.
  5. Fourth, submit it by entering:
      ~ch311002/submit  p1.tar  1
    where p1.tar is the name of your tar file, and 1 is the number of the project.
There is no primary input. Anything that creates a p1 executable will be accepted.

(4/28) Part 2 is posted. It's due a week from now with Part 1. Wait for a notice when the "submit" program is working.

(4/21) For those of you doing the project in perl or java, create a file called p1. The file should look like:


java main $*
or for a perl input
#!/bin/csh $*
This is a shell script where $* means to copy-and-paste command line arguments and run the line. Thus, if you type in:
p1 -t 1000 -d 2000
then this will be pasted into the script as: -t 1000 -d 2000
and then run that line of code. You should also include a makefile whether you do it in java or perl. For perl, have the makefile do something silly. The easiest thing to do is:
    chmod 755 p1
That way, you know the script has the correct permissions to run.

Make sure that p1 is executable. To do that, type the following command at the command line (you only have to do this once).

chmod 755 p1
To test the command, you can try:
p1 -t 1000 -d 2000
and see if it works.

(4/21) Project 1 due April 28 at 11:59 PM. There is a part 2 yet to be posted (should be easier that part 1). Project 2 will be May 12 (which will be two weeks). No project 3, etc.

(4/16) Exam 2 on Thursday. Read about timing diagrams (one of the quizzes has it). I should be around 2:30-3:30 tomorrow for 311 office hours.

(4/13) New Quizzes in Quiz Section. Exam 2 and solutions posted in Exam Solutions section. List of topics in the posting account. See ~/Exam/README.exam2 in ~ch311001.

(4/12) Project 1 is due April 21. More information to come.

(4/5) Part 1 of Project 1 posted. Due April 14. Part 2 should be ready by Monday.

(4/4) Information about Makeup is posted in the posting account. cd ~ch311001/. Go to the Makeup directory. Makeup should be held from 5-6 PM next Thursday (on the 11th) in the classroom. Starting to work on P1....see info on Friday.

(4/2) Exam 1 Solutions posted (as PostScript). Click on "Exam Solutions" on left.

(3/21) A very preliminary version of P1 has been posted. Click on Project 1 link on left.

Exam Information:
This Thursday (Feb. 28): CSS 2324, 3:30-4:45 PM (same room and time as lecture)

Closed books, closed notes, no calculator, open brain.

The exam will be about half Meesh exam, half mine, in roughly the style of the sample exam given out. Please check office hours for Lisa, Kinga, and Ransom, as Charles may not have enough time to answer questions on Wednesday.

(Feb 28) In class, I said there would be no "carry lookahead adders" (which was on the sample exam), NOT no "ripple carry adder". Those are different adders. I went over the ripple carry adder in two different lectures, plus it's in CMSC 250. Next time, topics will be in the file, and that's what you're responsible for.

(Feb 27) Jason B. points out more errors. These have now been corrected.

Question 20:  Product of sums ... A list of one or more sum terms
connected by ORs ... <-- should be ANDs
  ....  A sum term is a list of literals where each variable shows up
exactly once, connected by AND ... <-- should be OR
Questions 21:  Minterm has an output of 1 ... not 0.
               Maxterm has an output of 0 ... not 1.
Question 28:  ... NO ANSWER

(Feb 26) Quiz 5 on bitwise operators posted.

(Feb 26) In posting account is a file called "meesh", which has info about accessing book problems/solutions. Also, Jason points out the following errors in the solutions:

Quiz #1
    Question 1:  23 base 28 = N ... not M
    Question 2:  999 - 23 != 987
    Question 3:  999 - 23 != 987
    Question 10:  No solution for "smallest positive value" question.  I
believe this is trivial ... = 0.
Quiz #2
    Question 2-B:  You partitioned the bitstring really wierd ... the
LSB 1 is "lost" somewhere.  The answer is 137357.
This should be corrected now in the posted version. The posting account should have all solutions now. There is also some comments about test topics in Exam directory (README.exam1).

(Feb 25) Quiz posted. First four quizzes listed. Solutions coming soon. Use Meesh page for additional resources. More info later today. Also posted in posting account ~ch311001/Quiz/