This course provides an introduction to computer organization and computer architecture. It builds on digital logic theory and devices (as studied in EE365) and procedural logic (as studied in CS360) to develop more complex systems. Emphasis is placed on understanding the basics of computer system organization, design, and operation. This includes the use of Register Transfer Language (RTL) to describe the movement of data in the computer and assembly language programming to control the system at a higher level. Additionally, cadets are introduced to modern engineering design tools through the use of VHDL (VHSIC Hardware Description Language) as they design, simulate, and program a simple processor in design projects. Other topics such as microprogram control, RISC architectures, arithmetic processing, input/output, and memory design are introduced. Cadets learn the fundamentals of SPARC Assembly Language to demonstrate instruction-level control of a real processor. Cadets are introduced to the C programming language and linking assembly language routines with higher-level languages.