User Guide for lesSON

Table of Contents

  1. Introduction
  2. How to use the guide
  3. Glossary
  4. Quick start
  5. Feature list
  6. Additional Features
  7. FAQ
  8. Known Issues
  9. Contact Us

Introduction

Revolutionise your studying experience with lesSON!

Welcome to the user guide for lesSON, your ultimate companion in mastering the Computer Science curriculum at the National University of Singapore (NUS). This guide is designed to provide you with a comprehensive understanding of the app and how to leverage its powerful features for your academic success.


What is lesSON?

lesSON is not just another study app; it’s a game-changer in the world of education. Tailored specifically for NUS Computer Science students, this desktop application enables incredibly easy creation of flashcards for revision. It employs the efficacy of active recall when you practise with the flashcards you made to increase memory retention. Say goodbye to time-consuming note-taking, and say hello to a more efficient, effective, and enjoyable study experience.

Made with the intention to maximise your study experience, here are some features we believe you’ll love:

  1. Enhanced Memory Retention: Thanks to lesSON’s inbuilt spaced repetition system, you can supercharge your memory and recall the important details needed. The app optimizes when you should review your flashcards, ensuring you remember and grasp complex concepts with ease.
  2. Intuitive Card Categorisation: lesSON helps you categorize your flashcards based on subject. This feature makes it a breeze to organize and access specific topics, keeping your study sessions focused and productive.

… and many more!

Prerequisites

Before you get started with lesSON, here’s what we recommend you need to make full use of the app:

Go to Table of Contents


How to use this guide?

Directory

If you are a first time user, do visit our seamless onboarding process explained in the quick start section.

For beginners, we recommend familiarising yourself with the basic commands shown in our tutorial for new users.

If you are already comfortable using lesSON, do try out all of our other features.


Legend

Throughout this user guide, you will encounter some of these colored blocks highlighting some important information.

💡 Green blocks contains examples that you can follow on lesSON yourself!
ℹ️ Blue blocks contain useful tips to enhance your experience while using lesSON.
⚠️ The red block contains crucial warnings for ensuring the proper functionality of lesSON.

Go to Table of Contents


Glossary

Definitions

Term Definition
Active recall A popular method to strengthen memory retention by actively testing the memory to retrieve a piece of information.
Command Line Interface (CLI) A text-based interface where you interact with the software by typing commands into a terminal or command prompt, providing more direct and precise control over the system.
Flashcard A card created by the user containing a question, answer (not shown) and due date.
Graphic User Interface (GUI) A user-friendly interface that allows you to interact with the software through visual elements like windows, icons, buttons, and menus, making it easy to navigate with a mouse and keyboard.
Keystrokes Act of pressing a key on a computer keyboard
Spaced repetition An evidence-based learning technique where newly created and more difficult flashcards are shown more frequently than older and less difficult flashcards


Parameter Information

The parameters used in lesSON have certain specifications. Here is an overview of how to use the parameters. Invalid inputs given as examples are non-exhaustive.

Parameter Prefix Accepted Format Valid Input Invalid Input
QUESTION q/ Alphanumerical values, whitespace and certain special characters How many types of instruction formats are there for MIPS? 什么
ANSWER a/ Alphanumerical values, whitespace and certain special characters The opcode for R-format instruction is 000000. こんにちは
TAG t/ Alphanumerical values. CS2100 !factorials
HINT h/ Alphanumerical values, whitespace and certain special characters 1 + 1 💡
DIFFICULTY d/ Only “easy”, “medium” or “hard” (case-insensitive). easy difficult
INDEX NA Positive integer less than size of deck or r for certain cases (see random). 1 0
NUMBER NA Positive integer not more than 2147483647 1000 2147483648
ℹ️ Special characters include the following: !@#$%^&*(),./?”;:{}[]-=_+<>

Command Format

Format Details Example
UPPER_CASE parameters Compulsory parameter to be filed in by users. Must not be empty or contain only whitespace (except in certain cases: see edit). add q/QUESTION a/ANSWER means users need to input a question after the q/ prefix and an answer after the a/ prefix.
Parameters with square brackets, i.e. [ ] Optional parameters that can be omitted when entering the command. add q/QUESTION a/ANSWER [h/HINT] means users can choose to omit hints when adding a card.
Parameters with ellipsis, i.e. ... Command can take in multiple of the same parameter. add q/QUESTION a/ANSWER [t/TAG...] means user can choose to add multiple tags while creating the card, each with a prefix t/.
Certain combinations of characters are not allowed, i.e characters that form a prefix. Inputs that contain prefixes are not valid inputs. Having q/, a/, t/, h/ or d/ in certain input fields.
Inputs are case-sensitive. Cards with question that differ only in case will be regarded as different cards. add q/QUESTION a/ANSWER and add q/question a/answer will generate 2 different cards.
The order of prefix does not matter. Prefix can be reordered without having any effect on the command. add q/QUESTION a/ANSWER and add a/ANSWER q/QUESTION are both valid inputs that generates the same card.
Commands that do not take in any parameters will disregard extraneous parameters. Certain commands such as help, clear, exit, random and list (in certain cases: see list) will disregard any inputs after the command. help 123 or clear a/abc will be regarded as help and clear respectively.
ℹ️ If you are using a PDF version of this document, do take note when copying and pasting commands that span multiple lines as whitespace characters before line-breaks may be omitted when copied.

Go to Table of Contents



Quick Start

Get ready to embark on your productive study session with lesSON!

Installation

  1. Make sure that you have Java 11 or above installed on your computer.
  2. Download the latest lesSON.jar file from here.
  3. Move the jar file to a working folder where you would store all of your flashcards.
  4. Launch lesSON.
    • For Windows users:
      • Open the folder where lesSON.jar was moved to.
      • Double-click lesSON.jar to start the application.
    • For macOS users,
      • Open a new Terminal window
        Press Command + Space and type Terminal, then press Enter.
      • Navigate to the folder where you have stored the jar file using the cd command.
      • Type java -jar lesSON.jar and press Enter.
  5. You should be able to see the GUI pop up on your screen.


lesSON uses a Graphical User Interface (GUI) to display the flashcards you have created to you. Here is a brief overview of the GUI to help you familiarise yourself with the key elements and their locations.

gui_overview

Here is a summary of what each component in the GUI displays.

Name of component Description
Menu button Lists the Help, Import, Export and Exit buttons when pressed.
Goal Displays the number of flashcards to practise for the session.
Command Line Box Interface for users to input commands.
Result Box Displays the results of inputted command back to the user. Error messages will be shown to guide the user to the correct input if the input was incorrect.
Deck Lists all the flashcards in a scrollable view. The deck can be filtered using commands.
Card Displays the key information of a flashcard such as its question, tags and index.
Footer Displays where the storage of flashcards is located at.

Tutorial

This is a tutorial for first-time and beginner lesSON users. For more advanced users, feel free to explore the other features in the command summary instead. In this tutorial, we will explain how to add, edit, tag, and practise your flashcards.

  1. Launch lesSON.
    • Refer to the instructions here if you are unsure how to launch lesSON.
    ℹ️ Note that users who are launching lesSON for the first time will have an empty deck.
  2. First, let’s try to add your very first flashcard. Type the following command and hit Enter:
    add q/what does + mean in boolean algebra? a/it means OR.

    adding a card


  3. Congratulations, you have created your first flashcard! Now, let’s try to edit the card created from the previous input by capitalising it! Note that the flashcard just created is at index 1. Type the following command and hit Enter:
    edit 1 q/What does + mean in boolean algebra? a/It means OR.

  4. Next, let’s tag it under the module CS1231S. Type the following command and hit Enter:
    edit 1 t/CS1231S

  5. Let’s add another flashcard. Type the following command and hit Enter:
    add q/What are the different hazards to consider when using pipelining? a/Structural, Data and Control t/CS2100

  6. Feel free to add a few more cards by following steps 1 to 4!

  7. Next, to practise the first card, do:
    practise

  8. Try to recall the answer, and when you are ready to reveal the answer, type the following command and hit Enter:
    solve

  9. How hard was the answer to recall? Set the difficulty of the flashcard by typing any of the following command and hit Enter:
    set d/easy
    set d/medium
    set d/hard

  10. The flashcard will automatically be reinserted into deck. This is based on how difficult you found the question to be. With our inbuilt spaced repetition system, as you practise, flashcards you find more difficult will surface more at the top.

  11. Note that the practise, solve, and set commands support indexes, but we recommended to use them without indexes as shown in this tutorial. This is to optimise the effectiveness of the spaced repetition by testing your memory with the most difficult flashcard.

  12. Get familiar with these commands and when you are ready, move on to the other commands listed here.

Go to Table of Contents



Feature list

Command Summary

Command Description
add Adds a Flashcard to the deck.
delete Removes a Flashcard from the deck.
list Displays a specified set of Flashcards.
edit Modifies an existing Flashcard.
practise Practises a Flashcard.
hint Shows the hint set for a Flashcard.
solve Solves a Flashcard.
set Sets the difficulty for a Flashcard.
random Practises a random Flashcard.
clear Removes all Flashcards from the deck.
goal Sets the goal for the session.
help Shows link to User Guide.
exit Exits and closes the application.

Commands

Adding a Flashcard : add

Adds a flashcard to the deck for the user.

Format:

add q/QUESTION a/ANSWER [t/TAG...] [h/HINT]


Examples:

A flashcard with only a question and answer field.

add q/What are the three ways to implement binary systems? a/1s Complement, 2s Complement, and Sign and Magnitude

A flashcard with a question, answer and tag field.

add q/How do you convert from binary to 1s Complement? a/By inverting all the bits, i.e. 0 to 1 and vice versa t/CS2100 t/Number Systems

A flashcard with a question, answer, tag and hint field.

add q/What are the 5 stages of MIPS? a/Fetch, Decode, Execute, Memory, Write Back t/CS2100 h/5 stages: IF, ID, EX, MEM, WB

💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS
2. Successful Output:
i. Result box displays:
New Card added: Question: opcode for R format instructions; Answer: 000000
ii. The corresponding card with the question, due date, solve count and tags is created and added to the deck.
result of add command

Go to Command Summary


Deleting a Flashcard : delete

Deletes a flashcard in the deck

Format:

delete INDEX

Examples:

Deleting the card in the deck with an index of 2.

delete 2

💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS
delete 1
2. Successful Output:
i. Result box displays:
Deleted Card: Question: opcode for R format instructions; Answer: 000000
ii. The corresponding card is deleted from the deck.
result of delete command

Go to Command Summary


View All Flashcards : list

Shows a list of all flashcards in the deck. A keyword may be specified to filter out the list.

Format:

list [q/QUESTION] [t/TAG...]

Examples:

List full deck of flashcards. list

List all flashcards with question starting with “What”.

list q/What

List all flashcards with the CS2100 Tag.

list t/CS2100

⚠️ Warning:
1. Any extraneous parameters not q/ and t/ will be ignored, i.e. list 12345 or list a/000000 will be regarded as list.
2. Listing questions with markdown syntax should include their relevant markdown notation, i.e. list q/**What** for questions starting with What.
3. Newly added cards may not appear if they do not match the current filter.


💡 Try It Yourself:
1. User Input:
add q/What are the three ways to implement binary systems? a/1s Complement, 2s Complement, and Sign and Magnitude
add q/What are the 5 stages of MIPS? a/Fetch, Decode, Execute, Memory, Write Back t/CS2100
list t/CS2100
2. Successful Output:
i. Result box displays:
All cards listed
ii.The corresponding cards matching the keyword and tags is displayed.
usage of list command

Go to Command Summary

Editing a Specific Flashcard : edit

Edits an existing Flashcard in the deck.

Format:

edit INDEX [q/QUESTION] [a/ANSWER] [t/TAG...] [h/HINT]

Examples:

Change the question at index 1 to “What is the colour of the sun?”.

edit 1 q/What is the colour of the sun?

Change the answer at index 1 to “Red”.

edit 1 a/Red

Change the tag at index 1 to “Weather” and “Geography”.

edit 1 t/Weather t/Geogaphy

Change the hint at index 1 to “Apple”.

edit 1 h/Apple

⚠️ Warning:
1. There must be at least one optional parameter included for the command input.
2. Empty input after t/ and h/ will remove existing tags or hint respectively.
💡 Try It Yourself:
1. User Input:
add q/How do you convert from binary to 1s Complement? a/By inverting all the bits, i.e. 0 to 1 and vice versa
edit 1 a/If is a negative number, invert all the bits, i.e. 0 to 1 and vice versa t/CS2100 t/Number Systems
2. Successful Output:
i. Result box displays:
Edited Card: Question: How do you you convert from binary to 1s Complement?; Answer: If is a negative number, invert all the bits, i.e. 0 to 1 and vice versa
ii. The corresponding card in the deck will be updated.
result of edit command

Go to Command Summary


Practise Flashcards : practise

Practise a single Flashcard in the deck

Format:

practise [INDEX]

Examples:

Practising the card in the deck with an index of 2.

practise 2

ℹ️ To Note:
1. If user omits INDEX in the command input, the first card in the deck will be practised.
💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS
practise
2. Successful Output:
i. Result box displays:
Practising Question 1 : opcode for R format instructions
result of practise command

Go to Command Summary


Hints for Flashcards : hint

See the hint for a question at the given index

Format:

hint INDEX

Examples:

Hint the card in the deck with an index of 3.

hint 3

ℹ️ To Note:
1. If no hints are set for card at INDEX, No Hint has been provided will be displayed in the result box.
💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS h/Zeros
hint 1
2. Successful Output:
i. Result box displays:
Hint for Question 1: Zeros
result of hint command

Go to Command Summary


Solving Flashcards : solve

Solves the question at the given index

Format:

solve [INDEX]

Examples:

Solve the card in the deck with an index of 2.

solve 2

ℹ️ To Note:
1. If user omits INDEX in the command input, the first card in the deck will be solved.
💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS h/Zeros
solve
2. Successful Output:
i. Result box displays:
Solved Question 1: opcode for R format instructions Answer: 000000
ii. Solve count of the card gets updated.
result of solve command

Go to Command Summary


Setting Difficulty of Flashcards : set

Setting the difficulty of a flashcard, based on the user.

Format:

set [INDEX] d/DIFFICULTY

Example:

Set the first card as easy

set 1 d/easy

ℹ️ To Note:
1. If user omits INDEX in the command input, the first card in the deck will be set.
💡 Try It Yourself:
1. User Input:
add q/opcode for R format instructions a/000000 t/CS2100 t/MIPS h/Zeros
set d/easy
2. Successful Output:
i. Result box displays:
Set Difficulty for Question 1 (Difficulty level: EASY)
ii. Due date of the card updated.
result of set command

Go to Command Summary

Randomly Practise Flashcards : random

Practise a single random Flashcard in the deck.

Format:

random

Examples:

Practise a random card.

random

ℹ️ To Note:
1. Users can use r as the index with commands solve and set for the randomly selected question.
2. As of v1.4 Hint does not support random and r.
💡 Try It Yourself:
1. User Input:
add q/How do you convert from binary to 1s Complement? a/By inverting all the bits, i.e. 0 to 1 and vice versa t/CS2100 t/Number Systems
add q/What are the 5 stages of MIPS? a/Fetch, Decode, Execute, Memory, Write Back t/CS2100 h/5 stages: IF, ID, EX, MEM, WB
random
2. Successful Output (assuming random chooses the card at index 2):
i. Result box displays:
Practising Question 2 : What are the 5 stages of MIPS?
result of random command

Go to Command Summary


Clear All Flashcards : clear

Clears all flashcards found in the Deck. Deck is reset back to empty.

Format:

clear

Example:

Delete all flashcards from the deck.

clear

⚠️ Warning:
1. This action removes all cards and is irreversible!
💡 Try It Yourself:
1. User Input
add q/How do you convert from binary to 1s Complement? a/By inverting all the bits, i.e. 0 to 1 and vice versa t/CS2100 t/Number Systems
clear
2. Successful Output
i. Result box displays:
Deck has been cleared!
result of clear command

Go to Command Summary


Setting Goals : goal

Set a goal for the current studying session.

Format:

goal NUMBER

Example:

Set a goal of 5 for this session.

goal 5

ℹ️ To Note:
1. On initialisation of lesSON, the target of the goal will be the size of the deck and the number of cards solved will be 0.
💡 Try It Yourself:
1. User Input:
goal 10
2. Successful Output:
i. Result box displays:
New goal set.
ii. Goal box updated with new target and goal completion status.
result of goal command

Go to Command Summary


Getting Help : help

Seek more details from a link provided leading to the User Guide. Users can also access this function by clicking on the File button located at the top left of the application, and then navigating to the Help tab.

Format:

help

Example:

Open help window.

help

💡 Try It Yourself:
1. User Input:
help
2. Successful Output:
i. Result box displays:
Opened help window.
ii. Popup window with link to User Guide is generated.
result of help command

Go to Command Summary


Exiting lesSON : exit

Exits and closes the lesSON application.

Format:

exit

Example:

Closes lesSON.

exit

💡 Try It Yourself:
1. User Input:
exit
2. Successful Output:
i. lesSON closes.

Go to Command Summary
Go to Table of Contents


Additional Features

Markdown Syntax

For user who wish to incorporate styling in lesSON, there are 3 font styles currently supported:

  1. Bold
  2. Italic
  3. Underline


Bold

To bold a line of text, wrap text as follows **text**

Example:

Bolding a phrase in the question

edit 1 q/How many bits can a **Half Adder** add up

💡 Try It Yourself:
1. User Input:
add q/What is the **Stage** where calculations are operated? a/ALU
2. Successful Output:
i. Result box displays:
New Card added: Question: What is the Stage where calculations are operated?; Answer: ALU
ii. The corresponding card with the question, due date, solve count and tags is created and added to the deck.
iii. Stage will appear bolded in both instances.
usage of bold syntax


Italic

To italicise a line of text, wrap text as follows *text*

Example:

Italicising a phrase in the question

edit 1 q/How many bits can a *Half Adder* add up

💡 Try It Yourself:
1. User Input:
add q/What is the *Stage* where calculations are operated? a/ALU
2. Successful Output:
i. Result box displays: New Card added: Question: What is the Stage where calculations are operated?; Answer: ALU
ii. The corresponding card with the question, due date, solve count and tags is created and added to the deck.
iii. Stage will appear italicised in both instances.
usage of italics syntax


Underline

To underline a line of text, insert <u> at the beginning of the text, and end with </u> at the end of the underlined text.

Example:

Underlining a phrase in the question

edit 1 q/How many bits can a <u>Half Adder</u> add up

💡 Try It Yourself:
1. User Input:
add q/What is the <u>Stage</u> where calculations are operated? a/ALU
2. Successful Output:
i. Result box displays: New Card added: Question: What is the Stage where calculations are operated?; Answer: ALU
ii. The corresponding card with the question, due date, solve count and tags is created and added to the deck.
iii. Stage will appear underlined in both instances.
usage of underline syntax
⚠️ Warning:
1. Do not stack Markdown Syntax, e.g. edit 1 q/<u>**Example Question**</u>. This may lead to unexpected behavior of text in the display view.
2. Do ensure that the phrase intended for styling is wrapped within an open and close syntax of the same type, i.e. **text** for bold *text* for italics and <u>text</u> for underline.
3. Do ensure that there is no empty input between an open and close syntax.
4. In the case when unexpected Markdown format is observed, edit the flashcard again with the without the Markdown syntax/with appropriate syntax.


Importing and Exporting Decks

ℹ️ To Note:
The import and export functions are meant to be used before and after revision respectively
They are not to be confused as commands input by user, but rather as a method to transfer and import data easily

Users can share their own Decks with others or download their Decks to their own. Both import and export features reside in the File menu.

Export

Users can share their own Deck by clicking on the Export button. Their own Deck will be displayed as a JSON file which can be easily copied either through the Copy Data button provided or other means.

Import

Users can enjoy the Decks of others by clicking on the Import button. A text field is displayed for users to paste in the JSON file containing the decks of others. The app will close upon clicking the Import Data button. Users will have to rerun the app to see their new decks.

⚠️ Caution All data is saved as a JSON file at this specified path: [JAR file location]/data/deck.json.
It is NOT recommended for users to modify data directly as it can cause the app to malfunction.
If you still wish to proceed with modifying the data directly, lesSON would not be held accountable of the risks of such actions.

Go to Table of Contents


Frequently Asked Questions (FAQ)

Check version of Java installed

Q: How do I check my version of Java I have installed on my computer?
A: Open up a command prompt and type java -version and hit Enter.

Shortcut to open the command prompt:

App not showing

Q: The application is running fine, but I am unable to see the GUI. What should I do?
A: This is a currently known issue with a temporary hotfix. We are working on a solution.

Go to Table of Contents


Known Issues

  1. Users can create duplicate tags for the same flashcard. We plan to enforce uniqueness of tags for a flashcard in future enhancements. Until then, please do take caution to avoid adding duplicate tags for the same flashcard.

  2. The app may not show for users with multiple displays. If you relocate the app to a secondary display and subsequently cease using the secondary display, the app will continue to run but will no longer be visible on your primary display. Closing the app and re-running it will not solve the issue. We are working on a solution but until then, we recommend relocating the app back to your main display before disconnecting your secondary display.

If you encountered any other bugs or errors, do let us know with the relevant details (e.g. screenshots) via our official channels found here.

Go to Table of Contents


Contact Us

For any feedback or relevant queries, do contact us via our official channels.

Go to Table of Contents


— End of User Guide —