(Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche...
Transcript of (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche...
1
programmation ? Pratique Démarche Exemple Annexe
(Initiation à la) programmation(et à l'algorithmique)
Université Paul Valéry Montpellier 3
Licence AES parcours Misahs
cours 2011-2012
[email protected] (Initiation à la) programmation (et à l'algorithmique)
2
programmation ? Pratique Démarche Exemple Annexe
Plan premier cours
1 Place de la programmation dans Misashs ?
2 Modalités pratiques de l'UE
3 Démarche générale d'une informatisation
4 Premier exemple, premiers concepts
5 AnnexeProgramme des UE d'informatique hors CompétencesInformatiques
[email protected] (Initiation à la) programmation (et à l'algorithmique)
3
programmation ? Pratique Démarche Exemple Annexe
Place de la programmation dans Misashs
[email protected] (Initiation à la) programmation (et à l'algorithmique)
4
programmation ? Pratique Démarche Exemple Annexe
Cadre général de la formation ?
Misahs = Mathématiques, Informatique et StatistiqueAppliquées aux Sciences Humaines et Sociales.
Objectif global = traitement d'indicateurs en AES
Cours AES = appréhension, compréhension, utilisation desindicateurs.Mathématiques, statistique = calcul des indicateursInformatique = construction des indicateurs à partir dedonnées brutes (amont), restitution de l'information (aval).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
4
programmation ? Pratique Démarche Exemple Annexe
Cadre général de la formation ?
Misahs = Mathématiques, Informatique et StatistiqueAppliquées aux Sciences Humaines et Sociales.
Objectif global = traitement d'indicateurs en AES
Cours AES = appréhension, compréhension, utilisation desindicateurs.Mathématiques, statistique = calcul des indicateursInformatique = construction des indicateurs à partir dedonnées brutes (amont), restitution de l'information (aval).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
4
programmation ? Pratique Démarche Exemple Annexe
Cadre général de la formation ?
Misahs = Mathématiques, Informatique et StatistiqueAppliquées aux Sciences Humaines et Sociales.
Objectif global = traitement d'indicateurs en AES
Cours AES = appréhension, compréhension, utilisation desindicateurs.Mathématiques, statistique = calcul des indicateursInformatique = construction des indicateurs à partir dedonnées brutes (amont), restitution de l'information (aval).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
4
programmation ? Pratique Démarche Exemple Annexe
Cadre général de la formation ?
Misahs = Mathématiques, Informatique et StatistiqueAppliquées aux Sciences Humaines et Sociales.
Objectif global = traitement d'indicateurs en AES
Cours AES = appréhension, compréhension, utilisation desindicateurs.Mathématiques, statistique = calcul des indicateursInformatique = construction des indicateurs à partir dedonnées brutes (amont), restitution de l'information (aval).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
5
programmation ? Pratique Démarche Exemple Annexe
Quelle informatique ?
Présentation de l'information :
traitement de texte, grapheur → voir cours de compétencesinformatiquesweb → idem + programmation pour automatisation
Calcul d'indicateurs
solution 1 : tableur → voir cours Expert Sim (S4)Limites =
Taille des données à traiter
Di�culté de réutilisation
solution 2 : concevoir sa propre application → programmationsolution 3 : logiciels spécialisés
[email protected] (Initiation à la) programmation (et à l'algorithmique)
5
programmation ? Pratique Démarche Exemple Annexe
Quelle informatique ?
Présentation de l'information :
traitement de texte, grapheur → voir cours de compétencesinformatiquesweb → idem + programmation pour automatisation
Calcul d'indicateurs
solution 1 : tableur → voir cours Expert Sim (S4)Limites =
Taille des données à traiter
Di�culté de réutilisation
solution 2 : concevoir sa propre application → programmationsolution 3 : logiciels spécialisés
[email protected] (Initiation à la) programmation (et à l'algorithmique)
5
programmation ? Pratique Démarche Exemple Annexe
Quelle informatique ?
Présentation de l'information :
traitement de texte, grapheur → voir cours de compétencesinformatiquesweb → idem + programmation pour automatisation
Calcul d'indicateurs
solution 1 : tableur → voir cours Expert Sim (S4)Limites =
Taille des données à traiter
Di�culté de réutilisation
solution 2 : concevoir sa propre application → programmationsolution 3 : logiciels spécialisés
[email protected] (Initiation à la) programmation (et à l'algorithmique)
5
programmation ? Pratique Démarche Exemple Annexe
Quelle informatique ?
Présentation de l'information :
traitement de texte, grapheur → voir cours de compétencesinformatiquesweb → idem + programmation pour automatisation
Calcul d'indicateurs
solution 1 : tableur → voir cours Expert Sim (S4)Limites =
Taille des données à traiter
Di�culté de réutilisation
solution 2 : concevoir sa propre application → programmationsolution 3 : logiciels spécialisés
[email protected] (Initiation à la) programmation (et à l'algorithmique)
6
programmation ? Pratique Démarche Exemple Annexe
Plusieurs UE
(Hors cours de compétences informatiques + Expert Sim)
Semestre 3 : initiation à la programmation (et àl'algorithmique)
Semestre 4 : programmation par objets
Semestre 5 : bases de données
Semestre 5 : graphes et réseaux
Semestre 5 : projets
Semestre 6 : informatique pour le web
[email protected] (Initiation à la) programmation (et à l'algorithmique)
7
programmation ? Pratique Démarche Exemple Annexe
Synthèse
Résumés objectifs
Être capable de concevoir de petites/moyennes applications ;Être capable de dialoguer avec des informaticiens.
Limites
Pas une culture complète d'informaticienExemple : pas toutes les connaissances pour optimiser certainstraitements.Intéressant de passer dans certains cas par des logicielsspécialisés.Exemple : ne pas perdre de temps à reconstruire ce qui existe(sauf pb de coût ?)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
8
programmation ? Pratique Démarche Exemple Annexe
Modalités pratiques de l'UE
[email protected] (Initiation à la) programmation (et à l'algorithmique)
9
programmation ? Pratique Démarche Exemple Annexe
Modalités de contrôle des connaissances (1/2)
Contrôle continu pour la première session
Coe�cient 0,1 : notes de présentiel (présence obligatoire),participation et préparation des enseignements.
Coe�cient 0,9 : exercices et/ou questions de cours, sur tableet/ou sur machines répartis sur plusieurs séancesd'enseignementCalendrier prévisionnel (voir site web à partir site Misashs) :
3 octobre (semaine 4)24 octobre (semaine 7)21 novembre (semaine 10)12 décembre (semaine 13)
Note = moyenne des 3 meilleures notes(0 si absence pour une évaluation)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
10
programmation ? Pratique Démarche Exemple Annexe
Modalités de contrôle des connaissances (2/2)
Deuxième session.
Examen sur table (ou sur machine) de 2h.
Note �nale UE = max première et deuxième session
[email protected] (Initiation à la) programmation (et à l'algorithmique)
11
programmation ? Pratique Démarche Exemple Annexe
Pré-requis supposés
niveau Débutant en Compétences Informatiques,
un minimum d'anglais,
un esprit d'ouverture.
"Il n'est pas vraiment di�cile d'apprendre à programmer,mais il faut de la méthode et une bonne dose de persévérance"(G. Swinnen - voir ref. transparent suivant)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
12
programmation ? Pratique Démarche Exemple Annexe
Bibliographie
Support de cours : voir site Misashs.
Apprendre à programmer en Python, Gérard Swinnen,
Texte sous licence Creative Commons accessible sur le web :http://www.inforef.be/swi/python.htm
Dernière version parue chez Eyrolles.
http://www.python.org/
[email protected] (Initiation à la) programmation (et à l'algorithmique)
13
programmation ? Pratique Démarche Exemple Annexe
Méthodologie
Du cours pour les grandes généralités.
Des exercices hors machines pour la manipulation des conceptsgénéraux de programmation (adaptable à d'autres langagesque celui choisi pour les TPs).(Voir aussi Transparents suivants)
Des exercices sur machines pour de véritables programmes.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
14
programmation ? Pratique Démarche Exemple Annexe
Démarche générale d'une informatisation
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
15
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (1/4)
Le cycle de développement d'un "programme (ou d'uneapplication) informatique " peut se résumer ainsi :Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Exemple de problème :
donner le plus court chemin dans le métro entre 2 stations
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
16
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (2/4)
Analyse : phase de ré�exion qui permet
d'identi�er précisément le problèmeExemple : plus court chemin ? en temps ? en distance ?
d'identi�er les caractéristiques du problème à traiter
données,Exemple : plan du réseau, temps entre deux stations, stationsconcernées par le calcul.résultats,Exemple : lignes à prendre, stations où changercas particuliers,Exemple : stations non reliées par le réseau ???traitement, . . .Exemple : calculer le plus court chemin
de découper le problème en une succession de tâches simpleset distinctes (sous-problèmes).
[email protected] (Initiation à la) programmation (et à l'algorithmique)
17
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (3/4)
Après l'analyse... les algorithmes
Algorithme = description
des opérations à mettre en oeuvre expliquant comment obtenirun résultat à partir de données,
compréhensible par un être humain,
proche des langages de programmation.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
17
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (3/4)
Après l'analyse... les algorithmes
Algorithme = description
des opérations à mettre en oeuvre expliquant comment obtenirun résultat à partir de données,
compréhensible par un être humain,
proche des langages de programmation.
Exemple :
- démarrer par la station de départ,
- lister toutes les stations voisines
- si la station d'arrivée �gure dans cette listealors .......sinon lister toutes les stations voisines des voisines.......
- ......
[email protected] (Initiation à la) programmation (et à l'algorithmique)
17
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (3/4)
Après l'analyse... les algorithmes
Algorithme = description
des opérations à mettre en oeuvre expliquant comment obtenirun résultat à partir de données,
compréhensible par un être humain,
proche des langages de programmation.
Remarque
Souvent utilisation d'un langage algorithmique propre auxacteurs du développement.
Nous travaillerons directement en langage de programmation.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
18
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (4/4)
Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Programme : texte des instructions permettant de résoudre leproblème posé écrites dans un langage informatique dit deprogrammation (ex: Python, JAVA, C, COBOL, BASIC,FORTRAN, . . . ).
Compilation : transformation du texte écrit en langageprogrammation (code source) en langage machine.−→ Génération d'un �chier exécutable.
Interprétation : exécution directe des instructions.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
18
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (4/4)
Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Programme : texte des instructions permettant de résoudre leproblème posé écrites dans un langage informatique dit deprogrammation (ex: Python, JAVA, C, COBOL, BASIC,FORTRAN, . . . ).
Compilation : transformation du texte écrit en langageprogrammation (code source) en langage machine.−→ Génération d'un �chier exécutable.
Interprétation : exécution directe des instructions.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
18
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (4/4)
Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Programme : texte des instructions permettant de résoudre leproblème posé écrites dans un langage informatique dit deprogrammation (ex: Python, JAVA, C, COBOL, BASIC,FORTRAN, . . . ).
Compilation : transformation du texte écrit en langageprogrammation (code source) en langage machine.−→ Génération d'un �chier exécutable.
Interprétation : exécution directe des instructions.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
18
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (4/4)
Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Programme : texte des instructions permettant de résoudre leproblème posé écrites dans un langage informatique dit deprogrammation (ex: Python, JAVA, C, COBOL, BASIC,FORTRAN, . . . ).
Compilation : transformation du texte écrit en langageprogrammation (code source) en langage machine.−→ Génération d'un �chier exécutable.
Interprétation : exécution directe des instructions.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
18
programmation ? Pratique Démarche Exemple Annexe
Cycle de développement (4/4)
Problème→ Analyse→ Algorithme→ Programme→ Compilation/Interprétation→ Tests d'exécution
Programme : texte des instructions permettant de résoudre leproblème posé écrites dans un langage informatique dit deprogrammation (ex: Python, JAVA, C, COBOL, BASIC,FORTRAN, . . . ).
Compilation : transformation du texte écrit en langageprogrammation (code source) en langage machine.−→ Génération d'un �chier exécutable.
Interprétation : exécution directe des instructions.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
19
programmation ? Pratique Démarche Exemple Annexe
Python
Langage de très haut niveau
Simple et compact
Langage interprété
Possibilité de compilation avec Cython
Possibilité d'écrire des scripts (langage de script) directementexécutable.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
20
programmation ? Pratique Démarche Exemple Annexe
Un premier exemple
Notions de base
[email protected] (Initiation à la) programmation (et à l'algorithmique)
21
programmation ? Pratique Démarche Exemple Annexe
from random import randrange
nbEssaisAutorises = 10aDeviner = randrange(1,101)print("Bonjour!")print("Comment vous appelez-vous ?")nom = input()print("Jouons ensemble " + nom + " !")print("Devine le nombre, entre 1 et 100, auquel je pense")print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")trouve = unePartie(aDeviner, nbEssaisAutorises)if trouve:
print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
[email protected] (Initiation à la) programmation (et à l'algorithmique)
22
programmation ? Pratique Démarche Exemple Annexe
Un programme = une suite d'instructions
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
[email protected] (Initiation à la) programmation (et à l'algorithmique)
23
programmation ? Pratique Démarche Exemple Annexe
Première instruction : l'a�ectation
from random import randrange
nbEssaisAutorises = 10 # Une a�ectationaDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
Variable : zone de mémoire stockant une valeurA�ectation : attribution d'une valeur à une variable
Nom_Variable = (expression permettant le calcul d'une) [email protected] (Initiation à la) programmation (et à l'algorithmique)
23
programmation ? Pratique Démarche Exemple Annexe
Première instruction : l'a�ectation
nbEssaisAutorises = 10 # Une a�ectation
Remarque : sur une ligne,tout ce qui suit un # est un commentaire
(non exécuté)Variable : zone de mémoire stockant une valeur
A�ectation : attribution d'une valeur à une variable
Nom_Variable = (expression permettant le calcul d'une) valeur
[email protected] (Initiation à la) programmation (et à l'algorithmique)
23
programmation ? Pratique Démarche Exemple Annexe
Première instruction : l'a�ectation
nbEssaisAutorises = 10 # Une a�ectation
Variable : zone de mémoire stockant une valeur
A�ectation : attribution d'une valeur à une variable
Nom_Variable = (expression permettant le calcul d'une) valeur
[email protected] (Initiation à la) programmation (et à l'algorithmique)
23
programmation ? Pratique Démarche Exemple Annexe
Première instruction : l'a�ectation
nbEssaisAutorises = 10 # Une a�ectation
Variable : zone de mémoire stockant une valeur
A�ectation : attribution d'une valeur à une variable
Nom_Variable = (expression permettant le calcul d'une) valeur
Au sujet des noms de variables :
liberté de choix → choisir des noms explicites(sauf quelques noms réservés)
suite de lettres (a → z, A → Z), chi�res 0 → 9, souligné (_)
commence par une lettre
Attention ! Sensibilité à la casse.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
23
programmation ? Pratique Démarche Exemple Annexe
Première instruction : l'a�ectation
nbEssaisAutorises = 10 # Une a�ectation
Variable : zone de mémoire stockant une valeur
A�ectation : attribution d'une valeur à une variable
Nom_Variable = (expression permettant le calcul d'une) valeur
Autre exemple d'a�ectation :
moyenne = somme / nombre
Remarque : attention à l'orientation ! (La valeur de la partie droiteest a�ectée à la variable précisée à gauche)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
24
programmation ? Pratique Démarche Exemple Annexe
Utilisation d'une variablefrom random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises ) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises )
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
[email protected] (Initiation à la) programmation (et à l'algorithmique)
25
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1 , 101) # une fonction du paquetage randombibliothèque = paquetage (package)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
[email protected] (Initiation à la) programmation (et à l'algorithmique)
26
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!") # une fonction prédé�nie
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)
if trouve:
print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:
print("Desole " + nom + ", tu as perdu")print( valeur )
a�che la valeur entre parenthèses (= paramètre ou argument)
Remarque : dans cet exemple, la valeur est une chaîne de caractères
délimitée par les ".
[email protected] (Initiation à la) programmation (et à l'algorithmique)
26
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!") # une fonction prédé�nie
print( valeur )
a�che la valeur entre parenthèses (= paramètre ou argument)
Remarque : dans cet exemple, la valeur est une chaîne de caractères
délimitée par les ".
[email protected] (Initiation à la) programmation (et à l'algorithmique)
27
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input() # une autre fonction prédé�nie
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
input() (raw_input() en version 2 de Python)
retourne le texte saisi au clavier jusqu'à un retour chariot.
Remarque :
pas de paramètre.
un résultat retourné.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
27
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input() # une autre fonction prédé�nie
input() (raw_input() en version 2 de Python)
retourne le texte saisi au clavier jusqu'à un retour chariot.
Remarque :
pas de paramètre.
un résultat retourné.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
28
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)# une fonction utilisateur
if trouve:print("Bravo " + nom + "! Tu as trouve")# é : problème de caractère
else:print("Desole " + nom + ", tu as perdu")
Voir code de la fonction au transparent [email protected] (Initiation à la) programmation (et à l'algorithmique)
28
programmation ? Pratique Démarche Exemple Annexe
Utilisation de sous-programmes
from random import randrange
nbEssaisAutorises = 10
aDeviner = randrange(1,101)
print("Bonjour!")
print("Comment vous appelez-vous ?")
nom = input()
print("Jouons ensemble " + nom + " !")
print("Devine le nombre, entre 1 et 100, auquel je pense")
print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
trouve = unePartie(aDeviner, nbEssaisAutorises)# une fonction utilisateur
Voir code de la fonction au transparent suivant
[email protected] (Initiation à la) programmation (et à l'algorithmique)
29
programmation ? Pratique Démarche Exemple Annexe
Le code de la fonction unePartie()(Nous l'analyserons ultérieurement)
def unePartie(aDeviner, nbEssaisMax):# Une partie pour deviner le mot aDeviner en nbEssaisMax essais maximum
trouve = False # trouve contient la valeur True si le nombre a été trouvé, False sinon
numEssai = 0 # essai contient le numero de l'essai en cours
while( not trouve and numEssai < nbEssaisMax):numEssai += 1print("Essai " + str(numEssai) + " :")aTester= int(input()) # aTester = nombre proposé par le joueur
if aTester == aDeviner :trouve = True
elif(aTester < aDeviner):print("Ta proposition est trop petite.")
else:print("Ta proposition est trop grande.")
return [email protected] (Initiation à la) programmation (et à l'algorithmique)
30
programmation ? Pratique Démarche Exemple Annexe
Types de données
Les données manipulées par un programme sont typées.
Il n'est pas possible en général de faire des opérations entresdes données de types di�érents.
Trois types de base :
les entiers (int) ;les nombres à "virgule" point (�oat) ;les chaînes de caractères (str).
Typage dynamique Contrairement à beaucoup de langage deprogrammation, il n'est pas nécessaire de déclarerpréalablement le type des variables utilisées(l'interpréteur se débrouille)
La fonction type() permet de connaître le type d'une valeur.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
31
programmation ? Pratique Démarche Exemple Annexe
Le type entier
Exemple de constantes : 0 10 -5
Opérations classiques : addition (+), soustraction (-),multiplication (*)
Division entière → deux symboles de divisions :
quotient : //reste : %
x y
x % y x // y
13 53 2
Exponentiation (**)
Priorité des opérations :parenthèses, exponentiation, multiplication et division, additionet soustraction
[email protected] (Initiation à la) programmation (et à l'algorithmique)
32
programmation ? Pratique Démarche Exemple Annexe
Le type "nombre à virgule"
Exemple de constantes : 0.5 10. -5.3
Opérations classiques : addition (+), soustraction (-),multiplication (*)
Division : /
Exponentiation (**)
Priorité des opérations :parenthèses, exponentiation, multiplication et division, additionet soustraction
[email protected] (Initiation à la) programmation (et à l'algorithmique)
33
programmation ? Pratique Démarche Exemple Annexe
Le type "chaîne de caractères"/string
Constantes : entre quotes (') ou entre guillemets (")
Opération de concaténation = mise bout à bout (+)Exemples :
"bon" + "jour" → "bonjour"La séquence d'instructions :
nom = "Toto"print("Jouons ensemble " + nom + " !")
a�che le texte (sans guillemets) : Jouons ensemble Toto !
[email protected] (Initiation à la) programmation (et à l'algorithmique)
34
programmation ? Pratique Démarche Exemple Annexe
Changement de type
Un problème fréquent : créer une chaîne à partir de texte et devariables numériquesVoir exemple = présentation du nombre d'essais max autorisés.
Voir exemple : fonction de transtypage str()Exemple :print("Tu as le droit à " + str(nbEssaisAutorises) + " essais")
Autres fonctions :
int() : transtype le paramètre en entier (si cohérent)�oat() : transtype le paramètre en nombre décimal (sicohérent)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
35
programmation ? Pratique Démarche Exemple Annexe
Un outil : trace d'exécution
Contexte
Après écriture d'un programme, on le teste(voire on traque les erreurs).
En cas d'erreur, on la corrige.
Mais avant il faut la comprendre et souvent avant tout lalocaliser.
Souvent : on trace l'exécution qui pose problème, i.e., onexécute pas à pas le programme pour voir ce qui se passevraiment (et pas ce qu'on croit qui se passe).
dans certains contextes, il existe des outils pour tracer surmachine.nous le ferons à la main.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
35
programmation ? Pratique Démarche Exemple Annexe
Un outil : trace d'exécution
Contexte
Après écriture d'un programme, on le teste(voire on traque les erreurs).
En cas d'erreur, on la corrige.
Mais avant il faut la comprendre et souvent avant tout lalocaliser.
Souvent : on trace l'exécution qui pose problème, i.e., onexécute pas à pas le programme pour voir ce qui se passevraiment (et pas ce qu'on croit qui se passe).
dans certains contextes, il existe des outils pour tracer surmachine.nous le ferons à la main.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
35
programmation ? Pratique Démarche Exemple Annexe
Un outil : trace d'exécution
Contexte
Après écriture d'un programme, on le teste(voire on traque les erreurs).
En cas d'erreur, on la corrige.
Mais avant il faut la comprendre et souvent avant tout lalocaliser.
Souvent : on trace l'exécution qui pose problème, i.e., onexécute pas à pas le programme pour voir ce qui se passevraiment (et pas ce qu'on croit qui se passe).
dans certains contextes, il existe des outils pour tracer surmachine.nous le ferons à la main.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
35
programmation ? Pratique Démarche Exemple Annexe
Un outil : trace d'exécution
Contexte
Après écriture d'un programme, on le teste(voire on traque les erreurs).
En cas d'erreur, on la corrige.
Mais avant il faut la comprendre et souvent avant tout lalocaliser.
Souvent : on trace l'exécution qui pose problème, i.e., onexécute pas à pas le programme pour voir ce qui se passevraiment (et pas ce qu'on croit qui se passe).
dans certains contextes, il existe des outils pour tracer surmachine.nous le ferons à la main.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
36
programmation ? Pratique Démarche Exemple Annexe
Mise en oeuvre formellement d'une trace d'exécution
Instructions Variable 1 Variable 2 .... Ecran Clavier
[email protected] (Initiation à la) programmation (et à l'algorithmique)
37
programmation ? Pratique Démarche Exemple Annexe
Exemple
Instructions nbEssaisAutorises aDeviner nom Ecran Clavier
from random ...nbEssaisAutorises = 10 10aDeviner = 25 (exemple)print("bonjour !") bonjour !print("Comment...") Comment ...nom = input() Tom Tomprint("Jouons " + nom Jouons Tom
[email protected] (Initiation à la) programmation (et à l'algorithmique)
38
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
Annexe
Programme des UE d'informatique hors Compétences Informatiques
(les descriptifs de programmes présentés ci-après peuvent évoluer)
[email protected] (Initiation à la) programmation (et à l'algorithmique)
39
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S3 : Initiation à la programmation
Objectif
Apprendre à écrire des programmes informatiques dans un langagede programmation évolué :
a) écriture d'algorithme,
b) écriture, à partir de l'algorithme, de la solution dans un
langage de programmation particulier.
Le choix s'est porté sur le langage Python qui sera également utilisédans d'autres modules de la formation. (pas que informatique)
Programme notion d'algorithme, objets manipulés, structures decontrôle, récursivité, découverte du langage de programmation Python.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
40
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S4 : Programmation par objets
Objectifs : familiariser l'étudiant aux concepts de laprogrammation par objets, lui présenter par la pratique quelquesproblématiques du développement des applications de nouvellegénération, par exemple des navigateurs internet.
But = permettre de suivre l'évolution des technologiesinformatiques, notamment dans le web, pour devenir et demeurerun interlocuteur actif, aussi bien à l'aise auprès des équipesinformatiques qu'auprès des prescripteurs.
Programme : classes et objets, problématique de l'héritage :sous-classe, polymorphisme, classes virtuelles, interface, graphisme enjava : principes, classes pré-dé�nies, applets, interface utilisateur : objetsactivables, événements, écouteurs, mise en ÷uvre des notions ci-dessusdans la réalisation d'un applet interactif, publiable sur internet.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
41
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S5 : Bases de données
Objectifs : Acquérir des concepts généraux et comprendre lesmécanismes de création et de consultation des bases de données.Posséder une certaine connaissance du vocabulaire, de la réalité etde la complexité des problèmes pouvant être rencontrés.
Attentes : à l'issue de ce cours, les étudiants seront desinterlocuteurs pertinents capables d'interagir avec desinformaticiens chargés de la mise en place de bases de données etavec des utilisateurs de ces bases. Ils seront également capablesd'évaluer les délais de conception et la di�culté d'utilisation dessystèmes commerciaux de gestion de bases de données.
Programme : concepts généraux sur les bases de données, méthode deconception (objectifs, recueil des informations, cahier des charges,modèles de conception : entité-association, relationnel), création etinterrogation de bases de données (SQL), mise en oeuvre desconnaissances au travers de cas concrets.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
42
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S5 : Projet
Objectifs : mettre en pratique les connaissances théoriquesacquises dans l'UE de base de données via l'utilisation du logicielACCESS et sur des cas réels proches de la réalité économique.
Attentes : à l'issue de ce cours, les étudiants maîtriserontl'utilisation simple du système de gestion de base de donnéesACCESS et auront appréhendé les di�cultés liées à la réalisationtechnique d'une base de données. Ils seront donc des interlocuteursclés permettant de faire le lien entre les informaticiens et lesutilisateurs lors de la mise en place d'un tel système.
Programme : création de tables, écriture de requêtes avancées(paramétrées, avec calculs, multi-tables, avec jointures...), mise en placede formulaires et d'états interactifs, transfert des données par import etexport.
[email protected] (Initiation à la) programmation (et à l'algorithmique)
43
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S5 : Graphes et réseaux
Objectifs : donner aux étudiants les outils formels leur permettantd'analyser les réseaux rencontrés dans le domaine économique etsocial
Programme : vocabulaire de la théorie des graphes, propriétéstopologiques et paramètres des graphes servant à modéliser lesréseaux sociaux (connexité, densité, coe�cient de clustering,diamètre...), algorithmes permettant de calculer ces paramètres
[email protected] (Initiation à la) programmation (et à l'algorithmique)
44
programmation ? Pratique Démarche Exemple Annexe Programme des UE d'informatique hors Compétences Informatiques
S6 : Programmation web
Objectifs : étudier des méthodes et outils de programmationd'applications destinées à être distribuées et di�usées sur le Web,utilisant éventuellement les bases de données comme mémoirecommune.
Programme : concepts de Web services, langages JavaScript,PHP, XML.
[email protected] (Initiation à la) programmation (et à l'algorithmique)