CS 241
CS 241 - System Programming
Fall 2021
| Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
|---|---|---|---|---|---|---|---|---|---|
| System Programming | CS241 | AD1 | 66269 | OD | 0 | 1700 - 1820 | W | Shivram Gowtham | |
| System Programming | CS241 | AD2 | 75920 | OD | 0 | 1830 - 1950 | W | Eric Shengwen Zhang | |
| System Programming | CS241 | AD3 | 75921 | OD | 0 | 0930 - 1050 | R | Arpitha Raghunandan | |
| System Programming | CS241 | AD4 | 75922 | OD | 0 | 1100 - 1220 | R | Aditya S Mansharamani | |
| System Programming | CS241 | AD5 | 75923 | OD | 0 | 1230 - 1350 | R | Yinfang Chen | |
| System Programming | CS241 | AD6 | 75924 | OD | 0 | 1400 - 1520 | R | Yinfang Chen | |
| System Programming | CS241 | AD8 | 57584 | OD | 0 | 1100 - 1220 | F | Aditya S Mansharamani | |
| System Programming | CS241 | AD9 | 57585 | OD | 0 | 1230 - 1350 | F | Meghna Mandava | |
| System Programming | CS241 | ADA | 59531 | DIS | 0 | 1700 - 1820 | W | 0218 Siebel Center for Comp Sci | Lawrence Angrave Shivram Gowtham |
| System Programming | CS241 | ADB | 51471 | DIS | 0 | 1830 - 1950 | W | 0218 Siebel Center for Comp Sci | Lawrence Angrave Eric Shengwen Zhang |
| System Programming | CS241 | ADC | 51472 | DIS | 0 | 0930 - 1050 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Arpitha Raghunandan |
| System Programming | CS241 | ADD | 51473 | DIS | 0 | 1100 - 1220 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Aditya S Mansharamani |
| System Programming | CS241 | ADE | 51474 | DIS | 0 | 1230 - 1350 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Yinfang Chen |
| System Programming | CS241 | ADF | 51475 | DIS | 0 | 1400 - 1520 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Yinfang Chen |
| System Programming | CS241 | ADH | 66270 | DIS | 0 | 1530 - 1650 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Meghna Mandava |
| System Programming | CS241 | ADI | 66271 | DIS | 0 | 1700 - 1820 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Eric Shengwen Zhang |
| System Programming | CS241 | ADJ | 66272 | DIS | 0 | 1830 - 1950 | R | 0218 Siebel Center for Comp Sci | Lawrence Angrave Eric Shengwen Zhang Muhammed Ishaq Imran |
| System Programming | CS241 | ADK | 51476 | DIS | 0 | 1100 - 1220 | F | 0218 Siebel Center for Comp Sci | Lawrence Angrave Aditya S Mansharamani |
| System Programming | CS241 | ADL | 66273 | DIS | 0 | 1530 - 1650 | W | 0218 Siebel Center for Comp Sci | Lawrence Angrave Arpitha Raghunandan |
| System Programming | CS241 | ADM | 46648 | DIS | 0 | 1230 - 1350 | F | 0218 Siebel Center for Comp Sci | Lawrence Angrave Meghna Mandava |
| System Programming | CS241 | AL1 | 45300 | OLC | 4 | 0900 - 0950 | M W F | Lawrence Angrave | |
| System Programming | CS241 | AL2 | 66268 | LEC | 4 | 0900 - 0950 | M W F | 1002 Electrical & Computer Eng Bldg | Lawrence Angrave |
See full schedule from Course Explorer
Web Page
Official Description
Course Director
Text(s)
Learning Goals
Interact with a POSIX operating system in C via system calls to create system applications (2), (6)
Implement and evaluate a dynamic memory allocator (2), (6)
Analyze and implement a virtual memory subsystem (2), (6)
Create system applications that manipulate processes and threads (1), (2), (6)
Evaluate how OS schedules processes and threads (6)
Communicate and synchronize between threads and processes to create robust system applications (1), (2), (6)
Use synchronization to identify and fix potential deadlock and race conditions in concurrent programs (2), (6)
Manipulate filesystem structures (inodes etc.) (2), (6)
Design and create client and server programs to communicate across networks (1), (2), (6)
Understands and uses system security mechanisms to build secure programs (1), (2), (6)
Can analyze how a specific security error (e.g. buffer overflow, file access control, page access control) impacts the Confidentiality, Integrity and/or Availability of data or service. (1)
Can identify multiple development practices (e.g. design reviews, code reviews, testing) as important practices to build secure programs. (6)
Can briefly describe well-known security case studies (e.g. network protocol implementation errors, CPU side channel attacks) and how they comprise the Confidentiality, Integrity and/or Availability of data or service. (6)
Topic List
Basic internal structure and purpose of operating systems
Input-output, file, and directory structures
Memory allocation and deallocation
Virtual memory
Interaction with the operating system kernel via system calls
Multi-process programming and inter-process communication
Multi-thread programming and inter-thread communication
Synchronization primitives including semaphores and mutexes
Deadlock causes and avoidance
Multi-core scheduling algorithms
Network programming with TCP/IP
Security elementary principles and practices (programming practices, protocols and well-known case studies)
Required, Elective, or Selected Elective
Required.