CSC 407 Systems II

Dale Buchholz

Fall 2023-2024
Class number: 12798
Section number: 701
W 5:45PM - 9:00PM
CDM 00218 Loop Campus
Course homepage:

Download syllabus


This course is the second of a two-course sequence covering the concepts underlying all computer systems and how they affect the correctness, performance, and utility of application programming. We will cover the topics of optimizing program performance, linking, processes, exception control flow, system-level I/O and networking, concurrent programming, and web services as a current example of distributed system technology.


Bryant & O'Hallaron, Computer Systems: A Programmer's

Perspective, 3rd Edition, Prentice Hall/Pearson

    US Edition, 2016, ISBN 978-0-13-409266-9 (bookstore)

    Global Edition, 2016, ISBN 978-1-488-67207-1 (pdf)

Kernighan & Ritchie, The C Programming Language, 2nd Edition, Prentice Hall, 1988. ISBN: 978-0131103627


Required coursework components and their contribution to the final grade will be:

  1. 4 Homeworks (50 pts each; total 200 pts)
  2. 4 Labs (50 pts each; total 200 pts)
  3. Mid-Term and Final Exam (100 pts each; total 200 pts)

Further details on each assignment will be distributed in class. Final grades will be calculated as follows: points earned divided by possible points yields a total course percentage between 0% and 100%.  Final letter grades will be assigned as:





























< 60




You must have taken CSC 406 Systems I or an equivalent course that introduces the Intel Assembly language, system-level programming in C, and computer architecture from an application programmer's perspective. You must also have taken a course that covers basic data structures such as arrays, linked lists, stacks and queues.

  • You know how to create, debug, compile and run simple C code on a Linux box, and you use a reasonable programming style (i.e., your code is easy to read and concise).
  • You understand how data (e.g., integers, strings, ...) is represented and manipulated at machine-level.
  • You can read, understand, and debug Intel Assembly code in GAS (Gnu ASembler) format.
  • You understand how programs are represented at machine-level.
  • You can manipulate pointers and understand basic implementations of arrays, linked lists, stacks and queues.

School 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 and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly 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.

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

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296