University of Minnesota
Machine Architecture and Organization
index.php

Time and location

TimesRoomInstructor
Classes: M/W/F 12:20PM-1:10PM Fraser Hall 101 Antonia Zhai
M/W/F 3:35PM-4:25PM Tate Physics 133 Stephen McCamant
Recitations: Th 08:00AM-08:50AM Keller 2-260 Hanlin Zhu
Th 09:05AM-09:55AM STSS 530B Nishad Trivedi
Th 10:10AM-11:00AM STSS 530B Ran Hu
Th 11:15AM-12:05PM Keller 2-260 Albert Jonathan
Th 12:20PM-1:10PM STSS 512B Emery Mizero
Th 1:25PM-2:15PM STSS 530B Kyle Winkelman
Th 2:30PM-3:20PM STSS 432B Kartik Ramkrishnan
Final exam schedule: final exams will be based on your lecture section, following the university-wide standard schedule. If you are registered for the M/W/F 12:20PM lecture, your final exam will be 1:30PM-3:30PM on Tuesday May 12th. If you are registered for the M/W/F 3:35PM lecture, your final exam will be 8:00AM-10:00AM on Thursday, May 14th. Final exam locations will be the same as the corresponding lectures: 101 Fraser on 5/12, and 133 Tate Physics on 5/14.

Primary Instructors

NameEmailOffice locationOffice hours
Prof. Antonia Zhai zhai at cs dot umn dot edu 6-205 Keller Hall Friday 10:00AM - 12:00PM
Prof. Stephen McCamant mccamant at cs dot umn dot edu 4-225E Keller Hall Monday 10:00AM - 11:00AM
Tuesday 3:00PM - 4:00PM

Teaching Assistants

Name Email Office hour locationOffice hour
Kartik Ramkrishnan ramkr004 at umn dot edu 2-209 Keller Hall Tuesday 2:15PM - 4:15PM
Ran Hu huxxx662 at umn dot edu 2-209 Keller Hall Wednesday 1:00PM - 3:00PM
Emery Mizero mizer007 at umn dot edu 2-209 Keller Hall Monday 4:00PM - 6:00PM
Ravi Raj rajxx027 at umn dot edu 2-209 Keller Hall Monday 9:00 - 10:00AM
Albert Jonathan jonat004 at umn dot edu 2-209 Keller Hall Tuesday 12:15PM - 2:15PM
Nishad Trivedi triv0025 at umn dot edu 2-209 Keller Hall Friday 3:00PM - 5:00PM
Kyle Winkelman winke143 at umn dot edu 2-209 Keller Hall Thursday 11:00AM - 1:00PM
Hanlin Zhu zhuxx544 at umn dot edu 2-209 Keller Hall Wednesday 4:30-5:30PM
Friday 1:00-2:00PM
Where to send your electronic questions? If it's something everyone could benefit from the answer to, use the Moodle forums. If it's about a particular lab or homework assignment, start with the responsible TA shown on the course schedule. For general course questions, please use the csci2021s15-staff at cs dot umn dot edu mailing list.

Prerequisite

CSci 1902/1913/1933 or instructor's permission

Description

This course will introduce you to the basic concepts underlying all computer systems and prepare you for in-depth study in any area of computer science. This is the first course on computer organization and computer systems. It provides broad coverage of processor operation and the aspects of system software such as compilers, linkers, and operating systems that are important from the programmer's perspective. It also introduces you to the organization of basic components in modern computers such as processors, hierarchical memory systems, and includes basic concepts in logic circuit design.

Why do you need this course if you have already taken the introductory programming sequence? Oversimplifying matters somewhat, CSCI 1113/1133 is based on a simplified model of program execution, and CSCI 1913/1933 builds further layers of abstraction. CSCI 2021 looks "under the hood", and introduces greater detail about system behavior and operation.

Note that this is not primarily an assembly language programming course. You'll get some practice reading and writing assembly language during the course, but we'll use it as a tool to understand how the machine works, not as a language for its own sake.

Textbooks

  • Required Textbook: R. Bryant, D. O'Hallaron. Computer Systems: A Programmer's Perspective, second edition. Prentice Hall, 2011. (textbook web page). We recommend that you get a paper version of the textbook; in addition to the DRM restrictions on the eBook, only paper books can be used during tests.
  • Recommended Readings: Any good book on C to serve as a reference.

Course Work and Grading

Item Fraction of Grade
Assignments 10%
Quizzes 20%
Labs 30%
Final Exam 40%

Your Responsibility

  • Read the syllabus and know the class policies outlined in it.
  • Come to class regularly and be prepared to participate. Slides on the class webpage may be incomplete, and reading them isn't a substitute for attending lectures.
  • Turn in individual and original work. This means that what you turn in must be your own work. If you turn in work done by someone else, or work containing even a sentence or phrase copied from someone else, you may be assigned an F in this course.
  • Start your homework early enough that you can get help and still turn it in on time.
  • Read the directions for submitting homework and follow them. It is your responsibility to submit the assignments on time.
  • Pick up your graded homework and exams. They contain important feedback.
  • Check the class web page regularly for announcements or changes.
  • Keep up with the reading. It is very important that you read the assignments from the textbook prior to attending class. If you do not have some exposure to the topic, you will be quite lost in the lectures.
  • Do the homework. The assignments are provided as a way of reinforcing the lecture material and allowing you to practice what has been learned in class. In general, the exam questions will be very similar to the homework, and the homework has been designed to prepare you for the exams.
  • Do not leave things to the last minute. The assignments will be challenging. Leaving them to the last possible minute is a recipe for disaster. Try to complete the assignments as soon as possible after you receive them, while the material is fresh in your mind. Computers crash, files are lost, Murphy's Law is continually reinforced.
  • Ask questions. We are here to help you learn, but we cannot read your mind. If a concept is not clear to you, ask a question sooner rather than later. If there is not sufficient time in class, additional time can be arranged to go over a topic until you are comfortable.

Course Policies:

  • Program in C: The labs and homeworks will involve reading and writing code in C. If you've previously worked with C++ or Java, you'll find many aspects of C familiar, but we'll be covering details of things like numeric operations and pointers that may not have been emphasized in previous courses. If you don't already know C, learn it now!
  • Submission and Late submission Policy: All labs are due at 11:55pm (i.e., just before midnight) on the date specified on the course schedule, and are turned in electronically with Moodle. Homework assignments are turned in on paper, and due at the beginning of lecture on the day specified on the course schedule, and they must be turned in at the lecture for which you are registered. (If you're registered for the early lecture, and you go to the afternoon lecture, it doesn't mean you get to turn your assignment in later.) We strongly recommend that you type up your homework assignments and turn in printouts, rather than hand writing. Late lab and homework submissions will receive a reduction of 15% of the maximum possible score for each day (or any fraction) they are late, and no credit is available after three days. (Other than excused absences such as illness.) Late homework assignments should be submitted electronically using the Moodle page.
  • Lab Access: We will be using PCs running Linux maintained by CSELabs for the lab assignments, and thus you must have an CSELabs account. There is no designated lab room or time for this course; you can use the labs on campus, or access the machines remotely using SSH.
  • Appealing: After each quiz, lab, or assignment is graded, we will post a message on the class forum. You have seven calendar days from the date the message is posted to appeal your grade. If you have questions about the grade you received on a quiz or an assignment, please talk first to the person in charge of the quiz/assignment, who will be clearly identified in the course schedule. If you are still unsatisfied, please come and visit your instructor. Note that he or she will re-grade the ENTIRE quiz/assignment, so the final effect on your grade might be either positive or negative.
  • Incomplete: Grades of incomplete will be given only when a student who has SUCCESSFULLY completed all the programming assignments and at least one quiz and is unable to finish the final exam for reasons beyond their control such as a medical emergency.
  • Missed quizzes: There will be no make-up quizzes. If you miss one quiz with a valid permission/excuse, it will be omitted from the computation of you grade, increasing the weight of the final exam to compensate. For example, if you miss a quiz that correspond to 10% of the total grades, you final exam is worth an additional 10% of your final grade. Any additional or unexcused missed quizzes will receive a score of zero.
  • Final Grade: To compute final grades in the course, we'll start by computing a numeric average using the percentages mentioned above. If your numeric score is at least 90%, 80%, or 70%, your letter grade will be at least A-, B-, or C- respectively. But we may also apply a curve, to help improve the consistency of grades between different offerings of the course. The curve will apply only in students' favor (i.e., increasing your final letter grade). If we accidentally make the assignments too hard, the curve will make sure we don't fail everyone, but if we accidentally make the assignments too easy, or everyone just does better than usual, it won't stop everyone from getting As. But if student performance is similar to previous years, we expect to have a similar distribution of grades as previous years. Historically the average grade has been some kind of B; only the best students who show consistent mastery of everything get As, but A- is more common, there are lots of Bs and Cs, and it's hard to get an F if you keep up with the material and submit the assignments on time. If your final numeric average is close to a grade cut-off, other factors we may take into account in your final grade include attendance, class participation, improvement throughout the course, final exam performance, and any other relevant special circumstances.
  • Open book quizzes and exams All quizzes and exams will be open book. You are not expect to memorize; we'll try to design the tests so that if you've keeping up in class, all the information you need is included in the test. You may not use calculators, phones, or other electronics. Note that this means electronic books are not allowed. You can bring any books, handwritten notes, photocopies, or printouts.
  • The contents of this document and everything on the course webpage are subject to change, and you are responsible for monitoring such changes.
  • We take cheating very seriously. You must do your own work. Failing to do so is scholastic dishonesty. Scholastic dishonesty includes, but is not limited to: plagiarizing; cheating on assignments or examinations; engaging in unauthorized collaboration on academic work; taking, acquiring, or using test materials without faculty permission; submitting false or incomplete records of academic achievement; acting alone or in cooperation with another to falsify records or to obtain dishonestly grades, honors, awards, or professional endorsement; altering, forging, or misusing a University academic record; or fabricating or falsifying data, research procedures, or data analysis. A student found responsible for scholastic dishonesty will at a minimum receive a grade of 0 for the assignment in question and be reported to the campus-wide Office for Student Conduct and Academic Integrity (OSCAI). More serious offenses will receive a grade of F (or N) for the course and be subject to additional sanctions from the University. You should also read the CS&E department's department-wide academic conduct policies and this page about academic conduct in computer science.

Other Applicable Policies: There are a number of other University-wide policies that apply to this course which you should be familiar with. This list is an abridged summary of longer policies which you can find linked from a University-wide page:

  • Students are required to abide by the Student Conduct Code, which among other things prohibits disruptive classroom conduct.
  • Personal electronic devices should be used with caution in the classroom lest they interfere with your or other students' learning.
  • Students will not be penalized for absence during the semester due to unavoidable or legitimate circumstances. Such circumstances include verified illness, participation in intercollegiate athletic events, subpoenas, jury duty, military service, bereavement, and religious observances.
  • The University considers that accepting compensation for taking and distributing classroom notes violates shared norms and standards of the academic community.
  • Sexual harassment is not acceptable in the University setting.
  • The University provides equal access to and opportunity in its programs and facilities, without regard to race, color, creed, religion, national origin, gender, age, marital status, disability, public assistance status, veteran status, sexual orientation, gender identity, or gender expression.
  • The University of Minnesota is committed to providing equitable access to learning opportunities for all students, including making reasonable accommodations. If you have, or think you may have, a disability that might affect your participation in class please contact the Disability Services office. If you are registered with DS and have a current letter requesting reasonable accommodations, please contact your instructor as early in the semester as possible to discuss how the accommodations will be applied in the course.
  • As a student you may experience a range of mental health concerns or stressful events which may interfere with learning. You can learn more about the broad range of confidential mental health services available on campus via the Student Mental Health website.
  • Within the scope and content of the course as defined by the instructor, academic freedom includes the freedom to discuss relevant matters in the classroom and conduct relevant research. Students are free to take reasoned exception to the views offered in any course of study and to reserve judgment about matters of opinion, but they are responsible for learning the content of any course of study for which they are enrolled. (Adapted from The AAUP Joint Statement on Rights and Freedoms of Students.)