How to get a 9.5+ average in Mathematics and Computer Science

In this post I’ll share the tactics I’ve used in order to optimise my efforts in the academic department. They have allowed me to achieve a 9.59 average in the first 3 years, while maintaining a relationship, my social life and practicing competitive programming regularly. You will learn what matters the most both for learning and getting better marks. I’ll first cover the basic general principles, which everyone can apply, and then explain exactly how I implement them in my field.

General principles

  1. Active recall. Although our education system is based on making the students memorise, most people haven’t been taught how to do it effectively. Passively reviewing information is not an effective studying technique for long term retention. Research supports the idea of actively retrieving information as the superior studying method, i.e., try to answer the question before reading the answer.

  2. Spaced Repetition. According to Wikipedia, spaced repetition is “a method of committing information into long-term memory by means of increasing time intervals between subsequent review of material; spaced repetition is often combined with active recall”. The purpose of this is to counter the forgetting curve, which hypothesises the decline of memory retention in time:

This means that you can review a certain topic with decreasing frequency, saving a lot of time. To be honest I’ve only used this for exams that require a lot of memorisation, which are rare in my degree, but this is actually key for many students, so I decided to include it. If you want to implement it, you can either use some software like Anki, which uses some algorithm to calculate the optimal reviewing time based on previous performance, or just eyeball it and track it however you want.

  1. Doing exercises. This is probably the most important part in Maths and CS, since they make up for the majority of your mark. They are also what drives mastery of the concepts, since you build an intuition about them, learn different patterns, learn how the concepts fit into the bigger picture and what sort of problems they help you solve…. I believe pattern recognition to be very important for solving difficult exercises and having some of those “happy” ideas. Exercises may also provide results that are useful for the exam. They force you to actively recall the concepts you are using as well, killing two birds with one stone.

  2. Specificity. This very well know principle can be applied to any field. Do exams from previous years. This well help you in many ways:

    • Helps you prepare for the time you will have in the exam.
    • They will probably resemble what you’ll face the most (if they were prepared by the same professor).
    • You get an idea for what concepts the professor really wants you to learn.
    • Some very easy exams involve similar exercises every year. Some are specially repetitive and tedious, but you can still make silly mistakes in them (calculating stuff can be hard :/) and have them wrong due to a lack of concentration. Doing a lot of similar exercises will reduce the likelihood of a mistake.

    Note: bear in mind the format of the questions on the exam for your active recall questions. Study the blocks they’ll ask in the exam, be it short questions, full sections or theorems’ proofs.

How I implement these concepts

I like to use a ToDo list app to keep track of the multiple tasks I need to complete. I’ll cover my entire productivity system in another post. These are the basic tasks I like to perform for each exam:

  • Understand the theory and concepts.
    • This is generally done during the class. If I miss something due to losing focus, or I don’t understand something, I ask a classmate. I generally like answering questions from other classmates, since they might formulate a question you hadn’t thought about, and explaining a concept to another person helps you understand it better. You might even discover that you didn’t understand it all that well.
  • Do the exercises the professor provided
    • This is my first priority outside of the classroom, for the reasons explained above.
    • Dedicate at least 20 min to each exercise (unless you are pressed for time) if you can’t solve it. After that, ask the professor or another classmate.
    • Try to retrieve from memory the results you use before looking at them. This way you get some memorisation done very early on.
  • Create notes for active recall in Notion.
    • Notion is a freemium app to take notes, but the premium plan is free for students. Each note is composed of different blocks. I use one type of block in particular: toggles. You can formulate a question and hide the answer, which is very useful for active recall. In fact, you can hide not only an answer, but another set of blocks, which may include other toggles. This is very useful, since you can keep the structure and hierarchy of sections, subsections, concepts… Think of it as a tree, and the leaves are your active recall questions. This way, it’s easier to visualise the whole section, and not lose the bigger picture. Whenever I get a question wrong, I highlight it in red, so I can keep track of how I’m doing. I don’t always write the answer below, since it might be time consuming. I don’t write it if it’s actually faster to search for the answer in the reference material.
  • I typically do this in the rare times I am up to date with every other task, or when I’m very close to an exam. The former usually happens during holidays, when the influx of tasks stop. If I don’t get this done during the semester, I’ll get it done first thing in the period between the exam and the previous exam (let’s call this playoff time).
  • Active recall with those notes
    • I normally don’t get to do this until playoff time due to the heavy workload. This is why I don’t tend to use spaced repetition. What I usually do is go through every single question every day during playoff time. I can do this because I don’t have a lot to memorise for most classes, but people from other degrees may have to start during the semester and space their practice.
  • Do other exams from the same professor.
    • I’ll typically go through my active recall questions in the morning, and do exams in the afternoon during playoff time, since the former is more boring and takes more will power. I’ll often get started before playoff time as the exams get closer, depending on how many exams of previous years I have access to.
    • If you don’t have the official answers, try to discuss them with other classmates.

Note: We often have a lot of partial exams, just use the previous weekend and afternoons as playoff time.

Assignments

Assignments are especially important in Computer Science, firstly because they give a lot of points, and secondly because doing is the best way to learn. Although it’s sometimes possible to complete them without really knowing what you are doing, I would suggest taking the time to learn everything properly. This is also a great opportunity to get a higher mark, since you are less time constrained than in exams. My advice: be a bit perfectionist, but not too much. In my experience, as you invest more and more time, you get less and less returns for your efforts in both marks and learning (80/20 rule).

Final notes

I really hope you found this helpful, and even if you already knew a lot of these things, you picked up a thing or two. I would love to hear if this has helped you in any way :)

This is only one part of the puzzle, time management and productivity are also very important if you want to get better marks and a better life balance. I’ll write more about productivity systems in the future, but in the meantime I recommend reading Getting Things Done, by David Allen.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • An introduction to contrastive techniques for representation learning
  • How to do well in your Mathematics and Computer Science courses
  • My workflow for studying and learning in Mathematics and Computer Science, revised