mon-module.py

Ceci est un exemple illustrant ce qu’on peut écrire dans les fichiers python décrivant les ECUEs.

  1#!/usr/bin/env python3
  2
  3# coding: utf-8
  4
  5import cursus
  6
  7# !!! Seulement si on utilise des variables globales à plusieurs modules.
  8from csmetzvars import lv
  9
 10# Ici, dans Variables/csmetz/, il y a un fichier lv.py qui définit des variables comme  title1 = "...",
 11# On peut l'utiliser dans ce script comme lv.title1
 12# On peut mettre d'autres toto.py dans Variables/csmetz/, leur contenu sera disponible en faisant
 13# from csmetzvars import toto
 14# pour disposer de toto.mavariable
 15
 16cursus.tracks.declare('info', 'phys', 'SDI') # Ne mettre que les tracks concernées
 17
 18with cursus.script.Module() as module:
 19
 20    # Nota: on peut varier selon les tracks, avec les expression with cursus.tracks...
 21    
 22    
 23    ####
 24    #### Déclaration de ce qui est à l'emploi du temps
 25    ####
 26
 27    # Déclaration complète:
 28    activite = module.cm('titre en francais',
 29                         ['hfb', 'jf'],              # La liste des profs, mettre [] ou None si on ne les connaît pas... ou un seul élément.
 30                         duration = 1.5,             # duree en heure du créneau mis à l'emploi du temps des élèves.
 31                         nb_teachers = 3,            # Nombre d'enseignants. S'il est supérieur au nombre déclaré, cela déclare des enseignants manquants.
 32                         hour_cost_by_teacher = 1.5, # Le coût d'une heure présentielle en HETD.
 33                         fixed_cost_by_teacher = 0., # Un coût (en HETD) forfaitaire.
 34                         face2face = 1)              # La durée de présence du prof sur le créneau (None => face2face = duration)
 35
 36    # Déclaration abbrégée: Certains arguments sont définis par défaut.
 37    cm = module.cm('titre en francais')
 38    td = module.td('titre en francais', 'jf')
 39    tp = module.tp('titre en francais', nb_teachers=2)
 40    projet = module.projet('titre en francais', None, duration = 10, nb_teachers=4, face2face = 2, fixed_cost_by_teacher = 1)
 41    exam = module.exam('Ecrit', None, duration = 3)
 42
 43    # On peut respécifier des attributs après création.
 44    cm = module.cm('titre en francais')
 45    cm.title = 'title in english'
 46    cm.teachers = (['jf', 'hfb'], 3) # (teachers, nb_teachers)
 47
 48    # Declaration pour certaines tracks (voir cursus pour plus de possibilités)
 49    
 50    with cursus.tracks.OneForEach(): # On ajoute un élément par track
 51        td = module.td('Boucles', None, duration=2)
 52        td['info'].teachers = ('hfb', 1) # spécification pour la track informatique
 53        td['phys'].teachers = ('dr',  1) # spécification pour la track physique
 54
 55    with cursus.tracks.OnlyFor('info'): # Seule la track info aura un projet.
 56        proj = module.projet('Matrices', None, nb_teachers=4, duration=10, face2face=2, fixed_cost_by_teacher = 1)
 57
 58    # On peut grouper et déclarer des séquences
 59
 60    cm1 = module.cm('titre en francais')
 61    cm2 = module.cm('titre en francais')
 62    module.group(cm1, cm2)
 63    
 64    with cursus.tracks.OneForEach(): # On ajoute un élément par track
 65        td = module.td('Boucles', None, duration=2)
 66
 67    module.seq(cm1, td)
 68
 69        
 70    ####
 71    #### Descriptions du module
 72    ####
 73
 74    module.description.titre = 'titre en francais'
 75    module.description.title = 'title in english'
 76
 77    module.description.manager = 'hfb'
 78    module.description.links = {
 79        "site du cours": "https://monsite.centralesupelec.fr",
 80        "site des TPs": "https://monsite.centralesupelec.fr"
 81    }
 82
 83
 84
 85    # On ne se sert pas vraiment des ECTS pour les modules.
 86    module.description.ECTS = 2
 87    with cursus.tracks.OnlyFor('info'):
 88         module.description.ECTS = 3
 89         
 90    module.description.pseudo = 'titre court'
 91    module.description.code   = 'SPM-INF-003'
 92
 93    module.description.ODDfr = 'objectif de développement durable'
 94    module.description.ODDen = 'sustainable developpement goals'
 95
 96    # Geode  Acquis d’apprentissage visés dans le cours
 97
 98    module.description.acquis       = "acquis d'apprentissage"
 99    module.description.acquis_md    = "**acquis** d'apprentissage"    # sera acquis par défaut
100    module.description.acquis_latex = "{\\bf acquis} d'apprentissage" # sera acquis par défaut
101    
102    module.description.outcome       = 'learning outcome'
103    module.description.outcome_md    = 'learning **outcome**'    # sera outcome par défaut
104    module.description.outcome_latex = 'learning {\\bf outcome}' # sera outcome par défaut
105
106    #  Geode Présentation générale
107    
108    module.description.quoi       = "Dans ce module, nous traîterons de..." 
109    module.description.quoi_md    = "Dans ce **module**, nous traîterons de..."    # sera quoi par défaut
110    module.description.quoi_latex = "Dans ce {\\bf module}, nous traîterons de..." # sera quoi par défaut
111    
112    module.description.what       = "This module is about..."
113    module.description.what_md    = "This **module** is about..."    # sera what par défaut
114    module.description.what_latex = "This {\\bf module} is about..." # sera what par défaut
115    
116    # Geode Méthode pédagogique:
117    
118    module.description.comment       = "..."
119    module.description.comment_md    = "..."
120    module.description.comment_latex = "..."
121    module.description.how       = "..."
122    module.description.how_md    = "..."
123    module.description.how_latex = "..."
124
125    # Geode Moyens
126    
127    module.description.moyens       = "..."
128    module.description.moyens_md    = "..."
129    module.description.moyens_latex = "..."
130    module.description.means       = "..."
131    module.description.means_md    = "..."
132    module.description.means_latex = "..."
133
134    # Geode Prérequis
135
136    module.description.prerequis       = "..."
137    module.description.prerequis_md    = "..."
138    module.description.prerequis_latex = "..."%
139    module.description.prerequisites       = "..."
140    module.description.prerequisites_md    = "..."
141    module.description.prerequisites_latex = "..."
142    
143    # Geode Contenu :
144    
145    module.description.sujets       = "..."
146    module.description.sujets_md    = "..."
147    module.description.sujets_latex = "..."
148    module.description.topics       = "..."
149    module.description.topics_md    = "..."
150    module.description.topics_latex = "..."
151
152    # Références
153
154    module.description.bibliography       = ['reference 1', 'reference 2']
155    module.description.bibliography_md    = ['reference 1', 'reference 2'] # sera bibliography par défaut
156    module.description.bibliography_latex = ['reference 1', 'reference 2'] # sera bibliography
157
158        
159    ####
160    #### Evaluation
161    ####
162    
163    with cursus.tracks.OnlyFor('info'): 
164        module.evaluation.modalite    = 'Sur la base du rapport de projet, rattrapable.'
165        module.evaluation.competences = ['ISIN01', 'ISIN04']
166        
167    with cursus.tracks.OnlyFor('phys'): 
168        module.evaluation.modalite    = 'Sur la base de la présence en TD, non rattrapable.'
169        module.evaluation.modality    = 'based on attendence, cannot be retaken.'
170        module.evaluation.competences = []
171        
172    with cursus.tracks.OnlyFor('SDI'): 
173        module.evaluation.modalite    = 'Examen écrit de 3h, rattrapable.'
174        module.evaluation.modality    = 'Written test (3h), can be retaken.'
175        module.evaluation.competences = ['C1', 'C7']