Discipline : Informatique
Premire et seconde annes
Informatique
Voies : TSI, MP, PC, PT, TPC, PSI
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 ; lcrit ou loral, une problmatique, une solution ou un algorithme, une documentation.
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
Premire partie du semestre 1
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 4
entrer dans les cas particuliers comme les non-nombres not a number ou les infinis. Consquences de la reprsentation limite des nombres rels en machine. 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
Des textes rglementaires ultrieurs pourront mettre jour ces choix doutils et denvironnements en fonction des volutions et des besoins.
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 par dichotomie dans un Les questions de prcision du calcul sont en tableau tri. lien avec la partie 1.b. Recherche par dichotomie du zro dune fonction continue et monotone. Mthodes des rectangles et des trapzes Les questions de prcision du calcul sont en pour le calcul approch dune intgrale sur lien avec la partie 1.b. un segment. Recherche dun mot dans une chane de On se limite ici lalgorithme naf , en caractres. estimant sa complexit.
Ministre de lenseignement suprieur et de la recherche, 2013 http://www.enseignementsup-recherche.gouv.fr
Prcisions et commentaires
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 entiers, variable, types simples. flottants, boolens et chanes de caractres. Expressions et instructions simples : Les expressions considres sont valeurs affectation, oprateurs usuels, distinction numriques, boolennes ou de type chane entre expression et instruction. de caractres. Instructions conditionnelles : expressions boolennes et oprateurs logiques simples, instruction if. Variantes avec alternative (else). Instructions itratives : boucles boucles conditionnelles while. Les tudiants devront tre capables de structurer et comprendre plusieurs niveaux dalternatives implantes par des instructions conditionnelles imbriques.
for, Les sorties de boucle (instruction break) peuvent tre prsentes et se justifient uniquement lorsquelles contribuent simplifier notablement la programmation sans relle perte de lisibilit des conditions darrt. On distingue les variables locales des variables globales et on dcourage lutilisation des variables globales autant que possible. La rcursivit sera prsente plus tard.
Fonctions : notion de fonction (au sens informatique), dfinition dans le langage utilis, paramtres (ou arguments) et rsultats, porte des variables.
Manipulation de quelques structures de On met en vidence le fait que certaines donnes : chanes de caractres (cration, oprations dapparence simple cachent un
Ministre de lenseignement suprieur et de la recherche, 2013 http://www.enseignementsup-recherche.gouv.fr
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.
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.
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.
Bibliothques logicielles : utilisation de On met en vidence lintrt de faire quelques fonctions dune bibliothque et de appel aux bibliothques, vitant de devoir rinventer des solutions des problmes leur documentation en ligne. bien connus. La recherche des spcifications des bibliothques joue un rle essentiel pour le dveloppement de solutions fiables aux problmes poss. Problme stationnaire une dimension, linaire ou non conduisant la rsolution approche dune quation algbrique ou transcendante. Mthode de dichotomie, mthode de Newton. 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). 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. La mthode de Gauss tant introduite dans le cours de mathmatiques, il est ncessaire de se coordonner avec le professeur de mathmatiques pour traiter cette question. Il ne sagit pas de prsenter cet algorithme mais de lexcuter pour tudier sa mise en 9
Problme dynamique une dimension, linaire ou non, conduisant la rsolution approche dune quation diffrentielle ordinaire par la mthode dEuler.
Problme discret multidimensionnel, linaire, conduisant la rsolution dun systme linaire inversible (ou de Cramer) par la mthode de Gauss avec recherche partielle du pivot.
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, tudier leffet dune variation des paramtres sur le temps de calcul, sur la prcision des rsultats, sur la forme des solutions pour des programmes d'ingnierie numrique choisis, tout en contextualisant l'observation du temps de calcul par rapport la complexit algorithmique de ces programmes, 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, utiliser les bibliothques standard pour afficher les rsultats sous forme graphique, tenir compte des aspects pratiques comme limpact des erreurs darrondi sur les rsultats, le temps de calcul ou le stockage en mmoire.
10
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 perspective applicative, partir dexemples. de 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,
Ministre de lenseignement suprieur et de la recherche, 2013 http://www.enseignementsup-recherche.gouv.fr
11
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 Piles. Prcisions et commentaires
Algorithmes de manipulation : fonctions push et pop . On utilise des listes (ou tableaux 1 dimension) pour leur implantation.
Rcursivit.
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.
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 sousensemble 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.
12
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.
Les principales capacits dveloppes dans cette partie de la formation sont : 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.
13