Manage series 1412931
By Computer Systems, 5e. Discovered by Player FM and our community — copyright is owned by the publisher, not Player FM, and audio is streamed directly from their servers. Hit the Subscribe button to track updates in Player FM, or paste the feed URL into other podcast apps.
A study of computers as multi-level systems. The machine level—binary representations, instruction sets, von Neumann machines. The assembly level—addressing modes, compiling to the assembly level, language translation principles. The operating system level—loaders, interrupts.
The primary objective of this course is for you to obtain a working knowledge of the lower levels of abstraction of a computer system. In your introductory programming classes, you learned how to program in a high-level language like Python, Java, or C++. These languages are at Level 6, the high-order languages level. In this course you will learn Level 5, the assembly level, and Level 3, the instruction set architecture level, as well as C and Java at Level 6.
Each level of abstraction in a computer system has a language, so learning the lower levels of abstraction is equivalent to learning new languages. The language at Level 5 is assembly language and the language at Level 3 is machine language. Your knowledge will be a working knowledge because you will learn how to program in these languages. Most programming in the industry today is at Level 6 and not at these lower levels. So, why learn these lower level languages? Because an in-depth understanding of how computers work is possible only by considering the design of the levels of abstraction and the relationships between the levels.
The secondary objective of this course is to continue to develop your programming skill at Level 6. Later in the course you will be required to write a large (hundreds of lines of code) programming project in Java using the object-oriented techniques from the Data Structures course.