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 :













