Introduction à l’informatique – 1A-HEC


Objectif

– Approfondir les compétences en représentation des données et algorithmique.

– Définir la structure d'un programme.

– Elaborer des utilitaires.

– Se familiariser avec différents algorithmes/programmes autour de domaines variés tels que les graphes, les méthodes d’optimisation numérique, les méthodes de tri, la programmation dynamique… 

Principaux acquis de la formation :

À l’issue de ce cours, l’étudiant sera capable de : 

– concevoir et mettre en œuvre un algorithme

– comprendre la structure d’un programme informatique

– mettre en œuvre un traitement numérique. 

Plan

– Généralités : principe de codage de l’information sur l’ordinateur, algorithmique, instructions et langages informatiques, variables, types de données et opérateurs…

– Les programmes python – les modules – les fonctions : utilisation

–  Les booléens et l'instruction conditionnelle « if »

– Les séquences – l'instruction de boucle « for »

– L'instruction de boucle « while »

– Les fonctions et procédures : création des sous-programmes

– Les fichiers et les dictionnaires (classes et programmation objet)

– Les modules – l’interface graphique et le module « matplotlib » – les exceptions

– Quelques algorithmes/programmes :

1. Algorithmes de tri
2. Files d’attente, simulation informatique
3. Plus court chemin dans un graphe
4. Plus court chemin reliant tous les nœuds d’un graphe, cartes de Kohonen
5. Distance d’édition, distance entre deux séquences
6. Optimisation numérique, algorithmes BFGS, DFP
7. Classification à l’aide des k plus proches voisins (k-PPV), optimisation de la recherche du plus proche voisin
8. Modèles de Markov cachés et algorithme Expectation-Maximisation (EM)

Références

Balkanski, Cécile et Maynard, Hélène, Algorithmique et C++, Supports de TD et de TP, IUT d'Orsay, département Informatique

Chesneau, Myriam, Cours d'informatique – Initiation au langage C, IUT d'Annecy, Département Mesures Physiques, 2010-2011

Chun, W. J., Au Coeur de Python, CampuPress, 2007 Cordeau, Bob, Introduction à Python 3, version 2.71828,

http://perso.limsi.fr/pointal/_media/python:cours:courspython3.pdf

Cordeau, Bob, Python, Python 3, Exercices corrigés, version 2.2, 2008-2009,http://perso.limsi.fr/pointal/_media/python:cours:exercices-python3.pdf

Dabancourt, Christophe, Apprendre à programmer, Algorithmes et conception objet, Eyrolles, 2008, 2e édition

Faure, Robert, Lemaire, Bernard et Picouleau, Christophe, Précis de recherche opérationnelle

Le Goff, Vincent, Apprenez à programmer en Python, Le Livre du Zéro, 2011,http://www.siteduzero.com/informatique/tutoriels/apprenez-a- programmer-en-python

Lutz, Mark et Bailly, Yves, Python précis et concis, O’Reilly, 2e édition, 2005

Martelli, Alex, Python en concentré, O’Reilly, 2004

Martelli, Alex, Python par l'exemple, O’Reilly, 2006

Miller, Brad et Ranum, David, Problem Solving with Algorithms and Data Structures

Pointal, Laurent, site web : Cours Programmation Python,http://perso.limsi.fr/pointal/python:cours_prog

Pointal, Laurent et Marduel, Sabine, Informatique et Algorithmique, Supports de cours, TD et de TP, IUT d'Orsay, département Mesures Physiques

Swinnen, Gérald, Apprentissage de la programmation

Swinnen, Gérard, Apprendre à programmer avec Python 3, Eyrolles, 2010, http://inforef.be/swi/python.htm

Summerfield, Mark, Programming in Python 3, Addison-Wesley, 2e édition, 2009 Younker, Jeff, Foundations of Agile Python Development, Apress, 2008
Ziadé, Tarek, Programmation Python. Conception et optimisation, Eyrolles, 2e édition, 2009 Ziadé, Tarek, Python : Petit guide à l’usage du développeur agile, Dunod, 2007
Manuel de référence python : http://www.python.org, cliquer sur DOCUMENTATION Wikibook python : http://fr.wikibooks.org/wiki/Programmation_PythonDeveloppez.com (site d'entraide) : http://python.developpez.com