Computer architecture—sometimes called “computer organization”—is an important first look at computing from below the software surface. In our experience it is the most neglected area among self-taught software engineers.
The course is scoped as an introduction to the topic, designed for software engineers who want to be better software engineers, rather than prospective hardware designers (the target audience of many computer architecture courses).
The focus is on building a strong mental model of the actual execution of programs by a microprocessor, so that students may better reason about the code they write. This manifests most clearly as the ability to write faster code, whether by better understanding the available instruction set, by reasoning more clearly about branch prediction or cache coherence, or by understanding the limits of parallel execution.
This course assumes confident general programming abilities. Some familiarity with C and/or assembly programming would be advantageous but not required: both will be covered in class.
This course is next scheduled to run Mondays and Thursdays 6pm-9pm and Sundays 10am-1pm for three weeks starting Monday, 3 April 2017. The total price is $1,800.