TEB

Suivi et organisation des travaux d'études bibliographiques.

Organisation

Suivi

Il y a six rendez-vous de suivi obligatoires, les mercredi, à partir de 17h pour les groupes 1, 2 et 3 et les vendredi à partir de 13h30 pour les groupes 4, 5, et 6. D'autres rendez-vous peuvent être organisés en plus à la demande des étudiants. L'organisation des rendez-vous peut éventuellement changer selon les disponibilités de chacuns.

Dates importantes

Contrôle des connaissances

Le contrôle des connaissances est assuré par un rapport d'une quinzaine de pages reprenant l'ensemble des travaux effectués lors des TEB et par une présentation de 15 minutes.

Les étudiants (UPVD et IMERIR) ayant trouvé un stage ne sont pas tenus d'effectuer les TEB. Ils devront néanmoins fournir un rapport d'une quinzaine de pages sur le travail effectué durant leur stage. De plus, ils devront effectuer une présentation de ce travail.

Groupes

UPVDIMERIRSujet
1 ...
Ahmed El Moden
Optimisation de code pour les performances
2 ...
Corentin Plas
L-Système
3 Ghada Ben Aissa
...
Structures de données
4 Quentin Gravelines
Adrien Van Der Wende
Arithmétique d'intervalles
5 Mayssa Abdelli
...
Algorithmes de tri
6 Maxime Colinet
...
Algorithmes / Théorie des graphes
7 Oumayma Sassi
...
Calcul parallèle
8 Abdessamad El Idrissi
...
Arithmétique flottante : algorithmes de sommation précis
9 ...
Maxime Vassas
Méta-heuristiques
... ...
......
  1. Étudiants en stage (IMERIR): Laura Bergoens, Quentin Boisseau, Ahmed El Moden, Benjamin Calmette, Gael Hauspie, Thomas Chambard.
  2. Étudiants en stage (UPVD): Anissa Ben Jannet, Salim Aissaoui Tlemcani.

Sujets

  1. Algorithmes de tri : Vous devrez effectuer une recherche bibliographique sur cette famille d'algorithme. Vous devrez ensuite en implémenter trois d'entre eux afin d'effectuer des mesures de performances pour les comparer à ce que vous trouverez dans la littérature. Le choix du langage de programmation est libre.
  2. Arithmétique d'intervalles : Vous devrez effectuer une recherche bibliographique sur l'arithmétique d'intervalles. Vous devrez listez l'ensemble des opérations possible dans cette arithmétique et mettre en évidence les différences (avantages et inconvénients) de cette arithmétique par rapport à l'arithmétique élémentaire. La partie développement consistera au développement d'une librairie de calcul par intervalles. Langage conseillé : C.
  3. Structures de données : Vous devrez effectuer une recherche bibliographique sur les structures de données (table de hachage, arbre binaires, ...). Vous devrez ensuite comparer ces différentes structures de données, à travers une implémentation, afin d'en comparer les performances pour des problèmes donnés. Le choix du langage de programmation est libre.
  4. Algorithmes / Théorie des graphes : Vous devrez effectuer une recherche bibliographique sur cette famille d'algorithme. Vous devrez ensuite choisir un problème particulier qui a été résolu grâce à l'un de ces algorithmes pour en proposer une implémentation. Le développement d'une interface graphique peut être envisagée. Langage conseillé : Python si interface graphique via Tkinter ou C.
  5. L-Système : Vous devrez effectuer une recherche bibliographique sur les L-Système et les grammaires formelles. Ce sujet reprend une idée développée en théorie des langages et compilation (L2). Vous devrez ensuite implémenter, via une interface graphique paramétrable un des L-Systèmes rencontré lors de votre recherche. Langage conseillé : Python avec une interface graphique avec Tkinter.
  6. Méta-heuristiques : Vous devrez effectuer une recherche bibliographique sur les méta-heuristiques. Vous devrez ensuite choisir un problème particulier pour en proposer une implémentation. Le choix du langage de programmation est libre.
  7. Arithmétique flottante : calcul multi-précision : Vous devrez effectuer une recherche bibliographique sur le calcul multi-précision de l'arithmétique flottante. Vous devrez ensuite comparer les différentes méthodes sélectionnées lors de votre recherche pour les comparer en terme de précision et de performances. Des algorithmes à étudier vous seront proposés. Le choix du langage de programmation sera dictée par les outils sélectionnés.
  8. Arithmétique flottante : algorithmes de sommation précis : Ce sujet reprend l'idée de sujet précédent mais ce concentre essentiellement sur des algorithmes de sommation pour lesquels de nombreux algorithmes précis existent. L'implémentation consiste ici à comparer quelques-uns de ces algorithmes. Le choix du langage de programmation est libre.
  9. Arithmétique fixe : Vous devrez effectuer une recherche bibliographique sur l'arithmétique fixe. Vous devrez ensuite proposer une implémentation d'un algorithme simple en arithmétique fixe. Vous comparerez ensuite ses performances et sa précision par rapport à l'algorithme en arithmétique flottante. Langage conseillé : C.
  10. Mesure de temps d'exécution : Vous devrez effectuer une recherche bibliographique sur les méthodes de mesures de temps d'exécution. Vous devrez ensuite comparer les mesures des différents outils rencontrés pendant votre recherche et tenter de distinguer les avantages et inconvénients de chacun. Le choix du langage de programmation sera dictée par les outils sélectionnés.
  11. Calcul parallèle : Vous devrez effectuer une recherche bibliographique sur le calcul parallèle. Vous devrez ensuite comparer les performances d'un algorithme simple, entre sa version séquentielle, et les différentes versions parallèles retenues. Une partie de développement de ce projet peut se faire sur carte graphique. Le choix du langage de programmation est libre, mais CUDA est conseillé si programmation sur GPU.
  12. Optimisation de code pour les performances : Vous devrez effectuer une recherche bibliographique sur l'optimisation de code pour les performances (plus particulièrement les transformations de boucle, le tiling, ...). Vous devrez ensuite proposer une implémentation de ces différentes méthodes pour enfin comparer leurs performances. Langage conseillé : C.