Electrical Engineering and Computer Science

EECS 4520 - Advanced Systems ProgrammingCourse 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