CS 447: Computer Organization and Assembly Language
Spring 2024
Class No. 23403 (CS 0447-1070): MW 09:30 - 10:45 CHVRN 135
Description
The purpose of this course is to study the components of computing systems common to most computer architectures. In particular, where the hardware and software interface.
We will introduce data representation. Binary, why binary, and how numbers can be used to represent anything through encoding of information.
We’ll look at a low level programming language: assembly language, to gain insight on how computers work internally.
And finally, if you trust me, and assume transistors are real! We’ll show you computers are real :) And even build one from using transistors, to a fully working CPU.
Prerequisites
Before enrolling in this course, you need to have completed CS 0445 - Algorithms and data structures 1 - or equivalent.
Schedule
Go here for the day to day schedule and lecture materials.
Textbook
Computer Organization and Design - The Hardware/Software Interface, John Hennessy and David Patterson, FIFTH EDITION, Morgan Kaufmann.
The book is not strictly needed as far as learning the concepts, and I’ll say that the book is not actually required and is more of a supplemental material for furthering your understanding and knowledge.
As always, you can find this textbook in most libraries and definitely will be reserved in Hillman.
Grades
The course includes exams, labs, and programming and circuit design projects. The grade distribution is:
- Participation: 5%
- Labs (Around one a week, lowest two dropped.): 20%
- Projects: 10%+15%+15% = 40%
- Exams: 15%+20% = 35%
You may ask to have your work regraded. However, the entire work 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, referencing any materials that support your claim (e.g. book page, slide number). You must ask for the regrading within 1 week after the assignment was returned. There will be no exceptions to this requirement.
Grading Scale
97%+ | A+ |
94-96% | A |
90-93% | A- |
87-89% | B+ |
84-86% | B |
80-83% | B- |
77-79% | C+ |
74-76% | C |
70-73% | C- |
67-69% | D+ |
64-66% | D |
60-63% | D- |
<60% | F |
Exams
There will be two exams: one mid-term and one final exam. The final exam is semi-comprehensive. The tentative exam dates are listed on the schedule. Exams are closed book and an individual effort.
Specific instructions for each exam will be posted at a closer date.
FAQ (Feel free to share ;):
-
Will the grades be curved?
- No!
Labs
Labs will be conducted during recitation. The lab assignments will be turned in electronically by the due date stated on the lab. A weekly short quiz may also be given in recitation. More information about the labs and quizzes will be given in the first recitation. A solution will be posted for each lab and quiz within one to two weeks of the due date.
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, Both names (your name and your partner’s name) must appear on the assignment. Gradescope assignments will have the option to select a partner!
Projects
There will be three projects for this course. Two will be a programming project requiring the writing of a significant assembly program. The programming, including labs, will be using the MARS MIPS simulator.
The third project is oriented around logic design. You will create a (simple) processor for a particular instruction set (to be discussed). This design will be implemented using a simulator tool called Logisim. This tool, thankfully, gives us a lot of nice building blocks so we aren’t reinventing fire, etc, and everything else.
The projects will be graded on a rubric by your TA or class grader. The rubric will reflect the posted requirements and goal of the project. Partial credit will be rewarded based on the rubric and the overall requirements of the project.
Solutions will not be provided for any project.
You are responsible for attending lectures and recitations in order to receive any guidance or hints given generally to the class (even if they do not get posted)
TAs and myself will be available during posted office hours (and by request, otherwise) to provide assistance.
Attendance
You should come to class! Attending classes will increase your chances for a higher grade! You are responsible for all material presented in lecture. If you must miss a class, you should ask your classmates for course notes. The instructor will not provide course notes.
Policy
Conduct Policy
No harassment of any kind is allowed. No jokes or comments about sex, gender, race, ethnicity, or religion will be tolerated in any classroom setting. This includes lectures, recitations, and any online space established for the course. Please refer to the Title IX Office for more policy information any contact information in case of any discrimination or harassment.
Collaboration
Generally speaking, as part of the overall university policy and culture, collaboration is not allowed in any form or any project or exam, unless otherwise noted.
This includes the sharing of materials, past materials, materials from other sections of this class. The only exception is if you wrote the material (because you are repeating the class).
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.
You are generally allowed to talk about projects and share insight (and you should!) You cannot write any part of another student’s assignment or review another student’s logic design.
Academic Integrity
Please read this carefully!
Students in this course will be expected to comply with the University of Pittsburgh’s Policy on Academic Integrity. Any student suspected of violating this obligation for any reason during the semester will be required to participate in the procedural process, initiated at the instructor level, as outlined in the University Guidelines on Academic Integrity. This may include, but is not limited to, the confiscation of the examination of any individual suspected of violating University Policy. Furthermore, no student may bring any unauthorized materials to an exam, including dictionaries and programmable calculators.
To learn more about Academic Integrity, visit the Academic Integrity Guide for an overview of the topic. For hands-on practice, complete the Understanding and Avoiding Plagiarism tutorial.
In the course, each exam and project assignment must be individual work. Assignments will be checked by automatic plagiarism detectors, and students may be asked to explain any suspicious similarities. All incidences of cheating will be reported to the Dean’s office. The default penalty for cheating is to be removed from the course with a failing grade. While lesser penalties may occur, depending on the circumstances, the penalty will always be worse than if you had not turned in the assignment at all (For example, being assigned a negative grade).
Pay attention to the following examples of cheating, which include:
- Sharing code: either by copying, retyping, looking at, or supplying a copy of a file from this or a previous semester.
- Describing code: Verbal description of code from one person to another.
- Coaching: Helping your friend to write a project, line by line.
- Copying: Copying code from the Web or another student. You are only allowed to use code that we provide you.
- Searching: Searching the Web for solutions or for any advice on the project.
Cheating is also looking at other students’ code or allowing others to look at yours. This includes one person looking at code and describing it to another. Be sure to store your work in protected directories, and log off when you leave a remove server, to prevent others from copying your work without your explicit assistance.
You may find it useful to know what is not cheating:
- Clarifying ambiguities or vague points in class handouts, lectures, or textbooks.
- Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities.
- Helping others with high-level design issues only, but algorithm/coding and other such details are not ”high-level design issues”.
- Helping others with high-level (not code-based) debugging.
- Using code from the skeleton/package provided in class is always OK.
Late/Early Policy
-
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 15% for each day it is late. No more than 3 days late are allowed.
-
Voluntary late labs: Because the occasional missed lab can be missed without penalty since the lowest two lab scores are dropped, 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.
Notes for Students
Health and Safety Statement
In the midst of this pandemic, it is extremely important that you abide by public health regulations and University of Pittsburgh health standards and guidelines. While in class, at a minimum this means that you must wear a face covering and comply with physical distancing requirements; other requirements may be added by the University during the semester. These rules have been developed to protect the health and safety of all community members. Failure to comply with these requirements will result in you not being permitted to attend class in person and could result in a Student Conduct violation. For the most up-to-date information and guidance, please visit coronavirus.pitt.edu and check your Pitt email for updates before each class.
Take Care of Yourself
Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep, and taking time to relax. Despite what you might hear, using your time to take care of yourself will actually help you achieve your academic goals more than spending too much time studying. All of us benefit from support and guidance during times of struggle. There are many helpful resources available at Pitt. An important part of the college experience is learning how to ask for help. Take the time to learn about all that’s available and take advantage of it. Ask for support sooner rather than later –this always helps. If you or anyone you know experiences any academic stress, difficult life events, or difficult feelings like anxiety or depression, we strongly encourage you to seek support. Consider reaching out to a friend, faculty or family member you trust for assistance connecting to the support that can help.
The University Counseling Center is here for you: call 412-648-7930 and visit their website.
If you or someone you know is feeling suicidal, call someone immediately, day or night:
- University Counseling Center (UCC): 412 648-7930
- University Counseling Center Mental Health Crisis Response: 412-648-7930 x1
- Resolve Crisis Network: 888-796-8226 (888-7-YOU-CAN)
If the situation is life threatening, call the Police:
- On-campus: Pitt Police: 412-268-2121
- Off-campus: 911
Record keeping
All graded materials that a student receives back should be saved in a safe place until after the term has ended and the final grade has been assigned. In this way, any grade discrepancies can be easily resolved.
Disabilities
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 (DRS), 140 William Pitt Union (412-648-7890) (TTY 412-383-7355), as soon as possible in the term. They will verify your disability and determine reasonable accommodations for this course.
File Backups
It is your responsibility to backup your work regularly. Please consider using reliable and multiple ways to protect your files! I.e.: Please make backups, and backups of your backups, and… (you get the point!) The University offers space that you can use for backups through Box, if you like. Both Google Drive and Dropbox have free tiers that also work well. 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.
Acknowledgements
- wilkie: Provided the skeleton for the website
- Jarrett Billingsley: Provided many of the slides in the course.
- Jekyll: Software that creates this static ‘blog’ style site.