The formal prerequisites for this course are CS2253 and ( MATH1503 or MATH2213). In case you got credit for courses other places, here is a list of the topics you will need. Anything on this list is fair game for assignments and tests, starting from the second day of the course.

### Elementary geometry and algebra

The following topics of elementary mathematics should have been covered before university.

- Cartesian coordinates in 2D and 3D
- Trigonometry
- Pythogorean theorem
- Quadratic formula

### Linear Algebra

We will be using the following basic concepts from linear algebra. At UNB these are covered in MATH1503 and MATH2213

- Matrices and vectors
- Vector arithmetic: addition, scalar multiplication
- Matrix multiplication
- Determinants
- Matrix transpose
- Matrix inverse
- Systems of linear equations

### Procedural Programming

The following topics are covered at UNB in CS1083

- control flow
- recursion
basic data structures

- stacks
- queues
- search trees
- linked lists

The following are covered at UNB in CS2253

Machine representation of numbers

- integers
- floating point

Memory models and pointers

- arrays
- pointer arithmetic
- pointers to data and functions