The final exam will be held on Dec 12, from 6 to 9 pm.
It will be comprehensive, although emphasis will be placed on the
material after the midterm. 40 % of the questions will be from
material covered before the midterm, 45% on material from chapters 5 and
6, and 15% on the buffer overflow exploit, traps and interrupts, and
You can also look at the
from last year's course, except that it will not cover all the
topics we covered.
Topics on the final exam:
- Block diagram of a computer system (Fig 1.9)
- Layered design of a computer system (Fig 1.7)
- Memory layout of a C++ program
- Simple C++ programs including cin/cout, if/else, loops, arrays,
function calls, parameters (including reference parameters),
pointers (no structs)
- Recursion in a C++ program, including the way the stack gets
used to support recursion, and tracing recursive function's
- ASCII, Hex and binary representations of data
- Signed and unsigned integer arithmetic: add, subtract, shift.
Also the NZVC status bits
- Bitwise boolean operations
- Floating point representation: only "toy" and single precision.
- Pep/8 layout, including structure of memory and CPU, instruction
format, and i, d, s, x, sx addressing modes.
- The von Neumann execution cycle
- Pep/8 assembler, loader, operating system
- Buffer overflow exploits
- Global and local variables and arrays
- Loops, if statements, and function calls (including parameters,
local variables, and return values) in Pep/8
- Traps and interrupts (including a very basic idea of how they
work in Pep/8)
- Definition of mutual exclusion
- Combinational circuits—converting between boolean expressions,
truth tables, and circuits