Evaluation Les sujets présentent une certaine diversité, tant au

publicité
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
**
***
"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
10-12
11-15
Démarche niveau 2 (exposé clair de la démarche, évocation des 9-11
solide
problèmes potentiels de programmation et des solutions)
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 sousproblè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 ?
P6 *** => Implémentation de l'algorithme de Dijkstra. Cet algorithme est un algorithme de recherche de plus court
chemin. A chaque arc du graphe est associée une valeur numérique ou pondération. Pour un chemin, il est possible de lui
associer une pondération comme la somme des pondérations des arcs qui le composent. L'algorithme permet de calculer
les chemins les plus courts (de plus faible pondération) entre deux points. Une implémentation est proposée sur l'article
de Wikipedia consacré à l'algorithme. Le projet consiste à implémenter un graphe en Excel puis à implémenter l'algorithme
sur ce graphe. Discuter de votre implémentation du graphe.
MINI APPLICATION
P7 ** =>Gestion boursière. Création d'une interface (menu et boutons) permettant :
●
●
de récuperer un fichier CSV contenant l'évolution d'une valeur boursière.
de calculer un certain nombre de stratistique de base sur la donnée boursière proposée (variance, moyenne,
graphique de Moyenne mobile etc...).
Pour obtenir des données boursières : fr.finance.yahoo.com. Choix d'une valeur puis Lien "Données Historiques" =>
obtention de données CSV.
P8 * =>Gestion fichier client, mise des données dans une base de données à partir d'un bouton, récupération des
elements.
P9 ** => Dans une feuille Excel ou une base de données ou un fichier CSV, on enregistre des opérations comptables,
établir un bilan et un compte de résultat dans une feuille Excel.
P10 *** => L'évaluation de projets d'investissements repose sur le calcul de la VAN (Valeur actuelle nette) en première
approximation. Un tel calcul suppose des cash Flows connus à l'avance et un taux d'actualisation (ou coût d'opportunité
des ressources) connu à l'avance. Or, que se soient les coûts liés à un investissement particulier, les revenus de cet
investissement ou le coût d'opportunité des ressources, ces élements sont assez rapidement imprévisibles ou sont
variables. Une démarche raffinée d'utilisation des indicateurs repose alors sur le fait de supposer des processus aléatoires
à la place de la donnée d'une série de cash Flows et de calculer des VAN avec intervalle de confiance etc... Mais cette
démarche même rencontre des limites pour des bruits complexes ou cumulatifs. Le projet consiste à proposer une
interface de simulation d'un projet d'investissement.
●
Etape 1 : on spécifie un ensemble de bruits simples sur les cash flows et le taux d'actualisation. On lance plusieurs
simulations du calcul de la VAN et on donne la valeur moyenne ou la distribution des valeurs obtenues.
●
Etape 2 : on réalise une interface plus complexe ou l'utilisateur peut lui même choisir (en partie) la manière dont il
veut bruiter les processus.
VIE ARTIFICIELLE
P11 *** =>Le jeu de la vie est un modèle classique et simple d'automate cellulaire. Sa simplicité n'empêche pas
l'apparition de nombreux phénomènes complexes. Le projet consiste à implémenter le jeu de base puis à calculer
quelques propriétés de base : temps de convergence, proportion pas type de population etc...
COMPLEXITE / ALGORITHMIQUE
P12 *** => Soit une matrice de cellules M extraite de la matrice des cellules d'une feuille de calcul de Excel. Soit le
processus suivant : à patir de la cellule courante, on se déplace vers une cellule adjacente à la cellule courante dans M et
on colore cette cellule. On repète le processus jusqu'à ce que toutes les matrices de M soient colorées. Produire une
courbe : la donnée du temps moyen de parcours en fonction de la taille retenue de M. Que se passe t'il si on rajoute des
obstacles (des cases ne pouvant pas être atteintes dans M) ou si on modifie le processus de parcours (modification de la
notion d'adjance : 4 voisins ou 8 voisins, saut de deux cases etc...) ?
GESTION DU SYSTEME DE FICHIERS
P13 ** =>Structure de fichier : recherche des derniers fichiers modifiés d'un répertoire d'abord sans inclure les sousrepertoires puis en les incluant. Distribution des fichiers sur la durée écoulée depuis la dernière modification. Distribution
des fichiers par type de fichiers etc...
JEUX
P14 * => Réalisation d'un jeu pierre papier ciseaux, proposition de quelques stratégies automatiques auxquelles
l'utilisateur peut se confronter.
Téléchargement