The Hardware/Software Interface

The Hardware/Software Interface

Course
en
English
80 h
This content is rated 0 out of 5
Source
  • From www.coursera.org
Conditions
  • Self-paced
  • Free Access
  • Free certificate
More info
  • 8 Sequences
  • Introductive Level

Their employees are learning daily with Edflex

  • Safran
  • Air France
  • TotalEnergies
  • Generali
Learn more

Course details

Syllabus

This course should develop students’ sense of “what really happens” whensoftware runs — and convey that this question can be answered at severallevels of abstraction, including the hardware architecture level, the assemblylevel, the C programming level and the Java programming level. The corearound which the course is built is C, assembly, and low-level data representation,but this is connected to higher levels (roughly how basic Java could beimplemented), lower levels (the general structure of a processor), andthe role of the operating system (but not how the operating system is implemented).For (computer science) students wanting to specialize at higher levelsof abstraction, this could in the extreme be the only course they takethat considers the “C level” and below. However, most will take a subsetof Systems Programming, Hardware Design and Implementation, Operating Systems,Compilers, etc. For students interested in hardware, embedded systems,computer engineering, computer architecture, etc., this course is the introductorycourse after which other courses will delve both deeper (into specifictopics) and lower (into hardware implementation, circuit design, etc.).The course has three principal themes:
  • Representation: how different data types (from simple integers to arrays of data structures) are represented in memory, how instructions are encoded, and how memory addresses (pointers) are generated and used to create complex structures.
  • Translation: how high-level languages are translated into the basic instructions embodied in process hardware with a particular focus on C and Java.
  • Control flow: how computers organize the order of their computations, keep track of where they are in large programs, and provide the illusion of multiple processes executing in parallel.
At the end of this course, students should:
  • understand the multi-step process by which a high-level program becomes a stream of instructions executed by a processor;
  • know what a pointer is and how to use it in manipulating complex data structures;
  • be facile enough with assembly programming (X86) to write simple pieces of code and understand how it maps to high-level languages (and vice-versa);
  • understand the basic organization and parameters of memory hierarchy and its importance for system performance;
  • be able to explain the role of an operating system;
  • know how Java fundamentally differs from C;
  • grasp what parallelism is and why it is important at the system level; and
  • be more effective programmers (more efficient at finding bugs, improved intuition about system performance).
Topics:
  • Number representation
  • Assembly language
  • Basics of C
  • Memory management
  • Operating-system process model
  • High-level machine architecture
  • Memory hierarchy
  • Implementation of high-level languages

Prerequisite

None.

Instructors

  • Luis Ceze - Computer Science & Engineering
  • Gaetano Borriello - Computer Science & Engineering

Editor

The University of Washington is a public research university in Seattle, Washington. Founded on November 4, 1861 as Territorial University, Washington is one of the oldest universities on the West Coast and was established in Seattle about a decade after the city's founding.

The university has a 703-acre main campus located in the city's University District, as well as campuses in Tacoma and Bothell. Overall, UW comprises more than 500 buildings and more than 20 million gross square feet of space, including one of the world's largest library systems with more than 26 academic libraries, art centres, museums, laboratories, lecture halls and stadiums.

Washington is the flagship institution of Washington State's six public universities. It is renowned for its medical, technical and scientific research.

Platform

Coursera is a digital company offering massive open online course founded by computer teachers Andrew Ng and Daphne Koller Stanford University, located in Mountain View, California. 

Coursera works with top universities and organizations to make some of their courses available online, and offers courses in many subjects, including: physics, engineering, humanities, medicine, biology, social sciences, mathematics, business, computer science, digital marketing, data science, and other subjects.

This content is rated 4.5 out of 5
(no review)
This content is rated 4.5 out of 5
(no review)
Complete this resource to write a review