Coursemology
We will be using Coursemology for our exercises. The address is given below.
You can watch the quick guide here.
Registering
Before you can login, if you do not have an account, you will need to create an account first. You should have received an invitation sent to your NUS email. This is the email that starts with e.
Important
If you did not receive an email, please check your spam/junk folder on your NUS email.
Once you have created an account, please remember your username and password. Your username should be the NUS email that starts with e.
Login
Now we can go to Coursemology website. Enter the address in the address bar of your favorite web browser. You should see the following homepage shown on the left. Click on the button "Sign in to Coursemology". You should then see the login page on the right.
Enter your username and password. Then click "Sign In". If the username and password are correct, you should arrive at the landing page that list all courses you are enrolled in. One of them should be "CS1010S - Programming Methodology (AY20 XX/20 XX) Sem X". If you do not see CS1010S, please contact the teaching team.
Exercises
Click on the course you are enrolled in. You should arrive at your course page that looks like the following. You may see announcements, deadlines, or activities. Usually, at the beginning of the semester, it will be blank. Click on the menu button at the top right corner (highlighted by the red box). This should open up the sidebar as you can see from the image on the right below.
We have a number of things on the sidebar. You may need to scroll down to see more.
- Announcements: This is where you can see the announcements made. Please check this frequently.
- Videos: This is where we post the lecture videos. Please watch before coming to class.
- Trainings: This is where the training exercises are. Most of these should be optional but they may give bonus marks.
- Missions: This is where the assignments (i.e., missions) are. Do not forget to submit on time.
- Workbin: This is where the relevant files are. This includes lecture notes, tutorial files, etc.
- Forums: This is where you can ask questions.
Do NOT Write Code
Do not write code in forums, especially working code. This includes explanation that are not code but can be mapped to a code. Describe only in high-level concepts.
This is to avoid your code being flagged as plagiarism when checked. NUS has a very strict policy regarding plagiarism.
Now we can look at the kinds of questions you will see in Coursemology.
MCQ
MCQ is a multiple choice question. There will only be exactly ONE correct answer in an MCQ question. An example is shown below before you select a choice (left) and after you select a choice (right). Notice how there is a "Saved" comment after you select an answer.
After you click "Submit", you may get an immediate response whether the answer is correct or not. The left image shows incorrect answer and the right image shows the correct answer. Note that you in some cases, you can only "Continue" once you get the correct answer.
MRQ
MRQ is a multiple response question. There may be MORE THAN ONE correct answers in an MRQ question. Typically, there will be at least one correct answer. Notice the shape of the checkbox. In MRQ, it is square while in MCQ it is circle (a.k.a. a radio button). In some cases, you may see hint/explanation on the answer.
Text
In a text question, you are supposed to write the answer within the provided box. This is intended for explanation question. Unfortunately, this kind of question cannot be auto-graded so it is unlikely you will encounter this kind of question. We will only see that the answer has been submitted on you can see on the right.
Programming
Most of the questions --especially for missions-- will be a programming question. After all, this is a programming course.
There are several components to the programming question. The first is the question as seen on the left. There may or may not be written question as often we will use pdf to disseminate the question. There is also the "Answer Box" where you should write1 your answer. You can also download the template file so that you can work on it locally. In fact, this is what you should do.
If you scroll down, you can see the "Public Test Cases" (if any) as in the image on the right. You can see the expression used to test (leftmost column), the expected value produced (middle column), and the actual output from your code (rightmost column). The actual output will only be shown when you click on "Submit".
Important
Most of the time, the actual template file is now from this "Download file" but will be given on top in the exercise description. Below is an example from "Mission 0". The template file is shown inside the red box.
There are actually 3 kinds of test cases.
- Public Test Cases
- Expressions as well as expected and actual outputs are known.
- You know explicitly which test failed.
- This is used for students to check their solution.
- Private Test Cases
- Expressions as well as expected and actual outputs are unknown.
- You will get a message when you failed one of the private test cases.
- This is used to penalize students who are hardcoding the answer.
- Evaluation Test Cases
- Expressions as well as expected and actual outputs are unknown.
- You will NOT get a message when you failed one of the private test cases.
- This is a completely hidden test which may be used to check some form of plagiarism.
In short, we can classify them as follows.
Test Cases | Tests Known | Failure Known |
---|---|---|
Public | ||
Private | ||
Evaluation |
The image on the left shows our solution failing public test cases.
We can see which test failed.
For instance, the first expression substring("CS1234", 1, 10, 2)
is supposed to return "S24"
but our code return "CS1234"
.
On the right we see that we have passed all public test cases but failed some private test cases.
If you passed all public and private test cases, you will see the following.
We aim to have the public test cases to cover all categories of cases. The private test cases ideally should not test new categories of cases such that --in principle-- if you pass all public test cases you should pass all private test cases.
However, this depends on how students' codes are written. We may add new private test cases to cover codes that accidentally give correct answers because the test case is not extensive enough.
Workflow
The workflow to answer programming questions should be as follows.
- Download the template file.
- Work locally on template file.
- Select ALL code on template file (e.g., Ctrl+A on Windows or Cmd+A on Mac).
- Copy ALL code on template file (e.g., Ctrl+C on Windows or Cmd+C on Mac after selecting all).
- Select ALL code on Coursemology "Answer Box" (e.g., Ctrl+A on Windows or Cmd+A on Mac).
- Paste code from template file to Coursemology "Answer Box" (e.g., Ctrl+V on Windows or Cmd+V on Mac).
- Run the code to check.
- Repeat until you get all correct (public and private).
- Click on "Finalise Submission" to complete.
- Click on "Continue" to submit.
- Note that THIS ACTION IS IRREVERSIBLE.
- Do this before the deadline.
-
You should actually copy-paste your answer instead of typing here. ↩