Feb 09, 2023
 HELP 2019-2020 Undergraduate Academic Catalog [ARCHIVED CATALOG] Print-Friendly Page (opens a new window)

# CS 2711 - Computer Organization

4 lecture hours 0 lab hours 4 credits
Course Description
This course provides students with an introduction to the structure of computer hardware, including the components of a modern computer system as well as the tradeoffs necessary to construct such a system. Specific course topics include Boolean Algebra, basic combinatorial logic, basic sequential logic, numeric systems, the role of performance in designing computer systems, Amdahl’s Law, instruction formats, addressing modes, computer arithmetic with both fixed and floating point numbers, single cycle and multi-cycle data-path design, pipelining, the memory hierarchy, and caching. Students will develop small, assembly language programs on a simulator as a means of exploring instruction formats and data-path operation. (prereq: CS 1011 or SE 1011 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
• (Application) Use Boolean algebra to simplify logic statements
• (Application) Construct simple combinatorial and sequential logic designs to solve basic problems
• (Comprehension) Understand the relationship between input, output, memory, the processor, the data path, and the control path within a computer
• (Comprehension) Explain how signed and unsigned numbers and ﬂoating point numbers are represented within a computer
• (Application) Perform signed, unsigned, and floating point mathematical operations, including addition, subtraction, multiplication, and division
• (Comprehension) Explain the memory hierarchy within a computer and quantify its impact on computer performance
• (Application) Explain how variables are allocated in memory and the relationship between variables and pointers
• (Application) Compute performance related metrics for a computer-based system or implemented program
• (Analysis) Critique the design and implementation of a processor based upon design parameters
• (Synthesis) Write simple assembly language routines using MIPS assembly language

Prerequisites by Topic
• Simple procedural programming
• Primitive data types and sizes
• Fundamental understanding of arrays

Course Topics
• Truth tables (1 lecture)
• Boolean algebra (2 lectures)
• Circuit design (1 lecture)
• Karnaugh maps (2 lectures)
• Computer parts (1 lecture)
• Electrical power (1 lecture)
• Computing performance (1 lecture)
• Computer operations (2 lectures)
• Signed and unsigned numbers (1 lecture)
• Representing programs in memory (1 lecture)
• Logical operations (2 lectures)
• Procedures and functions (1 lecture)
• Communicating with users (1 lecture)
• Exam review (1 lecture)
• Midterm exam (1 lecture)
• Adders and subtractors (1 lecture)
• Comparators (1 lecture)
• Addition and subtraction (1 lecture)
• Multiplication (2 lectures)
• Division (2 lectures)
• Floating point numbers (3 lectures)
• Latches, flip-flops, and registers (1 lecture)
• The processor (1 lecture)
• Datapath design (1 lecture)
• Pipelining (1 lecture)
• Branch prediction (1 lecture)
• Memory technology (1 lecture)
• Caching (2 lectures)
• Caching performance (1 lecture)
• Multicore introduction / emerging topics (2 lectures)

Coordinator
Dr. Walter Schilling