Search | Directories | Reference Tools
UW Home > Discover UW > Student Guide > UW Bothell Course Catalog 

Instructor Class Description

Time Schedule:

Wooyoung Kim
CSS 422
Bothell Campus

Hardware and Computer Organization

An introduction to the architecture, operation, and organization of a modern computing machine. Topics covered include basic logic operations, state-machines, register models, memory organization, peripherals, and system issues. Assembly language taught in order to understand the instruction set architecture and memory model of the computer. Prerequisite: CSS 342; may not be repeated.

Class description

This course will provide students with the basic theories and concepts of how hardware and software cooperatively interact to accomplish real-world tasks. Elements of the hardware development such as instruction set architecture, memory and I/O organization will be examined in the context of modern computer system fundamentals such as memory management, Algorithmic State Machines and Interrupt handling. Also, the differences between the CISC and RISC architectures will be examined in the context of their assembly language instruction sets and the compiler technology required to support them. Finally, we'll look at special topics such as caches and virtual memory management, and future trends in computer design.

We will first explore the elements of the modern computing system at the level of the logic gate. We’ll go down to the level of the bits, bytes and clocks to examine how the basic blocks of the computer work together. This will lead us to look at the algorithmic state machine and how it enables a computer actually work. This "down and dirty" analysis will get us ready to look at assembly language. Next, we’ll write some assembly language programs and then map these programs onto their analogs in higher level languages, such as C or C++. Working with assembly language will provide the insight into how modern operating systems deal with the real world through its drivers and interrupt handler routines. Finally, we’ll take a step back and study the modern computer architectures of CISC and RISC. This naturally leads us to look at pipelines, caches and virtual memory management.

Student learning goals

Understand the electronic circuit basis for modern computer systems

Understand the relationship among logic equations, logic circuits, and software as equivalent representations of computing machines

Understand the physical organization of modern computer systems

Understand how to program in assembly language

General method of instruction

The basic format of the class is a class lecture, however this class requires lots of students participation, including exams, assignments, quizzes, exercises, online discussion as well as a final group project.

Recommended preparation

CSS 342: Performance measurement (big-O notations), Boolean algebra, discrete mathematics.

Class assignments and grading

Assignments include problem solving as well as assembly programming.

All exams and assignments are strictly graded based on, not just the results but also the processes for each task.


The information above is intended to be helpful in choosing courses. Because the instructor may further develop his/her plans for this course, its characteristics are subject to change without notice. In most cases, the official course syllabus will be distributed on the first day of class.
Last Update by Wooyoung Kim
Date: 04/02/2013