CSCI 237

Computer Organization

Home | Schedule | Assignments | Links | Slack | Williams CS

Home

Instructor: Kelly Shaw
Email: kshaw AT cs.williams.edu
Phone: x2772
Office: TCL 309
Help Hours: Mon. 1-2:30pm, Th. 2-3:30pm, and by appt on request
Lecture Meeting Times: MWF 10-10:50pm in Clark 105
Lab Meeting Times: W 1:00-2:30pm, 2:30-4:00pm in TBL 301

Required Textbooks: Computer Systems: A Programmer's Perspective (3rd Edition),
by Randal E. Bryant and David R. O'Hallaron
The C Programming Language (2nd Edition),
by Brian W. Kernighan and Dennis M. Ritchie

TAs: Nick Canora, Brij Howard-Sarin, Tanatswa Manyakara, Valeria Starkova, and David Wang
TA meeting location: TBL 301
TA schedule: calendar below
Peer tutor: Alex Root Schedule appointments using Accudemia

Course Description

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, distributed systems, and graphics, where a deeper understanding of systems-level issues is required. At the same time, a model of computer hardware organization is developed from the gate level upward. Topics covered include: machine-level code and its generation, performance evaluation and optimization, computer arithmetic, and memory organization and management.

As a secondary objective of the course, students enhance their software development skills, specifically in the Unix environment. In addition to learning to write programs in the x86 assembly language and the C programming language, students learn how to use some helpful Unix commands as well as various tools including the emacs editor, gdb debugger, valgrind and address sanitizer memory analysis tools, and Makefiles.

Policies

Course Syllabus
Department Honor Code and Account Agreement
Williams College Policy on Classroom Recordings and Use of Class Materials

Course Support Schedule (TAs in the Ward lab)