CS447: Spring 2010

Overview

Welcome to CS447, Computer Organization and Assembly Language. The goals of the course are to understand how software is run on a processor; to gain the ability to write efficient programs in assembly language and understand how instructions are executed; to understand a simple processor design; to gain knowledge about fundamental components of a computer. Taking MIPS as an example, we will study processor organization (hardware) and write programs (software) in assembly language. We will also study how numbers are represented by computers and computer arithmetic, as well as performance metrics to evaluate different hardware and software implementations.

Class Times

Lectures Labs
MW 4:30-5:45pm, Lawrn 203 M: 6-6:50pm (11294) & F: 11-11:50am (12296), SS 5505

Contact information

Instructor Email Office Office Hours
Prof Jan Wiebe wiebe [at] cs.pitt.edu Sennott Square 5409 T: 3-4pm; TH 2-3pm; or by appt (send email)

Teaching Assistant Email Office Office Hours
José Baiocchi Paredes baiocchi [at] cs.pitt.edu Sennott Square 6404 W: 2-4pm; T,TH: 4:30-6:30pm

Textbook, Course Materials, and Courseweb

Computer Organization & Design (Patterson & Hennessy) 4rd Ed., Morgan & Kaufmann, 2009.

The class will cover sections of Chapters 1-4 and Appendices B, C, and D. The schedule will list the specific sections covered as the class progresses. Also, some additional material will be covered in lectures.

Course materials will be distributed via a course web page http://www.cs.pitt.edu/~wiebe/courses/CS447/Sp10 including syllabus, software, schedule, etc. The schedule links to lecture notes, reading assignments, homework assignments, programming assignments, labs, and solutions.

We will use the MARS MIPS Assembler and Runtime Simulator. You can download the simulator and tutorial materials here

Grades will be available on CourseWeb at http://courseweb.pitt.edu . We will also use CourseWeb for submission of your programming assignment solutions (to the digital dropbox).

Prerequisites

CS 0445 - Data Structures and its prerequisites; CS445 and CS447 may be taken concurrently.

Course Requirements

Work Weight Comment
weekly lab sessions 15% Weighted equally
homework and programming assignments 25% Weighted equally
2 term exams 30% Weighted equally
Final exam 30% Cumulative

Lab Sessions

Lab sessions will be held during recitations (a couple will be held during lecture). You will work in pairs. Variety is the spice of life, so we'll switch up partners periodically. Together, you'll work through examples and explore memory allocation, number representation and computer arithmetic, instruction execution, performance evaluation, processor control, etc. The lab sessions will help you learn the material and will also give you valuable experience explaining things to each other.

The labs will be graded S/U (satisfactory/unsatisfactory). You'll earn an S grade for a lab if you attend the session, work with your partner, and complete the lab with reasonable answers. If needed, you can finish the lab after the session. Labs are due one week from the session. Solutions will be made available on the course schedule.

Homework and Programming Assignments

Homework and programming assignments will receive numerical grades. You may discuss the assignments and help each other figure out how to approach the assignment in general, but you must actually answer the questions and write/debug the code by yourself. The assignments must be your own individual work. See the section below on academic integrity.

Homework should be submitted in hardcopy, in the TA's mailbox, on the sixth floor of Sennot Square.

Programming assignments should be uploaded to courseweb at http://courseweb.pitt.edu via the digital dropbox. The assignments will specify naming conventions for your submitted files. Your filenames must follow these conventions. The reason for conventions is that they enable the TA to maintain the files in an organized way.

Exams

The questions on the exams will all be similar to something we covered in lecture, on a homework or programming assignment, or on a lab. To study, read the text, and then use the lectures, assignments, and labs to focus studying. Practice the examples without looking at the answer, and then check your answers against the lectures, assignment/lab solutions, and simulator, as appropriate.

See "What will be on Exam X" on the schedule to see what will be covered on Exam X.

Exams 1-2 are not cumulative. The final exam is cumulative.

You may bring a copy of the green card that comes with the book with you to exams. Also, some figures from the book will be given to you on some of the exams (this will be indicated in the "What will be on Exam X" files on the course schedule). Otherwise, the exams are closed book and calculator/computer-free.

The material gets more complex as the course proceeds, and later exams build on the stuff covered in the earlier exams. So keep up!

Other Policies and Notes