Coursera - The Hardware/Software Interface
MP4 | AVC 85kbps | English | 960x540 | 30fps | 19 hours | AAC stereo 118kbps | 1.22 GB
Examines key computational abstraction levels below modern high-level languages. From Java/C to assembly programming, to basic process and system ganization. This course examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memy management, the operating-system process model, high-level machine architecture including the memy hierarchy, and how high-level languages are implemented.
We will develop students' sense of "what really happens" when software runs - and that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level, the C programming level and the Java programming level. The ce around 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 be implemented), lower levels (the general structure of a process and the memy hierarchy), and the role of the operating system (but not how the operating system is implemented).
This course should develop students' sense of "what really happens" when software runs - and convey that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level, the C programming level and the Java programming level. The ce around 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 be implemented), lower levels (the general structure of a process), and the role of the operating system (but not how the operating system is implemented). F (computer science) students wanting to specialize at higher levels of abstraction, this could in the extreme be the only course they take that considers the "C level" and below. However, most will take a subset of Systems Programming, Hardware Design and Implementation, Operating Systems, Compilers, etc. F students interested in hardware, embedded systems, computer engineering, computer architecture, etc., this course is the introducty course after which other courses will delve both deeper (into specific topics) 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 memy, how instructions are encoded, and how memy 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 ganize the der 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 process;
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 ganization and parameters of memy hierarchy and its imptance f system perfmance;
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 imptant at the system level; and
be me effective programmers (me efficient at finding bugs, improved intuition about system perfmance).
Basics of C
Operating-system process model
High-level machine architecture
Implementation of high-level languages
I recommends Buy premimum account for High speed+parallel downloads!