In the first 3 semester's, I had analysis I - III (from limits & differentiability up to smooth submanifolds of R^n and lebesgue integration),
linear algebra I + II (matrices, eigenvectors/spaces, orthogonality and such, modules + jordan normal form), and the algebra course I mentioned,
and computer science (algorithms & data structures, then automata, languages, TM's, logic circuits and such)