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.
The memory hierarchy | Ch. 6 |
Linking Exceptional control flow | Ch. 7 Ch. 8 |
Exceptional control flow (cont.) Virtual memory | Ch. 8 Ch. 9 |
Virtual memory (cont.) | Ch. 9 |
Virtual memory (cont., half-week) | Ch. 9 |
Due on Sun 02/07: Midterm Quiz
System-level I/O Network programming | Ch. 10 Ch. 11 |
Network programming (cont.) Concurrent programming | Ch. 11 Ch. 12 |
Concurrent programming (cont.) | Ch. 12 |
Concurrent programming (cont.) | Ch. 12 |
Student Presentations | — |
— | — |
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.
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.