This course covers the concepts underlying all computer systems and how they affect the correctness, performance, and utility of application programming. The course topics include machine-level programming and architecture and their relevance for application programming; information representations; assembly language and debuggers; processor architecture; program optimization; and memory hierarchy and caching. If time permits, basic system-level I/O and network programming also will be covered.
Bryan & O'Hallaron, Computer Systems: A Programmer's Perspective,
Prentice Hall, 2003. ISBN: 0-13-034074-X
The text readings are: Chapters 1 through 3, parts of Chapters 4 and 5, most of
Chapter 6. Time permitting, parts of Chapter 11 and Chapter 12.
The firm prequisite is programming experience. For CDM students, the second course in the basic Java sequence (CSC 212) or the Java for Programmers course (CSC 224) would be sufficient. In general, a student should have completed at least two basic programming courses in a modern language such as Java. The course relies heavily on coding examples written in C and several assignments involve the compilation and execution of C programs. (Students will not be required to write any C programs from scratch but may need to modify existing programs.) Although no knowledge of C in particular is assumed, the ability to program is assumed. (A README document on the course homepage explains how to get C for a Windows machine and how to use the CTI-provided Linux machines, which have a standard C compiler.)
Because Summer courses are only five weeks long, there will not be a midterm exam.
The final exam is a quality control exam with material drawn from and, therefore, closely
related to material from the homework exercises. The single best preparation for the final exam is to do the homeworks as well as possible. There will
be one homework assignment per week, with a week to complete the assignment. All homework
must be submitted on time so that the material then can be discussed in class. Answers to the homework will
be posted shortly after the deadline submission; so, of course, homework cannot be submitted after the deadline. Near the end of the course, there will be one makeup homework that can be submitted in place of a regular homework. (If you submit all regular homeworks and the makeup, I'll substitute the makeup homework grade for the lowest of the regular homeworks, if the makeup grade is higher.)
The grading will be determined as follows:
| 93-100 | A |
| 90-92 | A- |
| 87-89 | B+ |
| 83-36 | B |
| 80-82 | B- |
| 77-79 | C+ |
| 73-76 | C |
| 70-72 | C- |
| 67-69 | D+ |
| 60-66 | D |
| 0 - 59 | F |