Artemis icon indicating copy to clipboard operation
Artemis copied to clipboard

`Lectures`: Allow instructors to define relations between learning goals

Open ge65cer opened this issue 2 years ago • 2 comments

Checklist

General

Server

  • [x] I followed the coding and design guidelines.
  • [x] I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • [x] I added @PreAuthorize and checked the course groups for all new REST Calls (security).
  • [x] I implemented the changes with a good performance and prevented too many database calls.
  • [x] I documented the Java code using JavaDoc style.

Client

  • [x] I followed the coding and design guidelines and ensured that the layout is responsive.
  • [x] Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
  • [x] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • [x] I added authorities to all new routes and checked the course groups for displaying navigation elements (links, buttons).
  • [x] I documented the TypeScript code using JSDoc style.
  • [x] I added multiple screenshots/screencasts of my UI changes.
  • [ ] I translated all newly inserted strings into English and German. (Did not translate admin-only interface.)

Motivation and Context

Working towards integrating Adaptive Learning in Artemis, instructors need to be able to define relations between learning goals. This will later allow Artemis to generate Learning Paths between the individual learning goals.

Description

We model a new relation between two learning goals that describes their relation on a graph-like structure (you can imagine directed edges in a graph.). Additionally, a new attribute is added to learning goals to persist their taxonomy. To make this as versatile as possible, the relation is defined through a new class called LearningGoalRelation that holds the tail learning goal, head learning goal and the relation type:

  • RELATES: A generic relation between two learning goals.
  • ASSUMES: The tail learning goal assumes that the student already achieved the head learning goal.
  • EXTENDS: The tail learning goal extends the head learning goal on the same topic in more detail.
  • MATCHES: The tail learning goal matches the head learning goal (e.g., a duplicate).

To allow you to test this feature, we implemented an admin-only interface with which you to create relations, display them in a graph and remove them again (by clicking on them in the graph).

Steps for Testing

Prerequisites:

  • 1 Admin
  1. Log in to Artemis as admin
  2. Navigate to Course Administration
  3. Go to the Learning Goal Management page
  4. Create some learning goals
  5. Add some relations between the learning goals and make sure they are persisted
  6. Remove a relation by clicking on it in the graph

Review Progress

Code Review

  • [x] Review 1
  • [x] Review 2

Manual Tests

  • [x] Test 1
  • [x] Test 2

Test Coverage

Class/File Method Line
LearningGoalService.java 100% 96%
LearningGoalResource.java 100% 91%

Screenshots

Screenshot 2022-08-30 at 17 21 25

ge65cer avatar Jun 30 '22 06:06 ge65cer

there is no feature for Learning goals (yet), so I renamed it to lectures as it currently is mostly related to lecture units. I know we change this in the future, but let's stick (for now) to the features defined in the README on Github and about page on Artemis.

I am happy to add a new feature such as "Competency-based learning" in the future, but we should first add it to the README on Github and the about page (with a minimal documentation) before using it.

krusche avatar Aug 01 '22 07:08 krusche

@akesfeden Yes, I've noted it down. 🙂

ge65cer avatar Sep 21 '22 07:09 ge65cer