By: Team W14-4 Since: Feb 2019 Licence: MIT

1. Introduction

GradTrak is an application designed for students of National University of Singapore (NUS) to easily track their graduation progress. The current version of the application offers graduation requirement tracking to Computer Science majors (namely the Algorithms, Artificial Intelligence and Software Engineering Focus Areas). Stay tuned as we will be adding other courses in the near future!

Students can interact with the application by entering commands into the command box. This will benefit Computer Science majors as they can generally type quickly.

2. Installation Guide

Follow the instructions below to install this application.

  1. Ensure you have Java version 9 or later installed in your computer.

  2. Download the latest GradTrak.jar here.

  3. Copy the file to the folder you want to use as the home folder for your GradTrak.

  4. Double-click the file to start the application. The application window should appear within a few seconds.

3. Quick Guide

Read the guide below to have a quick understanding of the usage of this application.

annotated ui
Figure 1. Parts of the User Interface
  1. Refer to Fig 1 for parts of the User Interface (UI). Here are the brief functionalities of the UI annotated above:

    1. Task Bar: You can exit the application or access the help menu (this guide) here.

    2. Command Box: You can enter a command here to access the features of the application

    3. Result Box: You receive feedback for your entered command here. If the command is unsuccessfully executed, the correct input format of the command will be provided.

    4. Result Panel: You can view the information associated with the command entered here.

    5. Module Panel: You can view the details of the modules that you have taken or are planning to take.

  2. To access a feature of the application, type a command in the command box and press Enter to execute it. For example, typing help and pressing Enter will open the help window.

  3. You might wish to set the course of study first. There are currently 3 courses available in this app: Computer Science Algorithms, Computer Science Artificial Intelligence, Computer Science Software Engineering. To set the course, enter the following command: study [COURSE]

  4. Here are some commands you can try:

    • addc/CS1010 s/Y1S1 : adds the module "CS1010", taken in Y1S1, to the module plan

    • delete1 : deletes the first module on the most recently displayed list

    • displayreq: displays information on your course requirements and the percentage completed for each requirement.

    • cklimit: displays information on your current semester and a report with the CAP and workload information of the current module plan

    • exit : exits the application

Here we only introduced some of the more basic functions and commands of GradTrak. The following section, Section 4, “Features”, will give you a more detailed guide/walk through for each command.

4. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the student, e.g. in add c/MODULE_CODE, MODULE_CODE is a parameter which can be used as add c/cs1010.

  • Items in square brackets are optional e.g c/MODULE_CODE [g/GRADE_OBTAINED] can be used as c/CS1010 g/A or as c/CS1010.

4.1. Add module: add

Adds a module to the module plan based on the given module code, semester taken and expected / obtained grade.
Format: add c/MODULE_CODE s/SEMESTER [ming/NEW_EXPECTED_MIN_GRADE] [maxg/NEW_EXPECTED_MAX_GRADE] [lec/NEW_LECTURE_HOURS] [tut/NEW_TUTORIAL_HOURS] [lab/NEW_LAB_HOURS] [proj/NEW_PROJ_HOURS] [prep/NEW_PREP_HOURS]

  • Possible grade options are the standard letter grades (A_PLUS, A, A_MINUS, B_PLUS, B, B_MINUS etc.) and IC, EXE, CS, CU, W, S, U.

  • You cannot add an existing module with the same semester.

  • You can only add a module if you have previously added its prerequisites. [coming in v2.0]

Examples:

  • add c/CS2103T s/Y1S1
    Adds the module CS2103T, to be taken in the first semester of year 1, to the module plan.

  • add c/CS2103T s/Y2S2 max/B_MINUS
    Adds the module CS2103T, to be taken in the second semester of year 2 with expected max grade B-, to the module plan.

  • This command is undoable and redoable

4.2. Check CAP limits: cklimit

To find out if their current plans are suitable in maintaining their CAP for each semester, students would like to:

  • Know what their current CAP is.

  • Be able to estimate their minimum and maximum projected CAP based on their estimated grade range for each module

  • Find out if any semester has too many difficult modules that would pull down their CAP unexpectedly, or too many easy modules that could be distributed to other semesters to maintain a more steady and predictable CAP for all semesters.

GradTrak is able to consolidate all the information about the modules they plan to take and the limit preferences they have for each semester. This allows the student to run a CAP analysis on their current module plan and generate the results to be printed all in one page on their screen.

The edit command allows students to indicate their expected minimum and maximum grades for each module they plan to take.
The setlimit command allows students to indicate their CAP preferences for each semester.

The cklimit command calculates the expected minimum and maximum CAP of each semester and checks them against the limit preferences set by the student.
Format: cklimit

The image below shows the display after using the cklimit command

CheckLimitDisplay
Figure 2. Results of cklimit is displayed
  • This command also analyzes and prints workload information.

4.3. Check workload limits: cklimit

To find out if their current plans are optimized in workload distribution, students would like to:

  • Know what is the total number of workload hours for each semester in their current module plan.

  • Find out if any semester is too heavy or light on any type of workload that could suggest a reallocation of modules to redistribute the workload across all semesters.

GradTrak is able to consolidate all the information about the modules they plan to take and what limit preferences they have for each semester. This allows the student to run a workload analysis on their current module plan and generate the results to be printed all in one page on their screen.

The edit command allows students to indicate their expected workloads for each module they plan to take.
The setlimit command allows students to indicate their workload preferences for each semester.

The cklimit command calculates the total expected weekly workload of each semester and checks them against the limit preferences set by the student.
Format: cklimit

The image below shows the display after using the cklimit command and scrolling down the result page to the section on workload information:

CheckLimitScrolledDownDisplay
Figure 3. Results of cklimit is displayed after scrolling down the result page
  • This command also analyzes and prints CAP information

4.4. Clear all data entered: clear

Deletes all the added modules in the module plan.
Format: clear

4.5. Set the current semester: cursem

GradTrak keeps track of the current semester of the student and considers all modules taken before the current semester to be completed. All completed modules must have a finalized grade and will be included in the calculation of the current CAP during the cklimit command.

After the student receives the results of the modules they took in the latest semester, they can confirm the grades attained in that semester and update GradTrak with their final grades. They can then inform GradTrak of their current semester to indicate completion of all modules in the previous semesters, so that the calculation of their current CAP will be updated as well.

The cursem command updates GradTrak with the current semester.
Format: cursem SEMESTER

  • The given semester must be a valid semester from year 1 to 5, in either the first or second semester, or GRAD if the student has completed all semesters.

  • All modules taken in the previous semesters must have a finalized grade. The minimum expected grade and maximum expected grade must be the same.

Examples:

  • cursem Y3S2
    Sets the current semester to the second semester of year 3.

  • cursem GRAD
    Sets the current semester to the graduated semester.

  • This command is undoable and redoable

4.6. Delete module: delete

Removes a module from the module plan based on its index in the most recently displayed list.
Format: delete INDEX

  • Shows a message if the given index is invalid

  • This command is undoable and redoable

Examples:

  • delete 1
    Deletes the first module on the most recently displayed list.

4.7. Display module information: displaymod

The displaymod command shows all the modules that are available in NUS based on the search by the student. This command simply shows modules straight from NUS’s database of modules and does not check if the student has met the prerequisites to read a particular module.

This command will allow students to find out more about a module or even compare modules so as to decide which modules to read in the upcoming semesters. Once decided on which module the student plans to read, they can use Section 4.1, “Add module: add command to add the module to their own list.

Searches are case-insensitive.
Students must strictly adhere to syntax of the displaymod command in order to get optimum search results.

There are 2 ways to search for modules:

  • Search by code: All modules have module code associated with it, this makes it easier to remember modules.To search for modules based on code, a c/ prefix must be added after displaymod command, followed by a list of modules which are separated by ,.
    Format: `displaymod c/MODULE_CODE,[MODULE_CODE]

displaymod1cexamplecmd
Figure 4. Single module code search command format

The search above should yield a result:

displaymod1cexampleresult
Figure 5. Single module code search result

However if students wishes to search for multiple modules at once they can follow the example given below:

displaymodMcexamplecmd
Figure 6. Multiple module codes search command format

The search above should yield a result:

displaymodMcexampleresult
Figure 7. Multiple module code search result
  • Search by name: There are cases where students may not remember or know the module code but vaguely remember the module name. Students who find themselves in such a situation can search for modules by their names by adding a n/ prefix after the displaymod command, followed by keyword/s that can be found in the module name. Keywords have to be separated by + symbol.
    Format: displaymod n/KEYWORD+[KEYWORD]

displaymod1nexamplecmd
Figure 8. Single module name search command format

The search above should yield a result:

displaymod1nexampleresult
Figure 9. Single module name search command result

However if students wishes to search for multiple modules at once they can follow the example given below:

displaymodMnexamplecmd
Figure 10. Multiple module name keyword search format

The search above should yield a result:

displaymodMnexampleresult
Figure 11. Multiple module name keyword search result

If the student has successfully managed to display a module of their choice, they will be presented with module/s containing several information that the student will find useful. The example below will show the information provided for each module after a successful search:

displaymoddisplay
Figure 12. What information each module contains

What each number displays:
1. Shows the module code and module name.
2. Shows which department the module belongs to.
3. Displays the amount of module credits a student can gain by reading this module.
4. Displays a brief description of the modules and potentially the topics that may be covered.
5. Contains the prerequisite tree for each module.
6. Contains workload load information, the values are meant to be read as Hours.

4.8. Display course requirements: displayreq

One of the core functions of GradTrak is to check whether the student has fulfilled his/her degree requirement. As of v1.4 of the application, GradTrak currently only has course information of 3 Computer Science major Focus Areas, namely:

  • Algorithms

  • Artificial Intelligence

  • Software Engineering

The course of study can be changed by using the study command which will be outlined in the later sections of this guide.

Based off the modules you have passed and completed, or have planned to take in the future semesters, this command displays to you the degree to which you have completed your course requirements. It also displays other relevant information regarding your course’s requirements. This can be seen in the annotated screenshot below:

displayreqcommand
Figure 13. Annotated screenshot when displayreq is invoked

These information are displayed in the result panel when displayreq is keyed in:

  1. Name of the course requirement.

  2. Description of the course requirement. Gives an overview of the modules the student should take to fulfill the requirement.

  3. Requirement type. Informs the student the importance of the requirement in relation to their course of study.

  4. Requirement progress bar and percentage. Informs the student the extent to which he/she have fulfilled the course requirement.

Format: displayreq

4.9. Edit module: edit

Edits the semester, grade or workload of a module in the module plan, based on its index in the most recently displayed list.
Format: edit INDEX [s/NEW_SEMESTER] [ming/NEW_EXPECTED_MIN_GRADE] [maxg/NEW_EXPECTED_MAX_GRADE] [lec/NEW_LECTURE_HOURS] [tut/NEW_TUTORIAL_HOURS] [lab/NEW_LAB_HOURS] [proj/NEW_PROJ_HOURS] [prep/NEW_PREP_HOURS]

  • Parameters can be in any order, but the index must be entered first.

  • At least one field to be edited must be given.

Examples:

  • edit 2 min/A_PLUS
    Changes the expected min grade of the second module in the most recently displayed list to A+.

  • This command is undoable and redoable

4.10. Exit the program: exit

Exits the program.
Format: exit

4.11. Find module: find

Finds modules in the module plan matching all given module code, semester, grade or finished status.
Format: find [c/MODULE_CODE] [s/SEMESTER] [g/GRADE] [f/IS_FINISHED]

  • Parameters can be in any order and are case-insensitive.

  • Module code can be entered partially, but semester and grade must be in the exact format.

  • For unfinished modules, searching by grade will display those whose grade range covers that grade.

  • Finished status is indicated by y for finished module (i.e. semester read is before current semester) or any other value for unfinished.

Examples:

  • find c/CS
    Lists all modules with "CS" in their codes.

find(c)
Figure 14. Finding modules with "CS"
  • find s/Y1S2
    Lists all modules in Y1S2.

find(s)
Figure 15. Finding modules in Y1S2
  • find g/A f/y
    Lists all finished modules with grade A.

find(g,f)
Figure 16. Finding finished modules with grade A (current semester: Y1S2)

4.12. View all other commands : help

Displays a list of all available commands.
Format: help

4.13. List entered commands: history

Lists all commands entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

4.14. List all modules: list

Shows a list of all modules in the module plan.
Format: list

4.15. Recommend module: rec

Recommends modules that can be read based on the current module plan and course requirements.
Format: rec

  • Modules with unmet prerequisites or those already added (except for failed modules) will not be recommended.

  • Recommended modules are displayed in order of requirement type satisfied: Core, Breadth & Depth, Industry Experience, Faculty, General Education. Modules with the same requirement type satisfied are sorted by level.

If any change is made to the course or module plan, enter rec again to update the recommendation list.

The figure below shows a sample recommendation list for a student studying Computer Science Algorithms with an empty module plan.

recommend
Figure 17. Recommendation list for Computer Science Algorithms

4.16. Redo the previously undone command: redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

4.17. Set the current course of study: study

To set the desired course of study, the student can simply key in the following command:

Format: study COURSE

The parameter COURSE is case-sensitive.

As of v1.4, GradTrak has information to keep track of course requirement from the courses mentioned below:

  • Computer Science Algorithms

  • Computer Science Artificial Intelligence

  • Computer Science Software Engineering

Example:

  • study Computer Science Algorithms
    Sets the course of study to Computer Science with Focus Area Algorithms. Invoking study command again will change your course of study.

More courses will be rolled out in GradTrak in the future.

4.18. Set CAP limits: setlimit

Some students have a desired CAP for graduation. They may like to plan their modules such that it helps them to keep their CAP at a suitable range at all times. This helps to ensure that they can easily apply for programs with minimum CAP requirements such as the Student Exchange Program, or NUS Overseas Colleges, or maintain the CAP requirement of their scholarship for each semester.

GradTrak can keep track of their CAP limit preferences so that it is possible to help them detect whether their current module plan fulfils their preferences.

The cklimit command allows the student to check their limit preferences against their current module plan.

The setlimit command allows you to set the minimum and maximum preferred CAP for a semester.
Format: setlimit SEMESTER [mincap/MIN_CAP] [maxcap/MAX_CAP]

  • Parameters can be in any order, but the semester must be entered first.

  • The given semester must be a valid semester from year 1 to 5, in either the first or second semester.

  • At least one field to be edited must be given.

  • Newly edited limits must be not be out of order. Minimum CAP must not be more than the maximum CAP

Examples:

  • setlimit Y1S1 mincap/2.52 maxcap/5
    This sets the minimum CAP acceptable to 2.52 and maximum CAP acceptable to 5.00 for the first semester in year 1.

  • This command also able to set workload limits for each semester.

  • This command is undoable and redoable

4.19. Set workload limits: setlimit

Some students who do not have a strong programming background may be slightly uncomfortable taking multiple programming modules in year 1 as they may feel too stressed from huge weekly lab workloads. Other students who like project work may like to take 1 or 2 team-based modules per semester that focuses on communication skills.

GradTrak can keep track of their workload limit preferences for each semester so that it is possible to help them detect whether their current module plan fulfils their preferences. Various types of workload limits such as total number of weekly lecture hours, tutorial hours, lab hours, project hours, and preparation hours can be set by the student.

The setlimit command allows you to set the minimum and maximum total weekly workload limits for a semester.
Format: setlimit SEMESTER [minlec/MIN_LECTURE_HOURS] [maxlec/MAX_LECTURE_HOURS] [mintut/MIN_TUTORIAL_HOURS] [maxtut/MAX_TUTORIAL_HOURS] [minlab/MIN_LAB_HOURS] [maxlab/MAX_LAB_HOURS] [minproj/MIN_PROJ_HOURS] [maxproj/MAX_PROJ_HOURS] [minprep/MIN_PREP_HOURS] [maxprep/MAX_PREP_HOURS]

  • Parameters can be in any order, but the semester must be entered first.

  • The given semester must be a valid semester from year 1 to 5, in either the first or second semester.

  • At least one field to be edited must be given.

  • Newly edited limits must be not be out of order such that the following requirements are met:

    • Minimum lecture hours must not be more than the maximum lecture hours

    • Minimum tutorial hours must not be more than the maximum tutorial hours

    • Minimum lab hours must not be more than the maximum lab hours

    • Minimum project hours must not be more than the maximum project hours

    • Minimum preparation hours must not be more than the maximum preparation hours

Examples:

  • setlimit Y1S2 minlec/2.5 maxproj/3
    This sets the minimum number of weekly lecture hours acceptable to 2.5 and maximum number of weekly project hours acceptable to 3 for the second semester in year 1.

  • This command also able to set CAP limits for each semester.

  • This command is undoable and redoable

4.20. Undo previous command: undo

Restores GradTrak to the state before the previous undoable command was executed.
Format: undo

Undoable commands: those commands that modify the module plan or course (set, add, edit, delete and clear).

Examples:

  • delete 1
    displayreq
    undo (reverses the delete 1 command)

  • displayreq
    cklimit
    undo
    The undo command fails as there are no undoable commands executed previously.

  • cursem Y2S2
    setlimit Y3S1 minprep/4
    undo (reverses the setlimit Y3S1 minprep/4 command)
    undo (reverses the cursem Y2S2 command)

4.21. Save data

Data are saved in the hard disk automatically after any command that changes them. There is no need to save manually.

4.22. Encrypt data files [coming in v2.0]

Encrypts your data files.

4.23. Update module information [coming in v2.0]

Retrieves the latest information of all modules from CORS.

5. FAQ

Q: How do I transfer my data to another Computer?
A: Install the application on the other computer and overwrite the empty data file it creates with the file that contains the data of your previous GradTrak folder.

6. Command Summary

  • Add: add c/MODULE_CODE s/SEMESTER

  • Cklimit: cklimit

  • Clear: clear

  • Cursem: cursem SEMESTER

  • Delete: delete INDEX

  • Displaymod: displaym o/OPTIONS [MORE_ARGUMENTS]

  • Displayreq: displayreq

  • Edit: edit INDEX [s/NEW_SEMESTER]

  • Exit: exit

  • Find: find [c/MODULE_CODE] [s/SEMESTER] [g/GRADE] [f/IS_FINISHED]

  • Help: help

  • History: history

  • List: list

  • Recommend: rec

  • Redo: redo

  • Set: study COURSE

  • Setlimit: setlimit SEMESTER [mincap/MIN_CAP] [maxcap/MAX_CAP] [minprep/MIN_PREP_HOURS] [maxprep/MAX_PREP_HOURS]

  • Undo: undo