Evaluation
Les sujets présentent une certaine diversité, tant au niveau de leur difficulté, du domaine qu'ils abordent, de leur
longueur ou de leurs développements potentiels. Tous ces éléments seront pris en compte dans l'évaluation des projets.
Une composante de l'évaluation reste largement objectivable : l'acquisition des principes de base de la programmation.
Les échelles de notation selon trois niveaux de difficulté (les étoiles codent le niveau de difficulté) :
Projet simple
*
Projet moyen
**
Projet solide
***
"Eloge du vide " 0-3 0-3 0-3
Notions de base, élements de code de base 3-8 3-8 3-8
Démarche niveau 1 (exposé d'une démarche pour répondre au sujet) 8-9 8-10 8-11
Démarche niveau 2 (exposé clair de la démarche, évocation des
problèmes potentiels de programmation et des solutions)
9-11 10-12 11-15
Solution codée niveau 1 11-15 12-16 15-19
Solution codée niveau 2 et développements innovants 15-20 16-20 19-20
L'intérêt du projet est bien sûr assez fortement corrélé à sa difficulté . Pour un projet complexe, il est tout à fait
acceptable de commencer par réduire sa complexité en posant un certain nombre d'hypothèses qui ramènent à un sous-
problème plus simple en expliquant la démarche.
Liste de Projets
TRAITEMENT AUTOMATISE DE TEXTE OU DE DONNEES
P1* => Le projet consiste à produire un ensemble d'algorithmes légers sur des fichiers .doc. A partir de la spécification
d'un nom de fichier .doc : compte du nombre des mots, renvoi des mots les plus fréquents, calcul de la distribution de la
fréquence des lettres dans un texte, co-occurrence de lettres dans un mot, etc...
P2* => A partir d'un texte, pour chaque mot, on indique son nombre d'occurences dans le texte. Obtention d'un tableau
trié avec l'ensemble des mots du texte, tri en fonction du nombre des occurrences, tri par ordre alphabétique.
P3* => Recherche documentaire. Création d'une interface telle que l'utilisateur saisit un répertoire et une chaîne de
caractères : le programme considère les fichiers Word et Excel du repertoire spécifié et renvoie celui des fichiers qui
contient le plus d'occurrences de cette chaîne de caractères.
P4** => Traitement de données CSV. A partir d'un fichier de données CSV, donner un algorithme qui renvoie le nombre de
lignes du fichiers, qui indique si existent des lignes de données identiques et permet de classer les données sur l'une des
dimensions avec un choix de la dimension par l'utilisateur.
RECHERCHE OPERATIONELLE-GRAPHES
Un graphe est un ensemble de noeuds reliés par des arcs. Un chemin est un ensemble d'arcs qui mènent d'un noeud à
l'autre. Quand il est possible de trouver un chemin entre chaque couple de noeuds, on parle de graphe connexe.
P5*** => On suppose avoir ici un graphe connexe. L'utilisateur va donner un couple de noeuds en entrée et la machine va
chercher le plus court chemin entre les noeuds. On ne cherche pas la solution optimale ici, mais on travaille par
approximation. On considère l'un des noeuds du couple comme l'origine O. On génère un ensemble d'agents qui
parcourent aléatoirement le graphe. On renvoie le parcours de l'agent qui met le moins de temps pour le parcours.
Pourriez-vous imaginer d'autres méthodes pour trouver le chemin le plus court entre deux noeuds ? Quelle évolution de la
taille du chemin trouvé en fonction du nombre des agents aléatoires générés ?