Commit 30d9c6863cdadd67a0993be9795325f0878c7dd9

Authored by jdequidt
1 parent c3bfddce

✚ ajout d'explications via une section annexe

Showing 1 changed file with 89 additions and 26 deletions   Show diff stats
1 # Tutorat de Programmation Avancée (IMA3 - 2017/2018) 1 # Tutorat de Programmation Avancée (IMA3 - 2017/2018)
2 2
3 -Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du 3 +Ce dépôt `GIT` contient le sujet et les données utiles pour la réalisation du
4 _petit_ projet du module de Programmation Avancée. 4 _petit_ projet du module de Programmation Avancée.
5 5
6 -> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets. 6 +> __Attention__: ce dépôt risque d'évoluer au cours de l'avancée des projets.
7 N'hésitez pas à le consulter régulièrement. 7 N'hésitez pas à le consulter régulièrement.
8 8
9 ## Résumé 9 ## Résumé
10 10
11 -L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en  
12 -cours de programmation avancée : structures de données complexes,  
13 -lecture / écriture de fichiers, compilation séparée et automatique, utilisation 11 +L'objectif de ce projet est de vérifier que vous maîtrisez les principes vus en
  12 +cours de programmation avancée : structures de données complexes,
  13 +lecture / écriture de fichiers, compilation séparée et automatique, utilisation
14 de gestionnaire de version... 14 de gestionnaire de version...
15 15
16 -Pour cela, le travail demandé est de réaliser une application qui permet 16 +Pour cela, le travail demandé est de réaliser une application qui permet
17 d'analyser les résultats d'une compétition sportive à laquelle ont participé plus 17 d'analyser les résultats d'une compétition sportive à laquelle ont participé plus
18 -de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un  
19 -certain nombre de requêtes (classement, recherche d'un club, du score d'un 18 +de 200 000 personnnes. Votre travail est de charger ce fichier pour effectuer un
  19 +certain nombre de requêtes (classement, recherche d'un club, du score d'un
20 athlète...) 20 athlète...)
21 21
22 ## Contexte 22 ## Contexte
23 23
24 -Le CrossFit est une méthode de conditionnement physique combine principalement  
25 -la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance.  
26 -Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé),  
27 -appelé ainsi parce qu'il mélange différentes activités physiques et sportives  
28 -préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous 24 +Le CrossFit est une méthode de conditionnement physique combine principalement
  25 +la force athlétique, l'haltérophilie, la gymnastique et les sports d'endurance.
  26 +Le mot CrossFit vient de Cross Fitness (en français, entraînement croisé),
  27 +appelé ainsi parce qu'il mélange différentes activités physiques et sportives
  28 +préexistantes (source [Wikipedia](https://fr.wikipedia.org/wiki/CrossFit)). Tous
29 les ans a lieu une compétition (Crossfit Games) ouverte à tous en utilisant un 29 les ans a lieu une compétition (Crossfit Games) ouverte à tous en utilisant un
30 -système de sélection en ligne. La première phase de cette compétition (les _Open_)  
31 -a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018. 30 +système de sélection en ligne. La première phase de cette compétition (les _Open_)
  31 +a lieu habituellement au mois de Mars et s'est donc terminée pour l'édition 2018.
32 Elle comporte 5 épreuves différentes qui sont utilisées pour calculer le score et 32 Elle comporte 5 épreuves différentes qui sont utilisées pour calculer le score et
33 -le classement global. Tous les résultats sont disponibles sur le site web  
34 -[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de  
35 -télécharger l'intégralité des résultats.  
36 -  
37 -Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui  
38 -est un format texte permettant de stocker des tableaux. Chaque ligne du fichier  
39 -correspond à une ligne du tableau et les différents éléments d'une ligne sont  
40 -séparés par un élément particulier (en général une virgule `,` mais d'autres sont  
41 -possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents 33 +le classement global. Tous les résultats sont disponibles sur le site web
  34 +[games.crossfit.com](https://games.crossfit.com/) et via une API qui permet de
  35 +télécharger l'intégralité des résultats.
  36 +
  37 +Les données sont stockées dans un fichier `CSV` (_comma-separated values_) qui
  38 +est un format texte permettant de stocker des tableaux. Chaque ligne du fichier
  39 +correspond à une ligne du tableau et les différents éléments d'une ligne sont
  40 +séparés par un élément particulier (en général une virgule `,` mais d'autres sont
  41 +possibles `\t`, `;`...). La première ligne sert à décrire le nom des différents
42 champs. Par exemple sur le fichier qui nous intéresse : 42 champs. Par exemple sur le fichier qui nous intéresse :
43 43
44 ~~~ 44 ~~~
@@ -48,5 +48,68 @@ athId,regId,divId,lastName,firstName,gender,age,weight,height,affiliateId,affili @@ -48,5 +48,68 @@ athId,regId,divId,lastName,firstName,gender,age,weight,height,affiliateId,affili
48 881332,17,1,Vinas,Tommy,M,21,200 lb,71 in,17152,Zero Machine CrossFit,212,3,14490000,449 reps,132,11100452,4:28,58,13650452,365 lb,22 48 881332,17,1,Vinas,Tommy,M,21,200 lb,71 in,17152,Zero Machine CrossFit,212,3,14490000,449 reps,132,11100452,4:28,58,13650452,365 lb,22
49 ~~~ 49 ~~~
50 50
51 -Le premier champ correspond à l'identifiant de l'athlète (`180541`), le  
52 -quatrième à son nom de famille `Vigneault`, le cinquième à son prénom `Alex`...  
53 \ No newline at end of file 51 \ No newline at end of file
  52 +Le premier champ correspond à l'identifiant de l'athlète (`180541`), le
  53 +quatrième à son nom de famille `Vigneault`, le cinquième à son prénom `Alex`... En ce qui concerne les champs après `overallRank` ils correspondent au nom de l'épreuve (`18.1` signifiant première épreuve de l'édition 2018). Comme pour toutes les éditions, il y a 5 épreuves par compétition. Pour plus de détails sur chacun des champs, vous pouvez consulter l'annexe
  54 +
  55 +## Annexe
  56 +
  57 +### Description des champs du tableau `CSV`
  58 +
  59 +- `athId` : identifiant de l'athlète [`entier`]
  60 +- `regId` : identifiant de la région du monde, voir [ici](https://games-support.crossfit.com/article/100-what-are-the-boundaries-of-the-crossfit-games-regions-what-states-countries-are-included-in-each) [`entier`]
  61 +- `divId` : la division de l'athlète (catégorie en fonction de l'âge) [`entier`]
  62 +- `lastName` : nom de famille [`chaîne de caractères`]
  63 +- `firstName` : prénom [`chaîne de caractères`]
  64 +- `gender` : genre (M ou F) [`caractère`]
  65 +- `age` : age [`entier`]
  66 +- `weight` : poids en livres (_lbs_) ou kilogrammes (_kg_) [`chaîne de caractères`]
  67 +- `height` : taille en pouces (_in_) ou centimètres (_cm_) [`chaîne de caractères`]
  68 +- `affiliateId` : identifiant de la salle où l'athlète est adhérent [`entier`]
  69 +- `affiliateName` : nom de la salle où l'athlète est adhérent [`chaîne de caractères`]
  70 +- `overallScore` : score global [`entier`]
  71 +- `overallRank` : rang dans le classement général [`entier`]
  72 +- `18.x score` : score de la __x__ ième épreuve [`entier`]
  73 +- `18.x scoreDisplay` : résultat de la __x__ ième épreuve, nombre de répétitions (_reps_) ou temps ou charge (_lbs_) [`chaîne de caractères`]
  74 +- `18.x rank` : classement de la __x__ ième épreuve [`entier`]
  75 +
  76 +### Détail des épreuves
  77 +
  78 +> A priori vous n'en avez pas besoin pour le sujet mais on ne sait jamais 😎
  79 +
  80 +- [Workout 18.1](https://games.crossfit.com/workouts/open/2018/1)
  81 +
  82 +~~~
  83 +Complete as many rounds as possible in 20 minutes of:
  84 +8 toes-to-bars
  85 +10 dumbbell hang clean and jerks
  86 +14-cal. row
  87 +~~~
  88 +
  89 +- [Workout 18.2](https://games.crossfit.com/workouts/open/2018/2)
  90 +
  91 +~~~
  92 +1-2-3-4-5-6-7-8-9-10 reps for time of:
  93 +Dumbbell squats
  94 +Bar-facing burpees
  95 +
  96 +Workout 18.2a
  97 +1-rep-max clean
  98 +
  99 +Time cap: 12 minutes to complete 18.2 AND 18.2a
  100 +~~~
  101 +
  102 +-- [Workout 18.3](https://games.crossfit.com/workouts/open/2018/3)
  103 +
  104 +~~~
  105 +2 rounds for time of:
  106 +100 double-unders
  107 +20 overhead squats
  108 +100 double-unders
  109 +12 ring muscle-ups
  110 +100 double-unders
  111 +20 dumbbell snatches
  112 +100 double-unders
  113 +12 bar muscle-ups
  114 +
  115 +Time cap: 14 minutes
  116 +~~~
54 \ No newline at end of file 117 \ No newline at end of file