adding parts to the schema

This commit is contained in:
Hartmut Seichter 2023-11-05 20:35:44 +01:00
parent f749fdf9b3
commit 027b49a588
3 changed files with 144 additions and 13 deletions

View file

@ -104,10 +104,15 @@ class CourseBuilder:
# print(self.__schema) # print(self.__schema)
def process(self,meta = None,lang='en'): def process(self,meta = None,lang='en'):
fields = ['name']
fields = ['name','goal']
for field in fields: for field in fields:
print(self.__schema[field]['label'][lang],':',meta[field][lang]) match self.__schema[field]['type']:
case 'str': self.process_str(meta,field,lang)
def process_str(self,meta,field,lang='de'):
print(self.__schema[field]['label'][lang],':',meta[field][lang])
def process_int(self,lang='de'): def process_int(self,lang='de'):
pass pass
@ -126,7 +131,7 @@ def main():
parser = ArgumentParser(description='versatile curricula generator') parser = ArgumentParser(description='versatile curricula generator')
parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="course description(s) as YAML file(s)") parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="course description(s) as YAML file(s)")
# parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de') parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de')
# parser.add_argument('-c','--create',action='store_true',help="Create a meta file from description") # parser.add_argument('-c','--create',action='store_true',help="Create a meta file from description")
# parser.add_argument('-n','--newpage',action='store_true',help="Create a pagebreak after each table") # parser.add_argument('-n','--newpage',action='store_true',help="Create a pagebreak after each table")
# parser.add_argument('-t','--title',action='store_true',help="Create a title ahead of each table") # parser.add_argument('-t','--title',action='store_true',help="Create a title ahead of each table")
@ -147,7 +152,7 @@ def main():
for m in args.meta: for m in args.meta:
with open(m) as fm: with open(m) as fm:
cb.process(yaml.load(fm,Loader=yaml.Loader)) cb.process(yaml.load(fm,Loader=yaml.Loader),lang=args.lang)
else: else:
parser.print_help() parser.print_help()

View file

@ -20,6 +20,55 @@ common:
form: lecture # lecture, seminar, lecture_seminar, lecture_exersice, project form: lecture # lecture, seminar, lecture_seminar, lecture_exersice, project
goal: {
de: "Computergrafik ist ein Schmelztiegel von Technologien in der Informatik mit dem Ziel visuelle
Inhalte effizient zu generieren und dem Nutzer zu präsentieren. Studierende können den
Zusammenhang von visuellen Technologien in der Informatik, den zugrunde liegenden mathematischen
Konzepte und der Physiognomie des Menschen, insbesondere des Sehapparates herstellen.
Sie können die Eigenschaften verschiedener Darstellungsformen und -techniken analysieren und
bewerten. Sie lernen grundsätzliche Technologien der 3D Echtzeitdarstellung
kennen und wenden diese an.",
en: "Computer graphics is describing all techniques in computer science
generating images perceivable by humans. Participants will have a broad
overview of techniques and concepts of computer graphics. They will be
able to apply theoretical concepts in practice. "
}
content: {
de: "
* Grundkenntnisse der menschlichen Wahrnehmung
* Grundkonzepte der Bilderzeugung, Speicherung und Transformation
* Anwendungen von Computergrafik
* Technologien zur Bilddarstellung
* 3D Modelle, insbesondere Surface- und Volumemodelle
* Transformationspipeline
* Homogene Vektorräume und Transformationen
* Szenengraphen und Echtzeit Rendering APIs
* Bildsyntheseverfahren
* Geometrie und Bild Samplingverfahren und Anti-Aliasing Strategien
* Lichttransport, Physikalische Beleuchtungsmodelle
* Texturierungsverfahren
* Überblick Visualisierung
* Graphische Nutzeroberflächen und Systeme
",
en: "
* Basics of human perception
* Concepts of image storage and manipulation
* Applications of computer graphics
* Display sytems
* 3D models,i.e. surface and volume models
* Transformationspipeline
* Homogenous vector spaces and transformations
* Scenegraphs and rendering APIs
* Methods for image-synthesis
* Sampling in computer graphics
* Light transport and shading models
* Texturing
* Overview visualizations
* Graphical User Interfaces
"
}
# German Variant # German Variant
de: de:
name: Computergrafik name: Computergrafik

View file

@ -1,28 +1,105 @@
# fields in curricular description # fields in curricular description
# leaning on methods in OpenAPI 3.0 # leaning on methods in OpenAPI 3.0
#
# Modulname
#
name: name:
type: str
label: { label: {
de: "Modulname", de: "Modulname",
en: "name of course" en: "name of course"
} }
#
# Kürzel / ID
#
id:
type: str type: str
id: str label: {
instructor: str de: "Kürzel",
goal: str en: "code"
content: str }
form: enum
prerequisites: str #
media-of-instruction: str # Modulverantwortliche:r
author-of-indenture: str #
instructor:
type: str
label: {
de: "Modulverantwortliche:r",
en: "module instructor"
}
#
# Qualifikationsziele
#
goal:
type: str
label: {
de: "Qualifikationsziele",
en: "educational goal"
}
#
# Modulinhalte
#
content:
type: str
label: {
de: "Modulinhalte",
en: "content"
}
form:
type: enum
#
# Voraussetzungen für die Teilnahme
#
prerequisites:
type: str
label: {
de: "Voraussetzungen für die Teilnahme",
en: "prerequisites"
}
#
# Literatur und multimediale Lehr- und Lernprogramme
#
media-of-instruction:
type: str
label: {
de: "Literatur und multimediale Lehr- und Lernprogramme",
en: "media of instruction"
}
#
# Lehrbriefautor
#
author-of-indenture:
type: str
label: {
de: "Lehrbriefautor",
en: "author of indenture"
}
#
# Verwendung in (Studienprogramm)
#
used-in: used-in:
type: str
label: {
de: "Verwendung",
en: "used in study programs"
}
workload: #tricky! { 'presence': 10, 'exersise': 10, 'exam-prep' : 0 } workload: #tricky! { 'presence': 10, 'exersise': 10, 'exam-prep' : 0 }
# #
# credits/ECTS # credits/ECTS
# #
credits: credits:
label: { label: {
en: "Credits and Weight of Mark", en: "credits and weight of mark",
de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote" de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote"
} }
type: int type: int