
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.
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.
- 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
- 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.