79

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

  • Upload
    dangnhu

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

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)

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)