This course studies the structure of computer hardware. Topics include models of computer hardware; instruction set architectures; simple code generation from a high-level language, machine code, simple logic design, representations of numbers and other data types, computer arithmetic, data path organization, input-output devices, control techniques (FSM and microcode), pipelines, caches, buses, virtual memory and primary, secondary and tertiary storage structures. Prerequisites: COSC 130; and MATH 200 or MATH 281.