Electrical Engineering and Computer Science

EECS 4520 - Advanced Systems Programming Course Syllabus

Credits/Contact Hours
4 credit hours & 220 minutes lecture contact hours per week.  

Textbook

Richard Stevens and Stephen A. Rago, “Advanced Programming in the UNIX® Environment (3rd Edition)”, Addison-Wesley, ISBN-13 978-0321637734 

Course Information
Pertinent concepts of systems programming. Topics covered include: synchronization, distributed programming models, kernel design, peripheral handling, file systems and security history and methods.
Prerequisite: EECS 3540: Systems and Systems Programming 

 Elective or Required Course: Elective. 

Specific Goals - Student Learning Objectives (SLOs) 

  1. Use low level system calls to control program flow, Input/Output, and determine system characteristics. 
  2. Evaluate the tradeoffs between low level system calls and the equivalent standard calls. 
  3. Understand the difficulties in providing a uniform interface to system facilities in disparate operating systems. 
  4. Read and understand a specification for a network service. 

Specific Goals –  

EAC Crit. 3 Outcomes 

Specific Goals –  

CAC Crit. 3 Outcomes 

Topics

  1. Standards and Conventions (POSIX, SUSE, etc.) 
  2. File Systems and Calls – examine iostreams, C Standard I/O Library, and low level calls. 
  3. Processes – initialization, control and status.  
  4. Signals and signal handling, asynchronous I/O 
  5. Networking applications and IPC 
  6. MPI 
  7. Flex, Bison, and parsing 
  8. Process relationships and daemons 
Last Updated: 7/27/23