cs402 - Introduction to Advanced Studies II - Spring 2021


Goal

Quick Links

This is a second course in a two-course sequence that is designed to prepare students for graduate study in computer science. Topics in this course cover two undergraduate courses: cs350 (Computer Organization and Assembly Language Programming) and cs351 (Systems programming).

The course provides an introduction to the internal architecture of computer systems-including micro-, mini-, and mainframe computer architectures. Focuses on the relationship among a computer's hardware, its native instruction set, and the implementation of high-level languages on that machine.

In terms of systems programming, the course examines the components of sophisticated multilayer software systems, including device drivers, systems software, applications interfaces, and user interfaces. It explores the design and development of interrupt-driven and event-driven software.

The programming languages used in this course are MIPS assembly and C.

This course does not apply toward master's or Ph.D. credit in Computer Science. Prerequisite: CS 401.

You can see the syllabus topics detail here. NOTE: the textbooks used in this class are different from the ones in the PDF.


Before you get started

This class requires you to do a *lot* of work between homeworks, labs, reading, two exams. The material is likely to be unfamiliar to most students who are required to take this class.

^ Top ^


Hours

Section A01
(CRN: 20038, hybrid asynchronous)
Section V02
(CRN: 52436, virtual)
Instructor Virgil Bistriceanu
Office hours Daily, 8:00 am - 9:00 am, U.S. Central Time, Google Hangouts (bistriceanu@iit.edu)
Office SB-105D
Google Hangouts bistriceanu@iit.edu
e-mail bistriceanu@iit.edu
Lecture Mon 6:45 pm - 8:25 pm, Zoom
Labs Wed 6:25 pm - 8:05 pm U.S. Central Time, online
Teaching Assistant & Lab Instructor
  • Name: Hao Ding
    • Office Hours: Mon, Web, 3:3pm - 4:30pm
    • Office: Google Meet, link will be posted on the Blackboard
    • Phone: Google Hangouts
    • email: hding9 at hawk.iit.edu

^ Top ^


Books

Textbooks - required

  • Computer Organization and Design, 5th edition, Patterson and Hennessy, Elsevier, ISBN: 978-0124077263
  • Computer Systems: A Programmer's Perspective, 3rd edition, Randal Bryant & David O'Hallaron, Pearson, ISBN: 978-0134092669

^ Top ^


Grading

  • Homeworks: 20%
  • Labs: 20%
  • Midterm exam: 25%
  • Final exam: 35%

The following grading scale will be used:

  • A: [90,100]
  • B: [80,90)
  • C: [70,80)
  • D: [60, 70) - this grade may not be assigned to graduate students; if your weighted average score is in this range, then you'll be assigned a failing grade (E)
  • E: [0,70)

All scores posted on the Blackboard will be percentages, between 0 and 100. For example, let's assume that a homework is worth 123 points and you get 97 points: what will be posted on the Blackboard is (97/123)*100 which will be rounded up -- using the round-half-up rule -- to 79. The same applies for exams, labs, etc.

Class participation will help settle borderline grades. While class attendance is not taken, your instructor believes that regular class attendance is important and expects students to actively participate in class. Questions and comments are always welcome.

There is no curving of grades in this class.

^ Top ^


Late Work

All work that you turn in must be submitted on the Blackboard before midnight (Central Time) the day the work is due.

I understand that from time to time you'll get overwhelmed with work, or that you may have personal problems that will make you less productive than you'd like. That's why each student in this class has a credit of three (3) days of late work.

You can use this credit as you see fit, for good reason or no reason at all, all at once or in pieces -- though there is no fractional credit, i.e. you may NOT request 0.5 days of credit. The only thing we ask for is that in your Blackboard submission (in the COMMENT field) you indicate how much of your credit you want to use.

Also, once you spend "late work credit" you cannot get it back and try to claim it for other piece of work.

After you've used your "late work credit", or if you don't want to use it, there is a 5% per calendar day penalty for late work.

The way this works is that the late penalty is taken from the top, and then the TA applies other penalties that result from grading the work.

Let's say you're N days late on an assignment that's worth X points; also, let's also assume that the TA finds errors in your submission that accumulate to a total of Y points. Then, your mark for the said work is going to be (X - N*0.05*X) - Y.

For example, let's assume we're talking about HW-1 where you can earn a maximum of 170 points (X=170), and that you're three days late (N=3). Let's also assume that the TA finds errors in your submission that are worth 11 points. Then your mark on this assignment will be (170 - 3*0.05*170) - 11 = 133.5, which will be rounded up -- using the round-half-up rule -- to 134.

^ Top ^


Exceptional circumstances

Your teacher will try to accommodate you in those cases that are beyond your control, such as medical and personal emergencies. Please note that, based on circumstances, the teacher may decide to assign you an incomplete grade, "I", or otherwise ask you to drop the class.

^ Top ^


Incomplete (I) Grades

Yes, you can get an incomplete in this class even if you're not dealing with a personal emergency. Here are the conditions:

  • It's not automatic; you have to request an incomplete from your instructor before finals week. You request an incomplete by using the form at https://my105.iit.edu/registrar/forms/view.php?id=30257
    • This is the only way to request an incomplete, nothing else will be considered.
  • It's a single piece of work that's holding you back. For example, you forgot it's finals day and failed to take the final exam, however you've done well with all assignments. In this case, I can give you an incomplete for not showing up for the final. However, I cannot give you an incomplete if you failed to get a passing score in the programming labs and you failed to get a passing score in the final.
  • You accept whatever work I'll be assigning you to remediate the incomplete; We promise you that the work will be relevant to this class, however it may not be the exact same as the work you just missed.

^ Top ^


Academic Honesty

All the work you submit must be individual, including, but not limited to, those cases when your instructor has approved pair-programming for you; in these cases the only thing that may be identical with somebody else's is code.

Academic dishonesty will not be tolerated. IIT has a strict academic honesty policy; here are the top points:

  1. The misrepresentation of any work submitted for credit as the product of a student’s sole independent effort, such as using the ideas of others without attribution and other forms of plagiarism.
  2. The use of any unauthorized assistance in taking quizzes, tests or examinations.
  3. The acquisition, without permission, of tests, answer sheets, problem solutions or other academic material when such material has been withheld from distribution by the instructor.
  4. Deliberate harmful obstruction of the studies, research or academic work of any member of the IIT community.
  5. Making material misrepresentation in any submission to or through any office of the university to a potential employer, professional society, meeting or organization.
  6. The intentional assistance of others in violation of the standards for academic honesty.

You can read the entire policy at https://web.iit.edu/student-affairs/handbook/fine-print/code-academic-honesty. You should read it until you fully understand it. A good way to test whether you understand it is to try to explain it to somebody else.

^ Top ^


Extra Credit

There are multiple ways you can receive extra credit in this class, here are some:

  • Identify errors in the assignments, e.g. typos, wrong commands, conflicting statements, etc, and submit a suggestion for how it should be corrected. Extra credit depends on how significant your find is.
  • Recommend new assignments for this class. Your recommendation should be original and non-trivial. If you're not sure what original and non-trivial mean, then talk to your instructor.
    • Extra credit: 5 points per accepted recommendation. All extra credit will be added to your class score.
  • Recommend problems to be included in the midterm or final. You'll get credit for submitting a good problem. Your submission should be original and non-trivial.
    • Extra credit: 5 points per accepted recommendation. All points you earn for your recommendations will be added to your class score.
    • The credit will be doubled for each problem that's included in an exam.

^ Top ^


Exams

Exams are open-book(s), open-notes, and comprehensive. They will be administered online using a procedure that will be communicated as we get close to the exams.

^ Top ^


Labs

All code you write will need to be checked in into a software repository that you control and share with your instructor and the class TA / Lab Instructor. Your TA will check out the code from your repository for grading and (s)he will establish the tagging rules.

For purposes of this class you'll use Git in a Bitbucket account. The account with Bitbucket is free and you can control who has access to it. Share with your instructor (bistriceanu@iit.edu) and with your TA (TBA).

You may want to read about software revision control before anything else. This article on Wikipedia is a good start.

A good Git Reference can be found at gitref.org.

Very good Git cheat-sheets can be found here and here.

^ Top ^


Communications

The first person you should contact for any questions related to assignments is your TA; always CC your instructor on your email communications.

Please be descriptive in the subject line when you email your TA or instructor such that processing doesn't get delayed. At the very minimum you should indicate the class and the term, followed by a brief description of what is it that you want to communicate.

Examples of good subject lines for your email:

  • cs402, Spring 2021 - question about Hw1, part (i)
  • cs402, Spring 2021 - When will the grades be posted on the Blackboard?
  • cs402, Spring 2021 - Do we have lab next week?

^ Top ^


Schedule

Week Of Lecture Lab Lab Tools
1/25/21 Introduction, data representation, binary logic Software versioning with GIT: crash course
SPIM introduction
git, SPIM
2/1/21 Performance Measures. What Drives Computer Architecture Start working on CA-Lab-1 git, SPIM
2/8/21 Instruction Set Design I HW-1 due
CA-Lab-1 post-lab due
Work on CA-Lab-2
SPIM
2/15/21 Instruction Set Design II CA-Lab-2 post-lab due
Work on CA-Lab-3
SPIM
2/22/21 Addressing Modes CA-Lab-3 post-lab due
Work on CA-Lab-4
SPIM
3/1/21 The Memory Hierarchy. The Cache. HW-2 due
Continue work on CA-Lab-4
SPIM
3/8/21 Midterm CA-Lab-4 post-lab due
Work on CA-Lab-5
SPIM
3/15/21 Pipelining CA-Lab-5 post-lab due
C: the tools of the trade
Start working on SP-Lab-1
SPIM.
gcc, gdb, prof/gprof, lint, cmocka
3/22/21 Advanced C topics HW-3 due
Continue work on SP-Lab-1
gcc, gdb, prof/gprof, lint, cmocka
3/29/21 Process abstractions SP-Lab-1 is due
Start working on SP-Lab-2
gcc, gdb, prof/gprof, lint, cmocka
4/5/21 Process management HW-4 due
Continue work on SP-Lab-2
gcc, gdb, prof/gprof, lint, cmocka
4/12/21 Dynamic Memory Allocation and Garbage Collection SP-Lab-2 is due
Start working on SP-Lab-3
gcc, gdb, prof/gprof, lint, cmocka
4/19/21 System-level I/O and basic IPC HW-5 due
Continue work on SP-Lab-3
gcc, gdb, prof/gprof, lint, cmocka
4/26/21 System-level I/O and basic IPC SP-Lab-3 is due gcc, gdb, prof/gprof, lint, cmocka
5/3/21 Final exam review
5/10/21 Final Exam    

Your instructor reserves the right to change this schedule.

^ Top ^


Important Events

Event All sections
Last Day to Add/Drop for Full Semester Classes with No Tuition Charges 2/1/21
Spring & Fall Incomplete Grades Due 3/1/21
Midterm 3/8/21
Last Day to Withdraw for Full Semester Classes 4/5/21
Last day of classes 5/8/21
Last Day to Request an Incomplete Grade 5/9/21
Final exam 5/10/21

For more important dates and detail go to the IIT Academic Calendar page.

^ Top ^


Varia

Unless otherwise stated all papers you turn in must be TYPED. No handwritten work is accepted; there are no exceptions to this rule.

Each page will have a header as follows:

  • The left side: your name
  • Middle: page number and the total number of pages (ex. 2/5 indicates this is page 2 out of a total of 5)
  • Right hand side: name of the assignment (ex. Homework #2)

Each page will also have a footer:

  • The left hand side will contain the following text: cs402-section: Spring 2021 where section stands for the section you are in.
  • The right hand side will contain the following text: Illinois Institute of Technology - Computer Science

^ Top ^


Americans with Disabilities Act (ADA)

Reasonable accommodations will be made for students with documented disabilities. In order to receive accommodations, students must obtain a letter of accommodation from the Center for Disability Resources. The Center for Disability Resources (CDR) is located in 3424 S. State St., room 1C3-2 (on the first floor).

^ Top ^


IIT’s Sexual Harassment and Discrimination Information

Illinois Tech prohibits all sexual harassment, sexual misconduct, and gender discrimination by any member of our community. This includes harassment among students, staff, or faculty. Sexual harassment of a student by a faculty member or sexual harassment of an employee by a supervisor is particularly serious. Such conduct may easily create an intimidating, hostile, or offensive environment.

Illinois Tech encourages anyone experiencing sexual harassment or sexual misconduct to speak with the Office of Title IX Compliance for information on support options and the resolution process.

You can report sexual harassment electronically at iit.edu/incidentreport, which may be completed anonymously. You may additionally report by contacting the Title IX Coordinator, Virginia Foster at foster@iit.edu or the Deputy Title IX Coordinator at eespeland@iit.edu.

For confidential support, you may reach Illinois Tech’s Confidential Advisor at 773-907-1062. You can also contact a licensed practitioner in IIT’s Student Health and Wellness Center at student.health@iit.edu or 312-567-7550

For a comprehensive list of resources regarding counseling services, medical assistance, legal assistance and visa and immigration services, you can visit the Office of Title IX Compliance website .