Computer Systems II: Syllabus

(Last modified: 2021-01-03 11:38)

1 Course specifics

This course is asynchronous (videos posted on Monday) with a weekly optional conference call on Thursdays.

Description

From the course catalog:

A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Caching, memory hierarchy, performance optimization, linking, processes, virtual memory, dynamic memory allocation, system level I/O, networking and network programming, concurrent servers and web services.

Prerequisites: CSC 373 (for undergrads), CSC 406 and CSC 402 (for grads).

Prerequisites

At the beginning of the course, you are expected to be able to:

  • Create, debug, compile, and run simple C code on Linux
  • Explain how data (e.g. integers, strings, …) are represented and manipulated at machine-level
  • Read, understand, and debug Intel Assembly code in GAS (Gnu ASembler) format
  • Manipulate pointers and explain how arrays, linked lists, stacks, and queues are implemented at a low level

If you don’t feel comfortable with these tasks before the course starts, I very much recommend going through the materials of Systems I (CSC 373 or CSC 406), redoing some exercises.

Learning outcomes

At the end of the course, you will be able to:

  • Exploit the memory hierarchy to optimize program performances
  • Explain how static and dynamic linking work, and use low level tools to link object files
  • Write applications that exploit exceptional control flow
  • Explain how memory allocation works, and several strategies to implement it
  • Write networked applications that rely on UNIX I/O
  • Write concurrent programs using threads

2 Resources

Reference books

The main textbook for this class is:
Computer Systems: A Programmer’s Perspective, 3rd Edition, by Bryant and O’Hallaron. (ISBN: 9780134092669)

The book has a companion website that offers extra material and practice exercises:
https://csapp.cs.cmu.edu/

The relevant programs for the course will be put on our server.

As we rely on C programming throughout the course, I recommend the following optional textbook if you need a refresher:
Programming in C, 4th Edition, by Kochan. (ISBN: 9780321776419)

Office hours & Weekly Conference Call

Office hours are posted and to be booked on BlueStar. Meetings will be remotely done via Zoom.

Each Thursday, 2pm-3pm I will hold a conference call for any questions at:
https://depaul.zoom.us/j/92360259025

Attendance is completely optional, questions can be asked with a microphone or via the chat. You do not have to turn your camera on.

D2L

The course makes use of the D2L platform and I strongly encourage students to post questions over there. Everybody is welcome to discuss, all the while staying professional and on topic. I will reply to each discussion usually within 24 hours (48 hours during weekends). Likewise, I will use D2L to communicate with the students.

Contacting me by email

When the subject may interest the whole class, use D2L. If you are unsure, or if the matter is personal, send me an email making sure the subject contains “CSC” and with your real name somewhere. Emails that do not respect this rule risk being wrongly marked as spam.

3 Schedule

Drop dates and the academic calendar at large can be found there:
https://academics.depaul.edu/calendar/Pages/default.aspx

The following is the week-by-week topic schedule. The chapter number refers to the reference book.

The academic calendar has the quarter starting on Monday and finishing on Sunday, so each week starts and ends on these days.

Week 1: Mon 01/04 to Sun 01/10
The memory hierarchy Ch. 6
Out on Mon 01/04: Dict Lab
Week 2: Mon 01/11 to Sun 01/17
Linking
Exceptional control flow
Ch. 7
Ch. 8
Due on Sun 01/17: Dict Lab
Week 3: Mon 01/18 to Sun 01/24
Exceptional control flow (cont.)
Virtual memory
Ch. 8
Ch. 9
Out on Mon 01/18: Cache Lab
Week 4: Mon 01/25 to Sun 01/31
Virtual memory (cont.) Ch. 9
Due on Sun 01/31: Cache Lab
Week 5: Mon 02/01 to Sun 02/07
Virtual memory (cont., half-week) Ch. 9
Out on Mon 02/01: Midterm Quiz
Due on Sun 02/07: Midterm Quiz
Week 6: Mon 02/08 to Sun 02/14
System-level I/O
Network programming
Ch. 10
Ch. 11
Out on Mon 02/08: Malloc Lab and Presentation
Week 7: Mon 02/15 to Sun 02/21
Network programming (cont.)
Concurrent programming
Ch. 11
Ch. 12
Due on Sun 02/21: Malloc Lab
Week 8: Mon 02/22 to Sun 02/28
Concurrent programming (cont.) Ch. 12
Out on Mon 02/22: Proxy Lab
Week 9: Mon 03/01 to Sun 03/07
Concurrent programming (cont.) Ch. 12
Due on Sun 03/07: Presentation
Week 10: Mon 03/08 to Sun 03/14
Student Presentations
Due on Sun 03/14: Proxy Lab
Week 11: Mon 03/15 to Sun 03/21
Out on Mon 03/15: Final Quiz
Due on Sun 03/21: Final Quiz

4 Assignments and grading

Grading is done on the basis of multiple quizzes, programming assignments, and a presentation. Assignments are always due on the last day of the week at 11:42pm. No late assignment will be accepted.

⚠ Plagiarism ⚠
Except when specified, all assignments must be done on your own.

You are strictly prohibited from using any material other than the one provided by the instructor and textbook. In particular, you are strictly forbidden from acquiring hints and/or solutions from the internet or from any other external resource or person besides the instructor. Sharing or posting online any prior or current materials from this course (including exam questions or answers) is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Scholastic dishonesty includes acquiring answers from any unauthorized source, working with another person except when permitted by the instructor, sharing answers, and informing any person of the contents of an exam prior to the exam. Disciplinary actions range from grade penalty to expulsion.

Quizzes

On every week, a short quiz is given. These can be taken as many times as you want and answers are provided. I encourage you to do them once before watching the lectures and once after. These are due at the end of the weeks at 11:42pm.

Lab assignments

On Weeks 1, 3, 6, and 8, comprehensive programming assignments, known as a labs, are given and due to be handed within two or three weeks. These are substantive assignments, you should start working on them as early as they can. These are due at the end of the weeks at 11:42pm.

Midterm and final quizzes

On Weeks 5 and 11, a midterm quiz and a final quiz is given. These are compulsory and more substantive. These are due at the end of the weeks at 11:42pm.

Presentation

On Week 6, students will be put in groups by the instructor and asked to pick a topic for a presentation that is to be handed at the end of Week 9, 11:42pm. Week 10 focuses on viewing this presentations and participation is compulsory to the session that contains your video.

Final numeric grade

The final numeric grade is computed as follows:

  • Weekly quizzes: 10%
  • Lab assignments: Dict Lab 15%, Cache Lab 10%, Malloc Lab 15%, Proxy Lab 15%
  • Midterm quiz: 10%
  • Presentation: 15%
  • Final quiz: 10%

Final letter grade

Percentages are converted to letters based on the following table:

Percentage Letter Manner of fulfillment
92-100 A Excellent
90-91 A-  
88-89 B+  
82-87 B Very Good
80-81 B-  
78-79 C+  
72-77 C Satisfactory
70-71 C-  
68-69 D+  
62-67 D Poor
60-61 D-  
0-59 F  

5 University policies

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity

This course will be subject to the university’s academic integrity policy. More information can be found at
http://academicintegrity.depaul.edu/
If you have any questions be sure to consult with your professor.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at
http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx

Incomplete Grades

An incomplete grade is a special, temporary grade that may be assigned by an instructor when unforeseeable circumstances prevent a student from completing course requirements by the end of the term and when otherwise the student had a record of satisfactory progress in the course. All incomplete requests must be approved by the instructor of the course and a CDM Associate Dean. Only exceptions cases will receive such approval. Information about the Incomplete Grades policy can be found at
http://www.cdm.depaul.edu/Current%20Students/Pages/Grading-Policies.aspx

Preferred Name & Gender Pronouns

Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with differences of race, culture, religion, politics, sexual orientation, gender, gender variance, and nationalities. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the quarter so that I may make appropriate changes to my records. Please also note that students may choose to identify within the University community with a preferred first name that differs from their legal name and may also update their gender. The preferred first name will appear in University related systems and documents except where the use of the legal name is necessitated or required by University business or legal need. For more information and instructions on how to do so, please see the Student Preferred Name and Gender Policy at
http://policies.depaul.edu/policy/policy.aspx?pid=332

Students with Disabilities

Students seeking disability-related accommodations are required to register with DePaul’s Center for Students with Disabilities (CSD) enabling them to access accommodations and support services to assist with their success. There are two office locations:

  • Loop Campus – Lewis Center #1420 – (312) 362-8002
  • Lincoln Park Campus – Student Center #370 – (773) 325-1677

Students who register with the Center for Students with Disabilities are also invited to contact Dr.~Gergory Moorhead, Director of the Center, privately to discuss how he may assist in facilitating the accommodations to be used in a course. This is best done early in the term. The conversation will remain confidential to the extent possible. Please see the following link for Services and Contact Information:
https://offices.depaul.edu/student-affairs/about/departments/Pages/csd.aspx

Attitude

A professional and academic attitude is expected throughout this course. Measurable examples of non-academic or unprofessional attitude include but are not limited to: talking to others when the instructor is speaking, mocking another’s opinion, cell phones ringing, emailing, texting or using the internet whether on a phone or computer. If any issues arise a student may be asked to leave the classroom. The professor will work with the Dean of Students Office to navigate such student issues.