Course Catalog - 2022-2023



Department: Computer Science
Grade Mode: Standard Letter
Language of Instruction: Taught in English
Course Type: Lecture
Credit Hours: 3
Must be enrolled in one of the following Program(s):
Online Master Computer Science
Must be enrolled in one of the following Level(s):
Prerequisite(s): COMP 613 OR COMP 614
Description: Modern computer systems are designed and implemented in a layered fashion, wherein each layer builds upon those beneath it, providing abstractions for processing, memory, and I/O that are progressively more abstracted from the hardware and easier to use than those of the underlying layers. While this layered architecture has made building systems easier, it has also made understanding their behavior and performance more difficult. Every layer from the managed run-time environments used by modern programming languages to the hypervisor play a role in processor scheduling, memory management, and I/O, making it oftentimes difficult to pinpoint which layer of the system is interacting poorly with a program. This class will teach students about the fundamental characteristics of the abstractions for processing, memory, and I/O at each layer of a modern computer system, so that they might understand the functionality provided by each layer, and instruct them on the use of modern debugging, profiling, and tracing tools, so that they are equipped to characterize the behavior and performance of their programs. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.