UBC Math, Computer Science, and Economics Course Advice

Not every top student should choose to get a masters or PhD in economics or finance - but if you want the option then some advanced preparation can make your life easier.

Math and CS are Substitutes (and Complements)

Relative to older advice, I am increasing the importance of taking Computer Science (CS) courses.

  • Don’t be intimidated. Anyone who might be interested in graduate school for economics or finance will manage well, and UBC CS grades fairly, ensuring you won’t be penalized for challenging yourself.
  • CS $\neq$ coding. While there are elements of CS that lean more towards engineering, those are not the courses you would be taking. For our purposes, computer science is a rigorous mathematical science closely intertwined with discrete mathematics, statistics, game theory, etc.
  • However, a word of warning: the 100 and 200 level classes demand significantly more effort than economics courses. It is a challenging but valuable investment of time, as there is no substitute for building familiarity with the material. They grade fairly and generously, so there is no need to worry about your GPA.
  • Do not get caught up in programming languages. You need to learn at least two to three (outside of stata and R, which are outstanding at what they do but won’t help you develop the needed skills).

What am I not Recommending Datascience Classes?

There are many recent programs, classes, and initiatives at UBC and beyond focusing on data science. These courses are often excellent and highly practical. While data science is sometimes unfairly criticized as merely a rebranding of computer science or statistics, it is a distinct field in its own right. Data science integrates applied statistics and foundational computer science with a focus on practical skills, placing less emphasis on theoretical foundations at the undergraduate level.

For students who have no interest in pursuing advanced mathematics, computer science, statistics, or econometrics, data science classes and minors are an excellent fit. However, these are primarily applied, terminal courses that do not provide the prerequisites needed for more theoretical coursework in computer science, statistics, or mathematics. Students considering graduate studies in economics, finance, or related fields should prioritize taking traditional computer science, mathematics, and statistics courses instead of data science classes. Conversely, those focused on practical applications without plans for further academic study may find the data science track ideal.

Goals for All

Take some mathematics and computing courses as soon as possible in your degree. In particular, almost all economics majors who think they may be interested in grad school should take:

  • MATH 221 (Matrix Algebra) . This is a relatively easy math course for UBC, and linear/matrix algebra is essential for a lot of economics, finance, statistics, datascience, and machine learning.
  • CPSC 103 (Introduction to Systematic Program Design) or ECON323 (Quantitative Economic Modeling and Data Science). It is essential to learn to “code” in a general-purpose language (i.e., the programming language doesn’t really matter, just that it is a proper one and not simply R or Stata). ECON 323 is a easy entry to learning to code (not necessarily easier than CPSC 103 though) that uses more direct economics examples, which is fine for most economics majors but limits your ability to take CS electives.

Suggested Courses

But if I were starting an undergrad, some useful goals are to get CPSC 340 (Machine Learning and Data Mining) and ECON 425 (Advanced Econometrics) on your transcript.

In particular, my suggested math and CS courses (9 in total), to attain that are:

  1. CPSC 103 (Introduction to Systematic Program Design) or CPSC 110 (Computation, Programs, and Programming): An accessible Python course for beginners. Students with a stronger background may opt for CPSC 110 directly, which is more intense in work but within reach for many students.
    • I have had multiple non-CS major students tell me that they have take CPSC 110 directly without high-school programming experience and done fine.
    • In particular, you may find that if you have strong math skills then it is much easier to learn than you think. That said, CPSC 110 is closer to the “science” style of CS than a more programming-specific class like CPSC 103.
  2. CPSC 107 (Systematic Program Design): Required if CPSC 110 was not taken. An important prerequisite, emphasizing the importance of understanding core concepts formally (using Scheme/Racket, which is a good thing to expand your perspective).
  3. MATH 221 (Matrix Algebra): Essential for tackling problems in economics, statistics, and computer science
  4. MATH 200 (Calculus III): This course is the worst. Very little is directly useful, and it won’t help you build concepts, but it is a prereq for CPSC 340.
  5. MATH 220 (Mathematical Proof): Great class. Builds rigor in logic and proofs you need in both economics and CS. Requirement for CPSC 221 in this path.
  6. CPSC 210 (Software Construction): The closest to a “programming” class in this list, which is necessary prereq to handle more advanced CS courses.
  7. CPSC 221 (Basic Algorithms and Data Structures): Introduces discrete math and proof techniques not covered in economics courses.
  8. CPSC 340 (Machine Learning and Data Mining): Great class teaching more of the fundamentals of ML and as a prereq for more advanced classes. Take this to truly understand these methods, in part to understand why they should be used sparingly.
    • Strongly prefer this to CPSC 330 which is more applications focused and not good signal for grad school preparation.

Then the economics classes which are good prep for graduate school

  1. ECON 307 (Honours Intermediate Macroeconomics II): In principle intended for honours students, but please take it if you have more technical preparation - especially if you want grad school letters of reference from me.
  2. ECON 425 (Advanced Econometrics): A core course for graduate school preparation
  3. ECON 421 (Introduction to Game Theory and Applications): A core course for grad school preparation
  4. ECON 408 (Computational Methods in Macroeconomics): A new course brings together many tools. Not necessary, but useful especially if you want grad school letters of reference from me
  5. LOTS OF GOOD FIELD COURSES!: You cannot just take technical courses or you will have no idea how to do “economics” or whether you really want to

Other Courses

At that point, if you take classes outside of economics, focus on things that are interesting to you!

Depending on what you enjoyed, here is a non-exhaustive list of other courses which might expand your interest perspectives.

  • MATH 302 (Introduction to Probability): A fun, extremely important class for both CS and economics. Relatively easy grading for a math class. Alternatively, take STATS 302
    • Note that ECON327/325 is an equivalent prereqs in some cases.
  • CPSC 322 (Introduction to Artificial Intelligence)
  • CPSC 430 (Computers and Society)
  • CPSC 320 (Intermediate Algorithm Design and Analysis): Core course for 4th year theory, discrete math, etc.
  • CPSC 440 (Advanced Machine Learning)
  • CPSC 436N (Topics in Natural Language Processing): LLMS/etc.
  • CPSC 303 (Numerical Approximation and Discretization)
  • CPSC 406 (Computational Optimization)
  • STAT 406 (Methods for Statistical Learning)-
  • MATH 319 (Introduction to Real Analysis): Introduction to Real Analysis:
    • Real analysis is essential math for a large number of applications, and is a good signal to graduate schools of your mathematical sophistication.
    • There is also a class MATH 320 but I think you probably want to avoid it, as the course is intended more for honours students. If you have background to do well in that class, you won’t need the advice of this webpage in the first place
    • Even though MATH 319 is a more gentle introduction to this material, they still tend to grade these types of courses fairly harshly and you would need to work very hard to get a good grade.
  • MATH 303 (Stochastic Processes)
  • MATH 307 (Applied Linear Algebra)
  • MATH 340 (Introduction to Linear Programming)
  • MATH 341 (Introduction to Discrete Mathematics)

Again, do not forget about economics field courses, which are essential.

Finally, for people like me writing letters of reference (and probably for grad school admissions, but I am less sure) it is a bad idea to take GPA-booster classes as electives. Challenge yourself! For example, everyone can spot joke classes in the faculty of science a mile away (in part because the class average is shown on transcripts). Within Arts, the same rule applies. For example, if you were born in China and get an average grade in a French literature class it tells people you were willing to work hard and challenge yourself - which is better than getting a top mark in an introductory Chinese literature class.