Projet de programmation par contraintes

scala-weblog-post

La programmation par contraintes était quelque chose de totalement obscure avant mon cours de « Programmation Fonctionnelle, Logique et par Contraintes ». Grâce à l’apprentissage d’un nouveau langage, Scala, d’une nouvelle librairie, JaCoP, et du cours donné durant ma 3ème année à l’Institut Paul Lambin, j’ai pu effleurer les possibilités de cette façon de programmer.

J’ai éprouvé beaucoup de difficultés pour mener à bien ce projet pour la simple raison qu’il s’agit d’une manière totalement différente de ma programmation habituelle, presque révolutionnaire vu le nombre de lignes minimes pour un travail aussi énorme mais vraiment tordue :).

Il m’a été demandé de programmer un générateur d’horaires en tenant compte qu’il fallait :

  • 2 séries minimum
  • 2 locaux minimum
  • Remplir toute une semaine de cours pour les 2 locaux
  • Assez de professeurs et de cours pour les remplir

Une tâche quand même ardue compte tenu du fait que nous n’avons pas eu de cours théorique. Nous devions nous documenter par nos propres moyens via la documentation de Scala et la documentation de JaCoP.

Un aperçu est disponible à la suite de ce billet, le rapport qui m’a été demandé et les sources du projet :

Projet de programmation graphique Pacman

PACMAN_xlarge

La création de jeux vidéo est le doux rêve de tous les futurs programmeurs. Ceux qui pensent qu’ils vont directement faire des « trucs cools » et programmer le nouveau jeu qui va révolutionner le genre parce qu’ils ont « l’idée ».

Ils ont peut-être « l’idée » (qui sait) mais pour le reste, ils sont bien loin de la vérité. Il m’a fallu attendre ma 3ème année, dans le cadre du module de programmation graphique, avant de pouvoir réaliser un pacman en 2D et 3D par groupe de 2 constitué de Kévin Moulart et moi-même.

Ceci étant dit, la réalisation de ce projet a été vraiment très productif. Cela m’a permit d’apprendre le C++ et la programmatin graphique avec OpenGL et GLUT (il faut donc avoir installé ces librairies pour faire tourner l’application). Ainsi que de coder au moyen de différents patterns dans le but de rendre un code clair et bien structuré.

Plusieurs aperçus sont disponibles à la suite de ce billet, la faible analyse qui m’a été demandé et les sources du projet :

Projet d’Application Orientée Objet

Une PAOO

En 2ème année à l’Institut Paul Lambin, j’ai du confectionner ma première grosse application dans un groupe de 4 personnes constitués de Derek Hendrickx, Laurent Spitaels, Kévin Moulart et moi-même dont j’étais le chef de projet.

Le but était de développer un framework complet en Java utilisant une base de données sous PostgreSQL. Ensuite, ce framework était utilisé dans un contexte de carnet de vols de planeurs comportant un espace administrateur pour gérer les vols et les pilotes enregistrés.

Il s’agit sûrement de l’un des projets les plus difficiles de mon apprentissage puisqu’il fallait respecter des délais strictes, fournir régulièrement une analyse poussée et un code le plus propre possible.

Vous pouvez voir un aperçu de l’application en mode « Mock up » en cliquant sur les miniatures ci-dessous et télécharger l’analyse et l’application complète :

  

Projet de base de données sous PostgreSQL

200px-Postgresql_elephant

Dans le cadre d’un cours de base de données, il m’a été demandé, par groupe de 2, d’effectuer une application basique en console utilisant une base de données sous PostgreSQL.

Une première expérience dans la gestion d’une base de données qui a été à la fois très productive et sympathique. J’avais enfin l’occasion de pouvoir essayer autre chose que MySQL.

Le projet consistait à fournir :

  • Une application cliente pour une simple consultation des données.
  • Une application serveur pour ajouter, supprimer et consulter les données.
  • Des « queries » afin de pouvoir créer une base de données à l’identique sur un autre environnement PostgreSQL.

Puisque le projet côté Java n’est pas graphique, je libère seulement l’analyse et les codes sources et ne vous montre pas de screenshots.

Projet professionnel : MacAssistance

Logo MacAssistance

Les ordinateurs de la pomme se vendent de plus en plus. Effet de mode ou non, l’idée de MacAssistance est de donner des solutions, formations et conseils aux utilisateurs Mac.

Mon rôle était de programmer le site Internet de cette jeune entreprise. Les technologies utilisées étaient l’xHTML, le CSS 2.0 et le PHP 4 afin de pouvoir être compatible avec un maximum de navigateurs (le navigateur par défaut de Apple, Safari, étant bien sûr la priorité).

Le code source n’est pas disponible puisqu’il s’agit d’un projet professionnel, mais vous pouvez voir un aperçu du site ci-dessous ou y accéder directement via ce lien.

Projet HTML Nintendo

Capture d’écran Projet HTML

Je suis un grand fan de Nintendo et lorsqu’on m’a demandé de faire un projet en HTML sur le thème de mon choix, Nintendo m’est venu à l’esprit de manière tout à fait naturel. Ce projet date de ma première année à l’Institut Paul Lambin. On nous avait imposé une série de contraintes que nous devions respecter.

C’était un projet assez simple mais j’ai pris énormément de plaisir à le mener à bien. Les technologies que nous devions utiliser était malheureusement un peu vieille puisque c’était obligatoirement du CSS 2.0 et de l’HTML 4 Strict mais je suis assez content du résultat.

En voici l’aperçu et le code source bien entendu disponible.

 

Code source du projet