CS 135: Computer Architecture I

Instructor: Professor Bhagi Narahari
narahari@gwu.edu
Fall 2008 Office Hours: Mon, Wed 3:00 -5:30pm, Tues 5:00-6:00pm. Other times by Appointment.

Course Outline
This is an introductory course on Computer organization and computer systems. The  course will expose the student to the different layers in a computer system and examine the working of a computer system at these different levels. It will expose the student to the low level details of how machines are assembled and the tools to program them -- it will expose what really happens when your programs are run, thereby providing you with the intellectual tools needed to solve problems when things go wrong. In addition to the theoretical concepts, the course through the lab section will provide introduction to systems programming in the Unix environment using standard tools and focusing on issues such as performance and correctness. The course will take a bottom-up approach: it will start with the basic components of a computer system, machine representation of data, digital logic circuits, instruction sets and assembly programming, and then it uses the C language and the Unix operating system to study system level aspects such as memory management, file systems, safe programming, system stack, debugging and performance tuning of programs. The coruse will also expose students to working in teams. The lecture, and some lab sessions, will consist of in-class activities and students will be required to work in teams.


Course Objectives


Cooperative Learning and Working in Teams

In this course, you will work in a team during in-class exercises and some of the assignments and projects. Lectures will include in-class activities, where students will work in teams to cooperatively solve the assigned problems. Participating in team activities is essential for learning in this course. Details of roles within a team, team contracts, and how your role changes in this SCALEUP style class are provided here.

Prerequisites and Texts:

Additional Reference(s):  Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language,Second Edition, Prentice Hall, 1988. Highly recommended.
 Computer Systems: A Programmers Perspective, Randall E. Bryant and David O’Hallaron, Prentice-Hall 
The material in the text (and the text website) will be sometimes supplemented by notes posted on the course website (lecture notes link)

 Lab Section and Teaching Assistants

You must be registered in a lab section of CS 135. These will be conducted by the TAs and will have in-class exercises. There will be a TA -- Stefan Popoveniuc .

Course Materials

Grading and Course Requirements

Syllabus

Course Announcements and Schedule-- Check once a week

Lecture Notes

Homeworks

Lab Materials


Team Assignments


You are not allowed to collaborate on the homeworks and the lab assignments. The programming projects will be assigned to two person teams – in such cases you cannot collaborate between teams. Please refer to the academic integrity policy linked from the course web page – this policy will be strictly enforced.

 Academic Integrity Policy