-
Notifications
You must be signed in to change notification settings - Fork 0
StudentGuide
This is an explanation of the student's view of TA-Bot.
Once a student selects a particular class, they are immediately prompted to upload their submission.
TA-Bot accepts the following file types:
- .Zip
- Single file extensions(.py, .java, .c, etc)
- The full list of supported languages, can be found here: #TODO
The Upload Page has three main components:
- Reduced TBS timer
- Time until next visible submission
- A visualization of the normal
TBSbetween submissions, and the days correspondingTBSshould they attend the help desk or office hours.
Time Between Submissions(TBS) is described in detail here: #TODO
A student has the ability to reduce their TBS via attending the help desk, or office hours. This process is described in detail here: #TODO
This three hour reduction starts the moment an instructor clicks "completed" on a students question.
In the example image above, it is day 6+, which has a normal TBS of 120 minutes between submissions. However, the student has attended the help desk, and office hours, which has reduced their TBS to 40 minutes.
A student can upload their work to TA-Bot at any time. However, the visibility of the test-case results depends on two factors:
- The student's
TBS(Time Between Submissions) rate limit. - The specific day of an assignment.
Let's illustrate this with an example:
| Time | Event | Visible Results |
|-------|---------------------------------------------------|-----------------|
| 3:00 | Student submits work on assignment day | Test-case |
| 3:01 | Student re-submits work | Linting only |
| 3:02 | Student re-submits work | Linting only |
| 3:03 | Student re-submits work | Linting only |
| 3:04 | Student re-submits work | Linting only |
| 3:05 | Student re-submits work (TBS rate limit reached) | Test-case |
In this example, a student submits their work at 3:00pm on the day an assignment is assigned. They can immediately see their test-case results.
However, if the student re-submits their work before the TBS rate limit has passed (i.e., before 3:05pm), they will only see Linting results. The test-case results will be hidden.
Once the TBS rate limit has passed (i.e., at 3:05pm), the student can re-submit their work and see the test-case results again.
The code page can be considered the "heart" of TA-Bot an example is shown below:
The code page has Four Main Components, each in it's own pane and resizable by the user:
In this photo, the Lint results have been significantly resized to show an example.
- Student's Submission ~ Top Left
- The student's submission is displayed in the top left of the code page. The submission is in a
read-onlyformat. TA-Bot is designed to act as a submission checker, not as a pseudo IDE. The current design encourages students to use their own IDEs and discourages the use of TA-Bot as a substitute for local testing. - The highlighted lines correspond to the Lint results, as shown in the Lint results section.
- The student's submission is displayed in the top left of the code page. The submission is in a
- Lint Results ~ Top Right
- Each student's submission is run against a linter to encourage adherence to coding styles.
- Test-Case Results ~ Bottom Left
- A student is shown multiple icons: a "green check" denoting a passed test case, a "red X" denoting a failed test case, and a "lock icon" denoting a test case that is locked due to a
TBStimeout. - The student can click on any of these icons to see the results of a particular test case.
- A student is shown multiple icons: a "green check" denoting a passed test case, a "red X" denoting a failed test case, and a "lock icon" denoting a test case that is locked due to a
- Test-Case Details ~ Bottom Right
- Once a student clicks an icon as described above, they can see more detailed information about their submission.
- TA-Bot supports numerous languages. However, the linting feature is currently available for the following languages:
-
Python- A complete library of
Pylinterrors, with novice-friendly feedback. - These GitHub pages are open source and can be found here.
- A complete library of
-
Java- CheckStyle errors. The work to make this novice-friendly is still in progress.
-
C- EastwoodTidy, a subset of possible linting errors made to be more novice-friendly.
- Adding a language to TA-Bot's linting is a relatively easy process.
- The steps to do so are outlined here: #TODO
- While it is easy to add an industry linter, doing so without creating novice-friendly suggestions has proven less helpful.
-
A student is able to "dismiss" a linting error via a button, this removes the highlighted line from the students submission in the top left pane.
For a particular test-case a student is able to see the following information:
- Test-case name
- Test-case description
- Result(passed/failed)
In the result of a failed test-case, a student receives feedback via a GitHub Diff. Their program's output is compared to the solution's output for a given test-case. Understanding Diff, and in this case the GitHub flavor of Diff, can often prove to be a sticking point for students. There are numerous resources available to offset this learning curve:
Even with these resources, students continue to struggle understanding Diff output. To help with this, TA-Bot provides an Output Explanation button.
Once clicked, TA-Bot submits an API request to GPT Turbo, which returns a human-readable explanation of the Diff output. This process is described in detail here: #TODO
A student can click on "Test Case Help". This submits a query to GPT-3 Turbo and returns a response that is pre-formatted to ensure no solution code is sent, while still providing a student with a helpful hint. The process of how this is done is described in detail here: #TODO