Skip to content
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

Adaptive learning: Add weight to links between competencies and learning objects #9517

Merged
merged 35 commits into from
Oct 30, 2024

Conversation

JohannesStoehr
Copy link
Contributor

@JohannesStoehr JohannesStoehr commented Oct 18, 2024

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) and too complex database calls.
  • I strictly followed the principle of data economy for all database calls.
  • I strictly followed the server coding and design guidelines.
  • I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • I documented the Java code using JavaDoc style.

Client

  • Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data (e.g. using paging).
  • I strictly followed the principle of data economy for all client-server REST calls.
  • I strictly followed the client coding and design guidelines.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I documented the TypeScript code using JSDoc style.

Motivation and Context

#9446

Description

Add a column to the connection between exercises/lecture units (learning objects) and competencies that represents a weight or importance of this learning object for the content of the competency. To reflect this in Java the many-to-many relation is now two many to one relations with a new CompetencyExercise/LectureUnitLink between the learning object and the competency.
The weight is currently always set to 1, it will be adjustable in a follow up.

The table in the competency form is removed for now and will be redone by @ardakaraman0

Steps for Testing

Prerequisites:

  • 1 Instructor
  • 2 competencies/prerequisites
  1. Log in to Artemis
  2. Check that creating/editing/importing an exercise/lecture unit still works in the following situations:
    • Linking a competency
    • Unlinking a competency
    • Changing the linked competencies

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.







Review Progress

Performance Review

  • I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance even for very large courses with more than 2000 students.
  • I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance even for very large courses with more than 2000 students.

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Performance Tests

  • Test 1
  • Test 2

Test Coverage

Server

Class/File Line Coverage Confirmation (assert/expect)
CompetencyExerciseLink.java 93%
CompetencyLearningObjectLink.java 100%
CompetencyLectureUnitLink.java 93%

@JohannesStoehr JohannesStoehr self-assigned this Oct 18, 2024
@github-actions github-actions bot added tests server Pull requests that update Java code. (Added Automatically!) client Pull requests that update TypeScript code. (Added Automatically!) database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. atlas Pull requests that affect the corresponding module core Pull requests that affect the corresponding module exercise Pull requests that affect the corresponding module fileupload Pull requests that affect the corresponding module lecture Pull requests that affect the corresponding module modeling Pull requests that affect the corresponding module programming Pull requests that affect the corresponding module quiz Pull requests that affect the corresponding module text Pull requests that affect the corresponding module labels Oct 18, 2024
@JohannesStoehr JohannesStoehr marked this pull request as ready for review October 22, 2024 13:25
sachmii
sachmii previously approved these changes Oct 28, 2024
Malekos74
Malekos74 previously approved these changes Oct 29, 2024
Copy link

@Malekos74 Malekos74 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge Conflict reapprove

Copy link
Collaborator

@MaximilianAnzinger MaximilianAnzinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maintainer approved

@MaximilianAnzinger MaximilianAnzinger added the maintainer-approved The feature maintainer has approved the PR label Oct 29, 2024
…-weight

# Conflicts:
#	src/main/webapp/app/exercises/programming/manage/update/update-components/programming-exercise-problem.component.html
Copy link
Contributor

@JohannesWt JohannesWt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reapprove after merge conflict

@bassner bassner merged commit d2fa064 into develop Oct 30, 2024
23 of 29 checks passed
@bassner bassner deleted the feature/adaptive-learning/competency-link-weight branch October 30, 2024 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
atlas Pull requests that affect the corresponding module client Pull requests that update TypeScript code. (Added Automatically!) core Pull requests that affect the corresponding module database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. exercise Pull requests that affect the corresponding module fileupload Pull requests that affect the corresponding module lecture Pull requests that affect the corresponding module maintainer-approved The feature maintainer has approved the PR modeling Pull requests that affect the corresponding module programming Pull requests that affect the corresponding module quiz Pull requests that affect the corresponding module ready to merge server Pull requests that update Java code. (Added Automatically!) tests text Pull requests that affect the corresponding module
Projects
Archived in project
Status: Done
Development

Successfully merging this pull request may close these issues.