In this digital age, our reliance on computers is changing dramatically. Battery-powered smartphones that fit in our hands communicate with remote server warehouses. Both types of computers are based on the same fundamental principles as desktop computers from the 90s.
This course describes how computers work and how software and hardware design affect performance. After completing this course, you will be able to explain how a computer works from the bottom up: from transistors to logic gates to assembly language (MIPS, x86, etc.) to high-level programming languages (C/C++, Java, Python, etc.).
In this course, you will learn how data is represented, processed, and stored in a computer. You will learn how to write programs in Assembly Language (e.g., multiply two numbers, store a number in memory, etc.). You will learn how to construct and use the basic blocks in a processor (arithmetic unit, register bank, control unit, etc.). You will use design tools to create a processor that runs programs written in Assembly. Finally, you will analyze the performance of computer systems and examine the factors, such as data locality and parallelism, that affect these measures.
- Teacher: Admin User