- Some basic programming:
- One in python and another in C++ with data structure contents. Once I finish the course, Computer Science II is renamed into “Data Structure”. I don’t like the data structure contents, and some tricks like linked-lists are confusing. But it is acceptable. Also, for those who are interested in GIS, basic programming is helpful.
- Computer Architecture:
- One of the most brutal classes for me. I like breadboard, and it is fun to connect and watch wire connection. However, I hate following the manual instructions, and I don’t like the dry knowledge. Nevertheless, I still think this is one of the most important classes. Some people think it’s far away from software dev. Well, think about how the program is hacked: this is highly relavent to the design of memory location is designed, how variables are stored, and how functions are called, stored, and returned.
- Applied Data Analysis:
- This is also called “intro to machine learning”. It’s one of my favorite classes because it really enhanced my stats intuition by thinking about the distribution, why those distributions are used, why weighting is needed sometimes, etc., without just looking at equations but rather think intuitively. Course based on ISLR/ISLP (we used ISLP), recommend to take after intro stats and before mathematical probability.
- Some basic maths:
- Including discrete math, [applied logic, sets & recusion], applied linear algebra, calculus. Choose a nice instructor who can give intuitive explanations will help you a lot. Note: discrete math contains baby level probability contents, and linear algebra is highly used in deep learning and robotics.
- Cybertechnology Ethics:
- It may sound unrelated to STEM majors, but it’s fun and spritual. Think about what’s the best decision that AI should make without against the nature of human and morality. It also related to some real judical or war cases in real life (not just about commercial companies), and if you are interested in AI, this course is important.
- Intro Behavioral Neuroscience:
- Usually people think it is only related to cognitive science, but it is more than that. It mentioned how to understand the EEG graphs, and the collection of brain activities is used in robotics, if you want to use brain waves to control robot arm movements. For me, this class is brutal because there are lots of memorization, but if you need to touch on life science or brain, take this class.
- Math Methods in Physics:
- I took it before I switched my major. It’s just a brilliant course that covers and combines so many math topics together: complex numbers, linear algebra, differential equations, and vector calculus. You will see those concepts are not isolated once you reach the end of the semester. If your college allows, take it before calc 3, and you will gain a sense of intuition of which topic is commonly used. It’s more application-based than proof-based.
- Intro & Advanced GIS (Geographic Information System):
- Another my favorite topics. Spatial data are special and sometimes cannot be treated using simple models, or you need lots of data engineering. Even though it is categorized into Geography Department or Environmental Studies, it is more like a data science class. Highly related to computer science, especially databases. While many students struggle understanding databases, GIS classes will show you the applcation of databases and give you a more intuitive thinking. Also, it is related to so much topics, like public policy, remote sensing, traffic, natrual disaster prevension, agriculture, sustainability, etc.
- Probability:
- I took it after Applied Data Analysis, and I have already seen some notations from Applied Data Analysis textbooks. This is another course that I really like. It requires intuition before you taking it. You may need to spend some time on this course, but you will know the differences between different distributions and variable types. Do you remember the 68-95-99.7 concept? You will do proofs, and see a further version than what you have learned in high school.
- Classical Mechanics:
- One of the most challenging classes and the first “real” physis class that I take. You will understand the importance of choosing the coordinate systems, how math is used. You need to have a really good intuition rather than just do math calculation. Note: for those interested in robotics, there are lots of torque, rotational matricies, and acceleration contents in some robotics code.