Portail MIPC Septembre 2010 Informatique Portail MIPC Septembre 2010
Quelques questions pour ce cours Pourquoi étudier l’informatique ? Pour devenir informaticien(ne) ? Pour occuper tout emploi de niveau technicien supérieur ou ingénieur ? C’est quoi l’informatique ? En quoi un physicien/mathématicien/ biologiste/chimiste/géologue doit-il se former en informatique ?
Aspects généraux Devenir informaticien ? Pourquoi pas ? 35% des nouveaux cadres en 2009 (selon le Syntec, il va manquer 60 000 informaticiens par an en France et à cause de ça c’est 1.5% de croissance de moins !)
Aspects généraux Enquête de l’Express, 2008 Perspectives d’emploi par filière 1 Bac+2 santé-social (chômage 1%) 2 Doctorat santé (ch 2%) 3 Master informatique (ch 3%) Salaires par filière Master informatique : premier master après les doctorats, écoles d’ingénieurs et écoles de commerce Comparaison avec écoles d’ingénieurs : M2 info 2000€ mens à 3 ans contre 2150 écoles
Aspects généraux Devenir informaticienne ? La réalité : très peu de filles deviennent volontairement informaticienne Nombreuses explications Trop de contraintes Image de l'informaticien derrière son écran Métier ennuyeux à la longue Réservé aux fanas de wii et de play Métier uniquement techn(olog)ique
C’est un informaticien ? www.amha.fr
C’est un informaticien ? + = Informatique
C’est une informaticienne ? + = Informatique
Aspects généraux Devenir informaticienne ? La réalité : métier aux interfaces Pluridisciplinarité : Le droit La sociologie La psychologie La linguistique Le design L’ économie Les mathématiques (statistiques, cryptographie,…) La physique (image) La biologie L’éthologie …
Toujours des questions… La réalité (encore) La machine est-elle le but du travail de l'informaticien ? N'est-ce pas plutôt l'homme (la société ?) Il existe certes la nécessité d'ingénieurs, mais de plus en plus, on a besoin aussi de personnes sachant se situer à l'interface
Pourquoi de l’informatique ? Outil scientifique incontour-nable sur la scène interna-tionale Domaine scientifique omni-présent Science de communication, et source d’échanges scientifi-ques avec les autres disciplines Vecteur de progrès techno-logiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Pourquoi de l’informatique ? Outil scientifique incontournable sur la scène internationnale Domaine scientifique omniprésent Science de communication, et source d’échanges scientifiques avec les autres disciplines Vecteur de progrès technologiques, science de société Une diversité thématique insoupçonnée
Aspects généraux En quoi un scientifique aujourd’hui doit-il maitriser l’informatique ? Des « banalités » Traitement de texte scientifique Base de données Tableur Gérer sa machine et son environnement informatique Travailler de façon sécurisée Traitement de mesures Analyse de données Simulations Gestion de données C2I
Aspects généraux En quoi un scientifique aujourd’hui doit-il maitriser l’informatique ? De l’informatique pour scientifiques : Traitement de mesures Analyse de données Simulations Gestion de données
Exemple : Bioinformatique Système biologique : système complexe que l’on simule pour comprendre (de la molécule à l’écosystème) Comparaison des génomes Estimation de la diversité du vivant Identification automatique d’acteurs pour de nouvelles thérapies (ex : tri-thérapie)
Exemple : Bioinformatique Système biologique : système complexe que l’on simule pour comprendre (de la molécule à l’écosystème) Comparaison des génomes Estimation de la diversité du vivant Identification automatique d’acteurs pour de nouvelles thérapies (ex : tri-thérapie)
Exemple : Bioinformatique Système biologique : système complexe que l’on simule pour comprendre (de la molécule à l’écosystème) Comparaison des génomes Estimation de la diversité du vivant Identification automatique d’acteurs pour de nouvelles thérapies (ex : tri-thérapie)
Exemple : Bioinformatique Système biologique : système complexe que l’on simule pour comprendre (de la molécule à l’écosystème) Comparaison des génomes Estimation de la diversité du vivant Identification automatique d’acteurs pour de nouvelles thérapies (ex : tri-thérapie)
Organisation du semestre 10 séances de cours 12 séances de travaux dirigés (TD) 11 séances de travaux pratiques Contrôle continu Une épreuve en amphi (semaine 43, 28/10) Une épreuve en TPs (semaine 46 : 15/11 dans certains groupes) Une épreuve en TDs (semaine 50)
Aspects méthodologiques (2) Le cours, deux parties Une partie algorithmique Une partie informatique(s) ‘ Algorithmique
Aspects méthodologiques (3) Transparent prise de notes Ce dessin indique que le transparent résume un point particulier et doit être recopié Cela ne dispense pas d’imprimer les transparents du cours et de les commenter
Exemple Organisation du semestre Contrôle continu 10 séances de cours 12 séances de travaux dirigés (TD) 11 séances de travaux pratiques Contrôle continu Une épreuve en amphi (semaine 43, 28/10) Une épreuve en TPs (semaine 46 : 15/11 dans certains groupes) Une épreuve en TDs (semaine 50)
Aspects méthodologiques (4) Les TDs : apprendre à résoudre informatiquement les problèmes Papier crayon Feuille d’exercices sur MADOC (mais aussi le cours !) http://madoc.univ-nantes.fr/
Aspects méthodologiques (5) Les TPs : mise en œuvre pratique sur machines, langage de programmation, avoir un compte, comment se connecter, comment préparer son TP, comment le refaire… Feuilles de TP sur MADOC (et tous les fichiers nécessaires…) L'environnement de programmation ne nécessite qu'un navigateur La langage de programmation support est javascript Bon à savoir : Avoir un compte On peut refaire le TP On peut récupérer son travail avec une clé USB Travail par binôme (attention, évaluation par monôme !)
Aspects méthodologiques (6) La note : Contrôle continu composé de 1 partiel semaine 43 1 note de TPs 1 partiel semaine 50 Concrètement Evaluation des CM : des questions de cours Evaluation des TD : exercices comme en TD Evaluation des TP : au moins 1 contrôle sur machine au cours du semestre
Aspects méthodologiques (6) Comment avoir une bonne note ? Exercices : il s’agira de résoudre des problèmes par de bons algorithmes Un bon algorithme : Résout le problème demandé Respecte les normes syntaxiques Est compréhensible Est simple
Aspects méthodologiques (8) Exemple : le problème est d’aller place du commerce à partir de la fac des sciences N’est pas bon : Proposer un chemin beaucoup trop long Expliquer en utilisant bus à la place de tram et B à la place de 2 (ou en changeant au fur et à mesure) Faire prendre le train parce qu’on n’aime pas le tram
Résumé méthodologique Le matériel sur madoc Le langage est javascript et les TPs peuvent être facilement refaits sur n’importe quel ordinateur Le but est d’écrire des algorithmes corrects : correct est apprécié du point de vue de l’expert (enseignant)
Début du cours d’algorithmique Le but est d’apprendre à écrire des algorithmes (simples)
Algorithme (sans y) un algorithme est l'écriture dans un langage non ambigu d'une méthode de résolution d'un problème
cette méthode de résolution Algorithme (sans y) L'algorithme permet d'exécuter et d'étudier cette méthode de résolution
L'algorithme est exécuté Algorithme (sans y) L'algorithme est écrit par un analyste L'algorithme est exécuté par un exécutant
Le programme est exécuté Le programme est écrit par un programmeur Le programme est exécuté par un ordinateur
Création / Exécution écrit exécutant analyste exécute algorithme fonction fact(entrée n entier) : entier Début si n<2 alors retourner(1) sinon retourner( n*fact(n-1) ) finsi Fin exécutant exécute analyste algorithme utilisateur donne les valeurs reçoit les résultats
Création / Exécution code ordinateur programmeur exécute programme function fact(n) { if (n<2) {return(1)} {return( n*fact(n-1))} } code ordinateur exécute programmeur programme utilisateur tape au clavier lit l'écran
Point de vue de l’analyste Entrées Sorties Traitement Clavier Ecran Unité Centrale Saisie Affichage Calcul Paramètre Résultat Fonction
Point de vue de l’utilisateur Entrées Traitement Sorties Clavier Unité Centrale Ecran Saisie Affichage Calcul Paramètre Résultat Fonction
Point de vue de l’algorithme Entrées Sorties Traitement Clavier Ecran Unité Centrale Saisie Calcul Affichage Paramètre Résultat Fonction
Généralisation de l’algorithme Entrées Sorties Traitement Clavier Ecran Unité Centrale Saisie Affichage Calcul Paramètre Fonction Résultat
Exemples d’algorithmes Une recette de cuisine Des instructions pour installer sa Z-box Des instructions pour aller quelque part Des consignes de sécurité Dans ce cours, une méthode de résolution d’un problème, susceptible d’être codée sur ordinateur
Premier exemple d'algorithme Algorithme exemple Variables position, déplacement : entiers Début position ← 25 ; déplacement ← 11 ; position ← position + déplacement ; afficher(position) Fin
Un algorithme comporte 4 parties Entête Déclaration Actions Commentaires
Exemple d'algorithme sans commentaire Entête Algorithme exemple variables position, déplacement : entiers Début position ← 25 ; déplacement ← 11 ; position ← position + déplacement ; afficher(position) Fin Déclarations Actions
Exemple d'algorithme avec commentaires Entête Algorithme exemple variables position, déplacement : entiers //position est un entier positif Début position ← 25 ; // emplacement de départ déplacement ← 11 ; //de combien on bouge position ← position + déplacement ; afficher(position) Fin Déclarations Actions
« Langage algorithmique » Pas standardisé (≠ programmation) mais avec une syntaxe qui doit être respectée Langage naturel (français) mais NON AMBIGU
L’ambiguïté vends tricycle pour infirme en bon état Deux conducteurs étaient interpellés par les gendarmes en état d'ivresse. (Var Matin, 13/07/1994) J'ai lu la critique de Chomsky Il répugne à accepter ce savant compromis Il m'a reçu comme un prince Jean regarde l'homme avec le télescope http://www.limsi.fr/Individu/gendner/analyse_texte/2002/03-ambiguite.html
Un algorithme est non ambigu contient un en-tête, des déclarations, un actions et des commentaires la syntaxe doit être respectée
Les deux bases des algorithmes Les variables, dans lesquelles on stocke l’information Les instructions permettant de modifier l’état de ces variables
Variables Zone de stockage temporaire comme les mémoires de la calculatrice contenu pouvant être modifié
Variables (Caractérisation) Nom (identificateur) nommer, c’est abstraire… Type L’ensemble des valeurs possibles, et des opérations autorisées Valeur courante (contenu actuel)
Variables Exemple Nom pente Type réel Valeur courante (contenu actuel) 0,45
Variables (types) numérique (entier, réel) chaîne de caractères, caractère booléen (logique)
Types : entier Eléments de ℤ Exemples 3 -17439
Types : réel Eléments de ℝ Exemples 3,14 3,141592 (mais pas 3,141592…)
Types: caractères Lettre, chiffre, symbole Entre ‘ ‘ Exemples ‘A’ ‘a’ ‘É’ ‘6’ ‘ ‘ ’‘
Historiquement…
Types : chaîne de caractères Suite finie de caractères Exemples ‘bonjour’ ‘ceci est une chaîne’ ‘Ceci est UNE chaîne ‘douze pour 12’
Types : booléen Eléments de l’ensemble {vrai, faux}
Expressions une expression simple est : soit une valeur soit un nom de variable soit un opérateur appliqué à des valeurs ou des noms de variables Une expression peut être évaluée Exemple : 45 + trucmuche
Opérateurs entier × entier→ entier + - * div mod (division entière et modulo) abs (valeur absolue) Exemples : 3+2 25-7 43*21 50 div 13 (valeur 3) 50 mod 13 (valeur 11)
Opérateurs réel × réel→ réel : + - * / Exemples : 3,0 + 2,98 4,1 * 2,1 20,987 / 13,75
Opérateurs nombre x nombre → booléen réel ou entier × réel ou entier → booléen < > = ≤ ≥ ≠ Exemples : 3 < 2,7 25 = 7,75 43,32 ≥ 21 20,07 ≠ 13
Opérateurs caractère x caractère → booléen < > = ≤ ≥ ≠ Exemples : 'A'<'Z' 'B'='C' 'é'≥'y' '8'≤'5'
Opérateurs chaîne x chaîne→ booléen Opérateurs de comparaison < > = ≤ ≥ ≠ Exemples : 'alain‘ < 'zoë' 'BAC'='CAB' 'élément'≥'ensemble' '118'≤'5'
Expressions booléennes booléen → booléen : non booléen × booléen → booléen : et ou Exemples : vrai ou faux faux et faux non(faux)
Tables de vérité (1) A non(A) Vrai Faux non
Tables de vérité (2) A B A et B Vrai Faux et
Tables de vérité (3) A B A ou B Vrai Faux ou
Expressions complexes une expression complexe est : soit une expression simple soit un opérateur appliqué à des expressions simples ou complexes Exemple : 45 + (256/2) Remarque : afin d’éviter l’ambiguïté, il est recommandé de parenthéser Exemple : 2+3*5 2+(3*5) ou (2+3)*5
Note sur les expressions Les expressions peuvent contenir des appels de fonction Exemples : 1+sin(3) 1/log(7) Racine_carree(7+5) > 8
Instructions Un algorithme comporte une suite d'instructions qui s'exécutent (par défaut) l'une après l'autre dans l'ordre d'écriture on parle de séquentialité
Instructions élémentaires Affectation (vision simplifiée) nom de variable ← valeur pente ← 0,45 Effet le résultat est affecté à la variable
Séquentialité Afin de marquer qu’une instruction succède à une autre instruction, on utilisera le symbole « ; » pour séparer : position ← 25 ; déplacement ← 11
Instructions Chaque instruction trouve les variables dans un état et les laisse dans un nouvel état
Historique d'exécution liste des états successifs
Instructions de base Affectation nom de variable ← expression pente ← 0,32+0,45 Récupération d'une donnée nom de variable ← saisie() hauteur ← saisie() Présentation d'un résultat afficher(expression) afficher(hauteur/pente)
Instructions Affectation Effet nom de variable ← expression pente ← 0,32+0,45 Effet 1) l’expression est évaluée 2) le résultat est affecté à la variable
Instructions Récupération d'une donnée Effet nom de variable ← saisie() hauteur ← saisie() Effet 1) l’utilisateur saisit une valeur 2) La valeur est affectée à la variable l'utilisateur introduit 154
Instructions 200 Présentation d'un résultat Effet l'utilisateur voit afficher(expression) afficher(hauteur/ pente) Effet 1) l’expression est évaluée 2) le résultat est affiché 200 l'utilisateur voit
Exemple d'exécution Début ① position ← 25 ; ② déplacement ← 11 ; ③ position ← position + déplacement ; ④ afficher(position) Fin position déplacement Avant ① ? Après ① 25 Après ② 11 Après ③ 36 Après ④
Construire un historique d’exécution Numéroter les instructions (n) Sélectionner les variables à suivre (m) Construire un tableau n+2 lignes * m+1 colonnes : v1 v2 … vm Avant I1 Après I1 Après In Ici, la valeur de v2 après l’exécution de l’instruction I1
Conclusion (ce qu’on a vu) L’informatique en tant que métier L’informatique comme connaissance complémentaire aux autres sciences L’algorithmique comme cœur de l’informatique Les variables Les instructions et le séquencement