Outline of the software and hardware interface Course
Coursera course the hardware/software interface is a course provided by the University of Washington. I think it is very practical for students who want to learn programming. The teaching environment is fedora, which introduces some frequently used tools.
Course outline
- This course will let students know exactly what happened during software execution and explain how this problem can be answered through several layers such as the hardware architecture layer, assembly layer, C layer, and Java layer. -
- The core of this course is about C, assembly, and underlying data representation, but at the same time with the higher level (Java implementation mechanism), the lower level (General Processor Architecture), operating system (unrelated to the implementation of the operating system.
- For students who want to focus on high-level abstraction, this course may be the C language they have learned and the only course at a lower level. However, most of them can learn some system programming, hardware design and implementation, operating systems, compilers and other knowledge at the same time.
- For students interested in hardware, embedded systems, computer projects, and computer architecture, this course is an entry-level course, which may be more in-depth in specific fields, it also focuses on lower-layer hardware implementation and circuit design.
Course subject
This course has three main themes.
- Representation: How does different data types, such as integer and struct arrays, exist in the memory? How to encode commands? How to generate a memory address and use it to create a complex data structure?
- Translation: how to convert high-level languages such as C and Java into basic commands of hardware processors?
- Control Flow: How does a computer stop the computing sequence, how does it track the current execution track of large programs, and how does one execute multiple processes in parallel?
Course objectives
After the course ends, students should be able
- Understand the process of converting a high-level program into a command stream that can be run by the processor
- Know what pointers are and how to use pointers to manipulate complex data structures
- You can use x86 assembly language to write short programs and understand how the Assembly Language maps with high-level languages.
- Understand the basic organization and number of segments of Hierarchical Storage and its importance to system performance
- The functions of the operating system can be clearly explained.
- Understand the essential differences between Java and C
- Understanding the parallel mechanism and its importance in the system level
- Become a more efficient program ape, more effective debug, more sensitive to system performance
Course topics
About one topic every Monday, including
- Number representation
- Assembly Language
- C language basics
- Memory Management
- Operating System Process Model
- High-level machine architecture
- Hierarchical Storage
- Implementation of high-level languages
For more information, see focustc. The blog address is http://blog.csdn.net/caozhk.
Outline of the software and hardware interface Course