---
# System prepended metadata

title: Class selection algorithm
tags: [archived, '181902']

---

# Class selection algorithm

###### tags: `181902` `archived`

![](https://i.imgur.com/vNSqvsK.jpg)

>  Class selection is an god damned sin - me, in front of the computer

Hopefully through this, I could provide you with a new method on how to choose your classes. However be warned that this could take you a longer time than you normally would by just clicking and (less intuitively) choosing the order of them. So I don't really recommend this system for people who just want to select a few courses.

Also, after you read this, you may think this is **obvious AF**, but well, I guess if you're already reading this because of the title then it wouldn't hurt to just dance around my jagged words. 

## Prerequisite

- A functioning computer
- Something similar to Excel 
- Know how to use Google ~~(or Baidu if your country doesn't allow Google)~~

## Motivation and inspiration

I think we could all agree that the class selection system for NTU is ~~shit~~ terrible. 

- You couldn't access it for more than a few minutes and would need to reopen a tab to just go back to your selection frenzy. Now I do know that there is another way that you could just import all your wanted classes from another system. But why use a separate system when it ==should== be achieved by one!
- Say, going back to check this list of yours, and *uh-oh* you've accidentally selected the wrong order for several courses. You **could** always just go and change the order by placing the wrongly ordered class in the 99^th^ selection and then change the designated course to that number and **then** change the class that you've placed in the 99^th^ back into ordered list. But man , if you could just drag and drop the classes into the correct order, that would make life a hell of a lot easier... 

---

But heck, enough of the ranting, it's not like it's NTU's fault that I'm writing this. ~~Please don't expel me~~

---

My reason for developing this system was because I'm a really indecisive person. Like *really* indecisive. I could buy chocolate ice cream one second and regret not choosing strawberry instead. Also, there's this problem with having so many option to choose from. So which is the best combination to maximise my satisfaction over my selection? Simple, use math! (URGHHHHH)

This is in part inspired by this [Youtube video](https://www.youtube.com/watch?v=d6wG_sAdP0U), my odd love for reading statistic on football and the quote below.

> It's not hard to make decisions when you know what your values are - Roy E. Disney

## The algorithm

Feel free to chop and change my method. 
These are more like guidelines than actually rules. 

![](https://i.imgur.com/z4EJUD4.jpg)


### Step 1: Find your priorities

![](https://i.imgur.com/F13DoJl.gif)

This is the hardest step for me, finding what you prioritise in your courses. Some guideline questions would be like:  

- Do you like to learn? 
- Do you need high grades? 
- Do you hate exams?
- What language do you prefer?
- What about team work based courses?

But heck, you want to *learn* and *earn good grades*. Well.. if you're smart as hell, then all there is to ask is why bother reading this? Clearly, you know better than a person who got a 2.1x GPA in his freshman year. Jokes aside, it is possible that you learn and earn good grades (at least to your own standards). Just ==find what you prioritise more==. For me, I prioritise my own interest and the need to take that course (ex. compulsory elective courses). Grades follow a close second and the time I need to spend as third. ==You could and **should** make up your own priorities== and rank them or write down it's importance.

| Qualities  | Importance | Reason                                          |
| :--------: | :--------: | ----------------------------------------------- |
|  Interest  |  Highest   | I want a fulfilling life                        |
|  Needed?   |  Highest   | I want to graduate                              |
| Decent GPA | Very high  | I don't want to look dumb                       |
| Time spent | Very high  | I want to sleep 6+ hours                        |
| Good jokes |    High    | I don't want to be bored to death               |
| Good looks |   Decent   | At least I could stare at their face            |
|  Singing   | Not really | At least it's good for sleeping                 |
|  BG ratio  |   Low AF   | I'm going to be single until I graduate anyways |
### Step 2: Create spreadsheet

Fire up Excel, ==jot down the interested classes and it's info==.

### Step 3: Choose your number

![](https://i.imgur.com/UouKW4q.jpg)

Now that you've finished writing down all the classes that you're sort of interested, its time to get picky! Let's say I ==rank them== with some scoring system of 10s. For example:

| Name    | ID    | Interest | Needed | GPA  | Time |
| ------- | ----- | -------- | ------ | ---- | ---- |
| Biology | 12345 | 8        | 10     | 1    | 5    |

Then score all of your classes according to that scoreboard. 

### Step 4: Add it up

![](https://i.imgur.com/3nXKv9G.jpg)

==Write a [function](https://fiveminutelessons.com/learn-microsoft-excel/use-sum-function-add-column-or-row-cells-excel) for your spreadsheet==. This isn't really how you do it but you get the idea

| Name    | ID    | Interest | Needed | GPA  | Time | Total                         |
| ------- | ----- | -------- | ------ | ---- | ---- | ----------------------------- |
| Biology | 12345 | 8        | 10     | 1    | 5    | =interest row+needed+GPA+time |

[Drag the function down](https://www.ablebits.com/office-addins-blog/2016/01/20/copy-formula-excel/) to let the computer autofill all the functions for you. However, remember we talked about ranking your priorities? What we could do know is use a [coefficient](https://www.quora.com/What-is-a-coefficient-in-math) for every one of them, like for example. 
$$
\text{Total} = 1.5 \times \text{Interest} + 1.5 \times \text{Needed} + 1.2 \times \text{GPA}...
$$
The higher the coefficient, the more important it is to you.

### Step 5: Rank them

Just use the ranking feature in excel and you're good to go.

## Ending

![](https://i.imgur.com/saidvhd.jpg)

So that's it! [Links to my own spreadsheet](https://docs.google.com/spreadsheets/d/1yGPSS6k_ZMWpQdjmAlHyqk7W0_BM8L3r_WrxoRECxRA/edit?usp=sharing), don't judge me for my courses! 

You could tell that this system is quite flawed in some ways:

- You couldn't tell if the course is crashed with some important courses you **HAVE** to take.
- It doesn't actually solve the problem for NTU's course selection websites [GUI](https://en.wikipedia.org/wiki/Graphical_user_interface) 

But it does 

- Remedy my own problem of selecting courses 
- Placing them in the right order for inserting them into the website

That's about it, thanks for reading!

---

# Remarks

These are just the things that I didn't mention in the text and someone asked me about it. 

## #1

Someone has asked in my own spreadsheet, what is 時間. In two words, opportunity costs. 

(Longer version) : That's a metric for my own use. Hypothetically, I want to study chemistry. There are two classes for chemistry, class A and class B, so how do I choose? Basically, I count out the amount of classes that class A would clash with and class B will clash with. My own standard is somewhat like:

|  Amount of clashes   | Score |
| :------------------: | :---: |
|         < 3          |   9   |
| 3 $\leq$ x $\leq$ 5  |   7   |
| 6 $\leq$ x $\leq$ 10 |   3   |
|         > 10         |   0   |