# fields in curricular description
# leaning on methods in OpenAPI 3.0 

#
# Modulname
#
name:
    type: str
    label: {
        de: "Modulname",
        en: "Name of Course"
    }

#
# Modulverantwortliche:r
#
instructor: 
    type: str
    label: 
        de: "Modulverantwortlicher / Modulverantwortliche"
        en: "module instructor"
    

#
# Kürzel / ID
#
id: 
    type: str
    translatable: false
    label: {
        de: "Kürzel",
        en: "code"
    }


#
# Qualifikationsziele
#

# Welche fachbezogenen, methodischen, fachübergreifende Kompetenzen, 
# Schlüsselqualifikationen - werden erzielt (erworben)? Diese sind 
# an der zu definierenden Gesamtqualifikation (angestrebter Abschluss) auszurichten.
# 
# Lernergebnisse sind Aussagen darüber, was ein Studierender nach Abschluss des Moduls weiß,
#  versteht und in der Lage ist zu tun. Die Formulierung sollte sich am Qualifikationsrahmen 
# für Deutsche Hochschulabschlüsse orientieren und Inhaltswiederholungen vermeiden.
# 
# Des Weiteren finden Sie im QM-Portal die „Handreichung zur Beschreibung von Lernzielen“ 
# als Formulierungshilfe.

goal:
    type: str
    label: {
        de: "Qualifikationsziele",
        en: "Learning Goals"
    }

#
# Modulinhalte
#

# Welche fachlichen, methodischen, fachpraktischen und fächerübergreifenden 
# Inhalte sollen vermittelt werden? 
# 
# Es ist ein stichpunktartiges Inhaltsverzeichnis zu erstellen.

content: 
    type: str
    label: {
        de: "Modulinhalte",
        en: "Module Content"
    }

#
# Lehrform
#

#
# Welche Lehr- und Lernformen werden angewendet? 
# (Vorlesungen, Übungen, Seminare, Praktika, 
# Projektarbeit, Selbststudium)
#
# Es sind nur Werte aus der Prüfungsordung zugelassen
# 
form-of-instruction: 
    label: {
        de: "Lehr-/Lernformen",
        en: "Form of Instruction and Learning"
    }
    type: multikey 
    keys: {
        'lecture' : {
            de: "Vorlesung",
            en: "Lecture"
        },
        'online_lecture' : {
            de: "Online-Vorlesung",
            en: "Online Lecture"
        },
        'lecture_seminar' : {
            de: "Seminaristische Vorlesung",
            en: "Lecture with Seminar"
        },
        'seminar' : {
            de: "Seminar",
            en: "Seminar"
        },
        'exersise' : {
            de: "Übung",
            en: "Lab Exersise"
        },
        'pc_lab' : {
            de: "Rechnergestütztes Praktikum",
            en: "PC Exersise"
        },
        'project' : {
            de: "Projekt",
            en: "Project"
        }
    }
    template: 
        de: "${key} (${value}\\ SWS)"
        en: "${key} (${value}\\ SWS)"

#
# Voraussetzungen für die Teilnahme
#

# Für jedes Modul sind die Voraussetzungen für die Teilnahme zu beschreiben. 
# Welche Kenntnisse, Fähigkeiten und Fertigkeiten sind für eine
# erfolgreiche Teilnahme vorauszusetzen?
# 
# Alternativ können die Module benannt werden welche für die erfolgreiche 
# Teilnahme im Vorfeld zu belegen sind.

prerequisites: 
    type: str
    label: {
        de: "Voraussetzungen für die Teilnahme",
        en: "Entry Requirements"
    }

#
# Literatur und multimediale Lehr- und Lernprogramme
#
# 
# Wie können die Studierenden sich auf die Teilnahme an diesem Modul vorbereiten?
# 
media-of-instruction:     
    type: str
    label: {
        de: "Literatur und multimediale Lehr- und Lernprogramme",
        en: "Literature, Teaching Method and Media"
    }

#
# Lehrbriefautor
#
author-of-indenture: 
    type: str
    label: {
        de: "Lehrbriefautor",
        en: "Author of Indenture"
    }

#
# Verwendung in (Studienprogramm)
#
used-in:
    type: str
    label: {
        de: "Verwendung",
        en: "Used in Study Programs"
    }

#
# Arbeitsaufwand
#
workload:
    type: str
    label: {
        de: "Arbeitsaufwand / Gesamt-Workload",
        en: "Workload Components / Total Workload"
    }
#
# credits/ECTS
#
credits: 
    label: { 
        en: "Credits and Weight in final Mark",
        de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote"
    }
    type: num
    template: 
        de: "${value}ECTS, Gewichtung: ${value}/180 "
        en: "${value}ECTS, weight: ${value} / 180 "    
    

#
# Leistungsnachweis
#
form-of-exam: 
    label: {
        de: "Leistungsnachweis",
        en: "Assessment"
    }
    type: enum 
    values: {
        'written' : {
            de: "Schriftliche Prüfung",
            en: "Written Exam"
        },
        'oral' : { 
            de: "Mündliche Prüfung",
            en: "Oral Exam"
        },
        'alternative' : {
            de: "Alternative Prüfungsleistung",
            en: "Alternative Examination"
        }
    }
    spec: true
    template:
        de: "${value} (${spec})" 
        en: "${value} (${spec})"


#
# Semester
#
term: 
    type: multinum
    label: {
        de: "Semester",
        en: "Term"
    }
    template: 
        de: "${value}\\. Semester"
        en: "Term ${value}"

#
# Häufigkeit des Angebots
#
frequency: 
    label: {
        de: "Häufigkeit des Angebots",
        en: "Frequency of Course"
    }
    type: "enum"
    values: {
        'once_per_term' : {
            de: "jedes Semester",
            en: "every term"
        },
        'once_per_year' : {
            de: "einmal im Studienjahr",
            en: "once per study year"
        }
    }

duration: 
    type: int
    label:
        de: Dauer
        en: duration
    template: 
        de: "$value Semester"
        en: "$value term(s)"

kind:
    type: enum
    label: {
        de: 'Art der Veranstaltung (Pflicht, Wahl, etc.)',
        en: 'kind of module (compulsory, compulsory elective, elective)'
    }
    values: {
        'compulsory': {
            de: "Pflicht",
            en: "compulsory"
        },
        'elective' : {
            de: "Wahl/Wahlpflicht",
            en: "elective"
        },
        'compulsory_elective' : {
            de: "Wahlpflicht",
            en: "compulsory elective"
        }
    }

remarks:     
    type: str
    label: {
        de: "Besonderes",
        en: "remarks"
    }


notes:     
    type: str
    label: {
        de: "**Änderungsbedarf**",
        en: "**Changes Needed**"
    }