CS 0447: Computer Organization and Assembly Language
Spring 2017

CRN 10906(A) (CS 0447): Monday & Wednesday, 3:00 PM - 4:15 PM, WWPH 1501 (Posvar Hall)
CRN 19659(B) (CS 0447): Monday & Wednesday, 4:30 PM - 5:45 PM, WWPH 1501 (Posvar Hall)

Course requirements


Announcements Updated April 14, 2017

04/14: Here is a study guide for exam #3.

04/14: Final exam date/time: Section 4:30 PM - 5:45PM is Monday, April 24, 10:00 AM - 11:50 AM in the regular lecture room; Section 3:00 PM - 4:15 PM is Friday, April 28, 8:00 AM - 9:50 AM in the regular lecture room. You must take the exam in your assigned lecture section.

04/14: If you have made arrangements with DRS, please schedule the exam as soon as possible and no less than 3 business days prior to Apr. 24 or Apr. 28.

03/27: Here is a study guide for exam #2.

03/27: Exam #2 is scheduled for Monday, Apr. 3. The exam covers the material from February 6 to March 24. If you have made arrangements with DRS, please schedule the exam as soon as possible and no less than 3 business days prior to Apr. 3.

03/23: I am traveling on Friday and I will not hold in-person office hours on March 24. I'll be reading and replying to email in case you have questions.

03/15: Due to travel, I will not hold office hours on Friday, March 17. Besides, you'll be finished with zombies by then and deserve a little break from 447! Nevertheless, I will be reading and replying to email.

02/27: Due to CS Day moving to March 24 this year, the recitation schedule has been adjusted. Recitation will be held on 3/16 and 3/17; it will not be held on 3/23 and 3/24 to let you attend CS Day. The recitation schedule has been updated with this change.

02/12: My office hours on Monday, 2/13 are moved to 12:00 PM - 1:00 PM.

02/09: On 2/10, my office hours will be changed due to a schedule conflict. I will hold office hours at 1:30 PM - 2:00 PM and 4:30 PM - 5:15 PM.

02/07: A study guide for exam 1 is available.

02/07: Exam #1 is scheduled for Feb. 15, 2017. The exam covers the material from January 4 to February 6 presented in lecture and recitation. If you have made arrangements with DRS, please schedule the exam as soon as possible and no less than 3 business days prior to Feb. 15.

01/17: Both sections are at full capacity (actually, over enrolled). Unfortunately, it won't be possible to clear any more wait lists.

01/17: Due to a scheduling conflict, Exam 1 has been moved to Wednesday, February 15.

01/17: You may turn in Lab 1 to your TA. See the TA schedule below. You may drop the lab in your TA's mailbox or hand to him/her during office hours.

01/08: Lab 1 is available. In the future, the labs will be delivered by Courseweb.

12/18: Both lecture sections are full. If you wish to add into this course, you can contact Angela Ellis (in the CS office) for more information on wait listing for an available seat.

12/18: Note that lecture is not held in Sennott Square. The lecture room is WWPH (Posvar Hall), room 1501.

12/18: You must register for one of the recitations: 10907(A1), 10908(A2), 25625(A3), 19700(B1), 26011(B2), or 19660(B3). The selected recitation MUST match the corresponding lecture section. There will be no "informal" switching of recitations; you should attend the recitation for which you are scheduled.

12/18: First class is Wednesday, January 4, 2017. Add/drop ends on Wednesday, January 18.

Course announcements will be put here. It is your responsibility to check the announcements regularly.


Important Links

Instructor

Dr. Bruce Childers (childers "at" cs.pitt.edu)
6409 Sennott Square
Office Hours: M 11:00 AM - 12:00 PM, F 1:00 PM - 2:30 PM

Due to the total size of the two lecture sessions, I ask that you first contact your TA with questions. If the TA cannot answer the question, then please contact me. Please come earlier, rather than later to office hours. The start and end time for office hours are strict due to other commitments.

Appointments are also available. Please send e-mail to schedule an appointment.

Much of the information on this web page is tentative and subject to change. Watch the schedule and the web page for the latest information.

Teaching Assistants

As a first choice, please try to attend only the office hours of the TA for your recitation. This will balance the work load among the TAs and provide you with less waiting for help. Thank you.

Pamela Delaney
Reciation: M 10:00 AM - 10:50 AM
E-mail: pad82@pitt.edu
Office: Sennott Square 6148D
Mailbox: 5th floor, Sennott Square
Office hours: M 9:00 AM - 10:00 AM; W 1:00 PM - 2:00 PM

Zaeem Hussain
Reciations: F 3:00 PM - 3:50 PM; F 4:00 PM - 4:50 PM
E-mail: zaeemhussain@pitt.edu
Office: Sennott Square 6509
Mailbox: 6th floor, Sennott Square
Office hours: MW 10:30 AM - 12:30 PM; T,TH 2:00 - 3:00 PM

Manali Shimpi
Reciations: M 12:00 PM - 12:50 PM; F 2:00 PM - 2:50 PM
E-mail: mcs116@pitt.edu
Office: Sennott Square 6506
Mailbox: 6th floor, Sennott Square
Office hours: M 1:00 PM - 4:00 PM, T 3:30 PM - 5:30 PM, F 1:00 - 2:00 PM

David Wilkinson
Reciations: TH 11:00 AM - 11:50 AM
E-mail: dww9@pitt.edu
Office: Sennott Square 6404
Mailbox: 6th floor, Sennott Square
Office hours: T 2:00 PM - 4:00 PM; W 12:00 PM - 1:00 PM

The TA(s) is your first source of information. If you have questions about the labs, recitations, exams, class lectures, etc., you should check first with one of the TAs before the instructor.

Description

The purpose of this course is to study the components of computing systems common to most computer architectures. In particular, this class is meant to introduce data representation, types of processors (e.g., RISC V. CISC), memory types and hierarchy, assembly language, linking and loading, and an introduction to device drivers.

Textbook

Computer Organization and Design - The Hardware/Software Interface, John Hennessy and David Patterson, FIFTH EDITION, Morgan Kaufmann. Be sure to buy the correct book edition.

There will also be supplemental material in some lectures -- you are responsible for all information presented in class.

Simulator

We will use a MIPS simulator to run your assembly language programs. The simulator is MARS from Pete Sanderson and Ken Vollmar. You can get the simulator from their web site. I suggest that you install the simulator on your computer as you'll need it throughout the semester.

We will also use a logic simulator, called Logisim, in the second half of the semester. This simulator will be used in the last course project on how to implement a MIPS processor. You can get Logisim from this web site.

Requirements and Grading

The course includes exams, labs, and programming and circuit design projects. No extra credit will be offered. The grade distrbution is:

You may ask to have an exam, project or lab regraded. However, the entire exam, project or lab will be regraded. This may or may not result in a grade change, either up or down. To have an assignment regraded, you must hand in the item with a typewritten paragraph explaining what was not graded correctly. You must ask for the regrading by the next class period after the project, lab, or exam was returned. There will be no exceptions to this requirement.

Exams

There will be three exams: two mid-term exams and one final exam. The final exam is comprehensive: It covers all material in the course. The tentative exam dates are listed on the schedule. The final exam date is set by the University. If you are taking more than two finals on the same day, you must talk to your instructor at least two weeks before the final exam to make accommodations. Final exam dates are already known for all hourly courses; consult the University Registrar's course schedule and web pages for details.

You must take all exams in the lecture session for which you are registered.

Exams are closed book and an individual effort. You may use a simple non-programmable calculator. The use of simple calculators is recommended: The exams will require computing many values and it will be hard to do so without a calculator.

Labs

Labs will be conducted during recitation. The lab assignments will be distributed in recitation and turned in electronically by the due date stated on the lab. A weekly short quiz will also be given in lab. More information about the labs and quizzes will be given in the first recitation. A solution will be posted on the TA's web site for each lab and quiz within one to two weeks of the due date.

There will be twelve lab sessions; the lowest two lab grades will be dropped (i.e., you can turn in two labs without penalty).

You are allowed to collaborate with a partner in the lab unless noted otherwise. However, each person must turn in their own copy of the lab, with the name of their partner. Both names (your name and your partner's name) must appear on the assignment. Quizzes are individual effort.

Projects

There will be two projects -- one programming project and one design project. The programming project will require that you write a significant assembly language program (several hundred lines of assembler). The design project will require you to implement a significant logic circuit (a simplified variant of a MIPS processor).

You must follow the requirements given in the projects to receive partial credit.

The projects will be posted on the CS 447 web site on the day that they are assigned. The TA's web site may also give hints about the more difficult problems. If you have questions, be sure to ask early. There's no guarantee that we can reply to questions at the last minute before a late night submission deadline.

Solutions will not be provided for the programming and design projects.

You are responsible for visiting the main course and TA web sites to get the projects and hints.

Late/Early Assignments

Illness and other compelling reasons: A late assignment (exam or project) with a valid excuse according to University rules, such as an extended illness or hospitalization, will be accepted up to one week late without a penalty. Arrangements must be made in advance when possible; written documentation of the compelling reason must be provided.

Voluntary late projects: A project may be turned in late for any reason, but it will be penalized by 20% for each day it is late.

Voluntary late labs: Because two labs can be missed without penalty, voluntary late labs will not be accepted.

There will be no early exams. Make up exams must be pre-approved. No make up exams will be given that do not meet University rules and have proper (written) documentation.

All make up work (exams, projects) must be completed within one week of the original assignment.

Under extraordinary circumstances, such as an extended multi-week illness, other accommodations can be made for the course and this policy can be amended to permit some flexibility for completing the missed work.

Collaboration

YOU MUST NOT POST ANY ASSIGNMENT (LAB, PROJECT) TO ANY PUBLIC OR SHARED WEB LOCATION. IF YOU POST SOMETHING, THIS WILL BE CONSIDERED IN VIOLATION OF THE POLICY ON COLLABORATION.

All exams and projects (unless otherwise noted) are individual efforts. For projects, it is acceptable to talk with a fellow student about how to approach an assignment. It is not acceptable to collaborate on the actual assignment, such as writing a program together or reviewing each other's logic design. As noted above, you may collaborate with one other person (i.e., your lab partner) on a lab provided both names are listed on the assignment.

Viewing, copying or modifying assembly language or logic projects from previous offerings of CS 447 is considered collaboration, i.e., it is not allowed. If you are repeating the course, you may use your own previous project to help guide you in the new project. Similarly, be careful how you use Google. Using code or logic solutions from the web or other sources is collaboration. This kind of collaboration is not allowed by the policy of individual work. Be sure to secure your work; it is your responsibility to properly set permissions on your files, avoid losing USB drives, leaving print-outs on printers, etc.

Any deviation from the policy of individual work is considered cheating. The first case of cheating will result in a 0 for the assignment. A second case will result in an F for the course. If warranted, the appropriate Dean's office (ECE or FAS) will be notified. All parties involved in an incident will be considered to have cheated.

If you have any doubts about what is "cheating", ask the instructor for clarification before you do it. The instructor will make the final determination of what is considered cheating.

We may use automated techniques to easily detect cheating.

Attendance

Attending class is vital to success! It is unlikely you will do well in the course unless you attend lectures. You are responsible for all material presented in lecture, including material not directly covered in the textbook. If you must miss a class, you should ask your classmates for course notes. The instructor will not provide course notes. Extra credit may be occasionally offered in class.

There are three recitations. You should direct your questions to the TA for your registered recitation. There is no switching allowed between recitations unless you have the permission of the instructor. Lab space is very limited so we will strictly follow this policy.

File Backups

It is your responsibility to backup your work regularly. Please consider using reliable and multiple ways to protect your files! The University offers space that you can use for backups through Box, if you like. Google Drive and DropBox also work well. You can even email the assignment to yourself occasionally to create a backup. No extensions for assignments will be approved due to failed laptops, hard drive crashes, lost USB drives, or other calamities that lead to lost or corrupted data. Per the policy on voluntary late assignments, you may turn in a project up to five days late (with a penalty), which should give sufficient time to recover a lost/corrupted project.

Cell Phones, Laptops, Tablets (& other electronic devices)

Turn off your cell phone, tablet, laptop, etc., before lecture starts. If you want to use a laptop, tablet, cell phone or recording device to take notes, you must ask the instructor for permission.

Note for Students

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact the Office of Disability Resources and Services, 216 William Pitt Union (412-648-7890), as soon as possible in the term. They will verify your disability and determine reasonable accommodations for this course.

Please look at the web pages for the joint BS/MS Computer Science program and the co-op program.

There are also many wonderful opportunities for graduate study in computer science. Ask the instructor if you'd like to know more about graduate school. It's a lot of fun!