Top Banner
79

(Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

Sep 13, 2018

Download

Documents

dangnhu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

1

programmation ? Pratique Démarche Exemple Annexe

(Initiation à la) programmation(et à l'algorithmique)

G. [email protected]

Université Paul Valéry Montpellier 3

Licence AES parcours Misahs

cours 2011-2012

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 2: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 3: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

3

programmation ? Pratique Démarche Exemple Annexe

Place de la programmation dans Misashs

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 4: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 5: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 6: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 7: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 8: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 9: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 10: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 11: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 12: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 13: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 14: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

8

programmation ? Pratique Démarche Exemple Annexe

Modalités pratiques de l'UE

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 15: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 16: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 17: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 18: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 19: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 20: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

14

programmation ? Pratique Démarche Exemple Annexe

Démarche générale d'une informatisation

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 21: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 22: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 23: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 24: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 25: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 26: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 27: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 28: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 29: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 30: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 31: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 32: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 33: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 34: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 35: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 36: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 37: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 38: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 39: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 40: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 41: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 42: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 43: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 44: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 45: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

20

programmation ? Pratique Démarche Exemple Annexe

Un premier exemple

Notions de base

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 46: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 47: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 48: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 49: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 50: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 51: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 52: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 53: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 54: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 55: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 56: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 57: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 58: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 59: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 60: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 61: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 62: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 63: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 64: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 65: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 66: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 67: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 68: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 69: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 70: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 71: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 72: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 73: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 74: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 75: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 76: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 77: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 78: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)

Page 79: (Initiation à la) programmation (et à l'algorithmique) · 1 rogrammationp ? Pratique Démarche Exemple Annexe (Initiation à la) programmation (et à l'algorithmique) G. Richomme

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)