This course will be first offered Fall 2012. It will replace the requirement for CS231 and CS232 in all CS curricula.
This course introduces you to how computers work. We introduce logic gates and from there build up to a simple computer. At that point we introduce assembly language, the native language of computers and demonstrate how high-level languages like C and Java execute on computers. From there, we overview the architecture of modern computers to provide an understanding of computer performance. In addition, the course will feature the SPIMbot contest that CS232 has become known for.
Course Objectives: This course has 4 main objectives:
- a concrete understanding of the workings of a simple computer,
- an understanding of how high-level languages work by learning assembly language,
- the development of a performance model of modern computers to enable and understanding of performance, and
- the introduction to hardware primitives for parallelism and security to build on in later courses.
Prerequisite: CS 125 (Introduction to Computer Science), CS173 (Discrete Mathematics). Successful completion or current enrollment in CS 225 is strongly encouraged.
Organization: This 4-unit course will consist of 3 50-minute lectures a week and a 2-hour discussion/lab section once a week. Assigned design and programming assignments will be performed outside of class time.