Computer Architecture (saylor.org)

Offered by Saylor.org,
Computer Architecture (saylor.org)

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.

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.
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Parallel Programming in Java (Coursera) Coursera
Rice University

Parallel Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism.

Oct 26th 2026
4 Weeks
Discrete Structures (saylor.org) Saylor Academy
Saylor.org

Discrete Structures (saylor.org)

This course has been designed to provide you with a clear, accessible introduction to discrete mathematics. Discrete mathematics describes processes that consist of a sequence of individual steps (as compared to calculus, which describes processes that change in a continuous manner). The principal topics presented in this course are logic and proof, induction and recursion, discrete probability, and finite state machines.

Self Paced
Self-Paced
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Nov 2nd 2026
4 Weeks
How to Choose a Computer That is Just Right for you (Skillshare) Skillshare
Skillshare

How to Choose a Computer That is Just Right for you (Skillshare)

A video of where I teach you a quick a short way of choosing the right model and specs of a computer without spending a fortune on thing you won’t use. if aren’t already, make sure to upgrade to skill share premium as it helps me out and opens various topics of instrumental videos for you that otherwise wouldn’t be accessible to you.

Self Paced
Self-Paced
Wie 'denkt' ein Computer? Vom Sandkorn bis zur Software (openHPI) OpenHPI
Hasso-Plattner-Institut

Wie 'denkt' ein Computer? Vom Sandkorn bis zur Software (openHPI)

Wie funktioniert ein Computer eigentlich? Diese Frage hast Du Dir wahrscheinlich schon einmal gestellt. Ausgehend von Transistoren und elektrischen Schaltungen finden wir heraus, woraus ein Prozessor besteht und wie er funktioniert. Dabei probieren wir selbst mit verschiedenen Simulationstools das Gelernte aus und entdecken die Welt der Rechnertechnik.

Apr 26th 2023
4 Weeks
Supercomputing (FutureLearn) FutureLearn
University of Edinburgh,Partnership for Advanced Computing in Europe - PRACE

Supercomputing (FutureLearn)

Discover how supercomputers work and the real-life scientific breakthroughs made possible by today’s computer simulations. Today’s supercomputers are the most powerful calculating machines ever invented, capable of performing more than a thousand million million calculations every second. This gives scientists and engineers a powerful new tool to study the natural world – computer simulation.

Available now
5-12 Weeks
Advanced Bioconductor (edX) EdX
HarvardX,Harvard University

Advanced Bioconductor (edX)

Learn advanced approaches to genomic visualization, reproducible analysis, data architecture, and exploration of cloud-scale consortium-generated genomic data. In this course, we begin with approaches to visualization of genome-scale data, and provide tools to build interactive graphical interfaces to speed discovery and interpretation. Using knitr and rmarkdown as basic authoring tools, the concept of reproducible research is developed, and the concept of an executable document is presented.

Self Paced
Self-Paced