Intro to Computer Architecture

Welcome to Computer Architecture

Introduction

Every computer scientist has used a high-level programming language. These include famous languages such as C#, Java, Visual Basic, COBOL, and thousands more. They make it easy to create complex structures without worrying about what happens "behind the scenes".

So, what does happen? Each of these languages are "compiled" - converted to the actual instructions that run on the computer's processor. These instructions allow the program to talk to the operating system, access memory, run computations, loop, and make decisions. 

By understanding how your programs actually work, you will understand the underlying computer architecture. Assembly programming, which just one level above the 1's and 0's that make up the computer's instructions, will give you a detailed view, and far more control than you can get from a high-level programming languages.

Major Topics

  • Numeric and non-numeric data representation
  • Representation of Elementary Language Data Types: integer, real, Boolean, character
  • Processors, registers, and instruction encoding
  • Memory location alignments and data movement instructions
  • Conditional logic
  • Modules: defining subroutines, calling subroutines
  • Addressing modes: registers and memory locations
  • interrupts, vector tables, and interaction with the operating system
  • High-level language interfacing, inline assembly, introduction to code generation
  • Von Neumann architecture and processor design philosophies

Course Format

This class is in-person. See you on January 22 / 23!