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 enjoyable, so I thought I’d compile them here. I’ll try and keep this list updated as I take more and more classes.
CSE 152A + CSE 152B
If you’re interested in computer vision, these classes will give you a great introduction to a ton of relevant topics, including feature detection/matching, reconstruction, classification, recognition, etc. You’ll also get a great introduction to convolutional neural networks which were foundational for many computer vision breakthroughs over the years. The assignments are practical and are direct applications of the things you learn in class. Also, Professor Chandraker is amazing, his explanations are clear and he genuinely prioritizes your learning.
CSE 150B
This is probably my favorite class that I’ve taken at UCSD. You’ll learn a lot of the basics of reinforcement learning. The math is definitely challenging, but you don’t need to fully understand it to get the main concepts. The programming assignments were building solvers for games like 2048, Blackjack, Sudoku, etc. which were genuinely fun to complete. Professor Gao’s explanations are great and his lectures are entertaining and interactive.
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.