I studied my undergrad at HKUST, where I studied a dual degree in Computer Science and General Business Management, but what I'm more famous (or infamous) for is that I had two additional majors in Mathematics and Data Science, as well as two minors in Robotics and Psychology.

How many majors?

I get asked a lot of questions about all these majors, mostly from people either in disbelief or asking how or why. The real reason why I ended up with such an ugly degree is largely the byproduct of being indecisive about when I wanted to graduate. I entered HKUST under the school of engineering program without a major, and from the start I was planning on doing a double major in Computer Science and Math, more specifically the COSC program which was exclusive to those double majoring.

Fast forward to the end of Year 1 when we are declaring our majors, and I learned about the 5 Year Dual Degree Program that we could optionally interview for. At the time, I was like "eh, why not", so I interviewed for it and got in. After getting in, I was still more interested in doing maths, so I started to overload to take some of the math courses. Since I had to stay in DDP for at least one semester, I wanted to keep my options open, in case I felt like dropping it and going back to my original plan of COSC+MATH.

By the end of Year 2, I started to see all the benefits of being in the Dual Degree Program, so I decided to stay. Since I entered UST with a ton of transfer credits from IB, it actually wasn't too difficult to squeeze in the extra courses to declare an additional major in maths, and it seemed like I could do it comfortably in 4 years as well, along with a minor in Robotics, which was mostly complete from being a member of the HKUST Robotics Team.

Again, fast forward to Year 4 Fall. I landed a super good summer internship, and that made me reconsider whether I actually wanted to graduate early in 4 years. I didn't really want to graduate yet since the pandemic kind of cancelled many plans and activities on campus. But at the same time, I was almost done with all of my coursework because of the original plan, meaning I didn't really have any courses to take if I were to stay for a fifth year.

Luckily, UST offered this Data Science Major (DSCT) which overlapped heavily with the CS and math curriculum. Since I was under the General Math track for my math major, I could shift a lot of the MATH courses I took previously to fulfil this new major requirement, and I could just take more MATH courses to refulfil the MATH major requirement. At the same time, I had some credits to spare, so I delcared a minor in Psychology PBS as well.

As such, I didn't really plan to take this many majors and minors, but it just kind of happened. Now, seeing me do this has inspired some people to try and follow in my footsteps (especially for dualers looking to triple major), and for this I have some FAQs:

How many credits did you take?

I graduated with 254 credits (as opposed to the 120 required). 27 of this is credit transfer from IB and 16 were from my exchange semester at UPenn.

How much time do you spend studying?

For those that know me, I'm actually a super lazy student and barely study at all. Though I overloaded a ton, it never got in the way of other things I was doing, e.g. extracurriculars or hanging out with friends.

Do you recommend doing a third (or fourth) major/minor?

Do I recommend? Not really. Would I discourage you from doing it? Nah go on ahead.

Any advice for someone thinking about triple majoring?

If you're still thinking about adding that extra major, here are my advice:

  • Plan your study plan super carefully - You should know your requirements inside and out and know where you can double count courses. You also need to factor in other things, such as if you want to go on exchange (which I would highly recommend).
  • Frontload your study plan - Taking more courses in your first few years gives you more flexibility later on. For example for me, I had the option of graduating early and also working part time during my fifth year.
  • Overload for a few semesters before declaring the extra major - Everyone has their "comfort zone" when it comes to the number of credits you take. Just because I can comfortable manage 25-28 credits, doesn't mean that you should expect that you can handle such workload.
  • Don't do it just to make your CV look good - An extra major won't make a difference when it comes to job applications. If you get the job, you would've gotten the job without the extra major, and if you didn't get the job, an extra major wouldn't have helped. People won't hire you just because you're taking another major.

Courses

I typically took around 25-28 credits per semester, except in Year 1 (when you can't overload) and in Year 5, when I was working part time. For those interested, here's a list of the courses I took:

Fall 2017
MATH2111 - Matrix Algebra and Application
COMP2711 - Discrete Math for Computer Science
COMP1022P - Introduction to Computing with Java
LANG2030H - Technical Communication I
LANG1113I - Effective Chinese Communication
Spring 2018
MATH2411 - Applied Statistics
MATH2023 - Multivariable Calculus
ENGG2900D - Community Service Project
ENGG3960A - ABU Robocon 2018
FINA2203 - Fundamentals of Business Finance
HUMA1000C - Cultures and Values
Summer 2018
SOSC1960 - Discovering Mind and Behaviors
Fall 2018
COMP2012H - Honors Object Oriented Programming and Data Structures
COMP3711H - Honors Design and Analysis of Algorithms
COMP2611 - Computer Organization
MATH3332 - Data Analytics Tools
PHYS1003 - Energy and Related Environmental Issues
ACCT2010 - Principles of Accounting I
MGMT2110 - Organizational Behavior
Winter 2018
ENGG3960E - Development of the Robot Design Contest
Spring 2019
COMP4971C - Independent Work
COMP5712 - Combinatorial Optimization
MATH2033 - Mathematical Analysis
MATH3322 - Matrix Computation
LABU2060 - Effective Business Communication
MARK2120 - Marketing Management
ELEC3300 - Embedded Systems
ENGG3960F - ABU Robocon 2019
Fall 2019
COMP3111H - Honors Software Engineering
COMP5711 - Advanced Algorithms
COMP5331 - Knowledge Discovery in Databases
MATH5471 - Statistical Learning Models for Text and Graph Data
ISOM2700 - Operations Management
ECON2103 - Principles of Microeconomics
TEMG3950 - Case-based Problem Solving
TEGM4950D - Corporate Consulting Project: Smarter e-Commerce for Google HK
Summer 2020
ISOM3390 - Business Programming in R
Fall 2020
COMP4981H - Final Year Thesis
COMP5411 - Advanced Computer Graphics
LANG4030 - Technical Communication II
MATH3033 - Real Analysis
MATH5311 - Advanced Numerical Methods I
MATH6450H - Mathematical Analysis for Machine Learning Algorithms
ECON2123 - Macroeconomics
MGMT2010 - Business Ethics and the Individual
MGMT3140 - Negotiation
Spring 2021
COMP4981H - Final Year Thesis
COMP5214 - Advanced Deep Learning Architectures
COMP5421 - Computer Vision
COMP6311E - High Dimensional Data Management and Analytics
MATH2421 - Probability
MATH5312 - Advanced Numerical Methods II
SOSC2990 - Developmental Psychology
ACCT2200 - Principles of Accounting II
ISOM3400 - Python Programming for Business Analytics
Fall 2021
COMP6411B - Advanced Topics on 2D and 3D Deep Visual Scene Understanding
MATH3423 - Statistical Inference
MATH3424 - Regression Analysis
SOSC1990 - Research Methods in Psychology
LABU2040 - Business Case Analysis
Winter 2021
TEMG4952C - Special Project: “T&M Prototyping and Desktop Research” sponsored by UBS
Spring 2022
COMP6613E - Theory of Types and Programming Languages
MATH5412 - Advanced Probability Theory II
MATH6380U - Molecular Simulation
ELEC5140 - Advanced Computer Architectures
SOSC3540 - Environmental Psychology
FINA3103 - Intermediate Investments

For some of these courses, I took notes during class which can be found here. These notes were largely inspired by Giles Castel's blog post.