Mises à jours diverses + reprise ModelisationParcoursBUT

This commit is contained in:
Emmanuel Viennet 2022-10-07 22:29:59 +02:00
parent 75abfab3e9
commit 1f163557c6
5 changed files with 149 additions and 81 deletions

View File

@ -425,14 +425,15 @@ Pour régénérer le fichier indiquant la liste des paquets:
Note: la mise à jour par `apt` recrée le virtualenv à chaque fois.
## Roadmap
Sujets **prioritaires** en 2021:
Sujets **prioritaires** en 2021-2022:
- Modernisation du code: Flask, Python 3: achevé août 2021.
- Prise en compte du Bachelor (BUT): SAÉ, suivi compétences, validations des
blocs, UE, semestres selon la cadrage et l'arrêté Licence Pro 2020.
blocs, UE, semestres selon la cadrage et l'arrêté Licence Pro 2020. (achevé
avec ScoDoc 9.2 puis complété en 9.3 et 9.4)
- Redéfinition API et interface mobile simplifiée.
- Définition et développement nouvelle API (achevé avec 9.3 en juillet 22)
Autres sujets:
- [voir les tickets](https://scodoc.org/git/viennet/ScoDoc/issues)

View File

@ -2,7 +2,7 @@
Quelques informations pour les développeurs.
- le code est écrit en Python 3.9 (passage à 3.10 prévu en 2022).
- le code est écrit en Python 3.9 (passage à 3.10 prévu avec Debian 12).
- le code doit être formatté par [black](https://pypi.org/project/black/) qui
est normalement intégré à votre éditeur (VSCode et PyCharm sont deux choix
judicieux).
@ -15,7 +15,7 @@ Quelques informations pour les développeurs.
- [Redis](https://redis.io/) cache persistant
- [NGINX](https://www.nginx.com/) serveur Web frontal
- [gunicorn](https://gunicorn.org/) WSGI HTTP server
- et bien sûr Linux (Debian) et systemd.
- et bien sûr Linux (Debian 11 en 2021-2022) et systemd.
# Principaux objets
@ -47,7 +47,8 @@ Une vue ordinaire (Web) pourrait ressembler à cela. Noter la présence de
décorateurs:
- `@scodoc` récupère le département (présent dans l'URL) et initialise quelques
trucs;
trucs, notamment `g.scodoc_dept` (l'acronyme du département courant) et
`g.scodoc_dept_id` (l'id du dépt. courant).
- `@permission_required`: permet de contrôler l'accès, en se basant sur les
permissions définies dans la classe `Permission`.

View File

@ -1,7 +1,8 @@
# Implémentation des parcours du BUT dans ScoDoc
Cette page est *destinée aux développeurs* et à tous ceux qui souhaitent
comprendre le fonctionnement du logiciel: ce sont des notes un peu désordonnées
prises au moment de la conception.
comprendre le fonctionnement du logiciel. Elle ne concerne que les formations
BUT, dites dans ScoDoc "APC" (pour *approches par compétences*).
ScoDoc est livré avec les référentiels de compétences de tous les parcours de toutes
les spécialités de BUT. En effet, ces référentiels sont nationaux, publiés par
@ -11,36 +12,74 @@ et ne sont pas susceptibles d'adaptations locales.
Nous nous sommes basés sur les versions exportées du logiciel Orébut.
## Rappel général sur le BUT et ScoDoc
Rappel simplifié, se concentrant sur les points utiles pour l'évaluation
et les liens avec le cursus de formation:
!!! note
Les objets notés `CommeCeci` sont des modèles (classes SQLAlchemy)
implémentés par des tables SQL.
## Structure des formations
Pour les formation en APC, on a d'une part le *programme de formation*, et de
l'autre le *référentiel de compétences*.
Pour le BUT, le référentiel de formation n'est pas fixé nationalement. Une part
est publiée (2/3) par le ministère, le reste est défini localement par les
universités (*adaptation locale*).
Les formations ScoDoc (`Formation`) sont constituées de
- UE : `UniteEns`
- Modules (ressources, SAÉ, autres): `Module`
La formation définit les UE et modules pour l'ensemble
des semestres d'un ou plusieurs parcours. De cette façon, on peut utiliser les
mêmes éléments dans plusieurs parcours, et grouper les étudiants de plusieurs
parcours dans le même semestre si on le souhaite.
En ScoDoc 9.3, on avait une bijection UE <-> Niveau de compétence (`ApcNiveau`).
En 9.4, on aura une association UE <- parcours -> Niveau de compétence
- Chaque parcours de BUT est défini par un ensemble de compétences.
- Une compétence est décomposée en deux ou trois *niveaux*, chacun constitué de
deux UE consécutives (sur semestres pair et impair de la même année
scolaire).
- Les UE sont des UE "LMD" habituelles; associées à des crédits ECTS,
capitalisables. Chaque UE est associée à une note (moyenne d'UE) et une
décision de jury (validée, ajournée, ...).
Dans le BUT, le référentiel de formation n'est pas fixé nationalement. Une part
est publiée (2/3) par le ministère, le reste est défini localement par les
universités (*adaptation locale*).
## Unités d'enseignement
Les UE sont des UE "LMD" habituelles; associées à des crédits ECTS,
capitalisables. Pour chaque UE on calcule une note (moyenne d'UE) et on attribue
une décision de jury (validée, ajournée, ...).
## Modules et parcours
Les modules: on appelle ici "module" tout dispositif pédagogique évalué, dans le
BUT ce sont les *ressources* et les *SAÉ*.
Dans ScoDoc, le programme pédagogique définit les UE et modules pour l'ensemble
des semestres d'un ou plusieurs parcours. De cette façon, on pourra utiliser les
mêmes éléments dans plusieurs parcours, et grouper les étudiants de plusieurs
parcours dans le même semestre si on le souhaite.
Chaque module peut être associé à un ou plusieurs parcours, via la table
d'association `ApcParcours` <-> `Module` (`parcours_modules`, many-to-many).
## Modélisation ScoDoc
Via *Formation*/*Modification du module*:<br>
<img src="/fig/module_choix_parcours.png" width="50%">
On a d'une part le *programme de formation*, et de l'autre le *référentiel de
compétences*.
On peut ainsi vérifier que les parcours couvrent les AC, et faciliter les
inscriptions des étudiants aux modules (par ex. page présentant les modules
auxquels inscrire un groupe).
### Programme de formation
### Cas des modules présents dans plusieurs parcours
Si un module est utilisé dans plusieurs parcours de la même formation BUT, cela
ne pose aucun problème, _sauf_ si ce module doit avoir des coefficients (vers
les UEs) différents selon le parcours dans lequel il intervient. Dans ce cas,
*il sera conseillé de créer plusieurs versions du module*, que l'on associera
aux divers parcours.
## Coefficients modules / UEs
Les coefficients sont des réels (non nullables), `ModuleUECoef`.
Édition via *Formation*/*Édition des coefficients des modules vers les UEs*:<br>
<img src="/fig/formation_edit_coefs.png" width="30%">
## Formation
Le programme de formation est constitué des classes suivantes (en BUT et dans
tous les types de formation. La notion de "matière" n'est pas utilisée en BUT).
@ -52,21 +91,14 @@ On voit que les modules ont toujours une UE de rattachement. Cependant, en BUT,
un module peut intervenir dans le calcul des notes de plusieurs UE, via une
matrice de coefficients.
On va aussi rattacher les Modules à un ou plusieurs ApcParcours, de façon à
pouvoir vérifier que les parcours couvrent les AC, et à faciliter les
inscriptions des étudiants aux modules (par ex. page présentant les modules
auxquels inscrire un groupe).
!!! example "Méthodes de Formation"
- `Formation.query_ues_parcour(parcour: ApcParcours)`->(query) les UEs d'un
parcours de la formation.
#### Cas des modules présents dans plusieurs parcours
Si un module est utilisé dans plusieurs parcours de la même formation BUT, cela
ne pose aucun problème, _sauf_ si ce module doit avoir des coefficients (vers
les UEs) différents selon le parcours dans lequel il intervient. Dans ce cas,
*il sera conseillé de créer plusieurs versions du module*, que l'on associera
aux divers parcours.
### Référentiel de compétences
Le référentiel de compétences est structuré par les classes suivantes:
## Référentiel de compétences
Le référentiel de compétences (`ApcReferentielCompetences`) défini les
compétences à valider (décomposées en niveaux) et les parcours BUT
(`ApcParcours`). Il est structuré ainsi:
- `ApcReferentielCompetences`
- `ApcCompetence`
@ -89,7 +121,7 @@ Notons:
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
modules, qui permet d'établir les critères d'évaluation de chaque module.
### FormSemestres
## FormSemestres
La formation est mise en œuvre dans des `FormSemestre` (date début, fin,
enseignants responsables, ...) constitués de `ModuleImpl` (module avec enseignant,
évaluations, ...).
@ -98,18 +130,30 @@ enseignants responsables, ...) constitués de `ModuleImpl` (module avec enseigna
- `ModuleImpl`
- `Evaluation`
### Inscriptions des étudiants
On a vu que la formation pouvait comporter plusieurs parcours. Un `FormSemestre`
peut implémenter un ou plusieurs parcours. On a en effet une table d'association
Parcours <-> FormSemestre (`parcours_formsemestre`, many-to-many).
Via *Semestre*/*Modifier le semestre*:<br>
<img src="/fig/formsemestre_choix_parcours.png" width="50%">
!!! example "Méthodes de FormSemestre"
- `FormSemestre.query_ues(with_sport=False) ->` liste des UEs de ce semestres
(tous parcours confondus).
- `FormSemestre.query_ues_parcours_etud(etudid: int) -> `(query) UEs que suit
l'étudiant dans ce semestre BUT en fonction du parcours dans lequel il est
inscrit.
## Inscriptions des étudiants
Les étudiants sont inscrits:
- dans un `FormSemestre` (`FormSemestreInscription`, avec état (`I`, `D`,
`DEF`) et étape Apogée)
- à des `FormSemestre` (`FormSemestreInscription`, avec:
- un état, "inscrit", "démission" ou "défaillant";
- un `ApcParcours`;
- un code étape Apogée.
- dans un ModuleImpl (`ModuleImplInscription`)
- et, pour le BUT, dans un `ApcParcours`: l'inscription au formsemestre
`FormSemestreInscription` comporte:
- l'état (`I`, `D`, `DEF`);
- l'étape Apogée;
- un `ApcParcours`.
Un formsemestre est associé à un ensemble de parcours. L'étudiant peut être
inscrit à l'un d'entre eux. Certaines formations commencent par une année de
@ -117,10 +161,10 @@ tronc commun, durant laquelle l'étudiant n'a pas encore choisi son parcours. On
considérera que si l'étudiant n'est pas inscrit à un parcours, il est
implicitement inscrit à tous les parcours du semestre.
### Associations (nouvelles pour le BUT):
## Associations (nouvelles pour le BUT):
Pour la gestion des parcours BUT, il faut introduire les associations suivantes,
qui n'existent pas dans ScoDoc 9.2:
Pour la gestion des parcours BUT, on a introduit les associations suivantes,
qui n'existaient pas dans ScoDoc 9.2:
- UE <-> `ApcNiveau` : choix sur la page `ue_edit`
- `Module` ||--o{ ensemble de `ApcParcours`
@ -129,9 +173,19 @@ qui n'existent pas dans ScoDoc 9.2:
`formsemestre_editwithmodules`
- `FormSemestreInscription` ||--|| `ApcParcours` : inscription au parcours, page à créer.
### Cas d'usage
## Cas d'usage
#### Niveau de compétence d'un formsemestre
### UEs à afficher sur les bulletins individuels
TODO
### UEs à afficher sur les tableaux récap. de semestre
TODO
### UEs à valider en jury BUT
TODO
### Niveau de compétence d'un formsemestre
Le formsemestre est lié à un ensemble d'`ApcParcours`.
@ -141,7 +195,7 @@ La liste des niveaux (`ApcNiveau`) associés aux UEs:
for ue in formsemestre.query_ues() if ue.niveau_competence ]
```
#### Inscription d'un étudiant aux ModuleImpls
### Inscription d'un étudiant aux ModuleImpls
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
@ -151,7 +205,7 @@ quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
Les modimpls d'un parcours sont donnés par la méthode `modimpls_parcours` de
`FormSemestre`.
#### Comment ScoDoc détermine-t-il les modules d'un parcours ?
### Comment ScoDoc détermine-t-il les modules d'un parcours ?
Un parcours étant associé à des compétences, et les niveaux compétences à des
UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UE
associées à un parcours.
@ -164,11 +218,11 @@ de ce semestre ayant des AC communs avec ceux des niveaux de compétences
associés aux UE du semestre (sic). Notons que les niveaux de compétences sont
annuels, mais que les `ModuleImpl` sont semestriels.
#### Vérifier que les ModuleImpls d'un parcours couvrent l'ensemble de ses ACs
### Vérifier que les ModuleImpls d'un parcours couvrent l'ensemble de ses ACs
Vérification utile en fin de formation.
##### En fin de formation, pour un étudiant
#### En fin de formation, pour un étudiant
Soit un étudiant inscrit à un parcours. En fin de formation (S6), on peut
facilement vérifier que les AC ont été couverts:
@ -179,14 +233,14 @@ facilement vérifier que les AC ont été couverts:
réussite);
- Comparer aux AC du parcours tels que décrits dans le référentiel de compétence.
##### Au moment de la définition d'une formation
#### Au moment de la définition d'une formation
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau
(année). On pourra vérifier que les `Module`s de chaque année suffisent à
couvrir le parcours. Mais si les `Module`s ne sont pas associés à un parcours,
on ne peut pas aller plus loin.
#### Lister les UEs d'un parcours d'une formation
### Lister les UEs d'un parcours d'une formation
```
# Soit un parcours:
parcour = formation.referentiel_competence.parcours.filter_by(code="ROM").first()
@ -196,7 +250,7 @@ formation.query_ues_parcour(parcour)
formation.query_ues_parcour(parcour).filter_by(semestre_idx=2)
```
#### Lister les regroupements d'UE d'un étudiant (RCUE)
### Lister les regroupements d'UE d'un étudiant (RCUE)
Pour une année donnée: l'étudiant est inscrit dans ScoDoc soit dans le semestre
impair, soit pair, soit les deux (il est rare mais pas impossible d'avoir une
@ -213,7 +267,7 @@ arrêt temporaire du cursus).
Un `RegroupementCoherentUE` est simplement un couple d'UE du même niveau dans le
cursus (BUT1, BUT2 ou BUT3).
#### Déterminer si un étudiant peut passer dans l'année suivante
### Déterminer si un étudiant peut passer dans l'année suivante
Note: on peut bien sûr toujours forcer le passage, pour traiter les cas
particuliers (décision de jury manuelle).
@ -236,7 +290,7 @@ Il faut donc:
l'étudiant, et vérifier que les UE de S1 et S2 sont validées.
#### Cas particulier: formations dont le nombre d'ECTS varie selon le parcours
### Cas particulier: formations dont le nombre d'ECTS varie selon le parcours
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
une compétence développer avec 10 ECTS dans le parcours "web", et 5 ECTS dans le
@ -249,6 +303,7 @@ Les ECTS sont actuellement des attributs de UEs.
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
les valeurs des ECTS.
## Enregistrement des validations de compétences
### Rappel: validations en formations classiques
@ -351,7 +406,7 @@ config générale).
Juste pour rire, car ce diagramme est quasiment inexploitable (dessin réalisé
automatiquement en Mermaid).
``` mermaid
```mermaid
erDiagram
FormSemestre ||--|{ ModuleImpl : contient
ModuleImpl ||--o{ Evaluation : contient

View File

@ -20,14 +20,13 @@ fournit notamment:
ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md).
ScoDoc s'utilise sur un navigateur web standard: les utilisateurs n'ont rien à
installer. Les établissements ou écoles doivent configurer un serveur: voir le [guide
d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc 9 est
parue le 19 septembre 2021, la version 9.2 en avril 2022. Les mises à jour sont
appliquées régulièrement.
installer. Les établissements ou écoles doivent configurer un serveur: voir le
[guide d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc
9 est parue le 19 septembre 2021, la version 9.3 en juillet 2022. Les mises à jour sont
appliquées très fréquemment.
ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont
au moins 58 IUT**: [liste des utilisateurs connus de
ScoDoc](UtilisateursScoDoc.md).
ScoDoc est utilisé dans de nombreux établissements français et étrangers, **dont
au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md).
Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif
(1901)](AssociationScoDoc.md), à laquelle tous les départements ou
@ -55,7 +54,7 @@ retourner à `Emmanuel.Viennet at gmail.com`.
## Actualités
### Parution de ScoDoc 9
### Parution de ScoDoc 9 en 2021-2022
Version majeure, avec une architecture logicielle complètement remaniée. Cette
version modernise l'infrastructure logicielle (maintenant basée sur Python
3/Flask/postgresql) et propose de nombreuses améliorations, notamment pour la
@ -63,14 +62,16 @@ gestion du *[Bachelor Universitaire de Technologie (BUT)](BUT.md)*.
### Contrats d'apprentissage
Deux étudiants ont été recrutés (LP IUT Orléans, et IUT Villetaneuse):
Depuis 2021, plusieurs étudiants ont été recrutés (BUT R&T Lannion, LP IUT
Orléans, LP IUT Villetaneuse):
- développement d'une nouvelle API pour ScoDoc 9;
- développement d'un nouveau module de gestion des relations entreprises
(fichier, contacts, stages, alternance).
- développement d'une nouvelle API pour ScoDoc 9 (mise en service en juillet 2022);
- développement d'un nouveau module de gestion des relations entreprises:
fichier, contacts, stages, alternance (publiée en août 2022);
- refonte du module de gestion des absences (en cours en 2022-2023).
### Quatre stagiaires
### Stagiaires
- version spéciale pour mobiles, développée par un stagiaire de l'association;
- développements de tests unitaires et fonctionnels, par deux stagiaires, l'un
@ -80,7 +81,7 @@ Deux étudiants ont été recrutés (LP IUT Orléans, et IUT Villetaneuse):
### Nouveaux développeurs
Plusieurs développeurs volontaires, la plupart enseignants en IUT, ont rejoint
l'équipe ces derniers mois.
l'équipe depuis 2020.
### Bachelor Universitaire de Technologie (BUT) et ScoDoc
ScoDoc évolue pour intégrer la gestion du BUT, en approche par compétences, avec
@ -89,7 +90,7 @@ pédagogiques. ScoDoc n'a pas vocation à devenir un portfolio APC, mais
continuera à vous aider à suivre, évaluer et noter vos étudiants, au plus près
de vos pratiques. Voir [cette page pour plus d'informations](BUT.md).
Des formats de bulletins de notes adaptés seront proposés pour faciliter la
Des formats de bulletins de notes adaptés sont proposés pour faciliter la
compréhension des résultats par les étudiants et enseignants.
### ScoDoc et Pégase/PC-SCOL
@ -101,12 +102,20 @@ l'interfaçage des outils (via des API), qui a priori sera plus fluide et facile
entente.
### Feuille de route (roadmap)
Les prochaines versions de ScoDoc (*sous réserve !*):
Les prochaines versions de ScoDoc :
- ScoDoc 9.5 : début 2023
- Nouveau système de suivi de l'assiduité (absences, présences)
- ScoDoc 9.4 : prévue à l'automne 2022
- cas complexes posés par les BUT (parcours, tenue des jury)
- nouveaux documents
- ScoDoc 9.3 : prévue en mai 2022
- ScoDoc 9.3 : publiée en mai 2022
- tenue des jurys BUT et exports Apogée
- gestion des parcours (pour la mise en place des semestre)
- nouvelle API
- module "relations entreprises"
- ScoDoc 9.2 : publiée en avril 2022 nouvelles fonctionnalités liées au BUT

View File

@ -62,6 +62,8 @@ extra_javascript:
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
markdown_extensions:
- admonition
- pymdownx.details
- pymdownx.arithmatex:
generic: true
- footnotes