CSC 373: Computer Systems 1


Course Overview

This course is an introduction to computer systems with an emphasis on how such systems impact the performance, utility, and correctness of applications. Course topics include machine organization, information representation, machine and assembly language, memory hierarchy, virtual memory, pipelining, basic system-level I/O, and networking.

Textbook

Bryan & O'Hallaron, Computer Systems: A Programmer's Perspective, 2nd edition (2011) Prentice Hall. ISBN-13:978-0-13-610804-7
Recommended: Adam Hoover, System Programming with C and Unix, Addison-Wesley (2009) ISBN-13:978-0-13-606712-2

Prerequisites

The firm prerequisite is programming experience: two courses in the same programming language (e.g., Python, Java, C++) together with a course in data structures/algorithms. The course also presupposes a 1-course background in discrete mathematics. The course relies heavily on coding examples written in C. Several assignments involve the compilation and execution of C programs; other assignments require programming in C. (C and C++ are distinct languages. This course uses C rather than C++.)

Although no knowledge of C is assumed, the ability to program is assumed.

The GNU C compiler will be used to compile the examples distributed in class and to investigate assembler. A quick check on whether your system already supports this compiler is to type

gcc -v
at a command-line prompt. If you get information about the version, you should be good to go. In general, Linux systems and Mac OSX should include the compiler. For Windows, see the document, which is on the homepage, about installing the Cygwin compiler.

Grading

Because Summer courses are only five weeks long, there will not be a midterm exam. Instead, there will be weekly homework exercises and discussion of these in the following week.
The final exam is a quality-control exam with material drawn from and, therefore, closely related to the questions on the homework. All homework must be submitted on time so that the material then can be discussed in class. Answers will be posted on-line after the submission deadline. There will be one make-up homework, which may be substituted for any other homework.
The grading will be determined as follows:

A student must pass the final exam to pass the course.

Students are expected to do their own homework, of course.

Instructor

kalin@cs.depaul.edu
Office: 902 CDM building
Hours: 4:00PM to 6:00PM, T/Th and by arrangment