Systems Programming CS 270
This course provides an introduction to computer systems and explores computer architecture, operating systems, and networks from a programmer’s perspective. The course also introduces advanced programming and debugging tools. Topics include hardware instruction sets, machine language and C language program representations, linking/loading, operating systems (process management, scheduling, memory management, interprocess communication, and file systems), network programming (socket programming and web protocols), and common security attacks and solutions.
Correlated Learning Outcomes
- NC-01 Diagram the basic structure of the Internet. [Applying]
- NC-02 Describe the layered structure of a typical networked architecture, including routing and switching. [Understanding]
- NC-03 Diagram the layers of the OSI model, including associated protocols. [Applying]
- NC-04 Categorize the principles used for naming schemes and resource location.[Analyzing]
- NC-05 Implement a simple distributed network application. [Applying]
- OS-01 Examine major objectives, functions, features, and concepts of modern operating systems. [Analyzing]
- OS-02 Compare prevailing types of operating systems. [Analyzing]
- OS-03 Illustrate potential threats to operating systems and appropriate security measures. [Applying]
- OS-04 Diagram the interaction of an Application Programming Interface (API) with an operating system [Applying]
- OS-05 Illustrate how computing resources are used by applications and managed by the operating system. [Applying]
- OS-06 Manipulate a device list or driver I/O queue. [Applying]
- OS-07 Investigate the need for concurrency within an operating system. [Applying] See also PD-01.
- OS-08 Illustrate the principles of memory management. [Applying]
- OS-09 Illustrate the concepts of virtual memory, including paging, thrashing, and partitioning. [Applying]
- OS-10 Investigate the features and limitations of an operating system used to provide protection and security. [Applying]
- OS-11 Use mechanisms available in an operating system to control access to resources. [Applying]
- OS-12 Analyze the concept of virtualization with respect to hardware and software. [Analyzing]
- OS-13 Diagram the physical hardware devices and the virtual devices maintained by an operating system. [Applying]
- PD-01 Analyze the goals of parallelism and concurrency. [Analyzing] See also OS-07 and SF-08.
- SF-01 Illustrate the basic building blocks of computers and their role in the historical development of computer architecture. [Applying]
- SF-02 Discuss the differences between single thread and multiple thread, as well as single server and multiple server models. [Understanding]
- SF-09 Investigate other uses of parallelism, including reliability and redundancy of execution. [Applying]