|
IN101 : Algorithmique et programmation |
|||
| Année
: 1A |
Module
: TC |
Crédits ECTS : 4 |
||
![]() English version |
Professeurs : |
Matthieu FINIASZ ; Pierre-Alain FOUQUE |
||
| Maîtres de conférences
: |
Fabien GALAND ; Céline BLONDEAU ; Tristan DAGOBERT ; Laurent CHAVAUDREY ; Matthieu FINIASZ ;
Pierre-Alain FOUQUE ; Léo DUCAS |
|||
| Objectifs Mots-clés Pré-requis et débouchés Bibliographie, liens, supports Contrôle de connaissances ![]() Programmation détaillée dernière mise à jour : 19/08/2010 par finiasz
|
Objectifs : Le but de tout programme informatique est de « traiter » un ensemble d'informations afin d'obtenir un résultat. L'algorithmique est la science qui étudie les méthodes permettant d'effectuer de tels calculs. L'idée sous-jacente est que pour résoudre un problème efficacement, il vaut bien mieux s'intéresser au schéma de calcul employé plutôt que de chercher à programmer de manière très optimisée une méthode simple mais inefficace. L'étude et la conception d'algorithmes allant de pair avec leur implantation effective sur machine, ce cours forme aussi les élèves aux bases de la programmation, avec comme application une introduction au célèbre langage C, ainsi qu'aux moyens mis à la disposition du programmeur (emacs, gcc, etc). Dans ce cours, nous définirons tout d'abord ce que l'on entend par « efficace ». Pour cela, nous poserons les bases de la théorie de la complexité dont le but est d'étudier les performances intrinsèques des algorithmes, i.e. indépendantes des machines employées et de la qualité de la programmation. Nous étudierons ensuite les principales structures de données qui sont la base de tout algorithme efficace : listes chaînées, arbres, graphes, etc. Pour chacunes de ces structures, nous nous intéresserons aux algorithmes élémentaires de parcours qui lui sont associés ainsi qu'à des exemples d'applications pratiques. L'objectif de ce cours est de fournir une vision différente de la programmation qui ne doit pas être réduite à son aspect purement syntaxique, souvent déroutant pour un débutant. Un bon programmeur doit certes maîtriser les aspects techniques de la programmation mais une approche algorithmique doit impérativement précéder la réalisation de tout projet d'envergure. Ce cours s'adresse donc à tout élève ingénieur qui devra, au cours de sa carrière professionnelle, participer à l'élaboration de logiciels, que ce soit comme informaticien ou non. |
|||