Explore hardware/software components, assembly language, and the functional architecture and design of computers, with a focus on topics like instruction sets, processor arithmetic and control, Von Neumann architecture, pipelining, memory management, storage, and input/output.

Course Introduction:

Modern computer technology requires an understanding of both hardware and software, since the interaction between the two offers a framework for mastering the fundamentals of computing. The purpose of this course is to cultivate an understanding of modern computing technology through an in-depth study of the interface between hardware and software. In this course, you will study the history of modern computing technology before learning about modern computer architecture and a number of its essential features, including instruction sets, processor arithmetic and control, the Von Neumann architecture, pipelining, memory management, storage, and other input/output topics. The course will conclude with a look at the recent switch from sequential processing to parallel processing by looking at the parallel computing models and their programming implications.

Course Units:
  • Unit 1: Introduction to Computer Theory
  • Unit 2: Instructions: Hardware Language
  • Unit 3: Fundamentals of Digital Logic Design
  • Unit 4: Computer Arithmetic
  • Unit 5: Designing a Processor
  • Unit 6: The Memory Hierarchy
  • Unit 7: Storage and I/O
  • Unit 8: Parallel Processing
  • Unit 9: Look Back and Look Ahead
Course Learning Objectives:
  • Identify important advances that have taken place in the history of modern computing, and discuss some of the latest trends in the computing industry;
  • Explain how programs written in high-level programming languages, such as C or Java, can be translated into the language of the hardware;
  • Describe the interface between hardware and software, and explain how software instructs hardware to accomplish desired functions;
  • Explain the process of carrying out sequential logic design;
  • Explain computer arithmetic hardware blocks and floating-point representation;
  • Explain how a hardware programming language is executed on hardware and how hardware and software design affect performance;
  • Explain the factors that determine the performance of a program;
  • Explain the techniques that designers use to improve the performance of programs running on hardware;
  • Explain the importance of memory hierarchy in computer design, and explain how memory design impacts overall hardware performance;
  • Describe storage and I/O devices, their performance measurement, and redundant array of inexpensive disks (more commonly referred to by the acronym RAID) technology; and
  • Identify the reasons for and the consequences of the recent switch from sequential processing to parallel processing in hardware manufacture, and explain the basics of parallel programming.
Continuing Education Units: 4.8