Computer Systems Organization (CSCI-UA-0201.001/002)
Spring 2014 -- Section 1 (Honors) and Section 2
Professor: Andrew Case

Write first in an easy-to-understand pseudo-language; then translate into whatever language you have to use.
- The Elements of Programming Style (Kernighan & Plaugher)

General .:. Schedule .:. Assignments .:. Resources .:. Help

Cooperation, Acknowledgements, Cheating, and Academic Integrity

All students should submit their own work. Open discussion about topics is strongly encouraged (with associated class forums, mailing lists, tutors, fellow students, and the instructor). HOWERVER, THE WORK SUBMITTED SHOULD BE YOUR OWN. If you base your work on an idea from a source other than yourself, you are required to reference that source in your program comments. If you're not sure if it's acceptable or not, please ask your instructor! Cheating (submitting work that is not your own) can result in an automatic failing of the course. Here are examples of proper discussion, improper discussion, and acknowledgements. In addition, please see the statement of academic integrity, that all students must abide by.

It is not considered cheating to clarify vague points in the assignments or textbook, or to give help or receive help in using the Linux system, compilers, debuggers, profilers, or other facilities.

LabDue DateTutorial Date
Lab0: RK LabFeb 19th @ 11:55pmTues 2/11 12:30-1:45pm @WWH109 (alternative)
Lab1: Bomb LabMar 07th @ 11:55pmTues 2/25 12:30-1:45pm @WWH102 (alternative)
Lab2: Buffer LabMar 27th @ 11:55pmTues 3/11 12:35-1:50pm @WWH1302 (alternative)
Lab3: Cache LabApr 15th @ 11:55pmTues 4/1 12:30-1:45pm @WWH109 (alternative)
Lab4: Malloc LabMay 14th @ 11:55pmTues 4/22 12:30-1:45pm @WWH109 (alternative)

Late policy: Each student will automatically receive 5 grace late days for the entire semester. However, one should not submit any specific lab more than 3 days late.


Unless otherwise stated, submit all hw assignments via NYU Classes (accessible through NYU Home.)

Lab tutorials

The TAs will be holding tutorials for each of the assigned labs. Please find above the dates/time/place of each tutorial.

VirtualMachine (VM) lab usage

You must complete all labs on the given virtual machine. If you do not have a personal desktop or laptop on which to install the virtual machine, please contact the TA. To install the virtual machine on your computer, take the following steps.
  1. Download the Virtualbox virtual machine monitor. Choose the right binary to download according to the type of operating system running on your laptop.
  2. Download the class virtual machine image CSO-12.04.ova. This file is fairly large (1.3GB), so you need to be patient.
  3. Install and launch Virtualbox. On the Virtualbox application toolbar, under the Menu item "File", click on "Import appliance...", and choose the previously downloaded CSO-12.04.ova file when prompted.
  4. Leave the default settings. You do not need to change anything.
  5. After importing, start the virtual machine named by pressing "START" key and you are done. The login name and password have been given to you in class.
  6. [Optional] Install the Guest Additions (allows full screen resolution and other features)
    1. From the VirtualBox VM menu: Select Devices->Insert Guest Additions CD
    2. Run: sudo /media/VBOXADDITIONS_*/
    3. Reboot the VM and switch to full screen mode!

Coding style

When grading your labs, we will consider your coding style in addition to code correctness. Please refer the grading criteria for proper coding style.

Technical Resources

© 2010-2014 Andrew I. Case