diff --git a/Makefile b/Makefile
index aabee3a20e5138705ba76afe0f01ff81f3b29aa9..4c3c6d47e17877f8069261ef01593b27afede346 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@ index.html: index.md Makefile
 	pandoc -o $@ $< -t html5 --css css/tufte-css/tufte.css -s
 
 deploy: all
+	make -C archives
 	mkdir -p site
 	cp index.html site/
 	cp -r css site/
diff --git a/archives/Makefile b/archives/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6e536085b6c92d6db1dbf40e44f7ee8cb73689a4
--- /dev/null
+++ b/archives/Makefile
@@ -0,0 +1,16 @@
+all: index.html 
+
+index.html: index.md Makefile
+	pandoc -o $@ $< -t html5 --css ../css/tufte-css/tufte.css -s
+
+deploy: all
+	make -C archives
+	mkdir -p site
+	cp index.html site/
+	cp -r css site/
+
+update:
+	git submodule foreach 'git pull origin master || true'
+
+clean:
+	rm -rf index.html
diff --git a/archives/index.md b/archives/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..cc926340d265a0e0b13c5fb492bc35756a1b6381
--- /dev/null
+++ b/archives/index.md
@@ -0,0 +1,81 @@
+# Cours d'années précédentes
+
+# Mathématiques en technologie de l'information
+
+##  [Polycopié](mti/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info), [pdf](mti/cours.pdf)
+
+##  [Travail pratique: optimisation](mti/tpOptimisation/index.html), [git repo](https://gitedu.hesge.ch/orestis.malaspin/math_tech_info/-/tree/master/travaux_pratiques/tpOptimisation), [pdf](mti/tpOptimisation/tpOptimisation.pdf)
+
+##  [Travail pratique: intégrales](mti/tpIntegrales/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info/-/tree/master/travaux_pratiques/tpIntegrales), [pdf](mti/tpIntegrales/tp_integrales_conv.pdf)
+
+##  [Travail pratique: EDO](mti/tpEdo/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info/tree/master/tpEdo), [pdf](mti/tpEdo/tpEquadiffs.pdf)
+
+# Programmation concurrente (2019-2020)
+
+## [Polycopié](concurrence/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/cours_prog_conc)
+
+# Exercices de programmation concurrente
+
+## TP1: L'ensemble de Julia [PDF](tp_concurrence/julia.pdf), [HTML](tp_concurrence/julia.html)
+
+## TP2: Les threads et verrous [PDF](tp_concurrence/threads.pdf), [HTML](tp_concurrence/threads.html)
+
+## TP3: Structures de données concurrentes [PDF](tp_concurrence/synchro.pdf), [HTML](tp_concurrence/synchro.html)
+
+## TP4: File et workflow [PDF](tp_concurrence/file_workflow.pdf), [HTML](tp_concurrence/file_workflow.html)
+
+## TP5: Variables de condition [PDF](tp_concurrence/variables_condition.pdf), [HTML](tp_concurrence/variables_condition.html)
+
+## Projet: Asteroids [PDF](tp_concurrence/asteroids.pdf), [HTML](tp_concurrence/asteroids.html)
+
+## TP6: Sémaphores [PDF](tp_concurrence/semaphores.pdf), [HTML](tp_concurrence/semaphores.html)
+
+## Projet: Asteroids concurrents [PDF](tp_concurrence/multithreaded_asteroids.pdf), [HTML](tp_concurrence/multithreaded_asteroids.html)
+
+## [Programmation séquentielle en Rust](prog_seq/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/rust)
+
+# Anciens exercices en C (2019-20)
+
+## Tableaux unidimensionnels, [HTML](prog_seq_c_tp/tableaux_unidimensionnels/index.html), [PDF](prog_seq_c_tp/tableaux_unidimensionnels/tableaux_unidimensionnels.pdf), [GFX](prog_seq_c_tp/tableaux_unidimensionnels/gfx_example.tar.gz)
+
+## Les matrices, [HTML](prog_seq_c_tp/matrices_intro/index.html), [PDF](prog_seq_c_tp/matrices_intro/matrices_intro.pdf)
+
+## Les chaînes de caractères, [HTML](prog_seq_c_tp/chaines_caracteres/index.html), [PDF](prog_seq_c_tp/chaines_caracteres/chaines_caracteres.pdf)
+
+## Traitement d'images, [HTML](prog_seq_c_tp/transformations/index.html), [PDF](prog_seq_c_tp/transformations/transformations.pdf)
+
+## Vector, [HTML](prog_seq_c_tp/vector/index.html), [PDF](prog_seq_c_tp/vector/vector.pdf)
+
+## Fichier LAS, [HTML](prog_seq_c_tp/lidar/index.html), [PDF](prog_seq_c_tp/lidar/read.pdf)
+
+## Fichier STL, [HTML](prog_seq_c_tp/stl/index.html), [PDF](prog_seq_c_tp/stl/stl.pdf)
+
+## List-Vector, [HTML](prog_seq_c_tp/lst_vector/index.html), [PDF](prog_seq_c_tp/lst_vector/linked_vector.pdf)
+
+## Delaunay, [HTML](prog_seq_c_tp/delaunay/index.html), [PDF](prog_seq_c_tp/delaunay/delaunay.pdf)
+
+## TP noté 2: triangulation, [HTML](prog_seq_c_tp/lidar_triangulation/index.html), [PDF](prog_seq_c_tp/lidar_triangulation/triangulation.pdf)
+
+## Code Morse, [HTML](prog_seq_c_tp/morse/index.html), [PDF](prog_seq_c_tp/morse/morse.pdf)
+
+## Arbres quaternaires, [HTML](prog_seq_c_tp/quadtree/index.html), [PDF](prog_seq_c_tp/quadtree/quadtree.pdf)
+
+## File de priorité, [HTML](prog_seq_c_tp/priority_queue/index.html), [PDF](prog_seq_c_tp/priority_queue/linked_list.pdf)
+
+## Graphes, [HTML](prog_seq_c_tp/shortest_path/graphes.html), [PDF](prog_seq_c_tp/shortest_path/graphes.pdf), [xml_parser.h](prog_seq_c_tp/shortest_path/xml_parser.h), [xml_parser.c](prog_seq_c_tp/shortest_path/xml_parser.c), [main.c](prog_seq_c_tp/shortest_path/main.c), [villes.xml](prog_seq_c_tp/shortest_path/villes.xml), [suisse.txt](prog_seq_c_tp/shortest_path/suisse.txt)
+
+## Floyd-Dijkstra, [HTML](prog_seq_c_tp/shortest_path/df.html), [PDF](prog_seq_c_tp/shortest_path/df.pdf), [squelette.c](prog_seq_c_tp/shortest_path/squelette/c/main.c), [Makefile](prog_seq_c_tp/shortest_path/squelette/c/Makefile), [commandes_a_tester.txt](prog_seq_c_tp/shortest_path/squelette/commandes_de_test/cmd_a_tester.txt), [output](prog_seq_c_tp/shortest_path/squelette/results_out/output)
+
+## Tests, [HTML](prog_seq_c_tp/shortest_path/test.html), [PDF](prog_seq_c_tp/shortest_path/test.pdf)
+
+# Exercices programmation séquentielle en Rust (2018-19)
+
+## TP1 Rust: Nombre secret, [HTML](prog_seq/exercices/01_nombre_secret/), [PDF](prog_seq/exercices/01_nombre_secret/index.pdf)
+## TP2 Rust: Calcul de $\pi$, [HTML](prog_seq/exercices/02_calcul_pi/), [PDF](prog_seq/exercices/02_calcul_pi/index.pdf)
+## TP3 Rust: Tableaux, [HTML](prog_seq/exercices/03_tableaux/), [PDF](prog_seq/exercices/03_tableaux/index.pdf)
+## TP4 Rust: Couverture de la reine, [HTML](prog_seq/exercices/04_reine/), [PDF](prog_seq/exercices/04_reine/index.pdf)
+## TP5 Rust: Puissance 4, [HTML](prog_seq/exercices/05_puissance4/), [PDF](prog_seq/exercices/05_puissance4/index.pdf)
+## TP6 Rust: Listes, [HTML](prog_seq/exercices/06_listes/), [PDF](prog_seq/exercices/06_listes/index.pdf)
+## TP7 Rust: Reed-Solomon, [HTML](prog_seq/exercices/07_reed_solomon/index.html), [PDF](prog_seq/exercices/07_reed_solomon/index.pdf)
+## TP8 Rust: Transformation d'images, [HTML](prog_seq/exercices/08_transformation_images/index.html), [PDF](prog_seq/exercices/08_transformation_images/index.pdf)
+## TP9 Rust: Problème du voyageur de commerce, [HTML](prog_seq/exercices/09_voyageur_commerce/index.html), [PDF](prog_seq/exercices/09_voyageur_commerce/index.pdf)
diff --git a/index.md b/index.md
index f31030b317b1239d832fb367eea0ab61809c7676..02a4795718b2c89ee96b0543c82cf19b4dd2e6d1 100644
--- a/index.md
+++ b/index.md
@@ -129,84 +129,5 @@ Chaîne *BBB* du cours  <https://bbb.hesge.ch/b/ore-tsc-9g8-sbm>
 ### [T. Ibanez, Astéroides avec algorithme génétique](https://sitehepia.hesge.ch/diplome/ITI/2018/documents/Ibanez-11), [video](https://dai.ly/x6tosqh)
 ### [N. Nufer, Construction d'un agent joueur par apprentissage par renforcement](https://sitehepia.hesge.ch/diplome/ITI/2018/documents/Nufer-18), [video](https://dai.ly/x6tosqg)
 
-# Cours d'années précédentes
+# [Cours archivés (Prog. Concurrente, Rust, Maths)](archives/index.html)
 
-# Mathématiques en technologie de l'information
-
-##  [Polycopié](mti/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info), [pdf](mti/cours.pdf)
-
-##  [Travail pratique: optimisation](mti/tpOptimisation/index.html), [git repo](https://gitedu.hesge.ch/orestis.malaspin/math_tech_info/-/tree/master/travaux_pratiques/tpOptimisation), [pdf](mti/tpOptimisation/tpOptimisation.pdf)
-
-##  [Travail pratique: intégrales](mti/tpIntegrales/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info/-/tree/master/travaux_pratiques/tpIntegrales), [pdf](mti/tpIntegrales/tp_integrales_conv.pdf)
-
-##  [Travail pratique: EDO](mti/tpEdo/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/math_tech_info/tree/master/tpEdo), [pdf](mti/tpEdo/tpEquadiffs.pdf)
-
-# Programmation concurrente (2019-2020)
-
-## [Polycopié](concurrence/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/cours_prog_conc)
-
-# Exercices de programmation concurrente
-
-## TP1: L'ensemble de Julia [PDF](tp_concurrence/julia.pdf), [HTML](tp_concurrence/julia.html)
-
-## TP2: Les threads et verrous [PDF](tp_concurrence/threads.pdf), [HTML](tp_concurrence/threads.html)
-
-## TP3: Structures de données concurrentes [PDF](tp_concurrence/synchro.pdf), [HTML](tp_concurrence/synchro.html)
-
-## TP4: File et workflow [PDF](tp_concurrence/file_workflow.pdf), [HTML](tp_concurrence/file_workflow.html)
-
-## TP5: Variables de condition [PDF](tp_concurrence/variables_condition.pdf), [HTML](tp_concurrence/variables_condition.html)
-
-## Projet: Asteroids [PDF](tp_concurrence/asteroids.pdf), [HTML](tp_concurrence/asteroids.html)
-
-## TP6: Sémaphores [PDF](tp_concurrence/semaphores.pdf), [HTML](tp_concurrence/semaphores.html)
-
-## Projet: Asteroids concurrents [PDF](tp_concurrence/multithreaded_asteroids.pdf), [HTML](tp_concurrence/multithreaded_asteroids.html)
-
-## [Programmation séquentielle en Rust](prog_seq/index.html), [git repo](https://githepia.hesge.ch/orestis.malaspin/rust)
-
-# Anciens exercices en C (2019-20)
-
-## Tableaux unidimensionnels, [HTML](prog_seq_c_tp/tableaux_unidimensionnels/index.html), [PDF](prog_seq_c_tp/tableaux_unidimensionnels/tableaux_unidimensionnels.pdf), [GFX](prog_seq_c_tp/tableaux_unidimensionnels/gfx_example.tar.gz)
-
-## Les matrices, [HTML](prog_seq_c_tp/matrices_intro/index.html), [PDF](prog_seq_c_tp/matrices_intro/matrices_intro.pdf)
-
-## Les chaînes de caractères, [HTML](prog_seq_c_tp/chaines_caracteres/index.html), [PDF](prog_seq_c_tp/chaines_caracteres/chaines_caracteres.pdf)
-
-## Traitement d'images, [HTML](prog_seq_c_tp/transformations/index.html), [PDF](prog_seq_c_tp/transformations/transformations.pdf)
-
-## Vector, [HTML](prog_seq_c_tp/vector/index.html), [PDF](prog_seq_c_tp/vector/vector.pdf)
-
-## Fichier LAS, [HTML](prog_seq_c_tp/lidar/index.html), [PDF](prog_seq_c_tp/lidar/read.pdf)
-
-## Fichier STL, [HTML](prog_seq_c_tp/stl/index.html), [PDF](prog_seq_c_tp/stl/stl.pdf)
-
-## List-Vector, [HTML](prog_seq_c_tp/lst_vector/index.html), [PDF](prog_seq_c_tp/lst_vector/linked_vector.pdf)
-
-## Delaunay, [HTML](prog_seq_c_tp/delaunay/index.html), [PDF](prog_seq_c_tp/delaunay/delaunay.pdf)
-
-## TP noté 2: triangulation, [HTML](prog_seq_c_tp/lidar_triangulation/index.html), [PDF](prog_seq_c_tp/lidar_triangulation/triangulation.pdf)
-
-## Code Morse, [HTML](prog_seq_c_tp/morse/index.html), [PDF](prog_seq_c_tp/morse/morse.pdf)
-
-## Arbres quaternaires, [HTML](prog_seq_c_tp/quadtree/index.html), [PDF](prog_seq_c_tp/quadtree/quadtree.pdf)
-
-## File de priorité, [HTML](prog_seq_c_tp/priority_queue/index.html), [PDF](prog_seq_c_tp/priority_queue/linked_list.pdf)
-
-## Graphes, [HTML](prog_seq_c_tp/shortest_path/graphes.html), [PDF](prog_seq_c_tp/shortest_path/graphes.pdf), [xml_parser.h](prog_seq_c_tp/shortest_path/xml_parser.h), [xml_parser.c](prog_seq_c_tp/shortest_path/xml_parser.c), [main.c](prog_seq_c_tp/shortest_path/main.c), [villes.xml](prog_seq_c_tp/shortest_path/villes.xml), [suisse.txt](prog_seq_c_tp/shortest_path/suisse.txt)
-
-## Floyd-Dijkstra, [HTML](prog_seq_c_tp/shortest_path/df.html), [PDF](prog_seq_c_tp/shortest_path/df.pdf), [squelette.c](prog_seq_c_tp/shortest_path/squelette/c/main.c), [Makefile](prog_seq_c_tp/shortest_path/squelette/c/Makefile), [commandes_a_tester.txt](prog_seq_c_tp/shortest_path/squelette/commandes_de_test/cmd_a_tester.txt), [output](prog_seq_c_tp/shortest_path/squelette/results_out/output)
-
-## Tests, [HTML](prog_seq_c_tp/shortest_path/test.html), [PDF](prog_seq_c_tp/shortest_path/test.pdf)
-
-# Exercices programmation séquentielle en Rust (2018-19)
-
-## TP1 Rust: Nombre secret, [HTML](prog_seq/exercices/01_nombre_secret/), [PDF](prog_seq/exercices/01_nombre_secret/index.pdf)
-## TP2 Rust: Calcul de $\pi$, [HTML](prog_seq/exercices/02_calcul_pi/), [PDF](prog_seq/exercices/02_calcul_pi/index.pdf)
-## TP3 Rust: Tableaux, [HTML](prog_seq/exercices/03_tableaux/), [PDF](prog_seq/exercices/03_tableaux/index.pdf)
-## TP4 Rust: Couverture de la reine, [HTML](prog_seq/exercices/04_reine/), [PDF](prog_seq/exercices/04_reine/index.pdf)
-## TP5 Rust: Puissance 4, [HTML](prog_seq/exercices/05_puissance4/), [PDF](prog_seq/exercices/05_puissance4/index.pdf)
-## TP6 Rust: Listes, [HTML](prog_seq/exercices/06_listes/), [PDF](prog_seq/exercices/06_listes/index.pdf)
-## TP7 Rust: Reed-Solomon, [HTML](prog_seq/exercices/07_reed_solomon/index.html), [PDF](prog_seq/exercices/07_reed_solomon/index.pdf)
-## TP8 Rust: Transformation d'images, [HTML](prog_seq/exercices/08_transformation_images/index.html), [PDF](prog_seq/exercices/08_transformation_images/index.pdf)
-## TP9 Rust: Problème du voyageur de commerce, [HTML](prog_seq/exercices/09_voyageur_commerce/index.html), [PDF](prog_seq/exercices/09_voyageur_commerce/index.pdf)