This course presents a bottom-up introduction to computer architecture, beginning with digital gates and number representation; building up through the Von Neumann model, Instruction Set Architecture (ISA) and assembly language; and ending with C programs interacting with assembly programs. Most of the concepts in this course will be reinforced through programming assignments in C. In CS 270 students write a number of C programs to learn concepts by programming them and to build confidence in the C programming language, which is an important language used frequently in industry and systems research. There will be at least one deliverable a week.