An introduction to basic computer hardware, machine language, assembly language, and C programming.
- To understand the structure and operation of a modern computer from the ground up.
- Understand basic hardware concepts: digital circuits, gates, bits, bytes, number representation
- Understand the Von Neumann model and the structure and operation of a basic data path
- Understand the structure and function of machine language instructions
- Understand the structure and function of a symbolic assembly language
- Understand basic concepts of computer systems such as the runtime stack, simple I/O devices
- Introduce the C language with particular emphasis on the underlying assembly and machine language as well as interaction with hardware.
- (Competency Knowledge) Be able to identify and/or construct basic digital structures such as MOS FET logic gates, decoders, multiplexors, adders, memory.
- (Competency Application) Be able to construct a state machine diagram and then implement it as a finite state machine circuit.
- (Competency Comprehension) Understand data representation. Be able to convert numbers between various representations: Binary, octal, decimal, hexadecimal, and IEEE Floating Point.
- (Competency Knowledge) Be able to identify the component parts of the Von Neumann Model of computer and be able to explain the purpose of each component.
- (Competency Synthesis) Be able to write, debug and run assembly language programs including recursive subroutines, traps, basic input/output.
- (Accomplishment Synthesis) Be able to write, debug and run multi-file C programs several hundred lines long using "make" to compile and execute said programs.
- (Competency Synthesis) Be able to utilize (in C programs) proper typing and casting constructs, structs, pointers and arrays, functions, function pointers, dynamic memory allocation and variables of different storage classes (auto, static, volatile, etc.)
These notes were originally created on Notion.so and then converted to HTML. It is not a perfect conversion but the material is still preserved. The notes are available here.
- Shihui(Aiden) Liu - GitHub Account & Georgia Tech GitHub Acount
- Andrew Friedman - GitHub Account & Georgia Tech GitHub Acount
- Sathya Sudarshan - Georgia Tech GitHub Acount