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']