Welcome to UoL Grades Calculator’s documentation!

Grades Calculator

This tool is all about getting information and generating insights from the progress made in a BSc Computer Science at the University of London (calculations are specific to this particular degree).

Its source code is available on GitHub.

Requirements

Python 3.8 and above. This is it!

Install and uninstall

The most straightforward way to use this tool would be to install it from PyPI by typing the following in a terminal (use of virtual environment recommended!):

$ pip install uol-grades-calculator

Reversing the process is a matter of typing this:

$ pip uninstall uol-grades-calculator

To run the utility

$ ugc

By passing no arguments, this will print the default help message.

Generate a sample config file to get started

To generate a sample configuration file, run the following command:

$ ugc generate-sample

The configuration file will be created in your home directory as a hidden file (i.e. ~/.ugc-grades.json).

Specifying a different path for the config file

If you want to create it somewhere else:

$ ugc --config /path/to/config/file.json generate-sample

Note that you will have to indicate where the config is each time you use this tool in this case (you can always create an alias to avoid the trouble of typing it every time). For example:

$ ugc --config /path/to/config/file.json summarize

How to fill the config file (.ugc-grades.json by default)

Each module described in the config file should contain information adhering to the following indications:

Configuration options

Key

Value

Example(s)

Optional*

completion_date

Date as a string: YYYY-MM

2020-01

Yes

final_score

Float: range 0.00–100.00

50, 50.5, 90.56

Yes

final_weight

Integer expressing a percentage: range 0–100

0, 40, 80, 100

Yes

midterm_score

Float: range 0.00–100.00

50, 50.5, 90.56

Yes

midterm_weight

Integer expressing a percentage: range 0–100

0, 40, 80, 100

Yes

module_score

Float: range 0.00–100.00

50, 50.5, 90.56

No

level

Integer: choose strictly from 4, 5 or 6

4, 5, 6

No

* If a value is null (or the key/value pair is absent in a given module), this will affect how the module is taken into account (average across all modules, summary of modules taken, etc.).

Here is a complete example for one module:

"Algorithms and Data Structures I": {
    "completion_date": "2020-03",
    "final_score": 92,
    "final_weight": 50,
    "midterm_score": 98,
    "midterm_weight": 50,
    "module_score": 95,
    "level": 4
}

Module taken

This means we define a module score between 0 and 100, both being inclusive values, for a module for which an official grade was confirmed by the university.

"Algorithms and Data Structures I": {
    "module_score": 80.5
}

Module recognized (RPL)

In this case, we define a score of -1 to indicate that this module is done but we didn’t get a score for it. This way, we can keep track of the fact that the module is “done” but exclude it from calculations when getting an average, for instance.

"How Computers Work": {
    "module_score": -1
}

How to use this tool

Please refer to the page Available commands to see what ugc can do for you.