In addition to these units, in first semester I can choose any two of the following units:
- photon physics (part of an experimental physics major, covering optics, photonics and synchrotron physics)
- relativity and cosmology (general relativity, cosmology and black holes)
- partial differential equations
- computational mathematics (intro to numerical computing, using MATLAB)
- real analysis
- analysis and topology (focusing on Banach spaces, this unit would require that I also do real analysis)

In second semester I can choose any two of the following units:
- condensed matter physics (an experimental physics unit)
- ordinary differential equations (which also develops skills using MATLAB)
- complex analysis
- differential geometry

I've done a bit on ODE's and PDE's last year, and some linear algebra, but I have no experience with MATLAB or any other programming/computational software.

Basically, from the above units my main quandary is:- Should I focus on just doing more physics units, even if they focus on areas of physics outside my main interest? Or, should I focus on pure maths units (like topology and differential geometry) that will relate to graduate theoretical physics studies? Or, should I focus on applied maths units (PDE's and ODE's) to get my computational skills up.

If anyone has some informed advice, it would be extremely appreciated.

well, and im not trying to sound rude, but if PDE's is an option, then your physics courses can't really be too difficult. however, i'd bet the university you attend plans to teach you PDE's through their physics courses so definitely take PDE's. otherwise i'd prolly stick to physics although matlab may be helpful in the future. differential geo is helpful too.

stay away from analysis if you are taking other tough courses (yes, analysis is beautiful, but oh so difficult). also, you don't really NEED it like you do PDE/ODE's.

For someone who will use quantum field theory, complex analysis is non-negotiable. Other than that, it really depends on where you want to focus. If you want to go into a more math phys or stringy direction, take more math. If you are serious about doing cosmology, obviously take the cosmology course.

A good programming course(either a language, or mathematica/matlab/maple) and Complex Analysis goes a long way. Everything else (wave mechanics/linear algebra) is going to be so repetitive, over and over in every class, that you'll pick it up anyway.

It seems to me that complex analysis, pde's and ode's will all be pretty good choices, irrespective of what specific area of theoretical physics I end up going into. Whereas the relevance of other fields of math will depend on what I end up doing… Does this seem basically correct?

I get that programming is a vital skill, but I'm leaning towards the relativity/cosmology unit because, I feel that I can probably pick up MATLAB/programming in my spare time during the summer break before my honours year. Does this seem feasible? Or is it a little ambitious, given that at present I have zero knowledge?

In my experience it's tough to make yourself memorize all the correct syntax when just working programming examples from a book. A class will also stress consistency/good form and will teach you good design principles, things that are generally tough to teach yourself.