Description: This course is the first part of a two semester sequence, Computer Systems I and II. The goal of this sequence is to bridge the gap between high-level programming and actual computer systems -- processors, caches, operating systems, compilers and linkers. Computer Systems I comprises three major parts: machine organization and assembly language programming, C program design and development, and operating system tools. Unix will be used as a running example.

Specific Outcomes:
Differentiate between different internal formats to represent numerical data.
Develop an ability to explain of the role of the basic computer system components.
Enhanced programming skills through the development, testing and debugging of C programs in Unix.
Establish an understanding of basic operating system services and client server communication.
Develop an appreciation of the need for security and ethics in computer use.

Instructor: Mirela Damian, Professor of Computer Science