|
Dec 22, 2024
|
|
|
|
CPE 2600 - Systems Programming3 lecture hours 2 lab hours 4 credits Course Description This course introduces students to programming at a systems level using the C programming language. C programming topics covered include variables, functions, pointers, and structures. This course also introduces students to the mechanisms for interacting with operating system services. Topics include process creation and management, inter process communication, memory allocation and management, concurrency and synchronization, and input/output. Students are introduced to the concepts of compilation, linking, macros, build systems, and version control. Note: students may receive credit for only one of CPE 2600 and CSC 2210 . (prereq: CSC 1310 or CSC 1110 or ELE 1601 or previous programming experience) (quarter system prereq: CS 1011, CS 1021) Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Navigate through a Unix system environment
- Create and manage users, groups, files, and permissions
- Navigate and manage the Unix file system and directory structure
- Construct and execute shell scripts
- Write procedural programs in C
- Understand the use of variables, types, expressions, functions, parameters, and arguments
- Explain how variables are allocated in memory, the relationship between variables and pointers, and the scope and lifetime of variables
- Use build and debug tools for software development (e.g., make, gdb, valgrind)
- Use a version control system to manage software development
- Construct programs that use static and dynamic memory allocation along with proper use of pointers and pointer arithmetic
- Explain how programs interact with an operating system through system calls
- Construct programs to create processes that communicate using inter processes communication mechanisms
- Construct programs that interact with the file system
- Construct programs with multiple threads that use concurrency mechanisms to control access to shared resources
Prerequisites by Topic
- Basic programming experience
Coordinator Dr. James Lembke
Add to Portfolio (opens a new window)
|
|