Modern computer technology requires an understanding of both hardware and software, as 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 important 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.
Upon successful completion of this course, you will be able to:
- identify important advances that have taken place in the history of modern computing, and discuss some of the latest trends in computing industry;
- explain how programs written in high-level programming language, 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.
More info: http://www.saylor.org/courses/cs301/