Course Information: Principles of Concurrent Programming and Operating Systems

Computer Science Department
Course Competency Plan
COURSE: CpSc 464 Principles of Concurrent Programming and Operating Systems

Course Description: An introduction to operating systems with emphasis on fundamental principles. These include store management, processor management, file systems and input/output. Laboratory exercises are assigned using a language that supports concurrency. Distributed and "real time" illustrations are used, as well as standard operating system illustrations. Prerequisites: CpSc 370, 374, 376, and 378. (3 credits)

Course Outcomes: This course and its outcomes support the Computer Science Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), Communication and Interpersonal Skills (C&IS), and Ethical and Professional Responsibilities (E&PR). These Computer Science Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking and Problem Solving, Communication, and Values and Ethics.

This course engages students in the following high impact practice: writing-intensive

DegreeProgram ObjectiveAssessed Course Objective
CS II.b. Use written, oral, and electronic communication to convey technical information effectively 1. Give an oral presentation to convey an operating system topic.
CS II.d. Work cooperatively in teams and with others. 2. Design and implement operating system project as a team
CS III.a. Plan for and ensure the security, privacy, and integrity of data. 3. Identify issues pertaining to privacy and ethical methods of implementing computer programs.
CS III.b. Recognize the ethical, legal, and social implications of computing.

Additional Course Objectives include:
The student will be able to:

  1. Describe & analyze scheduling algorithms
  2. Identify the difficulties with interprocess communication
  3. Describe & analyze swapping and paging techniques for memory management, principles of I/O software and hardware, and various file system implementations
  4. List the design issues for paging
  5. List design issues of security, device management and file systems
  6. Describe the issues in implementing distributed systems, multi-tasking, real-time and parallel processing