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]