MicroDegrees and Enhanced Course Relationships #8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request: Erweiterte Kursbeziehungen und Kursprogramm-Typ (MicroDegree)
Überblick
Dieser Pull Request führt Unterstützung für Kursbeziehungen und Programmstrukturen (Microdegrees) im MOOChub-Schema ein. Diese Erweiterungen ermöglichen eine bessere Darstellung von Lernpfaden und Zusammenhängen zwischen Kursen und erleichert damit die Generierung von Kursempfehlungen. Zudem wird es nun ermöglicht auch Programmstrukturen wie MicroDegrees nicht nur als externe Seite zu verlinken, sondern direkt als Metadaten-Objekt im Schema einzubinden.
Wesentliche Änderungen
1. Neuer Kurs-Typ: Program (MicroDegree)
Bisher war es bereits möglich die Zugehörigkeit eines Kurses zu einem Programm über das
isPartOf-Feld darzustellen. Allerdings war es nicht möglich MicroDegrees und Informationen zu diesen in geeigneter Form mit in den Moochub-Metadaten zu erfassen. Daher wurde ein neuer Kurs-TypProgrameingeführt, der es ermöglicht, Programme mit spezifischen Anforderungen und Kursbeziehungen zu definieren.2. Erweiterte
isPartOf-FunktionalitätDas bestehende
isPartOf-Feld wurde beibehalten, jedoch alsCourseReference-Definition neugestaltet, sodass diese auch in den Eigenschaften hasPart und relatedTo wiederverwendet werden kann.3. Erweiterte
hasPart-StrukturDas
hasPart-Feld wurde erweitert, um sowohl zu unterstützen:als auch neu:
mandatory/elective) für ProgrammeZusätzliche Eigenschaften für Kurse innerhalb von Programmen wie Microdegrees:
requirementLevel: Definiert, ob ein Kurs im Programmkontext verpflichtend oder wahlfrei ist"mandatory"und"elective"4. Kursbeziehungen (
relatedTo)Beziehungen zu anderen Kursen innerhalb des Moochub-Schemas konnten bisher nur im Rahmen von competencyRequired definiert werden. Hierdurch konnten jedoch nur verpflichtende Vorraussetzungen abgebildet werden.
In Ergänzung dazu soll nun ein neues
relatedTo-Feld verwendet werden, um verschiedene Arten von optionalen Beziehungen zwischen Kursen darzustellen. Diese Beziehungen können sowohl für einzelne Kurse als auch für Programme (Microdegrees) verwendet werden.Ein neues
relatedTo-Feld wurde hinzugefügt, das die Definition von Beziehungen zwischen Kursen oder Programmen ermöglicht. Die Items des Arrays enthalten:Beispiel: Microdegree-Programm mit verwandten Kursen
** beispielhaft vereinfachte Darstellung
{ "data": [ { "type": "Program", "attributes": { "name": "Data Science Microdegree Programm", "description": "Umfassendes Data Science Programm von Grundlagen bis zu fortgeschrittenen Anwendungen", "numberOfCredits": 30, "hasPart": [ { "title": "Python", "url": "https://example.edu/courses/python-basics", "type": "Course", "requirementLevel": "mandatory" }, { "title": "Statistische Datenanalyse", "url": "https://example.edu/courses/statistics-fundamentals", "type": "Course", "requirementLevel": "mandatory" }, { "title": "Deep Learning Einstieg", "url": "https://example.edu/courses/deep-learning-specialization", "type": "Course", "requirementLevel": "elective" }, { "title": "Computer Vision", "url": "https://example.edu/courses/computer-vision", "type": "Course", "requirementLevel": "elective" } ], "isPartOf": [ { "title": "Informatik Bachelor", "url": "https://example.edu/study/informatics", "type": "Program" } ] } }, { "type": "Course", "attributes": { "name": "Python", "numberOfCredits": 6, "isPartOf": [ { "title": "MicroDegree DataScience", "url": "https://example.edu/programs/data-science-microdegree", "type": "Program" } ], "relatedTo": [ { "course": { "title": "Statistische Datenanalyse", "url": "https://example.edu/courses/statistics-fundamentals", "type": "Course" }, "type": "continuation" }, { "course": { "title": "Programmierung Grundlagen", "url": "https://example.edu/courses/programming-intro", "type": "Course" }, "type": "foundation" } ] } }, { "type": "Course", "attributes": { "name": "Deep Learning Einstieg", "numberOfCredits": 6, "isPartOf": [ { "title": "MicroDegree DataScience", "url": "https://example.edu/programs/data-science-microdegree", "type": "Program" } ], "relatedTo": [ { "course": { "title": "Deep Learning Spezialisierung", "url": "https://example.edu/courses/deep-learning-specialization", "type": "Course" }, "type": "continuation" }, { "course": { "title": "KI Ethik", "url": "https://example.edu/courses/ethics-in-ai", "type": "Course" }, "type": "complementary" } ], "competencyRequired": [ { "title": "Python", "url": "https://example.edu/competencies/python-basics", "type": "Course" }, { "title": "Statistische Datenanalyse", "url": "https://example.edu/competencies/statistics-fundamentals", "type": "Course" }, { "name": [ { "name": "Daten analysieren", "inLanguage": "de" } ], "educationalFramework": "ESCO", "educationalFrameworkVersion": "1.2.0" } ] } } ] }Technische Details
CourseReference Schema
Das
CourseReference-Schema wird in den$defsdefiniert und von mehreren Feldern referenziert:isPartOf: Verweise auf übergeordnete ProgrammerelatedTo.course: Verweise auf verwandte KursehasPart: Verweise auf Teilkurse in ProgrammenValidierungsregeln
relatedToist optional (kannnullsein)programRequirementsist optional (kannnullsein für einfache Kurse)requirementLevelergänzt die Kursreferenz nur inhasPartVorteile
Rückwärtskompatibilität
Schema für Kursreferenzen innerhalb von "competencyRequired" wird hiebei auf das Schema "CourseReference" umgestellt. Zuvor mussten hier für Kurse wie beim Schema "Skill" ein "educationalFramework" und eine "educationalFrameworkVersion" gesetzt werden. Stattdessen ist das Schema hier nicht mehr ählich zu Skill, sondern gleich wie andere Kursreferenzen, die sich auch bei "isPartOf" oder "relatedTo" wiederfinden. Heißt Moochub Provider und Clients, die bisher schon Kurse im Feld "competencyRequired" schreiben oder auslesen müssen umstellen.