CS241: Computer Organization
Syllabus: Spring 2004
Instructor: Prof. Janice T. Searleman
Office: 375 Science Center
Office Hours: Mon 2:50 - 4:00 pm
Tue 12:30 - 2:00 pm
Thu 12:30 - 2:30 pm
Fri 2:50 - 3:30 pm
If you cannot come during these scheduled office hours, feel free to contact
me to set up an appointment.
- To learn computer organization from a programmer's perspective.
- What the programmer writes, how it is converted into a form the computer
understands, how the computer interprets the program, and what makes
- To learn Assembly Language programming and low-level C programming.
- The Intel IA32 assembly language and ANSI C will be used.
- To learn fundamental concepts in Computer Science and Engineering
- The 5 classic components of a computer: Control, Datapath, Memory,
Input, and Output
- Data can be anything (integer, floating point, character, etc.); a
program determines what it is.
- Stored program concept: instructions are data
- Principle of Locality, exploited via a memory hierarchy
- Principle of Abstraction, used to build systems as layers
- Compilation, Linking and Loading.
- Principles/Pitfalls of Performance Measurement
- To become more effective programmers
- Able to find and eliminate bugs efficiently
- Able to tune program performance
- To prepare for "systems" classes in Computer Science and Engineering
- Operating Systems, Compilers, Networks, Computer Architecture, Database.
Textbooks:Computer Systems: A
Programmer's Perspective , by Randal E. Bryant and David O'Hallaron,
Prentice Hall, 2003, ISBN 0-13-034074-X.
The C Programming Language, ANSI C, Second Edition, by Kernighan &
Ritchie, Prentice Hall, 1988, ISBN 0-13-110362-8.
|2 Midterm Exams
|Programs, Labs & Homework
Tentative dates for the exams
are: 2/11 and 3/31
You are responsible for all material discussed in class and in the reading
assignments. Attendance is particularly important, and class participation is
encouraged. The written homework and programming assignments are expected to be
individual efforts unless otherwise notified. Quizzes will be given throughout
the semester, and good quiz grades will improve your overall grade if you are
close to a borderline (poor or missing quizzes will not be factored in to your
overall grade). You are encouraged to learn from each other and to help each
other understand concepts, but be ethical -- do not copy or edit a program which
isn't yours or allow another student to write or debug your program for you.
Assignments are due at the beginning of class on the given due date. Late
programs will be accepted up to one week late, but there will be a 15% reduction
After one week, a grade of zero will be recorded for the assignment. You are
strongly urged to see the instructor before any problems arise.
- An overview of Computer Systems; levels of abstraction
- Representing and Manipulating Information
- Machine-Level Representation of Programs
- Optimizing Program Performance
- Compilation, Linking & Loading
- Measuring Program Execution Time
- Virtual Memory & Memory Layout
- System-Level I/O