Introduction - Informatique 1

publicité
Informatique 1
1. Introduction
Rev 1.55
Dr Pierre-André Mudry
[email protected]
Objectifs du jour
Faire connaissance avec le cours




P.-A. Mudry
Buts et organisation
Histoire de l'informatique
Les systèmes informatiques
Introduction à la programmation
1. Introduction
4
Apprendre à programmer
Buts du cours INF1
P.-A. Mudry
Réaliser des
programmes
Méthodologie
Sécurité
Élégance
Algorithmes
Java comme langage
1. Introduction
5
Organisation du cours
TPs
Projet
Cours
P.-A. Mudry
1. Introduction
6
Intervenants
• Professeurs
 Dr Pierre-André Mudry
[email protected]
 Dr Djano Kandaswamy
• Assistant
 Christopher Métrailler ([email protected])
P.-A. Mudry
1. Introduction
7
Exemples d’anciens projets
• Wurm Battle
• Angry CuiCui
• Jeux
 Lunar Lander, Braid,
Guitar Hero, Mah-jong,
backgammon
• Simulation
 Voiture, avions, …
P.-A. Mudry
1. Introduction
8
Supports de cours
Transparents
Labos
Séries
P.-A. Mudry
1. Introduction
9
Bibliographie succincte
[1] C. Delannoy, Programmer en Java, 5ème édition, Eyrolles, 2007
[2] W. Savitch, Absolute Java, 4ème édition, Pearson, 2009
[3] R. & P. Liguori, Java pocket guide, O'Reilly, 2008
…
P.-A. Mudry
1. Introduction
10
Ressources électroniques
http://inf1.begincoding.net




P.-A. Mudry
Nouvelles
Documentation
Matériel cours
Anciens examens
1. Introduction
11
Modes d’interaction




Pendant, avant et après les cours
Pendant les séances d'exercices
Sur rendez-vous
Par email
[email protected]
P.-A. Mudry
1. Introduction
12
Travaux pratiques (TP)




P.-A. Mudry
2 heures chaque les semaines
Salles info DR01/DR03
Pas de notes pour TPs, bonus
Exercices + mini-projets
1. Introduction
13
Un cours pour qui ?
Aucun
prérequis !
P.-A. Mudry
1. Introduction
14
Complément cours informatique
• 2 heures par semaine
• Au début, optionnel
• Ouvert à toutes les personnes
intéressées
• Lundi dès 16h15
P.-A. Mudry
1. Introduction
15
Evaluation
𝑠𝑠𝑠𝑠𝑚𝑚1 = min(13 𝑒𝑒𝑒𝑒𝑒𝑒𝑚𝑚𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 + 2 � 𝑒𝑒𝑒𝑒𝑒𝑒𝑚𝑚𝑠𝑠𝑠𝑠𝑠𝑠 + 𝑏𝑏1 , 6)
𝑠𝑠𝑠𝑠𝑚𝑚1 + 𝑠𝑠𝑠𝑠𝑚𝑚2
𝑤𝑤𝑤𝑤𝑤𝑤𝑤 �
2
𝑠𝑠𝑠𝑠𝑚𝑚2 = min(13 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 + 2 � 𝑒𝑒𝑒𝑒𝑒𝑒𝑚𝑚𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓 + 𝑏𝑏2 , 6)
P.-A. Mudry
1. Introduction
16
Objectifs du jour
Faire connaissance avec le cours




P.-A. Mudry
Buts et organisation
Histoire de l'informatique
Les systèmes informatiques
Introduction à la programmation
1. Introduction
17
L'informatique ?
(Source Wiktionary)
Informatique
Domaine des concepts et autres technique
employées pour le traitement automatique
de l’information
Définition
P.-A. Mudry
1. Introduction
19
Exemple
P.-A. Mudry
1. Introduction
20
Buts de l'informatique
• Calcul scientifique
• Gestion de
l’information
• Contrôle de processus
P.-A. Mudry
1. Introduction
21
Méthodes de calcul
Mécanique
P.-A. Mudry
Tube et
diodes
1. Introduction
Transistor
22
"Préhistoire"
Logarithmes népériens 1614
Le boulier chinois 600 av. J-C.
Règle à calcul ≈ 1620
P.-A. Mudry
1. Introduction
Mécanique
Tube et
diodes
Transistor
23
"Préhistoire" (2)
1623 Wilhelm Schickard
1642 Blaise Pascal
1694 Gotfried W. Leibniz
Première machine à
calculer mécanique
La Pascaline, machine à
calculer (additions),
existant encore
Machine permettant aussi
les multiplications et les
divisions
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
24
"Préhistoire" (3)
FILM
1725 Basile Bouchon
Inventeur du métier à tisser
semi-automatique
1801 Joseph Marie Jacquard
Révolutionnera l’industrie textile
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
25
La machine analytique
FILM
• Charles Babbage (1792 – 1891)
• Machine jamais réalisée de son vivant (assemblée en
1991 à Londres).
• Plan d’un ordinateur mécanique: périphériques d’entrée et
de sortie, unité centrale et zones de stockage.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
26
Les précurseurs
• George Boole (1779-1848)
 Inventeur logique booléenne.
• Ada Lovelace (1815-1852)
 Première programmeuse.
• Alan Turing (1912-1954)
Alan Turing
 Père de l’informatique moderne.
 Formalise l’algorithmique et le calcul
avec la Machine de Turing.
P.-A. Mudry
1. Introduction
28
Les précurseurs (2)
• Claude Elwood Shannon (1916-2001)
 Père fondateur de la théorie de
l’information (qui pose les bases de
compression, par ex. MP3).
P.-A. Mudry
1. Introduction
29
Cartes perforées
• Stockage données
• Recensement
américain de 1890.
• Cette technologie
sera améliorée
jusqu’à la fin de la
deuxième guerre
mondiale.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
30
Tubes à vide
• Le premier tube à vide
(diode) est créé par
John Ambrose
Fleming (1849-1945)
en 1904.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
31
Tubes à vide : calculateurs (2)
• Construit par les anglais
pendant la première
guerre mondiale.
Colossus Mark 1
 Arithmétique binaire,
horloge, lecteurs de
bande, opérateurs
booléens, de sousprogrammes et
d’imprimantes.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
32
Tubes à vide : calculateurs
Z3
• Konrad Zuse (1910-1995)
en 1941.
• Premier ordinateur
programmable
 2200 relais
 5.3 Hz
 Mots de 22 bits.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
33
ENIAC
Electronic Numerical Integrator and Computer
• Développé par P.
Eckert et
J.Mauchly, 1946




19’000 tubes
30 tonnes
72 m2
consommation de
140 kW (!)
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
34
Transistors
• Premier transistor
réalisé au Bell Labs, en
1947.
• Pas cher, solide.
Remplace les tubes
rapidement.
• Une des inventions
majeure du 20ème
siècle.
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
35
Circuits intégrés (LSI)
• Premier microprocesseur:
Intel ™ 4004
• Produit en 1971 (!)




2300 transistors MOS
Technologie 10 microns
CPU 4 bits
750 kHz
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
36
VLSI actuel
• Intel™ Core i7, Skylake
(5ème génération)





Produit dès août 2015.
1.4 milliards transistors.
Technologie 14 nm.
64 bits CPU.
4 cœurs physiques, 8
threads @ 4 GHz (pour i76700K).
Mécanique
P.-A. Mudry
1. Introduction
Tube et
diodes
Transistor
37
Objectifs du jour
Faire connaissance avec le cours




P.-A. Mudry
Buts et organisation
Histoire de l'informatique
Les systèmes informatiques
Introduction à la programmation
1. Introduction
38
Ordinateur ?
P.-A. Mudry
1. Introduction
40
Les éléments fondamentaux
Processeur (CPU)
Mémoire (RAM)
P.-A. Mudry
1. Introduction
41
Objectifs du jour
Faire connaissance avec le cours




P.-A. Mudry
Buts et organisation
Histoire de l'informatique
Les systèmes informatiques
Introduction à la programmation
1. Introduction
42
Java
• Langage assez récent (1996)
• Langage le plus utilisé au monde
 http://www.tiobe.com/index.php/cont
ent/paperinfo/tpci/index.html
• Au cœur d’Android
 Summer school, projet fin
P.-A. Mudry
1. Introduction
44
Modèle de l'automate
• Modèle de base
d'exécution
• Le processeur
 Lit instruction dans la
mémoire
 Exécute l’instruction
 Lit instruction dans la
mémoire
 Exécute
 …
P.-A. Mudry
1. Introduction
45
Programmer ?
P.-A. Mudry
1. Introduction
46
Programme
• Programme = liste d’instructions qui
sera exécutée par le CPU.
• Le CPU ne comprend que les
instructions qui font partie de son
langage: le langage machine (une
suite de 1 et de 0).
• Un langage machine par CPU.
P.-A. Mudry
1. Introduction
47
Création et exécution d’un programme
Compilation
Assemblage
P.-A. Mudry
1. Introduction
49
Langage de programmation (Java)
• Le langage machine n'est jamais utilisé…
1010
1110
1010
1110
1111
0101
0110
0101
1110
0000
1011
0000
0101
1010
1101
1010
1010
1111
1110
1111
1001
0101
1001
0101
Pas pratique…
• Il faut donc fournir des instructions dans
un langage de plus haut niveau, plus
faciles à appréhender par l’utilisateur.
• Ces instructions font partie des langages
de programmation (par ex. Java, C,
C++,…).
P.-A. Mudry
1. Introduction
50
Compilation
• Un programme est en fait du texte :
public main(String args[])
{
String s1 = "Hello World";
System.out.println(s1);
}
• Ce texte, écrit dans un langage particulier
(tel Java), est transformé en une suite de 1
et de 0.
• Possède un niveau d'abstraction élevé.
• Le compilateur est l’outil qui est utilisé pour
faire cette transformation / traduction.
P.-A. Mudry
1. Introduction
51
Assemblage
• Pour certains langages,
comme le C par exemple,
cette traduction passe par un
langage intermédiaire,
l'assembleur.
• Langage bas niveau, moins
flexible.
• Ce langage est spécifique à
un processeur (x86, ARM…)
P.-A. Mudry
1. Introduction
move r1, r2;
add r3, #45;
jump rev;
sub r3, #3;
Exemple d'assembleur
52
Particularité Java
• Habituellement, un programme
compilé ne peut être exécuté que
sur un type de processeur.
• Java utilise une machine virtuelle qui
crée une étape intermédiaire.
• De ce fait, le code compilé en Java
peut être exécuté sur toutes les
machines.
P.-A. Mudry
1. Introduction
53
Exécution d’un programme Java
Langage Java
Compilation
Bytecode
Interprétation
Just-in-time compiler
Compilation
Langage machine
P.-A. Mudry
1. Introduction
54
Téléchargement