The exam will be held on Tuesday, 3/8. It is open-book,
open-notes, but no electronic devices will be permitted. It
will cover both theory and basics of programming. There will be
three parts: a true/false section, a short-answer, and a
long-answer (not explicitly programming, but a "thinking"
problem).
In general, I'll cover the materials listed below. Note that
material covered on slides up to and including February 26 is
fair game even if not mentioned here, except when I list
exceptions below.
Theory
- Ch. 0: Introduction, study of algorithms, origins of computing
machines, abstraction
- UNIX basics (slides)
- Ch. 5.1-5.3
- Assembly languages/machine code, compilers,
machine independence
- Programming paradigms (but not
OOP)
- Declarative & imperative statements, comments,
variables, data types, arrays, assignment statements, control
statements (but not goto)
- Procedures (which I treat the same as functions or
methods), parameters (not formal vs. actual
parameters, nor value vs. reference)
- Ch. 1.1-1.2, 1.4-1.5
- Bits, gates, logic diagrams, not flip-flops or
cores
- ASCII codes, binary math (e.g., base 2), conversion
between integers and binary, not
image or sound representation
- Ch. 4.1-4.6
- Formal definition of algorithms, algorithms and
abstraction, algorithmic primitives, psuedocode
- Problem solving, getting a foot in the door, stepwise
refinement (basic)
- Iterative structures: sequential searching, loops,
binary search, basic algorithm efficiency (big-Oh or
big-Theta notation), not insertion sort nor
recursion nor software verification
C
- Ch. 1-4
- How C works, command-line compilation, not IDEs
- Commenting style (basics)
- Elements of a program, simple expressions, variables:
storage, datatypes, declaration; assignment statements,
printf, chars
- Command-line parameters (slides)
- Ch. 5
- Arrays, strings, string input, reading numbers,
initializing variables, constants, operator shortcuts,
side-effects
- Ch. 6
- if, else, strcmp, while, break/continue
- Ch. 8
- Ch. 9
- Global variables, functions, parameters, return
values, function prototypes
Java
Note that some of these concepts are covered in multiple
chapters, so my chapter references may be slightly vague.
- Ch. 2
- Basic structure of a program
- Comments, classes, methods
- Objects/classes, instantiation,
constructors
- Variables, variable manipulation
- Output
- Ch. 3, 5, 6.1
- Variable types, declaration, initialization,
reuse, cast/conversion, math operators
- Basic arrays, command-line parameters (from
slides)
- While, for loops
- Method declaration, parameters, return values
- Ch. 4 (minimal)
- If-else
- Basic console I/O (using the slides, not
the Java Gently Stream class)
- Basic exception handling