Sie sind auf Seite 1von 12

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 ;

Traduire

Spcifier valuer, contrler, valider Communiquer

lcrit ou loral, une problmatique, une solution ou un algorithme, une documentation.

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.

1.a/ Prsentation du systme informatique utilis et lments darchitecture des ordinateurs


Une ou deux sances introductives seront consacres prsenter et familiariser les tudiants aux principaux composants dune machine numrique telle que lordinateur personnel, une tablette, etc : sources dnergie, mmoire vive, mmoire de masse, unit centrale, priphriques dentre-sortie, ports de communication avec dautres composants numriques (aucune connaissance particulire des composants cits nest cependant exigible), la manipulation dun systme dexploitation (gestion des ressources, essentiellement : organisation des fichiers, arborescence, droits daccs, de modification, entres/sorties), la manipulation dun environnement de dveloppement.

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.

1.b/ Reprsentation des nombres et consquences


Il sagit de familiariser les tudiants avec les problmes lis la reprsentation finie des nombres et la discrtisation des modles numriques. Les calculatrices peuvent servir de support dtude de ces questions. Contenus Principe de la reprsentation des nombres entiers en mmoire. Principe de la reprsentation des nombres rels en mmoire. Consquences de la reprsentation limite des nombres rels en machine. Prcisions et commentaires On introduit ou rappelle brivement le principe de la reprsentation binaire ainsi que ses limites.

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.a/ Outils employs


Au premier semestre, lenseignement se fonde sur un environnement de programmation (langage et bibliothques) bas sur un langage interprt largement rpandu et source libre. Au moment de la conception de ce programme, lenvironnement slectionn est Python. Les travaux pratiques conduiront diter et manipuler frquemment des codes sources et des fichiers ; cest pourquoi un environnement de dveloppement efficace doit tre choisi et utilis. Les tudiants doivent tre familiariss avec les tches de cration dun fichier source, ddition dun programme, de gestion des fichiers, dexcution et darrt forc dun programme. Avant la fin du premier trimestre, un environnement de calcul scientifique est prsent et utilis en lien avec ltude des problmes de simulation. Afin den permettre rapidement une utilisation dans dautres enseignements, une sance de prsentation de cet environnement sera prvue en fin de premier trimestre. Au moment de la conception de ce programme, lenvironnement slectionn est Scilab. Ltude approfondie de ces divers outils et environnements nest pas une fin en soi et nest pas un attendu du programme. 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 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.

3. Ingnierie numrique et simulation


Premire partie du semestre 2.

3.a/ Objectifs et organisation de cet enseignement


Dans cette partie de programme, on tudie le dveloppement d'algorithmes numriques sur des problmes scientifiques tudis et mis en quation dans les autres disciplines. La pdagogie par projets est encourage.

3.b/ Outils employs


Lobjectif est de familiariser les tudiants avec un environnement de simulation numrique. Cet environnement doit permettre dutiliser des bibliothques de calcul numrique et leur documentation pour dvelopper et excuter des programmes numriques. On veillera faire aussi programmer par les tudiants les algorithmes tudis. Aucune connaissance des fonctions des bibliothques nest exigible des tudiants. Au moment de llaboration de ces programmes denseignement, latelier logiciel Scilab ou le langage de programmation Python, avec les bibliothques Numpy/Scipy, sont les environnements choisis.

3.c/ Simulation numrique


Il sagit dapprendre aux tudiants utiliser des algorithmes numriques simples et/ou utiliser des bibliothques pour rsoudre des problmes tudis et mis en quation dans les autres disciplines. Le problme dorigine doit tre expos mais la modlisation (et la mise en quations) nest pas un objectif de ce programme. Dans cette partie, on naborde pas les aspects thoriques des algorithmes tudis (qui peuvent tre traits dans dautres disciplines). Seules la mise en uvre constructive des algorithmes et lanalyse empirique des rsultats sont concernes. On s'attache comparer la solution numrique une solution analytique quand elle existe, des rsultats exprimentaux, aux

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. Initiation aux bases de donnes


Seconde moiti du semestre 2.

4.a/ Objectifs de lenseignement


Lobjectif de cette partie de la formation vise dvelopper les savoir-faire suivants : recourir aux concepts des bases de donnes relationnelles ; traduire les questions poses dans un langage de requte en respectant sa syntaxe ; prototyper et crer une base de donnes simple, laide dun outil interactif ; consulter une base de donnes travers des requtes de type SQL ; comprendre et dcrire les rles des diffrents lments d'une architecture trois-tiers. La formation doit mettre en vidence la ncessit dun niveau d'abstraction suffisant dans la conception doutils permettant la gestion de bases de donnes de taille importante, l o des algorithmes de recherche simples sur des structures plates , orientes tableaux, deviennent inoprants : les schmas relationnels sont une rponse ce problme.

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 =...).

On se limite prsenter ce concept dans la perspective applicative dutilisation de bases de donnes.

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.a/ Objectifs de lenseignement


Le but de cette partie de la formation est de dpasser la vision des algorithmes qui a t introduite en semestre 1 et de donner accs un petit nombre dautres mthodes et structures, permettant denvisager des applications des domaines trs varis. En combinaison avec les apports du semestre 2, les comptences acquises dans cette partie seront immdiatement utiles pour le dveloppement des T.I.P.E. que les tudiants auront raliser.

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.

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.

Das könnte Ihnen auch gefallen