C S 324

Download as PDF

Systems Programming

Computer ScienceCollege of Computational, Mathematical, & Physical Sciences

Course Description

Systems programming principles and concepts, including Linux systems programming, multiprocessing, concurrency, exceptional control flow, caching, sockets, protocols, and non-blocking I/O.

When Taught

Fall and Winter

Min

3

Fixed/Max

3

Fixed

3

Fixed

0

Title

Master Linux Systems Programming

Learning Outcome

Utilize Linux APIs and command-line tools to develop software that interacts directly with the operating system. This technical fluency is intellectually enlarging, as it provides students with a comprehensive understanding of the intricate layers between hardware and software.

Title

Implement Multiprocessing and Concurrency

Learning Outcome

Write programs that manage multiple processes and concurrent execution flows. Mastering the coordination of these simultaneous actions is character building, requiring the patience and precision to handle the complexities of "exceptional control flow" with total accuracy.

Title

Optimize Performance through Caching

Learning Outcome

Analyze the impact of caching on system performance and implement strategies to minimize latency. Students will view this optimization of computational resources as a form of stewardship, ensuring their work is a model of professional excellence and efficiency.

Title

Utilize Network Sockets and I/O

Learning Outcome

Develop network-based applications using sockets and non-blocking I/O to facilitate communication between distributed systems. This ability to connect disparate systems is spiritually strengthening, as it prepares students to build tools that foster global communication and service.

Title

Analyze and Refine Systems

Learning Outcome

Perform deep analysis of system-level behavior and refine code to meet rigorous performance standards. This iterative process of discovery and correction encourages lifelong learning, providing students with the investigative mindset needed to master new technologies as they emerge.