I am currently enrolled to become a Applied Mathematics major, the school I will be going to has a relatively small number of classes for upper division math so I am thinking I should try and specialize in something. Even though their is a limited amount of courses to choose from being as the math program is rather new. I can choose for upper division math courses: Optimization, Linear Optimization, Partial Differential Equations, Mathematical Models in Biology, Intro to Chaos Theory and Nonlinear Dynamics. Their are also some other courses they have but I am not sure if they count as upper division such as number theory and abstract algebra. I am mainly studying math so I can pursue more complex topics in computer science that have mathematical basis to them. I realize this would be more discrete mathematical structures, and things like combinatorics or even complex analysis. So given that theirs only so many courses really offered, thus far, which would be best suited for someone who is intending to do graduate level computer science topics? I also am somewhat interested in scientific computing and high performance computing.