Projets de fin d'études LOG 792 / GTI 792 avec Professeur Michael McGuffin

Si vous faites un projet de LOG 792 / GTI 792 avec moi, les projets avec lesquels je pourrais vous aider le plus sont des projets touchant les interfaces utilisateurs et/ou la visualisation, ou peut-être des projets qui se concentrent sur un algorithme non-trivial (par exemple, un algorithme de calcul numérique, une simulation, un algorithme relié à l'intelligence artificielle, un algorithme génétique, un algorithme d'optimization, etc.). La liste ci-dessous donne quelques suggestions de sujets. D'autres sujets sont possibles, mais dans tous les cas c'est à vous de suggérer un projet et de vérifier avec moi si c'est acceptable.

Votre projet doit impliquer un travail de conception significatif (soit du côté interface utilisateur, ou bien du côté des algorithmes et des structures de données utilisés), et il faut prévoir un projet d'environ 135 heures (15 semaines x 9 heures/semaine, ou environ 3 semaines à temps plein).

Ce sera à vous de surveiller les dates limites pour les livrables associés avec le projet, et de gérer votre temps de façon appropriée.

Exemples de projets potentiels

Voici une liste de suggestions et d'exemples de projets pour vous inspirer.

Quelques resources de programmation des interfaces utilisateurs

Java

Petit tutoriel sur les applets Java

Exemples d'applets interactifs en Java

JOGL - permet d'utiliser le OpenGL à partir du Java, pour créer des interfaces 3D

Java3D - permet de monter des interfaces 3D en Java; c'est une alternative au OpenGL

JInput - permet d'utiliser, par exemple, deux souris en même temps comme dans une interface bimanuelle

Échantillon de code source:

SimplePaint (application de dessin)

C/C++

Conseils, et échantillon de code source, pour la programmation 3D en C++ avec OpenGL

Si vous avez besoin d'utiliser des images bitmaps dans votre interface, j'ai des routines C++ qui permettent de lire des images en format PPM / PGM / PBM

Des boîtes à outils d'interface ou de widgets: Qt (compatible avec le OpenGL), GLOW (utilise OpenGL), GLUI (utilise OpenGL). Notez que le Qt ne nécessite pas le OpenGL, et qu'il a des fonctionalités permettant d'afficher des pages web.

Python

Le Python représente un avancement technologique par rapport au Java semblable à l'avancement représenté par le Java par rapport au C++. Le Python a plusieurs libraries qui facilitent la création d'interfaces utilisateurs, la manipulation d'images, l'interaction avec les boîtes à courriels, etc. Si cela vous intéresse, je pourrais vous indiquer plus de resources et d'informations.