diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index bc79a99..51b4527 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -12,7 +12,6 @@ in order to version content with Git. from argparse import ArgumentParser import itertools import yaml -from yaml.loader import Loader import os import textwrap @@ -100,12 +99,15 @@ class CourseBuilder: def __init__(self) -> None: self.__schema = None - def load_schema(self,**kwargs) - for k,v in kwargs.items(): - if k == 'schema': - with open(v) as f: - self.__schema = yaml.load(f,Loader=Loader) - print(self.__schema) + def set_schema(self,schema = None): + self.__schema = schema + # print(self.__schema) + + def process(self,meta = None,lang='en'): + fields = ['name'] + + for field in fields: + print(self.__schema[field]['label'][lang],':',meta[field][lang]) def process_int(self,lang='de'): pass @@ -123,7 +125,7 @@ def main(): # arguments parser = ArgumentParser(description='versatile curricula generator') - # parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="Module 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('-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") @@ -136,16 +138,16 @@ def main(): args = parser.parse_args() # only run debug - if args.schema : + if args.schema: + cb = CourseBuilder() - cb.load_schema(schema = args.schema) - # only run if we have a curricullum - elif args.meta: + with open(args.schema) as f: + cb.set_schema(yaml.load(f,Loader=yaml.Loader)) + for m in args.meta: - build_curriculum(m,lang=args.lang,pagebreak=args.newpage,title=args.title) - elif args.create: - create_meta() + with open(m) as fm: + cb.process(yaml.load(fm,Loader=yaml.Loader)) else: parser.print_help() diff --git a/test/simple/mod.cg.yaml b/test/simple/mod.cg.yaml index 6d8045e..9b4974e 100644 --- a/test/simple/mod.cg.yaml +++ b/test/simple/mod.cg.yaml @@ -1,3 +1,8 @@ +name: { + de: "Computergrafik", + en: "Computer Graphics" +} + # common common: id: CG # fix for any variante diff --git a/test/simple/mod.interactsys.yaml b/test/simple/mod.interactsys.yaml new file mode 100644 index 0000000..80a5fd7 --- /dev/null +++ b/test/simple/mod.interactsys.yaml @@ -0,0 +1,78 @@ +# German +de: + name: Interactive Systems + id: InteractSys + instructor: Prof. Hartmut Seichter, PhD + goal: | + Studierende lernen vertieftes Wissen um grafische Nutzeroberflächen zu analysieren + und informierte Designentscheidungen zu treffen. Dabei werden auch Grundlagen der + Wahrnehmung vermittelt. Studierende entwickeln anhand von Prototypen anwendbares + Wissen Interaktionen zu messen und anhand von wissenschaftlichen Methoden + zu bewerten. + content: | + * Wahrnehmung + * Visuelle Gestaltung von Graphischen Nutzerschnittstellen + * Applikationsdesign mit Fokus auf GUI Konzepte + * Nutzerstudien + * Evaluierungsmethoden mit interaktiven visuellen Systemen + form: flipped classroom mit digitalen Lermodulen und wöchentlichen Lernforum, Übungen am PC + prerequisites: Grundlagen Statistik, IETLS score 6.0 oder äquivalent + media-of-instruction: | + * H5P Lernmodule, Lernforum und Übungen am PC + * Auszug aus der Literaturliste: + * Card, Stuart K., Thomas P. Moran, and Allen Newell. The Psychology of Human-Computer Interaction. Repr. Mahwah, NJ: Erlbaum, 2008. + * Cooper, Alan. About Face: The Essentials of Interaction Design, 4th Edition. 4th edition. Indianapolis, IN: John Wiley and Sons, 2014. + * Dix, Alan, Janet Finlay, Gregory D Abowd, and Russell Beale. Human-Computer Interaction. Pearson Education, 2003 + * Krug, Steve. Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability. Third edition. Berkeley, Calif.: New Riders, 2014. + * Nielsen, Jakob. Usability Engineering. Boston: Academic Press, 1993. + + author-of-indenture: + used-in: Master Applied Computerscience + workload: | + - Vorlesung/Lernforum 2SWS + - Übung 2SWS + - Workload: Präsenz (Vorlesung + Übungen) 120h Projektbearbeitung 30h + credits: 5CP (5/120) + form-of-exam: Projekt + term: Wintersemester + frequency: einmal im Studienjahr + duration: 1 Semester + kind: Wahlpflicht + remarks: Lehrsprache ist Englisch + +# English +en: + name: Interactive Systems + id: InteractSys + instructor: Prof. Hartmut Seichter, PhD + goal: | + Students acquire in-depth knowledge how to analyze graphical user interfaces and make informed design decisions. + Participants will acquire basics of human perception and locomotion. Using graphical prototypes, students develop + actionable knowledge to measure interactions and to evaluate them using recent scientific methods. + content: Content and Topics + form: flipped classroom with interactive learning modules and weekly learning forum, lab exersies + prerequisites: foundations of statistics, IETLS score 6.0 or equivalent + media-of-instruction: | + * H5P Lernmodule + * learning forum + * exersises + * excerpt from literature list: + * Card, Stuart K., Thomas P. Moran, and Allen Newell. The Psychology of Human-Computer Interaction. Repr. Mahwah, NJ: Erlbaum, 2008. + * Cooper, Alan. About Face: The Essentials of Interaction Design, 4th Edition. 4th edition. Indianapolis, IN: John Wiley and Sons, 2014. + * Dix, Alan, Janet Finlay, Gregory D Abowd, and Russell Beale. Human-Computer Interaction. Pearson Education, 2003 + * Krug, Steve. Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability. Third edition. Berkeley, Calif.: New Riders, 2014. + * Nielsen, Jakob. Usability Engineering. Boston: Academic Press, 1993. + + author-of-indenture: + used-in: Master Applied Computer Science + workload: | + - lecture/learning forum 2SWS + - exersises 2SWS + - workload: in-person (lecture + exersises) 120h project work 30h + credits: 5CP (5/180) + form-of-exam: project + term: winter term + frequency: once per study year + duration: one semester + kind: elective + remarks: taught in English diff --git a/test/simple/schema.yaml b/test/simple/schema.yaml index 676cd26..d70a747 100644 --- a/test/simple/schema.yaml +++ b/test/simple/schema.yaml @@ -5,7 +5,7 @@ name: label: { de: "Modulname", en: "name of course" - }, + } type: str id: str instructor: str