CSE 320 Computer Organization and Architecture (3 cr)
Catalog Course Description
Boolean algebra and digital logic. Combinational and sequential circuits. Representations of data and instructions. Architecture and major components of computer systems. Assembly language programming and interfacing to high level languages. Assembler and linker processing.
(Letters refer to program outcomes; caps indicate greater emphasis.)
This course introduces students to the interface between the hardware and software of modern computing systems by studying the ISA (instruction set architecture) of a typical microprocessor. Students will learn to use Boolean algebra and related tools to design combinational and sequential circuits. Students will study the internal representation of and operations on basic data types. Students will learn the fundamentals of assembly language programming as a means of studying the ISA of a typical microprocessor.
At the completion of this course, each student should be able to do the following:
- Use Boolean algebra and related tools to design and implement combinational and sequential circuits. (A,i,j)
- Perform fundamental operations on integer and floating-point numbers as represented within a processor. (a,i,j)
- Demonstrate comprehension of the von Neumann model of computer organization and techniques for implementing the fetch-execute cycle. (a,c,j)
- Design and implement assembly-language functions that manipulate integer and floating point values, including the use of selective and repetitive execution, subprograms, and low-level data structures (such as arrays and records). (a,b,c,i,j,k)
Program Outcomes covered in CSE 320
- An ability to apply knowledge of computing and mathematics appropriate to the discipline (b)
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution (c)
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs (i)
- An ability to use current techniques, skills, and tools necessary for computing practice (j)
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices (k)
- An ability to apply design and development principles in the construction of software systems of varying complexity
Assessment of how well outcomes are being achieved will be done by applying a rubric to a random sample of at least 25% of the students who have completed the work being used for assessment. Assessment tools are examinations and programming projects. For each outcome being assessed, each student in the sample will be judged to (a) exceed, (b) meet, or (c) fail to meet an objective standard designed to assess this outcome. Unless otherwise specified the thresholds used are: meet (70%), exceed (85%). We will say that this offering of the course achieved the particular outcome if and only if 70% or more of the students sampled were assessed to be in categories (b) or (c).
- Course outcomes I, II, III and IV assessed by
- specific exam questions and programming assignments
- Combinational and sequential circuits (20% of total lecture time).
- Internal representation of atomic data types and operations on those types (20%).
- Microprocessor architecture and organization, and assembly language programming (36%).
- ISA Implementations (16%).
- Translation processing (8%).
- Principles of Computer Architecture (Murdocca and Heuring; Prentice-Hall, 2001)