Syllabus
CMSC 313:
  Introduction to Computer Systems


CMSC 313
Syllabus

Information
Projects

Readings
Lectures
Exams
Dates
Changes

Submit server
Grades system

 

 

Syllabus with all course information (in PDF).

Course Description

The goal of the course is to convey the fundamental concepts that enable programs to execute on real hardware. Those concepts include how the operating system virtualizes the hardware to provide basic services and abstractions to enable a user program to effectively use the available hardware resources. The course also addresses how different programming constructs and idioms work.

The basic abstraction of a program running as one or more threads of control in a single flat address space (a Unix process) is the key to the course. Emphasizing that abstraction as the underlying model for understanding how a program works, from both the user program and hardware perspective (with the OS in between), run as a theme through all topics in the course. Examples include C pointers (to data and functions), function calls and runtime stack management, dynamic memory management in the heap, and the fork/exec system calls.

Primary Text

  • Computer Systems: A Programmer's Perspective, R.E. Bryant and D.R. O'Hallaron, Prentice Hall, 2003; ISBN 0--13--034074--X.

Recommended Text

  • Pointers on C, K.A. Reek, Addison--Wesley, 1998; ISBN 0--673--99986--6.
Last updated Monday, 31 August 2009 12:55 AM