CIT 595 Computer Systems Programming - Spring 2019

Course Overview

This course is a continuation of CIT 593 and is divided into four parts. We will begin by building on your knowledge of C and covering advanced programming in C for Linux, specifically the libraries that programmers use for concurrency and synchronization. The second part of the course expands the model from a single process to a multiprocess machine and introduces important concepts in modern operating systems: processes, scheduling, caching, and virtual memory. The third part of the course further expands the model and considers how processes communicate across a network, using low-level socket programming and high-level web technologies. Finally, the course introduces the C++ programming language.

After completing this course, you will have the requisite knowledge and experience for systems-focused CIS electives such as 505 Software Systems, 548 Operating Systems and Design, and 553 Networked Systems.

This course is currently only open to students in the MCIT program and assumes prior C knowledge (specifically, what is covered in CIT 593) but not C++.

Students in other degree programs should add themselves to the CIS course waitlist after Advance Registration ends.


Teaching Staff


Teaching Assistants


Class Meeting Times

Lecture: Tues/Thurs 10:30-11:50am
Recitation: Thurs 4:30-5:50pm


Topics Covered

Systems Programming in C

  • Data structures in C
  • Threads and synchronization
  • C memory management
Operating Systems Concepts
  • Process management
  • Scheduling
  • Caching
  • Virtual Memory
Network Programming
  • OSI network model
  • Socket programming
  • Basics of the World Wide Web
  • Core web technologies: HTML, CSS, and JavaScript
C++ Programming
  • Object-oriented programming
  • Operator overloading
  • Templates


Belonging, Inclusion, and Wellness

A goal of this course is to give all students a sense of belonging in the field of computing.

This can only happen if all members of the course community - the instructor, TAs, and students - work together to create a supportive, inclusive environment that welcomes all students, regardless of their race, ethnicity, gender identity, sexuality, or socioeconomic status. Diversity, inclusion, and belonging are all core values of this course. All participants in this course deserve to and should expect to be treated with respect by other members of the community.

A code of conduct that covers behavior in lecture, office hours, recitation, and online will be distributed to registered students via Canvas. Additionally, the course syllabus in Canvas will list available resources - including designated members of the instruction staff - for reporting violations of the code of conduct and for getting support if you witness or are affected by a violation.

A sense of belonging can also affect students' mental health and wellness, which is of utmost importance to the course instruction staff, if not the University as a whole. All members of the instruction staff will be happy to chat or just to listen if you need someone to talk to, even if it's not specifically about this course.

If you or someone you know is in distress and urgently needs to speak with someone, please do not hesitate to contact CAPS: 215-898-7021; 3624 Market St. If you are uncomfortable reaching out to CAPS, any member of the instruction staff will be happy to contact them on your behalf.


Course Grading and Other Policies

Policies related to grading, absences, regrade requests, academic honesty, etc. will be made available to registered students via Canvas.