How would the schema look like if the exams were courses
course instances would not make sense
each exam has their own slug
Using exam feature without course feature easy
How would the schema look like if exams had their own table (clean schema, but have to introduce a lot of conditional code in many places)
courses.mooc.fi/org/uh-cs/exams/uuid
would need pages, exercises, user_exercise_state without course ids/course_instance ids (constraint that enforces that the record is either associated with an exam or with a course/course instance)
many to many join table from exams to courses: tells that this exam should be advertised as an available exam for this course
When student starts the exams he selects the course he's doing the exam for (e.g. "Reneval exam for "Introduction to birds fall 2021" or "Separate exam for Introduction to birds spring 2022", "Course exam for Introduction to birds spring 2022")
Using exam feature without course feature easy, would need to have an option on the join table where course is null
exam is something that is part of a course, exam chapter that contains special exam pages (easy to implement, schema not so clean)
Exam would be a page inside the course (e.g. courses.mooc.fi/courses/introduction-to-birds-spring-22/exams/first-exam) is_exam_page boolean
Would need to exclude exercises from exam pages from point lists (not difficult)
Would need a one to many join table from exam pages to other courses for which this exam is an acceptable option
Using exam feature without course possible, but not as clean. The teacher would need to create an empty course and an exam inside that
Case:
Teacher creates a course "Introduction to birds fall 2021"
Student attends the course
Student goes to the exam for the course "Introduction to birds fall 2021" and fails it
Teacher creates a new course with updated materials "Introduction to birds spring 2022"
Student wants to take renewal exam
Can the student take the exam for "Introduction to birds spring 2022"?
Or does the teacher need to create two different exams for the two courses? (don't want this)
Alternatives:
How would the schema look like if the exams were courses
How would the schema look like if exams had their own table (clean schema, but have to introduce a lot of conditional code in many places)
courses.mooc.fi/org/uh-cs/exams/uuid
would need pages, exercises, user_exercise_state without course ids/course_instance ids (constraint that enforces that the record is either associated with an exam or with a course/course instance)
many to many join table from exams to courses: tells that this exam should be advertised as an available exam for this course
When student starts the exams he selects the course he's doing the exam for (e.g. "Reneval exam for "Introduction to birds fall 2021" or "Separate exam for Introduction to birds spring 2022", "Course exam for Introduction to birds spring 2022")
Using exam feature without course feature easy, would need to have an option on the join table where course is null
exam is something that is part of a course, exam chapter that contains special exam pages (easy to implement, schema not so clean)
Exam would be a page inside the course (e.g. courses.mooc.fi/courses/introduction-to-birds-spring-22/exams/first-exam) is_exam_page boolean
Would need to exclude exercises from exam pages from point lists (not difficult)
Would need a one to many join table from exam pages to other courses for which this exam is an acceptable option
Using exam feature without course possible, but not as clean. The teacher would need to create an empty course and an exam inside that
Case: