Course Details

  • Course Number: 01:198:416
  • Course type: Undergraduate
  • Semester 1: Fall
  • Semester 2: Spring
  • Credits: 4
  • Description:

    To convey a thorough understanding of the basics of an operating system by studying techniques and algorithms for providing services in a computer system, and to understand implementation aspects of popular systems by means of case studies.

  • Prerequisite information:

    01:198:214.

    - A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • Course links: 01:198:214 - Systems Programming
  • Topics:

    Computer organization
    Process management, synchronization, scheduling and deadlocks
    Memory management, virtual memory 
    I/0 management, file systems, 
    Queuing theory, performance evaluation
    Case studies of UNIX

  • Expected Work: Homework assignments, programming assignments
  • Exams: 2 hourlies and a final exam
  • Learning Goals:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).