Beruflich Dokumente
Kultur Dokumente
I Objectifs de formation
1 Gnralits
Linformatique, omniprsente dans les diffrentes sphres de lentreprise, de la recherche, des services, de la culture et des loisirs, repose sur des mcanismes fondamentaux devant tre matriss par les futurs ingnieurs, enseignants et chercheurs qui auront sen servir pour agir en connaissance de cause dans leur vie professionnelle. La rapide volution des outils informatiques et des sciences du numrique dans tous les secteurs de lingnierie (industrielle, logicielle et des services) et de la recherche rend indispensable un enseignement de linformatique spcifiquement conu pour ltudiant de CPGE scientifiques. Celui-ci devra pouvoir dans sa vie professionnelle communiquer avec les informaticiens de son entreprise ou de son laboratoire, participer aux prises de dcision en matire de systmes dinformation, possder des connaissances de base ncessaires la comprhension des dfaillances et des risques informatiques, ainsi que des solutions permettant dy remdier, et exploiter bon escient les rsultats de calculs numriques. Pour ce faire, il devra comprendre des concepts tels que la prcision numrique, la faisabilit, lefficacit, la qualit et les limites de solutions informatiques, ce qui requiert une certaine familiarit avec les architectures matrielles et logicielles, les systmes dexploitation, le stockage des donnes et les rseaux. Cette diversit dexigences impose une formation la fois fondamentale et applique. Au niveau fondamental, on se fixe pour objectif la matrise dun certain nombre de concepts de base, et avant tout, la conception rigoureuse dalgorithmes et le choix de reprsentations appropries des donnes. Ceci impose une exprience pratique de la programmation et de la manipulation informatique de donnes, notamment dorigine exprimentale ou industrielle, et parfois disponibles en ligne. Au niveau des applications, la rapidit dvolution des technologies logicielles et matrielles renforce lintrt de prsenter des concepts fondamentaux prennes sans sattacher outre mesure la description de technologies, protocoles ou normes actuels. En revanche, la formation sattachera contextualiser le plus souvent possible les activits pratiques en sappuyant sur les autres disciplines scientifiques : chimie, physique, mathmatiques, sciences technologiques et de lingnieur.
2 Comptences vises
Cet enseignement doit permettre de dvelopper les comptences suivantes : Analyser et modliser Imaginer et concevoir un problme, une situation ;
une solution algorithmique modulaire, utilisant des mthodes de programmation, des structures de donnes appropries pour le problme tudi ; un algorithme dans un langage de programmation moderne et gnraliste ; rigoureusement les modules ou fonctions ; des algorithmes et des programmes ;
Traduire
Ltude et la matrise de quelques algorithmes fondamentaux, lutilisation de structures de donnes adaptes et lapprentissage de la syntaxe du langage de programmation choisi permettent de dvelopper des mthodes (ou paradigmes) de programmation appropris, fiables et efficaces : programmation imprative, approche descendante, programmation structure, utilisation de bibliothques logicielles, notions lmentaires de complexit en temps ou en mmoire, documentation des programmes en vue de leur rutilisation et possibles modifications ultrieures. La pratique rgulire de la rsolution de problmes par une approche algorithmique et des activits de programmation qui en rsultent constitue un aspect essentiel de lapprentissage de linformatique. Il est minemment souhaitable que les exemples choisis ainsi que certains exercices d'application soient directement inspirs par les enseignements de physique et chimie, de mathmatiques, et de sciences industrielles et de lingnieur. Enfin, les comptences acquises en informatique ont vocation participer pleinement llaboration des travaux dinitiative personnelle encadre (T.I.P.E.) et tre rutilises au sein des autres enseignements scientifiques.
II Programme
1. Introduction
La principale capacit dveloppe dans cette partie de la formation est : manipuler en mode utilisateur les principales fonctions dun systme dexploitation et dun environnement de dveloppement.
On se limite la dfinition de lcriture en virgule flottante normalise et on explique le codage dun nombre rel en gnral sans entrer dans les cas particuliers comme les nonnombres not a number ou les infinis. On illustre, sur des exemples simples, pouvant tre illustrs au moyen dune calculatrice, les phnomnes de dpassement de capacit (ou overflow ) de squences de calculs conduisant des rsultats faux et erreurs darrondis. On illustre aussi le problme de la comparaison zro, par exemple dans une
quation du second degr. Les principales capacits dveloppes dans cette partie de la formation sont : apprhender les limitations intrinsques la manipulation informatique des nombres, initier un sens critique au sujet de la qualit et de la prcision des rsultats de calculs numriques sur ordinateur.
2. Algorithmique et programmation I
Seconde partie du semestre 1.
2.b/ Algorithmique
Les comptences en matire dalgorithmique et de programmation tant profondment lies, il est souhaitable que ces deux sujets soient abords de concert, mme si pour des raisons de clart dexposition ils sont ici spars. Lintroduction lalgorithmique contribue apprendre ltudiant analyser, spcifier et modliser de manire rigoureuse une situation ou un problme. Cette dmarche algorithmique procde par dcomposition en sous-problmes et par affinements successifs. Laccent tant
port sur le dveloppement raisonn dalgorithmes, leur implantation dans un langage de programmation nintervient quaprs une prsentation organise de la solution algorithmique, indpendante du langage choisi. Les invariants de boucles sont introduits pour sassurer de la correction des segments itratifs. Une attention particulire doit tre apporte au choix de structures de donnes appropries. La notion de complexit dalgorithmes (en distinguant la complexit en mmoire, la complexit en temps dans le meilleur et dans le pire des cas) est introduite sur des exemples simples. Pour faire mieux comprendre la notion dalgorithme et sa porte universelle, on sappuie sur un petit nombre dalgorithmes simples, classiques et dusage universel, que les tudiants doivent savoir expliquer et programmer, voire modifier selon les besoins et contraintes des problmes tudis. Contenus Recherche dans une liste, recherche du maximum dans une liste de nombres, calcul de la moyenne et de la variance. Recherche dun mot dans une chane de caractres. On se limite ici lalgorithme naf , en estimant sa complexit. Prcisions et commentaires
On veillera illustrer les concepts tudis en les contextualisant au moyen dexemples et de donnes notamment exprimentales issus des diffrentes disciplines scientifiques et technologiques. Les principales capacits dveloppes dans cette partie de la formation sont : comprendre un algorithme et expliquer ce quil fait, modifier un algorithme existant pour obtenir un rsultat diffrent, concevoir un algorithme rpondant un problme prcisment pos, expliquer le fonctionnement dun algorithme, crire des instructions conditionnelles avec alternatives, ventuellement imbriques, justifier quune itration (ou boucle) produit leffet attendu au moyen dun invariant, dmontrer quune boucle se termine effectivement, sinterroger sur lefficacit algorithmique temporelle dun algorithme. Les tudiants devront tre capables de programmer dans le langage de programmation indiqu ci-dessus les diffrents algorithmes tudis.
2.c/ Programmation
On insistera sur une organisation modulaire des programmes ainsi que sur la ncessit dune programmation structure et parfaitement documente. Contenus Prcisions et commentaires
Variables : notion de type et de valeur dune Les types simples prsents sont les variable, types simples. entiers, flottants, boolens et chanes de caractres. Expressions et instructions simples : affectation, Les expressions considres sont oprateurs usuels, distinction entre expression et valeurs numriques, boolennes ou de instruction. type chane de caractres. Instructions conditionnelles : expressions Les tudiants devront tre capables de boolennes et oprateurs logiques simples, structurer et comprendre plusieurs instruction if. Variantes avec alternative (else). niveaux dalternatives implantes par des instructions conditionnelles imbriques. Instructions itratives : boucles for, boucles Les sorties de boucle (instruction break) conditionnelles while. peuvent tre prsentes et se justifient uniquement lorsquelles contribuent simplifier notablement la programmation sans relle perte de lisibilit des conditions darrt. Fonctions : notion de fonction (au sens informatique), dfinition dans le langage utilis, paramtres (ou arguments) et rsultats, porte des variables. On distingue les variables locales des variables globales et on dcourage lutilisation des variables globales autant que possible. La rcursivit sera prsente plus tard. On met en vidence le fait que certaines oprations dapparence simple cachent un important travail pour le processeur. On met profit la structure de tableau dentiers deux dimensions pour introduire la notion dimage ponctuelle ( bitmap ). Les algorithmes de traitement dimage seront abords plus tard. On encourage lutilisation de fichiers en tant que supports de donnes ou de rsultats avant divers traitements, par exemple graphiques. Lutilisation de bases de donnes sera tudie plus tard.
Manipulation de quelques structures de donnes : chanes de caractres (cration, accs un caractre, concatnation), listes (cration, ajout dun lment, suppression dun lment, accs un lment, extraction dune partie de liste), tableaux une ou plusieurs dimensions.
Fichiers : notion de chemin daccs, lecture et criture de donnes numriques ou de type chane de caractres depuis ou vers un fichier.
Les exemples de programmation ne se limitent pas la traduction des algorithmes introduits en partie 2-b. Les principales capacits dveloppes dans cette partie sont les suivantes : choisir un type de donnes en fonction dun problme rsoudre, concevoir len-tte (ou la spcification) dune fonction, puis la fonction elle-mme, traduire un algorithme dans un langage de programmation, grer efficacement un ensemble de fichiers correspondant des versions successives dun fichier source, rechercher une information au sein dune documentation en ligne, analyser des exemples fournis dans cette documentation, documenter une fonction, un programme plus complexe.
solutions obtenues en utilisant les fonctions de la bibliothque de lenvironnement de travail choisi. On illustre ainsi les performances de diffrents algorithmes pour la rsolution des problmes. On met laccent sur les aspects pratiques comme limpact des erreurs darrondi sur les rsultats, les conditions darrt, la complexit en temps de calcul ou le stockage en mmoire Contenus Bibliothques logicielles : utilisation de quelques fonctions dune bibliothque et de leur documentation en ligne. Prcisions et commentaires On met en vidence lintrt de faire appel aux bibliothques, vitant de devoir rinventer des solutions des problmes bien connus. La recherche des spcifications des bibliothques joue un rle essentiel pour le dveloppement de solutions fiables aux problmes poss. On souligne les diffrences du comportement informatique des deux algorithmes en termes de rapidit. On illustre nouveau le problme du test darrt (inadquation de la comparaison zro).
Problme stationnaire une dimension, linaire ou non conduisant la rsolution approche dune quation algbrique ou transcendante. Mthode de dichotomie, mthode de Newton. Problme dynamique une dimension, linaire ou non, conduisant la rsolution approche dune quation diffrentielle ordinaire par la mthode dEuler.
On compare les rsultats obtenus avec les fonctions de rsolution approche fournies par une bibliothque numrique. On met en vidence limpact du pas de discrtisation et du nombre ditrations sur la qualit des rsultats et sur le temps de calcul.
Problme discret multidimensionnel, linaire, conduisant la rsolution dun systme linaire inversible (ou de Cramer) par la mthode de Gauss avec recherche partielle du pivot.
Il ne sagit pas de prsenter cet algorithme (qui fait partie du cours de mathmatiques) mais de lexcuter pour tudier sa mise en uvre et les problmes que pose cette dmarche. On souligne la complexit de lalgorithme en fonction de la taille des matrices et son impact sur le temps de calcul.
Les principales capacits dveloppes dans cette partie de la formation sont : raliser un programme complet structur allant de la prise en compte de donnes exprimentales la mise en forme des rsultats permettant de rsoudre un problme scientifique donn,
utiliser les bibliothques de calcul standard pour rsoudre un problme scientifique mis en quation lors des enseignements de chimie, physique, mathmatiques, sciences industrielles et de lingnieur, tenir compte des aspects pratiques comme limpact des erreurs darrondi sur les rsultats, le temps de calcul ou le stockage en mmoire.
4.b/ Contenu
Contenus Prcisions et commentaires
Vocabulaire des bases de donnes : relation, Ces concepts sont prsents dans une attribut, domaine, schma de relation ; notion de perspective applicative, partir dexemples. cl primaire. Oprateurs usuels sur les ensembles dans un contexte de bases de donnes : union, intersection, diffrence. Oprateurs spcifiques de l'algbre relationnelle : projection, slection (ou restriction), renommage, jointure, produit et division cartsiennes ; fonctions d'agrgation : min, max, somme, moyenne, comptage. Concept de client-serveur. Brve extension au cas de larchitecture trois-tiers. Ces concepts sont prsents dans une perspective applicative. Les seules jointures prsentes seront les jointures symtriques, simples (utilisant JOIN ON =...).
La liste suivante numre un choix non exhaustif dexercices pratiques. Les bases de donnes utilises des fins dillustration concerneront de prfrence des questions choisies au sein des autres disciplines scientifiques et technologiques. utiliser une application de cration et de manipulation de donnes, offrant une interface graphique, notamment pour crer une base de donnes simple, ne comportant pas plus de trois tables ayant chacune un nombre limit de colonnes. Linstallation et lexploitation dun serveur SQL ne fait pas partie des attendus. lancer des requtes sur une base de donnes de taille plus importante, comportant plusieurs tables, que les tudiants n'auront pas eu construire, laide dune application offrant une interface graphique ; enchaner une requte sur une base de donnes et un traitement des rponses enregistres dans un fichier.
Les principales capacits dveloppes dans cette partie de la formation sont : utiliser une application offrant une interface graphique pour crer une base de donnes et lalimenter, utiliser une application offrant une interface graphique pour lancer des requtes sur une base de donnes, distinguer les rles respectifs des machines client, serveur, et ventuellement serveur de donnes, traduire dans le langage de lalgbre relationnelle des requtes crites en langage courant, concevoir une base constitue de plusieurs tables, et utiliser les jointures symtriques pour effectuer des requtes croises.
5. Algorithmique et programmation II
Seconde anne.
5.b/ Contenu
Contenus Prcisions et commentaires
Piles.
Algorithmes de manipulation : fonctions push et pop . On utilise des listes (ou tableaux 1 dimension) pour leur implantation. On en prsente les avantages et les inconvnients. On tudie et on compare ces algorithmes de tri du point de vue des complexits temporelles dans le meilleur et dans le pire cas.
Rcursivit.
Tris dun tableau une dimension de valeurs numriques : tri par insertion, tri rapide (ou quicksort ), tri par fusion. Application la recherche de la mdiane dune liste de nombres.
Les comptences en algorithmique et en programmation sacquirent par la pratique. Afin de dvelopper des capacits oprationnelles en matire dalgorithmique et de programmation, il est ncessaire que la formation comprenne un volet de mise en pratique sur une varit de problmes. La liste suivante numre un choix non exhaustif dexercices pratiques dont un sous-ensemble pourra tre tudi. Par la prsentation succincte de leurs contextes, ces exercices seront aussi loccasion dintroduire trs brivement et dillustrer diffrents champs de linformatique auprs des tudiants. Aucune connaissance de ces champs ni des algorithmes ci-dessous nest cependant exigible. Traitement des images. Reprsentation des couleurs par une liste de trois valeurs, dune image en couleurs par une matrice de pixels. Exemples de traitements dimages : augmentation du contraste, floutage, changement de rsolution, recherche de contours. Les images pourront tre charges en mmoire partir de fichiers au moyen des fonctions de bibliothque. Aucune connaissance sur les diffrents formats de fichier dimage nest exigible. Codages, algorithmes de chiffrage et de cryptographie lmentaires. Algorithmes lmentaires comme par exemple lalgorithme de Vigenre. Transmission fiable de donnes. Sommes de contrle ( checksum ) : exemples simples. Codes correcteurs : par exemple, le code de Hamming [7,4]. Ces questions permettent de faire le lien avec le codage binaire des nombres entiers. lments de base de lalgorithmique des graphes pour la recherche oprationnelle et les rseaux (on reprsente les graphes pondrs par des matrices dadjacence). Algorithme de Dijkstra de recherche du plus court chemin dans un graphe pondr poids positifs. Programmation oriente objet et interfaces graphiques. Dcouverte de la programmation oriente objet au travers de lobservation de limplantation dinterfaces graphiques existants.
comprendre un algorithme et expliquer ce quil fait, programmer un algorithme dans un langage de programmation moderne et gnral, modifier un algorithme existant pour obtenir un rsultat diffrent, concevoir un algorithme rpondant un problme prcisment pos, expliquer le fonctionnement dun algorithme, comprendre le fonctionnement dun algorithme rcursif et lutilisation de la mmoire lors de son excution, comprendre les avantages et dfauts respectifs des approches rcursive et itrative, sinterroger sur lefficacit algorithmique temporelle dun algorithme, distinguer par leurs complexits deux algorithmes rsolvant un mme problme.