Introduction to Abstract Mathematics

Number Theory A,B

Differential Geometry

Convex Geometry

Partial Diff Eq. A,B,C

Ordinary Diff Equations A,B

**Real Analysis A**,B,C

**Numerical Analysis A,B,C**

Fourier Analysis

Mathematical Finance

**Probability A**,B

Euclidean Geometry

**Combinatorics**

Algebraic Combinatorics

Discrete Mathematics

Modern Algebra A,B,C

Mathematical Foundations of Database Theory, Design and Performance

Mathematics and Computers

**Applied Linear Algebra**

**Optimization**

Complex Analysis A,B

The thing is that I'm not certain what I want to do with it. I am leaning towards graphics and visualization with a some extra focus in high performance computing, parallel algorithms, scientific computing. But I'm starting to wonder whether I can have such a broad focus without lacking some aspects of individual areas.

But I'm also interested in theoretical computer science. The only thing holding me back from focusing on theoretical computer science, is that I am not sure what job prospects would be like, or whether or not I have what it takes to do high quality theoretical research at the PHD level.

Any opinions on the matter?