CSc 340 Foundations of Computer Systems teaches the
different levels of abstraction in a computing system,
assembly language programming, the basics of low-level
systems software, hardware components of a system, and
how these components interact with each other.
The class page for 2001 is here.
Lecture notes can be found here.
Topics
- Hardware foundations:
basic machine organization,
instruction fetch cycle,
number systems and encodings,
CPU operations.
- Assembly language using MIPS as an example:
syntax,
operations and operands,
using registers, control flow, addressing.
- Program execution:
Subroutines and stack,
activation records/stack frames,
calling conventions,
parameter passing.
- Dynamic storage (heap) management:
data structures,
malloc/free/realloc.
- Assembling:
structure,
dealing with forward and external references,
symbol tables.
- Linking:
object files,
resolving external references,
loading.
- Operating systems:
paging,
user/supervisor mode,
interrupts, traps and exceptions,
concurrency and mutual exclusion.
- Learn to program in C and use Unix.