# Exams

Midterm Exam

This will be on Tuesday March 22, during normal class hours.

It is a closed book and closed computer/calculator exam.
But you can refer to two sheets of your own notes (8" x 11", total of 4 pages), containing any information you like.

Style of exam is similar to our homework.
But no bald answers -- always show a brief working or justification -- even for a Yes/No questions!

The following are some review questions. Click any item to expand:

* Preparation from Class Lectures
Please go through the lectures, and mark them up with your own comments.
* Preparation from Homework
Please study our solutions as we often give extra information. Another suggestion is to try to create and solve some questions yourself. We would be glad to help out.
* Pick up skills to manipulate quaternions
Remember the basic operations on quaternions.
How does a unit quaternion q represent a rotation? There are two answers:

(1) From q, we can construct a 3x3 rotation matrix, denoted M_q in SO(3).

(2) If v is a pure quaternion, its components can be viewed as a point in 3dimensional space.
Then the quaternion product ( q . v . conj(q) ) is another pure quaternion representing the rotated position of v.
Here conj(q) is the conjugate of q.
* Geometry and Linear Algebra
How do you check that two vectors are orthogonal?
It is a good idea to refresh a bit of trigonometry (sine and cosine of 30, 45, 60, 90 degrees)
What is Cramer's rule for solving linear equations?
How do you compute the separation between a point and a line?
How to you compute the separation between a point and a line segment?
What are homogeneous coordinates and why are they useful?
* Basics of SSS
How do you classify boxes of your subdivision?
What is the role of Union-Find?
How do we know if there is NO-PATH?
* SLAM
What is data association?
What is the basic loop of SLAM?
What is ransac?
How does Kalman filter come into this problem?
Study the "SLAM for dummies" paper -- what are some issues of map maintenance?
* MATLAB
We expect you to know how to write simple complete Matlab programs.
You can study our Matlab solutions for various homework questions.

Know the basic syntax for vectors and matrices of Matlab to be able to solve simple questions of linear algebra.
E.g., [1 2 3], [2,3; 4,5], [1, 2, 3]', M(1,:), etc.
Study Questions:

Q1. Given A = [1 0; 0 1], what's the value of:
a) A(1,2)
b) A(1,:)
c) A(2,:)'
d) A*A
e) A.*A
f) inv(A)
g) det(A)

Q2. Write a Matlab function with the following signature
vOut = threshold(vIn, t)
The function gets an input vector vIn, of arbitrary length, and outputs vOut such that for all j,
vOut(j) = max( t, vIn( j ) )
Can do it without using a loop? HINT: look up http://www.mathworks.com/videos/working-with-arrays-in-matlab-69022.html?s_tid=srchtitle
How do you change directory inside matlab?
What is "whos"?
How do you get a matrix of random numbers?
What are m-files?
What are structures in Matlab?
How do you plot two functions in two different figures?