Continuation of Work on Projects

Start a design document for your project.

At this stage we want as complete and precise a description of the problem or problems the package will solve. A high-level description of the problem is just fine at this point, but it must be precise.

Suppose you were going to write a package having a function to do least squares regression, like what the R function lm does but dumber. Given a vector y (the response) and a matrix M (the design or model) we will find a β that minimizes the quantity

(yM β)T (yM β)

We will do this by solving the normal equations

MT y = MT M β

And we will do that by using a QR decomposition of the model matrix M = Q R where Q is orthogonal and R is upper triangular.

And so forth. Stuff at this level of generality, but very precise.