Skip to main content

Course Management

This guide covers administrative operations for course management, including course reset and course archiving functionality. These operations are only available to system administrators.

Course Reset​

The Course Reset operation allows administrators to clear all student data from a course while preserving the course structure. This is useful for:

  • Data privacy compliance (e.g., GDPR) - removing student data after a semester ends
  • Reusing course templates - preparing a course for a new cohort of students
  • Testing purposes - resetting a test course to its initial state
warning

The course reset operation cannot be undone. Before performing a reset, consider archiving the course to preserve student data for future reference.

What is Preserved vs Deleted​

The following tables show exactly what data is affected by a course reset:

Data that is PRESERVED (kept after reset)​

CategoryData TypeDescription
Course StructureCourse settingsTitle, description, dates, groups, all configuration
ExercisesAll exercise definitions (programming, text, modeling, quiz, file upload)
Exercise materialsProblem statements, grading criteria, example solutions
Programming exercise reposTemplate, solution, and test repositories
ExamsExam definitions, exercise groups, registered students list structure
LecturesLecture content, attachments, units
CompetenciesCompetency definitions and relations
Tutorial groupsTutorial group definitions and schedules (but not student registrations)
CommunicationChannels/ConversationsChannel and conversation structure (but not messages)
StaffInstructorsAll instructor assignments

Data that is DELETED (removed during reset)​

CategoryData TypeDescription
Exercise DataParticipationsAll student exercise participations
SubmissionsAll student submissions (code, text, models, files)
ResultsAll assessment results and scores
FeedbacksAll manual and automatic feedback
Build resultsProgramming exercise build logs and results
Plagiarism casesAll plagiarism detection results
Exam DataStudent examsAll student exam instances
Exam participationsAll exam exercise participations
Exam submissionsAll exam submissions and results
Exam gradesAll exam grading data
Learning AnalyticsCompetency progressStudent progress on competencies
Learner profilesCourse-specific learner profile data
Participant scoresCached scores for exercises
CommunicationPostsAll posts in channels and conversations
Answer postsAll replies to posts
ReactionsAll reactions to posts and answers
NotificationsAll course notifications
Notification settingsUser notification preferences for the course
AI FeaturesIris chat sessionsAll AI tutor conversation history
LLM token usageRecords of AI model usage and costs
Tutorial GroupsRegistrationsAll student registrations to tutorial groups
EnrollmentStudentsRemoved from student group
TutorsRemoved from tutor group
EditorsRemoved from editor group

Course Archive​

The Course Archive operation creates a ZIP file containing course data for long-term storage. The archive is useful for:

  • Record keeping - Maintaining evidence of student work and assessments
  • Compliance - Meeting data retention requirements
  • Backup - Preserving course data before deletion or reset

Archive Contents​

The course archive is structured as follows:

course-archive.zip
├── course-exercises/
│ └── [exercise exports with submissions...]
├── exams/
│ └── [exam exports with student exams...]
├── student-data/
│ ├── course-scores.csv
│ ├── course-grade-distribution.csv
│ ├── exam-scores-{examId}-{examTitle}.csv
│ ├── exam-{examId}-{examTitle}-grade-distribution.csv
│ ├── participation-results.csv
│ ├── posts.csv
│ ├── competency-progress.csv
│ ├── learner-profiles.csv
│ ├── tutorial-group-registrations.csv
│ ├── iris-sessions.json
│ └── llm-token-usage.csv
├── report.csv
└── exportErrors.txt

Every repository of a programming exercise is stored as its own ZIP inside the exercise export. The template, solution, test and auxiliary repositories keep their full Git history, including every branch and tag, so extracting one of them yields a usable repository. Student repositories are archived as a snapshot of the submitted working tree without a .git directory, matching what students and tutors get when they download a single repository from Artemis.

What is Included vs Not Included​

Data that is INCLUDED in the archive​

CategoryFile/FolderContents
Exercisescourse-exercises/All course exercises with student submissions
Programming exercisesOne ZIP per repository (template, solution, test, auxiliary and student repos)
Text exercisesSubmissions with assessments and feedback
Modeling exercisesModel submissions with assessments
File upload exercisesUploaded files with assessments
Quiz exercisesQuiz submissions and answers
Examsexams/All exams with student exam data
Student examsIndividual student exam instances
Exam exercisesAll exam exercise submissions
Scoresstudent-data/course-scores.csvAggregated student scores for all course exercises
student-data/exam-scores-*.csvAggregated student scores per exam (one file per exam)
student-data/course-grade-distribution.csv, student-data/exam-*-grade-distribution.csvGrade and score interval distribution of the course and of each exam (only if a grading scale exists)
Student Datastudent-data/participation-results.csvLatest submission and result per participation with feedback
student-data/posts.csvAll posts and answer posts from conversations
student-data/competency-progress.csvStudent competency progress records
student-data/learner-profiles.csvCourse learner profile data
student-data/tutorial-group-registrations.csvStudent registrations to tutorial groups
student-data/iris-sessions.jsonIris AI tutor chat sessions (if Iris enabled)
student-data/llm-token-usage.csvLLM token usage traces (if Iris enabled)
Reportsreport.csvExport statistics per exercise
exportErrors.txtAny errors encountered during export

Data that is NOT INCLUDED in the archive​

CategoryData TypeReason
Course StructureCourse settingsCan be recreated; not student data
Exercise definitionsEmbedded in exercise exports
Lecture contentNot part of archival scope
Competency definitionsCan be recreated; only progress is archived
Tutorial group definitionsCan be recreated; only registrations are archived
CommunicationReactionsDerived from posts; not separately archived
Private messagesPrivacy considerations
System DataNotificationsEphemeral; not needed for records
Notification settingsUser preferences; not student work
Audit logsManaged separately by system
User DataUser accountsManaged at system level
Group membershipsCan be derived from participation data

Student Data Export Files​

course-scores.csv​

Contains aggregated course scores with one row per student, followed by summary rows (maximum, average, median, standard deviation and the number of participants). Uses the same calculation as the course statistics UI. The columns are:

ColumnDescription
Name, Username, Email, RegistrationNumberThe student
<exercise title> Points, <exercise title> ScoreTwo columns for every exercise that counts towards the overall score
Presentation ScoreOnly if presentation points are configured for the course
Overall Points, Overall Score, Max PointsTotal points, percentage score and maximum achievable points
Grade, PassedOnly if the course has a grading scale

exam-scores-{examId}-{examTitle}.csv​

Contains aggregated exam scores for each exam (one file per exam) with one row per student, followed by summary rows. Uses the same calculation as the exam statistics UI. The columns are:

ColumnDescription
Name, Username, Email, RegistrationNumber, SubmittedThe student and whether they submitted
<exercise group title> Exercise, ... Points, ... ScoreThree columns for every exercise group
Overall Points, Overall Score, Max PointsTotal points, percentage score and maximum achievable points
Grade, PassedOnly if grades are available
First Correction Points, First Correction GradeOnly if a second correction has started
Bonus Source Points, Bonus Grade, Final GradeOnly if a bonus is configured
Plagiarism VerdictThe plagiarism verdict of the student, if any

participation-results.csv​

Contains the latest submission and result for each student participation:

ColumnDescription
ExerciseIdUnique identifier of the exercise
ExerciseTitleName of the exercise
ParticipantLoginStudent's login username
ParticipantNameStudent's display name
ParticipationTypeRATED (before due date) or PRACTICE (after due date)
SubmissionDateWhen the submission was made
ScoreAchieved score (percentage)
RatedWhether the result counts for grading
SuccessfulWhether the submission passed (for programming exercises)
FeedbackCountNumber of feedback items
FeedbackDetailsConcatenated feedback text with points

posts.csv​

Contains all posts and answer posts from course conversations:

ColumnDescription
TypePOST or ANSWER
IdUnique post identifier
AuthorLoginUsername of the post author
CreationDateWhen the post was created
ContentText content of the post
ConversationIdID of the containing conversation (for posts)
ParentPostIdID of the parent post (for answers)

competency-progress.csv​

Contains student progress on course competencies:

ColumnDescription
CompetencyIdUnique identifier of the competency
CompetencyTitleName of the competency
UserLoginStudent's login username
ProgressProgress value (0.0 to 1.0)
ConfidenceConfidence value (0.0 to 1.0)
LastModifiedWhen the progress was last updated

learner-profiles.csv​

Contains course-specific learner profile data:

ColumnDescription
UserLoginStudent's login username
AimForGradeOrBonusStudent's grade/bonus goal setting
TimeInvestmentPlanned time investment level
RepetitionIntensityPreferred repetition intensity

tutorial-group-registrations.csv​

Contains student registrations to tutorial groups:

ColumnDescription
TutorialGroupIdUnique identifier of the tutorial group
TutorialGroupTitleName of the tutorial group
StudentLoginStudent's login username
StudentNameStudent's display name
RegistrationTypeType of registration (e.g., STUDENT)

iris-sessions.json​

Contains Iris AI tutor chat sessions (JSON format):

[
{
"id": 123,
"userId": 456,
"creationDate": "2024-01-15T10:30:00Z",
"messages": [
{
"id": 789,
"sentAt": "2024-01-15T10:30:05Z",
"sender": "USER",
"content": "How do I implement a binary search?",
"helpful": true
}
]
}
]

llm-token-usage.csv​

Contains LLM token usage records for AI features:

ColumnDescription
TraceIdUnique trace identifier
ServiceTypeType of AI service (e.g., IRIS)
UserIdUser who triggered the request
ExerciseIdAssociated exercise (if applicable)
TimeWhen the request was made
ModelAI model used
PipelineService pipeline identifier
NumInputTokensNumber of input tokens
NumOutputTokensNumber of output tokens
CostPerMillionInputTokensCost rate for input tokens
CostPerMillionOutputTokensCost rate for output tokens
NumCachedInputTokensNumber of cached input tokens
CostPerMillionCachedInputTokensCost rate for cached input tokens
NumCacheWriteInputTokensNumber of input tokens written to the cache
CostPerMillionCacheWriteInputTokensCost rate for cache write tokens

Best Practices​

Before Resetting a Course​

  1. Create an archive - Always archive the course before resetting to preserve student data
  2. Notify stakeholders - Inform instructors about the reset
  3. Verify the course - Double-check you are resetting the correct course
  4. Check data retention policies - Ensure you comply with institutional requirements

After Archiving a Course​

  1. Verify the archive - Check the ZIP file can be extracted and contains expected data
  2. Store securely - Move the archive to secure, backed-up storage
  3. Document location - Record where the archive is stored for future reference
  4. Set retention period - Note when the archive can be deleted per policy
Search documentation