Commit 67cec455c8d6793e6fed327fb621ce2cc5762d11
1 parent
678e756d8e
Exists in
master
Cleaner build
Showing 5 changed files with 86 additions and 80 deletions Side-by-side Diff
Makefile
View file @
67cec45
1 | -all: | |
2 | - ./script.sh | |
1 | +FORMATION=besançon2_CMI besançon2 besançon bordeaux dijon_EI dijon_MI grenoble lyon nancy rennes | |
2 | +DATA=$(addsuffix .csv, $(addprefix data/, ${FORMATION})) | |
3 | +CAT=$(addsuffix .cat, ${DATA}) | |
4 | + | |
5 | +all: www/programme.html | |
6 | +%.cat: % | |
7 | + ./parse.sh $< | |
8 | +www/programme.html: www/programme.template ${CAT} | |
9 | + ./build.sh | |
3 | 10 | deploy: |
4 | 11 | scp -r www/* lccanon@lifc-home.univ-fcomte.fr:public_html/ |
5 | 12 | clean: |
6 | - -rm data/*.cat data/*.theme data/theme.txt www/programme.html 2> /dev/null | |
13 | + -rm ${CAT} data/*.theme data/csv.cat data/csv.theme data/theme.txt www/programme.html 2> /dev/null |
build.sh
View file @
67cec45
1 | +#! /bin/bash | |
2 | + | |
3 | +# Generate web page with graphical results | |
4 | + | |
5 | +cp www/programme.template www/programme.html | |
6 | + | |
7 | +IFS=$'\n' | |
8 | +for FILE in $(ls -1 data) | |
9 | +do | |
10 | + if [ $(grep "\[$FILE\]" www/programme.html | tr -d '\n') ] | |
11 | + then | |
12 | + sed -i "s/\[$FILE\]/[$(head -c -1 -q data/$FILE)]/g" www/programme.html | |
13 | + fi | |
14 | +done |
parse.sh
View file @
67cec45
1 | +#! /bin/bash | |
2 | + | |
3 | +cut -d ";" -f 4 data/*.csv | sort | uniq > data/theme.txt | |
4 | + | |
5 | +THEMES=$(cat data/theme.txt | tr "\n" ",") | |
6 | +CATEGORIES=$(grep -o -E "^[^(]*" categorie.txt | sed "s/ $//" | tr "\n" ",") | |
7 | +THEMES=$(echo $THEMES | sed "s/,/\",\"/g" | sed "s/^/\"/" | sed "s/,\"$//") | |
8 | +CATEGORIES=$(echo $CATEGORIES | sed "s/,/\",\"/g" | sed "s/^/\"/" | sed "s/,\"$//") | |
9 | + | |
10 | +echo $THEMES > data/csv.theme | |
11 | +echo $CATEGORIES > data/csv.cat | |
12 | + | |
13 | +FORMATION=$1 | |
14 | +echo -n $FORMATION | |
15 | + | |
16 | +echo -n -e " (" | |
17 | +echo -n $(cut -d ";" -f 3 $FORMATION | paste -sd+ | bc) | |
18 | +echo " ECTS)" | |
19 | + | |
20 | +> $FORMATION.theme | |
21 | +> $FORMATION.cat | |
22 | + | |
23 | +echo -e "\tPar thème" | |
24 | + | |
25 | +IFS='' | |
26 | +cat data/theme.txt | | |
27 | +while read THEME | |
28 | +do | |
29 | + echo -n -e "\t\t$THEME " | |
30 | + ECTS=$(grep $THEME$ $FORMATION | cut -d ";" -f 3) | |
31 | + if [[ -z "$ECTS" ]] | |
32 | + then | |
33 | + ECTS=0 | |
34 | + fi | |
35 | + ECTS=$(echo $ECTS | tr ' ' '\n' | paste -sd+ | bc) | |
36 | + THEMES_ECTS=$THEMES_ECTS,$ECTS | |
37 | + echo -n "$ECTS," >> $FORMATION.theme | |
38 | + echo $ECTS | |
39 | +done | |
40 | +sed -i "s/,$/\n/" $FORMATION.theme | |
41 | + | |
42 | +echo -e "\tPar catégorie" | |
43 | + | |
44 | +IFS='' | |
45 | +cat categorie.txt | | |
46 | +while read CAT | |
47 | +do | |
48 | + CATEGORIE=$(echo $CAT | grep -o -E "^[^(]*") | |
49 | + PATT=$(echo $CAT | grep -o "(.*)") | |
50 | + echo -n -e "\t\t$CATEGORIE" | |
51 | + ECTS=$(grep -E $PATT$ $FORMATION | cut -d ";" -f 3 | paste -sd+ | bc) | |
52 | + echo -n "$ECTS," >> $FORMATION.cat | |
53 | + echo $ECTS | |
54 | +done | |
55 | +sed -i "s/,$/\n/" $FORMATION.cat |
script.sh
View file @
67cec45
1 | -#! /bin/bash | |
2 | - | |
3 | -cut -d ";" -f 4 data/*.csv | sort | uniq > data/theme.txt | |
4 | - | |
5 | -THEMES=$(cat data/theme.txt | tr "\n" ",") | |
6 | -CATEGORIES=$(grep -o -E "^[^(]*" categorie.txt | sed "s/ $//" | tr "\n" ",") | |
7 | -THEMES=$(echo $THEMES | sed "s/,/\",\"/g" | sed "s/^/\"/" | sed "s/,\"$//") | |
8 | -CATEGORIES=$(echo $CATEGORIES | sed "s/,/\",\"/g" | sed "s/^/\"/" | sed "s/,\"$//") | |
9 | - | |
10 | -echo $THEMES > data/csv.theme | |
11 | -echo $CATEGORIES > data/csv.cat | |
12 | - | |
13 | -for FORMATION in $(ls data/*.csv) | |
14 | -do | |
15 | - echo -n $FORMATION | |
16 | - | |
17 | - echo -n -e " (" | |
18 | - echo -n $(cut -d ";" -f 3 $FORMATION | paste -sd+ | bc) | |
19 | - echo " ECTS)" | |
20 | - | |
21 | - > $FORMATION.theme | |
22 | - > $FORMATION.cat | |
23 | - | |
24 | - echo -e "\tPar thème" | |
25 | - | |
26 | - IFS='' | |
27 | - cat data/theme.txt | | |
28 | - while read THEME | |
29 | - do | |
30 | - echo -n -e "\t\t$THEME " | |
31 | - ECTS=$(grep $THEME$ $FORMATION | cut -d ";" -f 3) | |
32 | - if [[ -z "$ECTS" ]] | |
33 | - then | |
34 | - ECTS=0 | |
35 | - fi | |
36 | - ECTS=$(echo $ECTS | tr ' ' '\n' | paste -sd+ | bc) | |
37 | - THEMES_ECTS=$THEMES_ECTS,$ECTS | |
38 | - echo -n "$ECTS," >> $FORMATION.theme | |
39 | - echo $ECTS | |
40 | - done | |
41 | - sed -i "s/,$/\n/" $FORMATION.theme | |
42 | - | |
43 | - echo -e "\tPar catégorie" | |
44 | - | |
45 | - IFS='' | |
46 | - cat categorie.txt | | |
47 | - while read CAT | |
48 | - do | |
49 | - CATEGORIE=$(echo $CAT | grep -o -E "^[^(]*") | |
50 | - PATT=$(echo $CAT | grep -o "(.*)") | |
51 | - echo -n -e "\t\t$CATEGORIE" | |
52 | - ECTS=$(grep -E $PATT$ $FORMATION | cut -d ";" -f 3 | paste -sd+ | bc) | |
53 | - echo -n "$ECTS," >> $FORMATION.cat | |
54 | - echo $ECTS | |
55 | - done | |
56 | - sed -i "s/,$/\n/" $FORMATION.cat | |
57 | -done | |
58 | - | |
59 | - | |
60 | -# Generate web page with graphical results | |
61 | - | |
62 | -cp www/programme.template www/programme.html | |
63 | - | |
64 | -IFS=$'\n' | |
65 | -for FILE in $(ls -1 data) | |
66 | -do | |
67 | - if [ $(grep "\[$FILE\]" www/programme.html | tr -d '\n') ] | |
68 | - then | |
69 | - sed -i "s/\[$FILE\]/[$(head -c -1 -q data/$FILE)]/g" www/programme.html | |
70 | - fi | |
71 | -done |
www/programme.template
View file @
67cec45
... | ... | @@ -8,10 +8,11 @@ |
8 | 8 | <meta charset="utf-8"> |
9 | 9 | </head> |
10 | 10 | <body> |
11 | - <h1>Objectifs</h1> | |
11 | + <h1>Comparaison des licences informatiques</h1> | |
12 | + <h2>Objectifs</h2> | |
12 | 13 | <p>L'analyse suivante compare le programme de plusieurs licences d'informatique. Il s'agit d'une approche quantitative qui mérite d'être améliorée (n'hésitez pas à me transmettre vos suggestions). L'objectif est d'identifier les lacunes que pourraient avoir nos étudiants qui intègrent d'autres masters qui correspondent mieux à leur projet, mais aussi les lacunes des étudiants extérieurs intégrant le M1.</p> |
13 | 14 | |
14 | - <h1>Protocole</h1> | |
15 | + <h2>Protocole</h2> | |
15 | 16 | <p>Pour chaque formation, un thème a été associé à chaque enseignement ("compilation" par exemple), puis ces thèmes ont été regroupés dans des catégories plus larges de la façon suivante (chaque ligne correspond à une catégorie, les thèmes sont entre parenthèse) : |
16 | 17 | <ul> |
17 | 18 | <li>Algorithmique (algorithmique)</li> |
18 | 19 | |
... | ... | @@ -27,10 +28,10 @@ |
27 | 28 | <p>Cette classification s'inspire de celle de Dowek (Algorithmique, Machine, Langage, Information).</p> |
28 | 29 | <p>Le nombre total d'ECTS attribué à chaque thème et à chaque catégorie a ensuite été calculé pour chaque formation.</p> |
29 | 30 | |
30 | - <h1>Limites de l'approche</h1> | |
31 | + <h2>Limites de l'approche</h2> | |
31 | 32 | <p>Cette approche est limitée par la présence des options, le manque d'information (nombre d'ECTS ou contenu exact), l'orientation pluri-disciplinaire de certaines licences (mathématiques, électronique, ...), une catégorisation imparfaite (pour sécurité et graphique notamment) et une comparaison uniquement quantitative.</p> |
32 | 33 | |
33 | - <h1>Résultats</h1> | |
34 | + <h2>Résultats</h2> | |
34 | 35 | <p>Les formations considérées (dans le même ordre que sur les figures) : Besançon (181), Bordeaux 1 (180), Dijon EI (180), Dijon MI (180), Grenoble 1 (180), Lyon 1 (186), Nancy 1 (180) et Rennes 1 (177). Le nombre en parenthèse correspond au nombre d'ECTS total de la formation.</p> |
35 | 36 | |
36 | 37 | <canvas id="canvas1" height="600" width="1200"></canvas> |
... | ... | @@ -42,7 +43,7 @@ |
42 | 43 | |
43 | 44 | <p>L'hétérogénéité précédente est lissé avec les catégories plus larges. Les constats sont les mêmes : moins d'algorithmique et de mathématiques et plus d'information et de science que toutes les autres licences.</p> |
44 | 45 | |
45 | - <h1>Évolution avec le CMI</h1> | |
46 | + <h2>Évolution avec le CMI</h2> | |
46 | 47 | |
47 | 48 | <p>Pour faciliter la lecture, voici un focus sur les formations les plus comparables (c'est-à-dire avec le moins de mathématiques) : Bordeaux 1, Nancy 1 et Rennes 1. La nouvelle licence non-CMI est rajoutée à droite (la licence actuelle étant toujours à gauche).</p> |
48 | 49 | |
... | ... | @@ -50,7 +51,7 @@ |
50 | 51 | |
51 | 52 | <p>Le nouveau programme rajoute des ECTS en Information au détriment de la Programmation.</p> |
52 | 53 | |
53 | - <h1>Perspectives</h1> | |
54 | + <h2>Perspectives</h2> | |
54 | 55 | |
55 | 56 | <p>Ces données suggèrent qu'il serait pertinent de rajouter 3 à 6 ECTS pour de l'algorithmique (le sujet est vaste) et autant pour les mathématiques (des choses spécifiques à la sécurité ou au graphisme par exemple) en prenant si besoin sur les catégories Information et Science.</p> |
56 | 57 |