System Programming

Course Description

System programming with emphasis on processes, memory management, multithreaded programming, synchronization and deadlocks, interprocess communication, parallel and distributed computing, networking, files systems, security, signals, and virtualization containers. Prerequisite: Grade of C- or better in CSC 230 and CSC 261, or permission of instructor.

Syllabus

Student Learning Outcomes, Goals, Objectives:

This class is a programming-focused class, exploring how programs interact with the operating system and use system and related services.

Students successfully completing this course will be able to:

  • diagram basic process structure and resources, including memory segments, file handles, user/ownership;

  • use manual memory management techniques for dynamic memory allocation in a program;

  • create programs that use threads for parallel processing;

  • create programs that use network sockets for inter-system communication;

  • create programs that use message passing between different systems for distributed computing;

  • explain basic security principles, including core goals of confidentiality, integrity, and availability, and subject/object access control;

  • use virtual machines and containers for isolation.

Course Grading Information:

Activity/Performance Measure

Percentage/Points

In-class/participation

10 %

Solo Assignments

25 %

Collaborative Assignments

30 %

Tests

35 %

Grading Scale

Percentage

Letter Grade

94-100

A

90-93

A-

87-89

B+

84-86

B

80-83

B-

77-79

C+

74-76

C

70-73

C-

67-69

D+

64-66

D

60-63

D-

<59

F

Attendance/Participation:

Students are required to attend all classes. Accumulated absences more than 30% of total class hours without preapproval, it may lead to failure in the course.

Course Materials Purchased by the Students:

B. Venkatesh, L. Angrave, et al., System Programming Coursebook

Available at https://cs341.cs.illinois.edu/coursebook/index.html

Scholarly Perspectives

This course engages diverse scholarly perspectives to develop critical thinking, analysis, and debate and inclusion of a reading does not imply endorsement.