Throughout my time at UCSD, I’ve taken tons of data science, computer science, and math courses. I’m often asked which classes I recommend taking or which classes were the most useful, so I though I’d compile them here. I’ll try and keep this list updated as I take more and more classes.
CSE 100 + 101 or DSC 190: Advanced Algorithms
I personally took CSE 100 + 101, but they both have a ton of prerequisites. If you’re a data science major, it’s probably better to just take DSC 190. These classes will cover a lot of the more advanced algorithms and data structures that sometimes show up during online assessments and technical interviews, such as dynamic programming, disjoint sets, greedy algorithms, etc. You’ll also learn about balanced binary trees and optimized techniques for hashing which are often implemented under the hood in many languages. It’s useful to know and also pretty interesting in my opinion.
MATH 180A + 181A + 181B
The machine learning classes at UCSD are pretty comprehensive, but a lot of data science related roles in the industry could involve a lot of statistics which isn’t covered rigorously in any one machine learning class. Techniques like hypothesis testing, conducting statistical experiments, etc. These classes will give you a strong fundamental understanding of both parametric and nonparametric statistical techniques. It’ll also make it easier to understand certain machine learning algorithms like linear regression, Naive Bayes, etc. Also, if you’re working towards (or thinking of declaring) a math minor it’ll knock out a ton of requirements.