Welcome to CPS 4200 (Systems Programming)


This course focuses on the knowledge of Unix system and use the C programming language to implement the systems level programming, Operating System services and application interface programming. There are many hands-on exercises and assignments. If you don't like coding, please do NOT take this course. For CS Major, you can take the alternate course - CPS 4150 (Computer Architecture) in the fall semester.

The following topics are covered:
Prerequisite: CPS 3250 (Operating Systems) with grade C and above.

Notes
Instructors
CPS 4200 Course Description
Investigation of applied systems level programming as it relates to operating system services and application interface programming. Topics will include: operating system service calls, file I/O, directory structure, memory management, process control, tasks, threads, concurrency, parallelism event driven programming, inter-process communication, sockets, servers and network protocols.

Student Learning Outcomes
Upon completion of this course, the student will be able to:
  1. Explain operating system services available to systems programmers.
  2. Design and code systems programs to create, manage and synchronize programs, tasks, threads and processes.
  3. Utilize operating system services to access and manage I/O devices, files and directories.
  4. Implement systems programs to control memory management.
  5. Utilize protocols and interfaces to communicate across computer systems.
Books and resources
Class information (Dr. Wei):
Class information (Dr. Huang): Note: Dr. Huang won't teach this course in spring 2022
Requirements - Students will need the followings to do exercsies and assignments: