-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Programming exercises
: Add Athena Feedback Suggestions
#7094
Labels
Comments
16 tasks
21 tasks
pal03377
changed the title
Sep 3, 2023
Programming Exercises
: Add Athena Feedback SuggestionsProgramming exercises
: Add Athena Feedback Suggestions
20 tasks
This was referenced Feb 10, 2024
This was referenced Mar 18, 2024
This was referenced Apr 3, 2024
This was referenced Apr 11, 2024
Merged
This was referenced Apr 14, 2024
This was referenced Apr 22, 2024
This was referenced Apr 29, 2024
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Quick links:
Programming exercises
: Add Athena Feedback Suggestions #7094Development
: Add client support for programming exercise feedback suggestions #7099Programming exercises
: Add server support for feedback suggestions #7136Programming exercises
: Add support for feedback suggestions (both other PRs combined) #7138Context
We have revived feedback suggestions by Athena to text exercises (#6861). We want to extend this to programming exercises as well.
Problem
Athena can generate feedback suggestions for programming exercises, but Artemis cannot interact with Athena and show them.
Motivation
Athena could already help a lot of tutors save time by intelligently suggesting feedback for text exercises with the Athena-CoFee system. We want to explore new ways to achieve the same for programming exercises. We will attempt this with the ThemisML system and a module connected to the APIs for GPT3.5 and GPT4.
Requirements Engineering
Existing (Problematic) Solution / System
There are no feedback suggestions available for programming exercises.
Proposed System
We show feedback suggestions for programming exercises and offer to accept or reject them. Because it would be annoying to click around in files to find all suggestions, the default will be to NOT accept a feedback suggestion. Still, you will receive a warning if you missed a suggestion and neither accepted nor rejected it.
Requirements
FR: Provide Feedback Suggestions Athena can deliver feedback suggestions to the LMS when a tutor starts grading a submission. Feedback suggestions are generated based on the capabilities of the selected assessment module and analysis parameters.
FR: Review Suggestions Once Athena has finished processing all incoming data and can provide feedback suggestions, Artemis can display a UI for tutors to view these feedback suggestions for programming exercises. The UI should be accessible only to authorized tutors who are grading the exercise.
FR: Accept Feedback Suggestions When a tutor is content with a given feedback suggestion, they can accept it from within the LMS.
FR: Reject Feedback Suggestions When a tutor does not want to apply a feedback suggestion, they can reject it from within the LMS.
NFR: Usability: Feedback Accessibility Tutors should be able to effortlessly view and interpret the feedback suggestions provided by Athena.
NFR: Performance: Immediate Grading Tutors should be able to start grading a submission immediately, even if Athena has not yet provided feedback suggestions. In this case, suggestions from Athena should load asynchronously, allowing grading to proceed without delay.
NFR: Security: Data Leakage Prevention Confidential data, such as student submissions or feedback, should not be leaked outside Artemis and Athena. Appropriate data protection measures must be in place.
Analysis
Analysis Object Model
Tutors will be able to get Feedback Suggestions for Assessments on Submissions in Programming Exercises:
Dynamic Behavior
System Design
Subsystem Decomposition
Here are the full changes made from the text + programming suggestions integration with Athena:
Server:
Client:
New endpoints:
api/athena/exercises/{exerciseId}/solution-repository
: Returns the solution repository of the exercise as a ZIP file for Athena to download and process for suggestionsapi/athena/exercises/{exerciseId}/template-repository
: Returns the template repository of the exercise as a ZIP file for Athena to download and process for suggestionsapi/athena/exercises/{exerciseId}/tests-repository
: Returns the tests repository of the exercise as a ZIP file for Athena to download and process for suggestionsapi/athena/exercises/{exerciseId}/submissions/{submissionId}/repository
: Returns the submission repository as a ZIP file for Athena to download and process for suggestionsPersistent Data Management
text
withFeedbackSuggestion:
FeedbackSuggestion:accepted:
orFeedbackSuggestion:adapted:
feedback_suggestions_enabled
to theexercises
table to mark exercises where automatic feedback suggestions from Athena are enabled. When the migration happens, this istrue
for all text exercises withassessment_type = SEMI_AUTOMATIC
.Access Control / Security Aspects
Only tutors will be able to view feedback suggestions. The
feedback-suggestions
endpoint will be only available to users with the role TA or higher.All new endpoints returning repositories have to be authenticated using the shared Athena secret. They should only work for exercises where feedback suggestions are enabled.
All access control systems set in #6861 stay as they are.
Change Checklist
Athena<*>Service
-s fromDevelopment
: Re-implement integration of feedback suggestion service Athena #6861 to accept general exercises, submissions, and feedback instead of "only" text exercise content (e.g.,TextSubmission
objects)/feedback-suggestions
endpoint fromDevelopment
: Re-implement integration of feedback suggestion service Athena #6861 return instances of thede.tum.in.www1.artemis.service.dto.athena.TextFeedbackDTO
(renamed toFeedbackDTO
to be more general). The client will interpret the indices from the feedback reference instead of the server converting it toTextBlockRefs
.AthenaService
to allow programming exercises by changing the return type ofgetFeedbackSuggestions
.Feedback
model with aFeedback.isFeedbackSuggestion
helper method to show them inline.CodeEditorTutorAssessmentContainerComponent
to load and show feedback suggestions.feedbackSuggestions
for exercises to determine whether feedback suggestions are enabled for themUI / UX
Feedback suggestions are only loaded for submissions without an existing assessment, i.e., the "Save" button was never pressed. The accept/reject state for the feedback suggestions is temporary initially: If a TA reloads or cancels the assessment, they get the feedback suggestions again. This has two advantages:
The downsides of this behavior are negligible because usually, a TA will assess a whole submission in a single go and not go back anyway.
Feedback Suggestions in the programming assessment editor
Suggestions are clearly marked as such; it is also clear that the feedback is not automatically given without the TA's consent.
Feedback Suggestion on hover
The slight text transparency goes away.
Unreferenced feedback suggestion
They follow a similar visual style.
Unreferenced feedback suggestion on hover
Accepted feedback suggestion
Accepted feedback suggestions look like normal feedback, with an additional "Accepted Suggestion" badge only visible to tutors.
Accepted unreferenced feedback suggestion
Tooltips
The text was updated successfully, but these errors were encountered: