OF F I CI EL L ES POUR L ENSEI GNEMENT DE L INFORMATIQUE Premire et deuxime annes des classes prparatoires filires : MP, PSI et TSI PREAMBULE Les technologies de linformation et les sciences du numrique sont aujourdhui utilises dans les diffrents secteurs dactivits et spcialement en ingnierie. Aussi leur intgration dans le cursus des Classes Prparatoires aux Grandes Ecoles (CPGE) est une ncessit pour prparer tous les lves leurs futurs mtiers. Ces technologies de linformation tant en perptuelle volution, le programme denseignement relatif ces disciplines est amen aussi tre modifi continuellement afin de sadapter cette volution permanente. Ainsi, Le Ministre de lEducation Nationale entreprend rgulirement dimportants efforts pour rviser les programmes dinformatique dans les classes prparatoires marocaines. A cet effet, ce prsent guide a t labor pour permettre de : dfinir la nature et les caractristiques de linformatique en tant que discipline denseignement en CPGE; dlimiter le cadre et la vision du programme dinformatique en C.P.G.E ; indiquer les comptences dvelopper chez les apprenants; fixer les finalits et les objectifs de chaque partie du programme; Juillet 2014 Page 2 prciser les approches pdagogiques servant de rfrence pour prparer les activits dapprentissage relatives la discipline informatique ; prsenter le programme ainsi que la progression qui lui est attache; proposer des exemples illustratifs des notions fondamentales de ce programme Suggrer quelques mthodes et moyens permettant lenseignant de planifier, danimer et dvaluer les apprentissages des lves. Conseiller des exercices et des exemples dapplications relatifs aux diffrents lments de ce programme SOMMAIRE A- Contexte de la nouvelle rforme de linformatique en C.P.G.E page 4 B- Capacits concernes page 5 C- Structure, objectifs et didactique du programme page 6 D- Programme de la premire anne page 8 E- Programme de la deuxime anne page 15 Juillet 2014 Page 3 A-Contexte de la nouvelle rforme de linformatique en C.P.G.E Le programme dinformatique des classes prparatoire aux grandes coles dingnieurs tient compte des volutions de lenseignement des sciences et technologies du numrique dans lenseignement secondaire et les coles dingnieurs. Il vise doter les lves des CPGE de mthodes, doutils et de concepts ncessaires la rsolution informatique dun problme donn. Ce problme peut sappuyer sur les disciplines des mathmatiques, de la physique, de la chimie ou des sciences industrielles. Cette rsolution informatique est selon les cas soit la conception dun algorithme qui peut tre traduit en programme informatique, soit lutilisation dun logiciel de simulation numrique ou encore la gestion dune base de donnes. Llve devra savoir apprhender un problme simple du monde naturel pour le traduire, limplmenter en une solution informatique. Il devra se familiariser avec diffrents concepts comme la faisabilit dune solution donne, la prcision des calculs numriques, lefficacit dun programme, etc. Les lves devront suivre aussi bien une formation caractre thorique quune formation caractre pratique. Ce sont ces 3 aspects, savoir lalgorithmique et programmation, la simulation numrique et la gestion des bases de donnes qui constituent le fondement de ce programme denseignement dinformatique en CPGE dans les filires MP, PSI et TSI. B-Capacits et objectifs requises Ce programme dinformatique, na pas vocation seulement dapprendre aux lves les concepts lis au domaine des technologies de linformation mais aussi les aider adopter des dmarches scientifiques et des approches appuyes sur des raisonnement rigoureux conduisant aux solutions des problmes poss. Ainsi, lenseignement de linformatique doit permettre de dvelopper chez les lves les capacits et objectifs suivants : - comprendre, analyser et modliser un problme ou une situation pouvant tre trait par linformatique, Juillet 2014 Page 4 - adopter une dmarche de travail (dfinir le cahier de charge (les donnes, les rsultats attendus, les traitements effectuer, ), - comprendre un algorithme et expliquer son droulement et son rle, - choisir les structures pouvant reprsenter les donnes dans la mmoire r - dcouper le problme en plusieurs parties (modules), - concevoir lalgorithme de rsolution relatif chaque module du problme en spcifiant de faon rigoureuse et structure lensemble des tapes, - mettre en pratique lalgorithme en le traduisant en programme laide dun langage informatique, - tester, vrifier et ventuellement corriger les algorithmes et les programmes rsultants, - valider la solution algorithmique par des jeux dessais, - exploiter les fonctionnalits et les performances quoffre un logiciel de simulation numrique, - grer et interroger une base de donnes, - critiquer, modifier, les donnes manipules, - spcifier les modules mis en uvre, - valuer la complexit des diffrentes fonctions et des divers programmes raliss. La rsolution des problmes par une approche algorithmique procure aux lves une rigueur, une capacit dabstraction, un raisonnement et une logique, qui sont les lments essentiels pour toute rsolution dun problme scientifique. Ces capacits acquises, permettront leur intgration dans les autres enseignements scientifiques ainsi que dans llaboration des travaux dinitiative personnelle encadre (TIPE). C- Structure, objectifs et mthodologie du programme C-1 Structure et organisation du programme Le programme de linformatique des deux annes des CPGE scientifiques, est organis en 5 parties, comme suit : - Partie I : Gnralits et algorithmique de base - Partie II: Algorithmique et programmation - Partie III : Ingnierie numrique et simulation - Partie IV : Introduction aux bases de donnes relationnelles Juillet 2014 Page 5 - Partie V : Algorithmique avanc et programmation Les trois premires parties (partie I, II et III) seront dispenses durant la premire anne alors que les deux dernires parties (partie IV et V) concerneront la deuxime anne. C-2/ Objectifs fixs Lenseignement de linformatique aux CPGE vise plusieurs objectifs permettant dinculper aux lves des outils et des mthodes ncessitant lapplication des rgles de logique absolue et favorisant la rflexion, lanalyse et la synthse. Ces capacits sont ncessaires pour rsoudre tout problme dordre scientifique. Ainsi ce nouveau programme dinformatique, na pas vocation seulement dapprendre aux lves les concepts lis au domaine des technologies de linformation mais aussi les aider adopter des dmarches scientifiques et des approches appuyes sur des raisonnement rigoureux conduisant aux solutions des problmes poss. Les principaux objectifs de cette nouvelle rforme de lenseignement de linformatique aux CPGE, peuvent se rsumer aux points suivants : apprentissage dun ensemble de concepts de base de lalgorithmique, rsolution de problme par approche algorithmique, conception rigoureuse dalgorithme, choix des reprsentations appropries des donnes, familiarisation avec la syntaxe lmentaire et les rgles de base dun langage de programmation, mise en uvre dun programme informatique (dition, excution, test), pratique de la programmation, utilisation dun logiciel de simulation numrique, exploitation des rsultats de calculs numriques, initiation lutilisation dun SGBD, manipulation de donnes organises dans une base de donnes, valuation de lefficacit algorithmique (mesure de la complexit), maitrise de lapproche rcursive dun algorithme. C.3/ Mthodologie * Il est recommand de mettre laccent sur le raisonnement algorithmique beaucoup plus que sur la syntaxe du langage de programmation. * Il est conseill de donner des exemples et de proposer des exercices inspirs des autres disciplines scientifiques (mathmatiques, physique, sciences de lindustrielle et chimie). * II est ncessaire de transcrire les algorithmes vus pendant les sances de cours en langage de programmation. * Il est souhaitable dintgrer des lments de la discipline informatique dans llaboration des travaux dinitiative personnelle encadre(TIPE). Juillet 2014 Page 6 * Il nest pas demand daborder les aspects thoriques qui relvent des autres disciplines scientifiques, mais de mettre en uvre les algorithmes permettant lanalyse des rsultats surtout concernant lutilisation du logiciel de simulation. * Il est noter que le langage de programmation, le logiciel de simulation numrique ainsi que le systme de gestion de bases de donnes (SGBD) qui seront utiliss dans le cadre de ce cours feront lobjet dune note de service manant de lautorit gouvernementale charge des classes prparatoires aux grandes coles. Juillet 2014 Page 7 D- Programme de la premire anne (MPSI, PCSI, TSI) Le programme de la premire anne est divis en 3 parties (I, II et III) D.I Partie I : Gnralits et algorithmique de base La partie I du programme sera enseigne durant le premier trimestre de la 1 re anne. Le but de ce paragraphe est dinitier les lves la conception dalgorithmes lmentaires manipulant des variables de types simples, des expressions et des structures de contrle, puis convertir ces algorithmes en programmes laide dun langage de programmation. D.I.a/Capacits vises identifier lensemble des ressources physiques constituant le systme informatique, utiliser les principales commandes dun systme dexploitation, comprendre la reprsentation des donnes numriques dans la mmoire et les limitations (en valeur et en prcision) de leur reprsentation, expliquer ce que fait un algorithme lmentaire, dcomposer une tche complexe en tches lmentaires concevoir un algorithme rpondant un problme simple, savoir adopter lapproche de la programmation descendante et la programmation structure, se familiariser avec la syntaxe de base dun langage de programmation, traduire un algorithme en programme crit avec un langage informatique, vrifier la terminaison dune boucle, tester un programme en lditant et en lexcutant dans un environnement intgr dun langage de programmation, appeler quelques fonctions lmentaires du langage de programmation. D.I.b/ Outils utiliss Les vacations de cours thoriques seront alternes avec de sances de travaux dirigs et de travaux pratiques. Durant les travaux dirigs, les lves apprennent concevoir des algorithmes de rsolution de problmes lmentaires et crire les programmes correspondants. Juillet 2014 Page 8 Ces programmes seront dits et tests au cours des travaux pratiques prvus D.I.c/ Contenu D.I.c.1/ Environnement matriel et logiciel dun systme informatique Le but de ce paragraphe est de prsenter succinctement lensemble des ressources physiques constituant le systme informatique ainsi que lensemble des moyens qui permettent dutiliser lordinateur. On abordera aussila reprsentation des donnes numriques sous forme binaire dans la mmoire. a/ Architecture simplifie dun ordinateur *Composants de base - ordinateur personnel, tablette, PDA, - diffrencier les diffrents composants constituant un ordinateur (mmoire vive, mmoire de masse, unit centrale, priphriques dentre-sortie, ports de communication) * Mmoire centrale et reprsentation des donnes - rle, caractristiques, capacit (notion de bit, de mot mmoire, dadresse mmoire, ). * Reprsentation de donnes dans la mmoire - types de donnes (nombres ou caractres), - systme binaire, - reprsentation des nombres entiers en mmoire (nombre positif ou ngatif, bit de signe, nombre non sign), - reprsentation des nombres rels en mmoire (mantisse et exposant, dfinition de lcriture en virgule flottante normalise) - limites et dpassement de la mmoire (illustration par des exemples simple (division par zro,)), - codage et reprsentation des caractres (code ASCII, UTF8, UTF16, Unicode), - tude des mcanismes de dpassement de capacit (les "overflow"), les erreurs darrondis, les divisions par zro. * Processeur - caractristiques (vitesse, frquence de lhorloge, ), - fonctions (oprations arithmtiques et logiques). * Priphriques - priphriques dentre-sortie, ports de communication, Mmoires auxiliaires,). b/ Systme dexploitation dun ordinateur - dfinition et exemples de systmes dexploitation (Windows et Linux), - fonctions principales dun systme dexploitation (vrification des ressources, gestion de fichiers, gestion de dossiers, ), -exemples dutilisation de quelques commandes usuelles (cration de dossiers, copie de fichiers, ), -mise en uvre dun environnement de dveloppement. Juillet 2014 Page 9 D.I.c.2/Algorithmique de base Le but de ce paragraphe est dinitier les lves la conception dalgorithmes lmentaires manipulant des variables de types simples, des expressions et des structures de contrle, puis convertir ces algorithmes en programmes laide dun langage de programmation a/Dfinitions * algorithme et programme, *langage de programmation, *interprteur et compilateur. b/Elments de base dun algorithme *variables. *types simples (entier, flottant, caractre), *affectation, *entres / sorties standards et fonctions de la bibliothque. c/Oprateurs et les expressions *les oprateurs arithmtiques et logiques, * les expressions. d/Structures de contrle *les instructions de choix (la slection logique), *les instructions ditration ou de rptition (les boucles). e/ Dmarche danalyse descendante *principe de la dmarche, *affinements successifs, *exemples. f) Modlisation. *analyser une situation, *spcifier, *modliser. g) Vrification du code *invariants de boucle, *tests des segments itratifs, *estimation de la complexit dun calcul. D.I.d/ Exemples dexercices et dapplications pratiques La liste suivante numre quelques exemples dalgorithmes simples pouvant tre proposs en termes dexemples ou dexercices durant cette premire partie de lenseignement : - Rsolution dune quation du 1 er ou du 2 me degr - Vrification de la validit dune date (annes bissextile). Juillet 2014 Page 10 - Dtermination de certaines proprits dun nombre entier (premier, parfait, Amstrong, ). - Calcul de PGCD et du PPMC de 2 nombre entiers. - Dcomposition binaire dun entier. - Evaluation de la somme des N premiers nombres entiers positifs. - Calcul du factoriel dun nombre en utilisant une mthode itrative. - D.II Partie II : Algorithmique et programmation La partieII du programme sera enseigne durant le deuxime trimestre de la 1 re anne.Le but de cette partie est dapprendre aux lves la programmation modulaire ainsi que la reprsentation des donnes dans des structures des donnes telles que les tableaux, les chanes de caractres, les listes, les piles, ) et leurs utilisations (tri, recherche, ). Dans cette partie, on sintressera aussi la lecture et lcriture dans un fichier de donnes. D.II.a/Capacits vises en algorithmique dcouper et organiser le problme en plusieurs parties (les modules), dfinir les prototypes des fonctions utiliser (paramtres, type de retour) choisir les structures pouvant reprsenter les donnes et les rsultats du problme, maitriser les algorithmes de tri standard et de la recherche dichotomique manipuler une chane de caractres, grer une liste de donnes (ajouter, modifier, rechercher ou supprimer des lments), organiser les lments sous forme dune pile afin de leur exploitation, lire et crire des donnes partir dun fichier. D.II.b/ Capacits vises en programmation Traduire un algorithme dans un langage de programmation non spcifiquement lis au systme dexploitation, libre et portable, dynamique, extensible qui permet une approche modulaire et oriente objet de la programmation. Savoir se servir de la documentation du langage choisi en ligne, savoir documenter ses propres programmes, choisir les types et structures de donnes optimales pour un problme donn, expliciter la signature, le prototype dune fonction, mettre en uvre des squences de tests afin de tester une fonctionnalit, un programme spcifique. Juillet 2014 Page 11 D.II.c/Contenu en programmation * prsentation des diffrents types dobjets, * objets simples : entier, flottant, complexe, boolen et chaines de caractres, * les oprateurs, * les collections dobjets (les listes, les tuples, les dictionnaires, les ensembles), * la logique dun programme (les oprations conditionnelles, les boucles for et while), * les fonctions (les instructions break et continue, variable locale, variable globale), * les modules de base du langage choisi. D.II.d/Outils utiliss La programmation modulaire, les structures des donnes ainsi que les principes des diffrents tris seront expliqus pendant les sances de cours. Les diffrents algorithmes de tri et de recherche seront conus en travaux dirigs. Limplmentation et la vrification de ces diffrents algorithmes seront effectues en travaux pratiques laide du langage. Les lves devront utiliser un environnement de dveloppement Un environnement scientifique doit tre prsent et ceci ds la premire anne. Cela peut-tre un logiciel de calcul scientifique libre et large utilisation ou une bibliothque utiliser avec le langage de programmation choisi. Attention il nest pas demand une tude approfondie de lensemble de ces outils. Des textes rglementaires pourront dans le futur prciser les diffrents choix doutils et denvironnement de dveloppement. D.II.e/Contenu D.II.e.1/Programmation modulaire a. Dfinition et paramtres de fonction, b. Variable locale et variable globale, D.II.e.2/Structures de donnes et leurs utilisations a. Tableaux une dimension (reprsentation, accs aux lments), b. Chanes de caractres (longueur, accs un caractre), c. Tris et recherche dichotomique dans un tableau (tri par slection, tri par insertion, tri bulles, ), d. Tableaux 2 dimensions (oprations sur les matrices), e. Squences, : Listes et tuples (dfinition, ajout, suppression, recherche dans une liste), f. Dictionnaires : crations et opration Juillet 2014 Page 12 g. Piles et files. D.II.e.3/Fichiers de donnes a. Accs un fichier (chemin et nom physique de fichier), b. Lecture des lments dun fichier partir dun programme, c. Ecriture dans un fichier partir dun programme. D.II.f/Exemples dexercices et dapplications pratiques Les exemples ci-dessous peuvent tre suggrs en exercices : - Gestion dune une liste dlments et son tri (ajout, modification, suppression, recherche, ). - Calcul matriciel (somme, produit, dterminant, transpose). - Utilisation des algorithmes de cryptage lmentaires (Csar, Vigenre) - Cryptage dune chane de caractres puis dun fichier texte. - Implmentation de lalgorithme du codage de Hamming et de Huffman. - Vrification de la syntaxe dune expression mathmatique simple (nombre de parenthses par exemples) en utilisant la structure pile. D.III Partie III : Ingnierie numrique et simulation Le but de cette partie est dintroduire les techniques de base pour lutilisation des algorithmes numriques. On ne sintressera qu la mise en uvre de ces algorithmes et non pas aux aspects thoriques. Par contre il faudra comparer les solutions obtenues dune manire numrique avec celle issue dun calcul analytique D.III.a/Comptences vises la fin de cette partie, llve doit tre capable de : Donner une solution numrique dun problme difficilement ou impossible raliser avec une solution purement analytique Mettre en uvre par programmation un problme caractre scientifique en prenant en compte aussi bien les donnes en entres du programme que les rsultats Savoir utiliser les bibliothques de calcul numrique standard pour rsoudre un problme scientifique Savoir utiliser les bibliothques standards pour afficher les rsultats sous forme graphique Savoir prendre en compte les erreurs de calcul ou erreurs darrondi. Savoir dterminer la complexit dun calcul en vue den dterminer si le calcul est ralisable dans un temps acceptable. Juillet 2014 Page 13 D.III.b/Outils utiliss Aprs chaque sance thorique, un ensemble dexercices et de travaux pratiques seront proposs aux lves pour illustrer et vrifier les notions vuesen cours. D.III.c/Contenu D.III.c.1/Prsentation des bibliothques * Programmation de quelques fonctions. * Calcul manipulant les tableaux et calcul matriciel * Gestion de la documentation en ligne des fonctionnalits de ces bibliothques. D.III.c.2/Mthodes linaires une dimension * Rsolution dquation algbrique * Mthode de dichotomie * Mthode de Newton D.III.c.3/Problmes dynamiques une dimension * Rsolution approche dune quation diffrentielle * Mthode dEuler D.III.c.4/ Problmes discrets multidimensionnels linaires * Rsolution dun systme linaire inversible laide de la mthode de Gauss * Calcul de complexit pour dterminer un temps dexcution afin de savoir si le calcul est envisageable. D.III.d/ Exemples dexercices et dapplications pratiques - Manipulations de tableaux et de matrices (extraire un sous tableaux, coupe dun tableau ou dune matrice, indexation par masque, copie de tableau ou de matrice, oprations simples ou complexes manipulant des tableaux ou des matrices, etc) - Exemple : quation de la chaleur (diffusion thermique) une dimension discrtisation en diffrences finies, convergence, implmentation matricielle, optimisation avec la formule de Taylor, etc) - Intgration dquations diffrentielles laide dune bibliothque ou dun logiciel de calcul scientifique - Exemple : gestion dun systme dynamique, le pendule simple. Juillet 2014 Page 14 E. Programme de la deuxime anne ( MP, PSI, TSI) Le programme de la deuxime anne est divis en 2 parties (partie IV et partie V) E.I Partie IV: Introduction aux bases de donnes La partie IV du programme sera enseigne durant la premire priode de la 2 me anne .Cette partie vise initier les lves la technologie des bases de donnes. E.I.a/ Capacits vises * Mettre en uvre et grer une base de donnes relationnelle; * Effectuer des requtes SQL sur une base de donnes ; * Dcouvrir et pratiquer les principales fonctions dun SGBD relationnel ; * Acqurir une exprience pratique dans la gestion dune base de donnes. E.I.b/ Outils utiliss Cette partie sera dispense sous forme de prsentation des concepts lmentaires des bases de donnes. Chaque concept doit tre illustr par un ou plusieurs exemples simples. Ces concepts seront mis en uvre dans des sances de travaux pratiques. Ces travaux pratiques seront raliss avec un SGBD qui prsente une interface graphique conviviale permettant lutilisation des diffrentes manipulations sur les bases de donnes (cration de bases et de tables, alimentation, modification, suppression et interrogation des donnes) Il est rappel que le systme de gestion de bases de donnes ( SGBD) utiliser fera lobjet dune note de service de lautorit gouvernementale charge des classes prparatoires aux grandes coles ( voir page 7) E.I.c/ Contenu E.I.c.1/ Gnralits * Notion de base de donnes; * Modle de base de donnes (hirarchique, relationnel); * Systme de gestion de base de donnes (SGBD); * Machine serveur et client; E.I.c.2/ Modle relationnel * Prsentation; * Concepts lmentaires; * Notions de base (table, relation; attribut; cls; domaine; ) ; *Schma de relation; E.I.c.3/ Algbre relationnelle * Introduction; * Oprateurs unaires (slection, projection); * Oprateurs binaires ensemblistes (union, intersection, diffrence); * Oprateurs n-aires(Produit cartsien, jointure, division cartsienne); * Fonctions dagrgation : min, max, somme, moyenne,... E.I.c.4/ Langage SQL Juillet 2014 Page 15 * Prsentation et notion de requte; * Description de donnes (cration, modification suppression de tables, dattributs, de vues, ); * Manipulation de donnes (Insertion, modification suppression de n-uplets); * Interrogation dune base de donnes (commande SELECT); E.I.d/ Exemples dexercices et dapplications pratiques * Lancer lenvironnement dun SGBD offrant une interface graphique et crer une base de donnes simple contenant quelques tables (2 ou 3) ; * Dfinir la structure dune table (champs, types,..) ; * Alimenter les tables de la base ; * Interroger la base laide des requtes ; * Ecrire des requtes SQL en utilisant lalgbre relationnelle partir dnoncs en langage courant ; * Accder une base de donnes dj existante et manipuler ses donnes ; * Utiliser les jointures symtriques simples (JOIN ON =...) pour effectuer des requtes croises dans une base de donnes constitue de plusieurs tables. ( maximum 3). * Prsenter laide dun exemple simple le concept de client-serveur en prcisant les rles respectifs des machines client, serveur, et ventuellement serveur de donnes (architecture trois-tiers) Remarque : Les exemples dillustration de bases de donnes seront de prfrence choisis au sein des autres disciplines scientifiques tudies. E.II Partie V: Algorithmique et programmation 2 La partie V du programme est la dernire partie de cet enseignement, elle sera dispense durant la deuxime priode de la 2 me anne E.II.a/Comptences vises Le but de cette partie est dintroduire certaines notions avances dalgorithmique et quelques complments qui nont pas t abords en 1 re anne. Ainsi la fin de cette partie, llve doit tre capable de : * Evaluer la qualit dun algorithme en mesurant sa complexit ; * Rsoudre des problmes en utilisant les algorithmes rcursifs ; * Comprendre les avantages et les inconvnients des approches itrative et rcursive ; * Reprsenter des donnes dans un arbre binaire et le parcourir; * Utiliser les expressions rgulires * Apprhender les notions de base de la thorie des graphes ( reprsentation matricielle, parcours, recherche du plus court chemin (Dijkstra, ) E.II.b/ Outils utiliss Aprs chaque sance thorique, un ensemble dexercices et de travaux pratiques seront proposs aux lves pour illustrer et vrifier les notions vues en cours. Remarque: Le langage de programmation utilis est le mme que celui adopt en 1 re anne. Juillet 2014 Page 16 E.II.c/ Contenu E.II.c.1/ Algorithmes de tri * Rappels des algorithmes de tri standard (slection, insertion, bulles) ; * Algorithmes de tri rapides (Quick Sort, Merge Sort) ; E.II.c.2/ Initiation la complexit algorithmique * Notion de complexit algorithmique (Complexit en temps et en espace ) ; * Algorithmes de complexit constante, logarithmique, linaire) ( exemple : diviser pour rgner) ; * Comparaison de la complexit temporelle dun algorithme de tri standard et un algorithme de tri rapide ; E.II.c.3/ Rcursivit * Principe de la rcursivit simple ; * Exemples dutilisation de la rcursivit simple (exemple : factoriel, fibonacci, ) ; * Terminaison dune fonction rcursive ; * Rcursivit et Itration (comparaison) ( problme dAckermann) ; E.II.c.4/ Initiation aux algorithmes des arbres binaires * Dfinition dun arbre binaire (notion de nud, racine, feuille) ; * Parcours dun arbre binaire ; * Exemple du tri Maximier ( tri en utilisant un arbre binaire) ; E.II.c.5/ Introduction la thorie des graphes * Structure dun graphe * Reprsentation matricielle * Parcours de graphe * Recherche du plus cout chemin (Dijkstra,) * Cycle Hamilthonien et Eulorien E.II.d/ Exemples dexercices et dapplications pratiques * Evaluer la complexit dun algorithme simple de complexit constante (recherche squentielle dun lment dans une liste ) ; * Implmenter un algorithme de tri standard ( tri par slection) et un algorithme de tri rapide (Quick Sort) puis dterminer et comparer leurs complexits dans le pire et le meilleur des cas ; * Dvelopper des algorithmes rcursifs (factorielle, puissances entires, suites rcurrentes (Fibonacci,), pgcd,) ; * Reprsenter des donnes sous forme dun arbre binaire exemple : arbre gnalogique ) et rechercher une information en parcourant larbre ; * Comprendre le principe du tri par arbre (tri Maximier); * Dcouvrir la programmation oriente objet au travers dapplications simples * Appliquer les expressions rgulires (validit dune adresse e-mail, ) *Implmenter des exemples mettant en uvre les parcours eulerien ou hamilthonien