SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
L’informatique (1)
                                                                                           • 10% des investissements des sociétés (hors
 Algorithmique et Programmation                                                              bâtiments)
              Java                                                                         • Croissance très rapide du nombre de cadres
                                                                                             et techniciens informaticiens [1982-1991]
        Jean-Marie Boé, Guy Melançon, Joël                                                 • Science encore jeune (30 ans)
                    Quinqueton                                                             • Gigantesque cathédrale de constructions
               Dépt MIAp, UFR IV                                                             matérielles et intellectuelles
          UPV - Université Montpellier III
                                                                                                                                          Cori, Levy




                  L’informatique (2)                                                                 L’informatique (3)
• Il existe une science de l’informatique
                                                                                           • La jeunesse de l'informatique permet à
• Plusieurs théories imbriquées                                                              certains de nier son aspect scientifique
  – logique et calculabilité, algorithmique et analyse
    d'algorithmes, conception et sémantique des                                            • Mythe du hacker («fous de la
    langages de programmation, bases de données,                                             programmation»)
    principes des systèmes d'exploitation, architectures des
    ordinateurs et évaluation de leurs performances, réseaux et                              – hacker [...] n. 2. One who programs
    protocoles, langages formels et compilation, codes et                                      enthusiastically (even obsessively) or who
    cryptographie, apprentissage et zero-knowledge algorithms, calcul formel,
    démonstration automatique, conception et vérification de circuits, vérification et         enjoys programming rather than just theorizing
    validation de programmes, temps réel et logiques temporelles, traitement d'images et
    vision, synthèse d'image, robotique, ...                                                   about programming.




                  L’informatique (4)                                                                 L’informatique (5)
 • La jeunesse de l'informatique permet à                                                  • Une autre caractéristique de l'informatique
   certains de nier son aspect scientifique                                                  est le côté instable des programmes
 • Mythes du hacker («fous de la                                                           • Les phénomènes continus sont rares en
   programmation»)                                                                           informatique
    – Programmeur préférant ignorer toute
      considération théorique qui puisse l’aider dans                                        – Une panne n'est en général pas le résultat d'une
      ses constructions souvent très habiles                                                   dégradation perceptible. Elle arrive simplement
                                                                                               brutalement.




                                                                                                                                                       1
L’informatique (6)                                                     Objectifs
• Une autre caractéristique de l'informatique             • Initiation à la programmation objet
  est le côté instable des programmes                         – Initiation à la programmation impérative
  – C'est ce côté exact de l'informatique qui est très        – Initiation à l’approche objet avec Java
    attrayant                                             • Rudiments d’algorithmique
  – En informatique, il y a peu de solutions
                                                              – Conception et analyse des algorithmes
    approchées
                                                              – Implémentations des structures de données
  – En informatique, il y a une certaine notion de
    l'exactitude




                   Plan (1)                                                        Plan (2)
• Architecture machine     • Tris simples (bulles,       Objets                        • Méthodes:
                                                         Champs et Méthodes
• Types de base,             par insertion)                                              – valeur de retour
                                                         Références et valeurs, test
  affectation              • Tris récursifs              d’égalité                       – visibilité
• Instructions               (Quicksort, fusion)                                         – classe vs instance
  conditionnelles          • Recherche dans des                                        • La jdk (AWT,
• Boucles                    tables                                                      java.util, …)




              Références (1)                                                 Références (2)
• Une seule


       http://ead.univ-montp3.fr:8900

  http://metice.univ-montp3.fr/~miap




                                                                                                                2
Références (3)                                    Références (4)
• Sites web                                         • Livres
  –   Tutorials Java                                  – Brondeau J. Introduction à la programmation
      • Kjell , CCSU (USA)
                                                        objet en Java, Dunod, 1999.
      • Brandeis University (USA)
      • Campione and Walrath, Addison Wesley          – Eckel B. Thinking in Java, Mind View Inc.
  – Tutorials d’algorithmique                         – Bob Sedgewick, Algorithms, 2nd edition,
      • Cours de Robert Cori et Jean-Jacques Lévy       Addison-Wesley, 1988. En français: Algorithmes
  – Serveur Spédago de Spécif                           en langage C, trad. par Jean-Michel Moreau,
      • Cours / TD sur l'algorithmique                  InterEditions, 1991.
      • Cours / TD sur la programmation




 Architecture d’un ordinateur (1)                    Architecture d’un ordinateur (2)
                                                    • Toutes les opérations effectuées en machine
                                                      sont exécutées par le processeur
                                                    • Aucune opération n’est faite en mémoire
                                                      principale
                                                    • Le processeur opère sur des données
                                                      préalablement stockée en mémoire




 Architecture d’un ordinateur (3)                    Architecture d’un ordinateur (4)
                                                    • La mémoire est une composante constituée
                                                      de circuits spécialisés dans la localisation de
                                                      mots mémoire à partir d’une adresse
                                                    • Une adresse = un nombre = un endroit où se
                                                      trouve une donnée




Processeur MIPS 32 4kP




                                                                                                         3
Architecture d’un ordinateur (5)                                Architecture d’un ordinateur (6)
                                                                • Le processeur sait faire un nombre fini
                                                                  d’opérations
                                                                • Tout programme doit être traduit en une
                                                                  suite d’opérations qu’il sait exécuter
                                                                • Ces opérations sont souvent appelées
                                                                  instructions machines




 Architecture d’un ordinateur (7)                                Architecture d’un ordinateur (8)
• Pour additionner deux nombres m et n.
   – Amener l’adresse de m dans un registre
   – Amener dans un second registre le contenu de la
     mémoire vive à cette adresse
   – Idem pour le second nombre n
   – Exécuter l’addition (module arithmétique)
   – Amener dans un registre l’adresse où stocker le résultat
   – Le stocker dans la mémoire vive




 Architecture d’un ordinateur (8)                                           Compilation (1)
• Un processeur est composé de plusieurs modules                • Les langages de programmation de haut
  spécialisés                                                     niveau permettent de s’abstraire du matériel
   –   Module arithmétique
   –   Contrôle de flux
   –   Calcul d’adresse                                         class Hello {
                                                                  public static void main ( String[] args ) {
   –   Traitement des interactions avec les périphériques
                                                                    System.out.println("Hello World!");
• Deux processeurs diffèrent par l’ensemble des                   }
  instructions machine dont il dispose                          }




                                                                                                                 4
Compilation (2)                                     Compilation (3)
• La compilation consiste à traduire un             • Le résultat d’une compilation dépend de la
  langage de haut niveau en langage machine           plate-forme (type d’ordinateur) sur lequel
                                                      elle est effectuée
   System.out.println("Hello World!");              • Un programme compilé sur Mac ne tourne
                                                      pas sur un PC, un programme compilé sur
                                                      PC ne tourne pas sous Linux, etc.
    00011011011010010100 000110110101
    11011010010010010100 001110110110
    00110011011010010100 000110110111
    …




                  Java (1)                                           Java (2)
• Java est un langage portable                      • La compilation produit le même fichier de
• Le même programme, compilé une seule                bytecodes, quel que soit la plate-forme
  fois, peut-être exécuté sur n’importe quelle
  plate-forme


  Hello.java          javac        Hello.class        Hello.java         javac         Hello.class


   Compilation     Compilation     Bytecodes Java      Compilation    Compilation      Bytecodes Java
      Java            Java                                Java           Java




                  Java (3)                          La Machine Virtuelle Java (JVM)
• Le même programme, compilé une seule              • Les bytecodes sont interprétées
  fois, peut-être exécuté sur n’importe quelle        différemment selon la plate-forme sur
  plate-forme                                         laquelle ils sont exécutés
• Heuh ?
                                                                        Interpréteur
                                                      Hello.class                        Le processeur
                                                                            Java

                                                        Bytecodes
                                                           Java               Machine Virtuelle Java




                                                                                                         5
Java
                                                                    Algorithmique (1)
      Avantages / Inconvénients
• Portabilité                 • Performances              • Un programme présente deux aspects
• Génération automatique        amoindries par              – un contenu et une forme
  de la documentation des       l’interpréteur
  programmes                                                – un sens et une grammaire
                              • Gestion de la mémoire
• Rapide dissémination via                                • Pour l'ordinateur, il suffit que le programme
  Internet                      via le «garbage
                                collector»                  soit correct au niveau de la forme (la
• Très grande compatibilité
  http                                                      syntaxe)


                                                                                                     Darmont




             Algorithmique (2)                                      Algorithmique (3)
• L’ordinateur effectuera toujours les                    • La cohérence du programme (du contenu)
  manipulations commandées par un                           n'est pas examinée ou évaluée par le
  programme syntaxiquement correct                          compilateur
   – La première étape de la compilation consiste à       • L'analyse du problème à traiter, la preuve de
     vérifier que le programme écrit est                    la cohérence et de la pertinence de sa
     syntaxiquement correct                                 solution sont préalable à l’écriture du
   – Si l'on fait une erreur de syntaxe, le compilateur     programme
     affiche un message d'erreur




             Algorithmique (4)
• On doit
   – fixer l'objectif du programme
   – établir la liste des données à manipuler et des
     opérations à exécuter, et les ordonner.
• La description de la suite des opérations
  élémentaires ordonnées capables de
  résoudre le problème posé constitue un
  algorithme




                                                                                                               6

Mais conteúdo relacionado

Mais procurados

Les reseaux profonds
Les reseaux profondsLes reseaux profonds
Les reseaux profondsStany Mwamba
 
CIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PPCIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PPDavid Cian
 
TPE 2005 - Intelligence artificielle
TPE 2005 - Intelligence artificielleTPE 2005 - Intelligence artificielle
TPE 2005 - Intelligence artificielleSebastien Warin
 
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique Jean Rohmer
 
Le progrès de l'intelligence artificielle et ses conséquences
Le progrès de l'intelligence artificielle et ses conséquencesLe progrès de l'intelligence artificielle et ses conséquences
Le progrès de l'intelligence artificielle et ses conséquencesFernando Alcoforado
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleECAM Brussels Engineering School
 

Mais procurados (7)

Les reseaux profonds
Les reseaux profondsLes reseaux profonds
Les reseaux profonds
 
CIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PPCIAN-David_Compte_Rendu_PP
CIAN-David_Compte_Rendu_PP
 
TPE 2005 - Intelligence artificielle
TPE 2005 - Intelligence artificielleTPE 2005 - Intelligence artificielle
TPE 2005 - Intelligence artificielle
 
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
 
Le progrès de l'intelligence artificielle et ses conséquences
Le progrès de l'intelligence artificielle et ses conséquencesLe progrès de l'intelligence artificielle et ses conséquences
Le progrès de l'intelligence artificielle et ses conséquences
 
Deep learning
Deep learningDeep learning
Deep learning
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 

Destaque

Destaque (20)

Criterios y orientaciones
Criterios y orientacionesCriterios y orientaciones
Criterios y orientaciones
 
Safe2010 Tableaux
Safe2010 TableauxSafe2010 Tableaux
Safe2010 Tableaux
 
H Entre Voisins Gu V
H Entre Voisins Gu VH Entre Voisins Gu V
H Entre Voisins Gu V
 
Cest La France
Cest La FranceCest La France
Cest La France
 
DOC160303-20160303175031
DOC160303-20160303175031DOC160303-20160303175031
DOC160303-20160303175031
 
3 D Virtuel
3 D Virtuel3 D Virtuel
3 D Virtuel
 
SäìKhya Ayurveda
SäìKhya AyurvedaSäìKhya Ayurveda
SäìKhya Ayurveda
 
Trabajo realismo
Trabajo realismoTrabajo realismo
Trabajo realismo
 
Les voyelles
Les voyellesLes voyelles
Les voyelles
 
Ecolbras
EcolbrasEcolbras
Ecolbras
 
Social Media in sozialen Institutionen Vortrag 2013
Social Media in sozialen Institutionen Vortrag 2013Social Media in sozialen Institutionen Vortrag 2013
Social Media in sozialen Institutionen Vortrag 2013
 
Music Magazine Questionaire [Pie Chart]
Music Magazine Questionaire [Pie Chart]Music Magazine Questionaire [Pie Chart]
Music Magazine Questionaire [Pie Chart]
 
christiana
christianachristiana
christiana
 
laboratorio de gases
laboratorio de gaseslaboratorio de gases
laboratorio de gases
 
Agile Verträge
Agile VerträgeAgile Verträge
Agile Verträge
 
Deber9.
Deber9.Deber9.
Deber9.
 
Je & vous
Je & vousJe & vous
Je & vous
 
Présentation du Centre des Congres
Présentation du Centre des CongresPrésentation du Centre des Congres
Présentation du Centre des Congres
 
E2 B2
E2 B2E2 B2
E2 B2
 
Lexmark x1100 series user's guide
Lexmark x1100 series user's guideLexmark x1100 series user's guide
Lexmark x1100 series user's guide
 

Semelhante a Cours1 1

The Dark Side Of The Cloud
The Dark Side Of The CloudThe Dark Side Of The Cloud
The Dark Side Of The CloudRobert Viseur
 
202002 Didapro 2020 Du code à la pensée informatique
202002 Didapro 2020 Du code à la pensée informatique202002 Didapro 2020 Du code à la pensée informatique
202002 Didapro 2020 Du code à la pensée informatiqueMargarida Romero
 
Concepts informatiques et curricula 31-10-2013
Concepts informatiques et curricula 31-10-2013Concepts informatiques et curricula 31-10-2013
Concepts informatiques et curricula 31-10-2013Haddi Abderrahim
 
Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)APMEPIledeFrance
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Forum Labo Version DEF par Yvon Gervaise.pdf
Forum Labo Version DEF par Yvon Gervaise.pdfForum Labo Version DEF par Yvon Gervaise.pdf
Forum Labo Version DEF par Yvon Gervaise.pdfYvon Gervaise
 
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave EiffelSéminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave EiffelMahdi Zarg Ayouna
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaLaurent Guérin
 
Atelier aqifga 2012
Atelier aqifga 2012Atelier aqifga 2012
Atelier aqifga 2012Louise Roy
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogoAlvaro Gil
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatiqueCEFRI-UAC
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatiqueCEFRI-UAC
 
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos coursVanessa Mazzari
 

Semelhante a Cours1 1 (20)

Pres xlin401
Pres xlin401Pres xlin401
Pres xlin401
 
The Dark Side Of The Cloud
The Dark Side Of The CloudThe Dark Side Of The Cloud
The Dark Side Of The Cloud
 
IoT Académie
IoT AcadémieIoT Académie
IoT Académie
 
202002 Didapro 2020 Du code à la pensée informatique
202002 Didapro 2020 Du code à la pensée informatique202002 Didapro 2020 Du code à la pensée informatique
202002 Didapro 2020 Du code à la pensée informatique
 
Concepts informatiques et curricula 31-10-2013
Concepts informatiques et curricula 31-10-2013Concepts informatiques et curricula 31-10-2013
Concepts informatiques et curricula 31-10-2013
 
Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)
 
Gl rappels ac
Gl rappels acGl rappels ac
Gl rappels ac
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Forum Labo Version DEF par Yvon Gervaise.pdf
Forum Labo Version DEF par Yvon Gervaise.pdfForum Labo Version DEF par Yvon Gervaise.pdf
Forum Labo Version DEF par Yvon Gervaise.pdf
 
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave EiffelSéminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
Séminaire IA & VA- Dominique Gruyer, Univ Gustave Eiffel
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide Java
 
Elaborer un logiciel
Elaborer un logicielElaborer un logiciel
Elaborer un logiciel
 
Cours se chap1_2
Cours se chap1_2Cours se chap1_2
Cours se chap1_2
 
Atelier aqifga 2012
Atelier aqifga 2012Atelier aqifga 2012
Atelier aqifga 2012
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogo
 
Grid computing
Grid computingGrid computing
Grid computing
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatique
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatique
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours
8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours
 

Mais de Wael Ismail

Devoir de synthèse N°1
Devoir de synthèse N°1 Devoir de synthèse N°1
Devoir de synthèse N°1 Wael Ismail
 
Devoir de contrôle N°1 Système et réseaux 2011-2012
Devoir de contrôle N°1 Système et réseaux 2011-2012Devoir de contrôle N°1 Système et réseaux 2011-2012
Devoir de contrôle N°1 Système et réseaux 2011-2012Wael Ismail
 
devoir de contrôle N° 1 TIC 2011-2012
devoir de contrôle N° 1 TIC 2011-2012devoir de contrôle N° 1 TIC 2011-2012
devoir de contrôle N° 1 TIC 2011-2012Wael Ismail
 
Ch5 base de données
Ch5   base de donnéesCh5   base de données
Ch5 base de donnéesWael Ismail
 
Ch3 eléments de présentation
Ch3   eléments de présentationCh3   eléments de présentation
Ch3 eléments de présentationWael Ismail
 
Ch1 traitement de texte
Ch1   traitement de texteCh1   traitement de texte
Ch1 traitement de texteWael Ismail
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximationWael Ismail
 
Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)Wael Ismail
 
Les structures en c++
Les structures en c++Les structures en c++
Les structures en c++Wael Ismail
 
Les structures en c++ (1)
Les structures en c++ (1)Les structures en c++ (1)
Les structures en c++ (1)Wael Ismail
 

Mais de Wael Ismail (20)

Dc23 si
Dc23 siDc23 si
Dc23 si
 
Dc13 si
Dc13 siDc13 si
Dc13 si
 
Ds1
Ds1Ds1
Ds1
 
Dc23 si
Dc23 siDc23 si
Dc23 si
 
Dc2cc
Dc2ccDc2cc
Dc2cc
 
Dc2
Dc2Dc2
Dc2
 
Devoir de synthèse N°1
Devoir de synthèse N°1 Devoir de synthèse N°1
Devoir de synthèse N°1
 
Devoir de contrôle N°1 Système et réseaux 2011-2012
Devoir de contrôle N°1 Système et réseaux 2011-2012Devoir de contrôle N°1 Système et réseaux 2011-2012
Devoir de contrôle N°1 Système et réseaux 2011-2012
 
devoir de contrôle N° 1 TIC 2011-2012
devoir de contrôle N° 1 TIC 2011-2012devoir de contrôle N° 1 TIC 2011-2012
devoir de contrôle N° 1 TIC 2011-2012
 
Ch5 base de données
Ch5   base de donnéesCh5   base de données
Ch5 base de données
 
Ch4 internet
Ch4   internetCh4   internet
Ch4 internet
 
Ch3 eléments de présentation
Ch3   eléments de présentationCh3   eléments de présentation
Ch3 eléments de présentation
 
Ch2 tableur
Ch2  tableurCh2  tableur
Ch2 tableur
 
Ch1 traitement de texte
Ch1   traitement de texteCh1   traitement de texte
Ch1 traitement de texte
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
 
Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)
 
Les structures en c++
Les structures en c++Les structures en c++
Les structures en c++
 
Les structures en c++ (1)
Les structures en c++ (1)Les structures en c++ (1)
Les structures en c++ (1)
 
L2006
L2006L2006
L2006
 
Jmc habile
Jmc habileJmc habile
Jmc habile
 

Cours1 1

  • 1. L’informatique (1) • 10% des investissements des sociétés (hors Algorithmique et Programmation bâtiments) Java • Croissance très rapide du nombre de cadres et techniciens informaticiens [1982-1991] Jean-Marie Boé, Guy Melançon, Joël • Science encore jeune (30 ans) Quinqueton • Gigantesque cathédrale de constructions Dépt MIAp, UFR IV matérielles et intellectuelles UPV - Université Montpellier III Cori, Levy L’informatique (2) L’informatique (3) • Il existe une science de l’informatique • La jeunesse de l'informatique permet à • Plusieurs théories imbriquées certains de nier son aspect scientifique – logique et calculabilité, algorithmique et analyse d'algorithmes, conception et sémantique des • Mythe du hacker («fous de la langages de programmation, bases de données, programmation») principes des systèmes d'exploitation, architectures des ordinateurs et évaluation de leurs performances, réseaux et – hacker [...] n. 2. One who programs protocoles, langages formels et compilation, codes et enthusiastically (even obsessively) or who cryptographie, apprentissage et zero-knowledge algorithms, calcul formel, démonstration automatique, conception et vérification de circuits, vérification et enjoys programming rather than just theorizing validation de programmes, temps réel et logiques temporelles, traitement d'images et vision, synthèse d'image, robotique, ... about programming. L’informatique (4) L’informatique (5) • La jeunesse de l'informatique permet à • Une autre caractéristique de l'informatique certains de nier son aspect scientifique est le côté instable des programmes • Mythes du hacker («fous de la • Les phénomènes continus sont rares en programmation») informatique – Programmeur préférant ignorer toute considération théorique qui puisse l’aider dans – Une panne n'est en général pas le résultat d'une ses constructions souvent très habiles dégradation perceptible. Elle arrive simplement brutalement. 1
  • 2. L’informatique (6) Objectifs • Une autre caractéristique de l'informatique • Initiation à la programmation objet est le côté instable des programmes – Initiation à la programmation impérative – C'est ce côté exact de l'informatique qui est très – Initiation à l’approche objet avec Java attrayant • Rudiments d’algorithmique – En informatique, il y a peu de solutions – Conception et analyse des algorithmes approchées – Implémentations des structures de données – En informatique, il y a une certaine notion de l'exactitude Plan (1) Plan (2) • Architecture machine • Tris simples (bulles, Objets • Méthodes: Champs et Méthodes • Types de base, par insertion) – valeur de retour Références et valeurs, test affectation • Tris récursifs d’égalité – visibilité • Instructions (Quicksort, fusion) – classe vs instance conditionnelles • Recherche dans des • La jdk (AWT, • Boucles tables java.util, …) Références (1) Références (2) • Une seule http://ead.univ-montp3.fr:8900 http://metice.univ-montp3.fr/~miap 2
  • 3. Références (3) Références (4) • Sites web • Livres – Tutorials Java – Brondeau J. Introduction à la programmation • Kjell , CCSU (USA) objet en Java, Dunod, 1999. • Brandeis University (USA) • Campione and Walrath, Addison Wesley – Eckel B. Thinking in Java, Mind View Inc. – Tutorials d’algorithmique – Bob Sedgewick, Algorithms, 2nd edition, • Cours de Robert Cori et Jean-Jacques Lévy Addison-Wesley, 1988. En français: Algorithmes – Serveur Spédago de Spécif en langage C, trad. par Jean-Michel Moreau, • Cours / TD sur l'algorithmique InterEditions, 1991. • Cours / TD sur la programmation Architecture d’un ordinateur (1) Architecture d’un ordinateur (2) • Toutes les opérations effectuées en machine sont exécutées par le processeur • Aucune opération n’est faite en mémoire principale • Le processeur opère sur des données préalablement stockée en mémoire Architecture d’un ordinateur (3) Architecture d’un ordinateur (4) • La mémoire est une composante constituée de circuits spécialisés dans la localisation de mots mémoire à partir d’une adresse • Une adresse = un nombre = un endroit où se trouve une donnée Processeur MIPS 32 4kP 3
  • 4. Architecture d’un ordinateur (5) Architecture d’un ordinateur (6) • Le processeur sait faire un nombre fini d’opérations • Tout programme doit être traduit en une suite d’opérations qu’il sait exécuter • Ces opérations sont souvent appelées instructions machines Architecture d’un ordinateur (7) Architecture d’un ordinateur (8) • Pour additionner deux nombres m et n. – Amener l’adresse de m dans un registre – Amener dans un second registre le contenu de la mémoire vive à cette adresse – Idem pour le second nombre n – Exécuter l’addition (module arithmétique) – Amener dans un registre l’adresse où stocker le résultat – Le stocker dans la mémoire vive Architecture d’un ordinateur (8) Compilation (1) • Un processeur est composé de plusieurs modules • Les langages de programmation de haut spécialisés niveau permettent de s’abstraire du matériel – Module arithmétique – Contrôle de flux – Calcul d’adresse class Hello { public static void main ( String[] args ) { – Traitement des interactions avec les périphériques System.out.println("Hello World!"); • Deux processeurs diffèrent par l’ensemble des } instructions machine dont il dispose } 4
  • 5. Compilation (2) Compilation (3) • La compilation consiste à traduire un • Le résultat d’une compilation dépend de la langage de haut niveau en langage machine plate-forme (type d’ordinateur) sur lequel elle est effectuée System.out.println("Hello World!"); • Un programme compilé sur Mac ne tourne pas sur un PC, un programme compilé sur PC ne tourne pas sous Linux, etc. 00011011011010010100 000110110101 11011010010010010100 001110110110 00110011011010010100 000110110111 … Java (1) Java (2) • Java est un langage portable • La compilation produit le même fichier de • Le même programme, compilé une seule bytecodes, quel que soit la plate-forme fois, peut-être exécuté sur n’importe quelle plate-forme Hello.java javac Hello.class Hello.java javac Hello.class Compilation Compilation Bytecodes Java Compilation Compilation Bytecodes Java Java Java Java Java Java (3) La Machine Virtuelle Java (JVM) • Le même programme, compilé une seule • Les bytecodes sont interprétées fois, peut-être exécuté sur n’importe quelle différemment selon la plate-forme sur plate-forme laquelle ils sont exécutés • Heuh ? Interpréteur Hello.class Le processeur Java Bytecodes Java Machine Virtuelle Java 5
  • 6. Java Algorithmique (1) Avantages / Inconvénients • Portabilité • Performances • Un programme présente deux aspects • Génération automatique amoindries par – un contenu et une forme de la documentation des l’interpréteur programmes – un sens et une grammaire • Gestion de la mémoire • Rapide dissémination via • Pour l'ordinateur, il suffit que le programme Internet via le «garbage collector» soit correct au niveau de la forme (la • Très grande compatibilité http syntaxe) Darmont Algorithmique (2) Algorithmique (3) • L’ordinateur effectuera toujours les • La cohérence du programme (du contenu) manipulations commandées par un n'est pas examinée ou évaluée par le programme syntaxiquement correct compilateur – La première étape de la compilation consiste à • L'analyse du problème à traiter, la preuve de vérifier que le programme écrit est la cohérence et de la pertinence de sa syntaxiquement correct solution sont préalable à l’écriture du – Si l'on fait une erreur de syntaxe, le compilateur programme affiche un message d'erreur Algorithmique (4) • On doit – fixer l'objectif du programme – établir la liste des données à manipuler et des opérations à exécuter, et les ordonner. • La description de la suite des opérations élémentaires ordonnées capables de résoudre le problème posé constitue un algorithme 6