User Guide for E-Duke-8

1. Introduction

E-Duke-8 (pronounced “Educate”) helps CS2113/T students learn and understand software engineering and Object-oriented Programming (OOP) principles through a gamified platform and enhances their learning experience.

It is a desktop application where CS2113/T students can attempt bite-sized quizzes, through the Command Line Interface (CLI), to test their understanding of the concepts taught, and serves to consolidate key concepts for easy revision.

On E-Duke-8, you can earn points for yourself as you attempt the quizzes! You can also view the statistics of your past quiz attempts to understand your current level of mastery of the various topics!

Challenge your friends to see who can earn the most points on E-Duke-8!

Understand more about E-Duke-8, and how you can use it to aid your learning, through this User Guide.

2. Quick Start

  1. Ensure that you have Java 11 or above installed.
  2. Download the latest version of the jar file for E-Duke-8 from here.
  3. Copy the files to the folder you want to use for the application.
  4. Double click on the jar file to start up the program. If the program does not start up, continue to step 6, otherwise skip to step 8.
  5. If double clicking on the jar file does not work, open up the command prompt in the same folder used in step 3.
  6. Enter the following command java -jar eduke8.jar (assuming the downloaded jar file is named eduke8.jar but this can be changed).
  7. Type a command in the terminal and press Enter to execute it. e.g. typing help and pressing Enter will list all the commands that you can use in this application. For a start, here is a list of basic commands you can try:
    • about : Provides information about E-Duke-8.
    • help : Displays available commands.
    • topics : Lists CS2113/T topics that E-Duke-8 knows.
    • textbook : Provides you with a link to the CS2113/T website.
    • quiz : Starts a quiz. Eg. quiz t/OOP n/5 s/10 will start a quiz with five questions based on OOP concepts. You will have 10 seconds to complete each question.
    • exit : Exits the app.
  8. Refer to the section on Features below for the full list of commands you can use and the details of each.

3. Features

ℹ️ Notes about the command format:

3.1. Loading Data

Data will be automatically loaded from the files in the data folder for use in quizzes and notes. You will see this message while the data loads:

data loading

If the data has been loaded successfully you should see this message:

data loaded

If you wish to edit the data available, such as adding your own questions to the question bank, then do follow the instructions found in FAQ. However, it is recommended that you do this only after fully exploring E-Duke-8.

If have trouble opening E-Duke-8 and received the following warning message, then please refer to the section 6. Troubleshooting for help in resolving the issue.

data error

3.2. Welcome Page

Upon successful startup, you should be greeted with a screen like this:

welcome

3.3. Viewing E-Duke-8 information: about

Shows a message explaining what E-Duke-8 is about and your benefits of using it.

Example of usage:

about

What you should see:

about

3.4. Viewing available commands: help

Shows a list of commands that you can use.

Example of usage:

help

What you should see:

help

3.5. Listing all topics: topics

Shows the entire list of CS2113/T’s topics that you can choose for your quiz to be based upon.

You can see the number of questions available for each topic beside the topic itself.

Example of usage:

topics

What you should see:

topics

3.6. Accessing the CS2113T textbook content: textbook

You can find a link to the module’s textbook using this command.

Example of usage:

textbook

What you should see:

textbook

3.7. Starting a quiz: quiz

By following a specific input format for your command (shown below), you can start a quiz where the number of questions, topic and time limit to complete each question are specified by you.

While on a question, you can choose to answer it, ask for a hint (if you are unsure of the answer) or bookmark it for future reference!

You will have to complete the question within the specified time as well. If you are unable to complete it in time, it will be regarded as an incorrect answer and the correct answer, along with the explanation, will be shown to you. You will then be directed to start the next question where the timer will restart.

A correct answer without requesting for a hint will earn you 2 points! Whereas a correct answer with hint requested will earn you 1 point. You will not be awarded any points for incorrect answers. You can view the points you have accumulated with the stats command, which will be further explained in a later section of this guide.

Regardless of right or wrong answer, an explanation about the question will be displayed after you give an answer. You will then be directed to start the next question.

Note:

Input format: quiz t/TOPIC n/NUM_QUESTIONS s/TIMER

Example of usage:

quiz t/OOP n/5 s/10

What you should see:

quiz

From here on you can either:

1) Enter in your answer by typing ‘1’, ‘2’, ‘3’ or ‘4’ and pressing enter.

2) If you do not know the answer, you can request for a hint by typing hint and pressing enter. Refer to the section on hints for more information.

3) If you would like to refer to the question in future, you can also bookmark it. Refer to the section on bookmark for more information.

If you have entered the correct answer, this is what you will see: quiz

If you have entered the wrong answer, this is what you will see: quiz

If you did not answer the question within the specified time, this is what you will see: quiz

After every question, this is what you will see: quiz Please press “Enter” to proceed to the next question. Once the new question appears, the timer will then restart!

After attempting all of the questions, the quiz will automatically end: quiz

After the quiz ends, you will be prompted to enter in a new command. At this point, you are free to choose any feature of E-Duke-8 you want to access, or you can also start a new quiz!

3.8. Showing a hint: hint

Shows a hint to the current question.

Example of usage:

hint

What you should see:

hint

Note:

3.9. Bookmarking a question: bookmark

Stores any question encountered in a quiz in a list.

Note:

Example of usage:

bookmark

What you should see:

bookmark

3.10. Listing out all bookmarked questions: bookmark list

Lists out all the bookmarked questions and each of their four options. The correct answer will be shown too.

Note:

Example of usage:

bookmark list

What you should see:

data saving

3.11. Deleting a bookmark: bookmark delete

You can delete a bookmark by specifying its index. The index can be found in the bookmark list when you use the bookmark list command.

Input format: bookmark delete INDEX

Example of usage:

bookmark delete 2

What you should see:

bookmark

3.12. Displaying stats: stats

Displays the accumulated statistics of your quiz attempts on E-Duke-8 which includes the points you have earned, questions done, questions answered correctly and hints used. Both overall statistics and topic-level statistics will be displayed.

Example of usage:

stats

If you are a new user, this is what you should see:

stats_no_progress

If you have attempted the quizzes on E-Duke-8, you would be able to see your own stats.

This is an example of what you should see:

stats_with_progress

3.13. Adding a note: note add

Adds a note to a specified topic.

Note:

Example of usage:

note add

What you should see:

noteadd

3.14. Deleting a note: note delete

Deletes a note from a specific topic.

Example of usage:

note delete

What you should see:

notedelete

3.15. Listing out notes: note list

Lists out all notes belonging to a specific topic.

Example of usage:

note list

What you should see:

notelist

3.16. Exiting the program: exit

Exits E-Duke-8.

Example of usage:

exit

exit

3.17. Saving user data

User data will be saved after every command that changes the data completes such as at the end of using quiz, note, and bookmark. There will be a final save confirmation message upon successful exit of the application through the exit command. You will see this message while the data saves:

data saving

When the data has been saved successfully you should see this message:

data saved

This is stored in the user.json file in the data folder and can be transferred between machines to keep your own history. Please do not attempt to edit this file as it will disrupt the running of application (Refer to FAQ Q7). If you want a better score you can always reattempt a quiz!

4. FAQ

Q1: Am I be able to re-attempt the same question after my quiz ends?

A1: Yes, you may. Questions for the quizzes are chosen randomly from all of the questions in a certain topic. Hence, there is a chance that the question you have attempted before gets chosen again if you choose to attempt another quiz from the same topic.

Q2: Why does my stats only improve as I do more quizzes? Shouldn’t the penalities from my previous quizzes remain?

A2: E-Duke-8 tries to motivate you to understand CS2113/T concepts better. E-Duke-8 also encourages learning from failure. Therefore, you do not have to be disheartened by incorrect answers when attempting quizzes. Learn from the explanations given and get the question correct in your future quiz attempts to improve your stats! A correct answer in a future quiz attempt would also mean that you have come to understand the concept being tested in the question, and hence, you should deserve the points for it.

Q3: Why does my hint usage indicator for a question not disappear after I re-attempt the question without using hint?

A3: This is because the hint usage serves as an indicator that you might still have some doubts in the topic, and hence you might want to read more about it. Resetting the count for hint usage might take away this benefit.

Q4: Using hints will limit the total points that I can earn to build up my stats, so why should I still use hint?

A4: While points you earn will indeed be lesser, you are still encouraged to use hints when you have any doubts while answering questions, as they help to spur your thinking, or to confirm your thoughts. Furthermore, hints might give you an alternative perspective to think about the question at hand, which may be helpful to how you answer similar questions in the future.

Q5: How are the points awarded for correct answers?

A5: A correct answer without requesting for a hint will earn you 2 points, whereas a correct answer with hint requested will earn you 1 point. You will not be awarded any points for incorrect answers.

Q6: How do I change the questions in the quizzes?

A6: You may download the sample topics.json from the releases page. Make sure to include this file in the main folder located in the data folder. If these folders do not exist yet please run the application once to create it.

The directory structure should look something like this (assuming the main jar file is named eduke8.jar but this can be changed):

yourFolder
|   eduke8.jar
|
----data
    |
    ----main
    |   |   topics.json
    |   |   ...
    |
    ----logs
        |   ...

Your changes will not be reflected if the directory structure does not match that above.

Open topics.json in any text editor to edit the questions, make sure to follow the format of the questions already provided. An example is shown below.

[
  {
    "topic": "Topic Title", 
    "questions": [
      {
        "description": "What is your question?",
        "hint": "Put the hint here",
        "explanation": "Put the explanation here",
        "options": [ 
          {
            "description": "This is the first option and correct answer",
            "correct": true
          },
          {
            "description": "This is the second option",
            "correct": false
          },
          {
            "description": "This is the third option",
            "correct": false
          },
          {
            "description": "This is the fourth option",
            "correct": false
          }
        ]
      }
    ]
  }
]

Note:

Q7: What happens if I modify the user data in user.json?

A7: If you wish to modify the user data, the application may not be able to load it successfully. You will receive the following message, and the affected user data will be erased.

user data error

Therefore, it is recommended that you do not modify the user data. Do build up your stats by attempting more quizzes!

5. Command summary

Action Format, Examples
Viewing E-Duke-8 information about
Viewing available commands help
Listing all topics topics
Accessing the CS2113T textbook content textbook
Starting a quiz quiz t/TOPIC n/QUESTIONS s/TIMER
e.g. quiz t/OOP n/5 s/10
Showing a hint hint
Bookmarking a question bookmark
Listing out all bookmarked questions bookmark list
Deleting a bookmark bookmark delete
Displaying statistics stats
Adding a note note add
Deleting a note note delete
Listing out notes note list
Exit exit

6. Troubleshooting

If you have trouble starting the application there could be two sources of error for loading data. It is possible that the data for topics.json or user.json has been tampered with wrongly and thus cannot be parsed correctly. Please ensure that if you wish to edit the data in topics.json, such as to add questions, then you should follow the instructions found in FAQ Q6 carefully.

On the other hand, user.json should not be manually edited. If you have accidentally changed this file, you may delete the file to reset the data. A new file will be created on start up.

If the above fixes do not work you may delete the data folder and use the default questions or download topics.json from the releases page again.

7. Glossary