informatique en cpp

30
La Prépa 1A - Informatique - Introduction 1 La Prépa 1A Semestre 1 2021-2022 Informatique CM 1 Introduction

Upload: others

Post on 18-Jun-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informatique en CPP

La Prépa 1A - Informatique - Introduction 1

La Prépa 1A Semestre 12021-2022

Informatique

CM 1Introduction

Page 2: Informatique en CPP

La Prépa 1A - Informatique - Introduction 2

Cours Amphi 1 : Richard Bressoux

Amphi 2 : Catherine Oriat

Travaux pratiques (TD sur machine)  Groupe A : Romain Rombourg

Groupe B : Richard Bressoux

Groupe C : Catherine Oriat

Groupe D : Isabelle Schanen

Enseignants

Page 3: Informatique en CPP

La Prépa 1A - Informatique - Introduction 3

Objectifs de l’enseignement

• Fondements de l’informatique

• Notion d’algorithme

• Concevoir un algorithme

• Se convaincre de sa correction

• Évaluer ses performances (complexité)

• Méthodes numériques simples

• Langage utilisé : Python 3

Page 4: Informatique en CPP

La Prépa 1A - Informatique - Introduction 4

Pour Qui ?

• Pour “tout le monde” :

→ Comprendre le monde qui l'entoure (l'informatique est partout)

• Futurs ingénieurs physiciens/chimiste/… :

→ Maîtriser les bases de l'informatique en tant qu'outil (indispensable !)

• Futurs informaticiens :

→ Pas la cible principale du cours (mais rendez-vous à l'Ensimag dans 2 ans ;-) )

Page 5: Informatique en CPP

La Prépa 1A - Informatique - Introduction 5

Organisation du cours

● 7 cours magistraux (CMs)● 9 séances sur ordinateur (TDs)● 2 TPs en temps libre (TPLs), notés● 1 examen, en novembre● Supports en ligne : Chamilo

http://chamilo.grenoble-inp.fr

● Prenez des notes !

Page 6: Informatique en CPP

La Prépa 1A - Informatique - Introduction 6

Outils pédagogiques

• 1 QCM sur Chamilo après chaque coursNon noté, mais obligatoire (pénalité sur la note si non fait 2 semaines après chaque cours)

• Livre “Informatique pour tous en CPGE”, de B. Wack et al.• Complément indispensable du cours, à lire

au fur et à mesure (posez des questions si besoin !)

Version numérique gratuite : cf. Chamilo.

Page 7: Informatique en CPP

La Prépa 1A - Informatique - Introduction 7

Objectifs de l’introduction

• Description d’un ordinateur• Traitement d’information• Notion d’algorithme• Les logiciels• Un peu d’histoire• Exemples élémentaires d’informations et de leurs

traitements en Python

Page 8: Informatique en CPP

La Prépa 1A - Informatique - Introduction 8

Structure d’un ordinateur

• Mémoire, bit (0 ou 1), octet (= byte = 8 bits), mot, adresse• Unité centrale, instructions• Périphériques

• Clavier, écran, souris• Disque, CD, caméra, imprimante• Connection Wi-Fi, ethernet

• Bus qui relie(nt) le tout

UC mémoire

Page 9: Informatique en CPP

La Prépa 1A - Informatique - Introduction 9

Stockage de l'information : mémoire, disque dur

• Mémoire vive (RAM = Random Access Memory)– Utilisée pendant l'exécution des programmes– Perdue quand la machine est éteinte– En 2021, un ordinateur a typiquement 4, 8 ou 16 Go

(1 Go = 1 gigaoctet = 1 milliard d'octets) de RAM• Disque dur (ou stockage SSD)

– Stockage de l'information dans l'ordinateur– Préservée quand la machine est éteinte– En 2021, 1 disque dur = quelques centaines de Go

ou environ 1 To (1 To = 1 Teraoctet = 1000 Go)

Page 10: Informatique en CPP

La Prépa 1A - Informatique - Introduction 10

• Algorithme d’Euclide

• Recettes de cuisine

• Montages en kit, etc

• Dans tous les cas :

• Instructions élémentaires connues

• Description d’une suite finie d’instructions

• Contre-exemples : ?

Algorithme

Page 11: Informatique en CPP

La Prépa 1A - Informatique - Introduction 11

Programme

• Un algorithme

• Décrit un calcul par une suite d’instructions

• Destiné à être exécuté sur ordinateur

• Transposition dans une structure en machine,

ce qui permet d’exécuter le calcul

• Écrit dans un langage informatique

• Description formelle : syntaxe + sémantique

Page 12: Informatique en CPP

La Prépa 1A - Informatique - Introduction 12

Syntaxe et sémantique

• La syntaxe d’un langage de programmation définit la manière dont les éléments du langage peuvent être combinés pour former un programme.

• Si les règles syntaxiques sont respectées, on dit que le programme est syntaxiquement correct et il peut être exécuté.

• Sinon, le programme est syntaxiquement incorrect : on a une erreur de syntaxe et le programme ne peut pas être exécuté.

• La sémantique d’un programme définit ce que calcule le programme lorsqu’il est exécuté

Page 13: Informatique en CPP

La Prépa 1A - Informatique - Introduction 13

Les logiciels

• Logiciels d’application• Éditeur (texte, photo, …)• Logiciels de gestion d’entreprise, de ressources, …• Calculs d’écoulement en mécanique des fluides,• …

• Interprètes et compilateurs pour des langages de programmation

• Système (Windows, Linux, …)• Gestion de fichiers, d’utilisateurs, de périphériques,

couplage réseau, …• Serveurs web, serveur mail, …

• Tournent sur une autre machine que la vôtre• Utilisés via un client (par exemple un navigateur)

Page 14: Informatique en CPP

La Prépa 1A - Informatique - Introduction 14

Langages de programmation

• Langage utilisé pour communiquer des instructions à un ordinateur (syntaxe et sémantique).

• Il existe plus de 2000 langages de programmation différents • Code machine • Fortran (1954) • Cobol (1960)

• C (1972)• Ada (1983)• Caml• C++• Java• Python• ...

Page 15: Informatique en CPP

La Prépa 1A - Informatique - Introduction 15

Exemples d’informations et de leurs traitements

Informations Traitement

Les nombres Calcul scientifique

Maillage océan-atmosphère Echanges d'énergie, prévision météo

Dossiers médicaux Remboursement de soins

Objets 3D, articulations, trajectoires, modèles d’interactions

Calcul de positions, de vues, de bruits dans les jeux vidéo

Structure des chromosomes Recherche de séquences proches

Page 16: Informatique en CPP

La Prépa 1A - Informatique - Introduction 16

Histoire simplifiéede l’informatique

Page 17: Informatique en CPP

La Prépa 1A - Informatique - Introduction 17

Les précurseurs

• la carte perforée et les trieuses : Hollerith (1860-1929), Bull (1882-1925)

• les premiers algorithmes : Euclide (3e s. av. JC)

• l'algèbre de Boole (1815-64)

• le premier programmeur est une programmeuse : Ada Lovelace (1815-1852)

Machines de Pascal (1623-62)

Machine de Babbage(1792-1871)

Page 18: Informatique en CPP

La Prépa 1A - Informatique - Introduction 18

Les générations d'ordinateurs

• Machine de Turing (1936, uniquement théorique : pour évaluer les possibilités théoriques des calculateurs)

• Premier ordinateur : Z2 de Zuse (Berlin 1939), suivi de Eniac (Philadelphie 1943-46)

• Tubes à vide 1942

• Transistors, Shockley 1956

• Circuits imprimés 1963

• Circuits intégrés 1974

• Microprocesseurs 1974 (processeurs VLSI)

Page 19: Informatique en CPP

La Prépa 1A - Informatique - Introduction 19

Les modes d’utilisation : systèmes d’exploitation

• Machine « nue » (1950-60)

• Traitements par lots

• Entrées sorties simultanées

• Multiprogrammation

• Temps partagé (1970)

• PC (Ordinateur individuel) (1981)

• Calcul distribué sur grappes (2000)

Page 20: Informatique en CPP

La Prépa 1A - Informatique - Introduction 20

Les réseaux

• Les précurseurs

• Télégraphe Chappe 1793

• Télégraphe électrique 1840

• Réseaux à grande échelle

• Arpanet 1969, qui devient ensuit Internet

• Courrier électronique 1972

• France : Cyclades, puis Transpac 1979, Minitel 1980

• Réseaux locaux

• Ethernet 1973

• Le “web” (Internet + serveurs + hyperliens) : 1990

Page 21: Informatique en CPP

La Prépa 1A - Informatique - Introduction 21

Transmettre : codage de caractères

Télégraphe Chappe

Page 22: Informatique en CPP

La Prépa 1A - Informatique - Introduction 22

Transmettre : ASCII

Page 23: Informatique en CPP

La Prépa 1A - Informatique - Introduction 23

Situation actuelle

• De l’informatique partout, y compris dans les parc-mètres ! 1/3 du prix d’un Airbus !

• Tendance à l’interconnexion• des ordinateurs,• des appareils domestiques

• Problèmes de sécurité, de confidentialité

• Des emplois variés (et intéressants) dans tous les secteurs : l’information est omniprésente

Page 24: Informatique en CPP

La Prépa 1A - Informatique - Introduction 24

Une explosion continue depuis 1960

• Due à la puissance de calcul (typique: 107-108

opérations/secondes) et qui continue de croître (loi de Moore: doublement du nombre de transistors tous les deux ans)

• Due au volume d’information manipulable (grosse machine: >1010 caractères (octets))

• Due à la vitesse des transmissions (autoroute : 1010 bits/seconde)

• Due à la variété des applications: de la voiture (régulation de vitesse, diagnostique, trajet) aux finances (estimation de risque, prévision, gestion de comptes)

Page 25: Informatique en CPP

La Prépa 1A - Informatique - Introduction 25

Loi de Moore pour l’intégration de circuits

http://commons.wikimedia.org/wiki/File:Supercomputers.png

Page 26: Informatique en CPP

La Prépa 1A - Informatique - Introduction 26

Loi de Moore pour la puissance de calcul

• L’ordinateur le plus puissant au monde atteint 33 PFlops

Évolution de la puissance de calcul des 500 plus gros ordinateurs du monde (en giga-flop/s)

http://commons.wikimedia.org/wiki/File:Supercomputers.png

Page 27: Informatique en CPP

La Prépa 1A - Informatique - Introduction 27

Langages de programmation

● Calculer 2+2 pour un processeur Intel (langage machine, compréhensible par le processeur) :

B80200000083C002 ➔ Bon, on ne va pas faire comme ça …

● Le même programme, en langage d'assemblage (ou langage assembleur)

movl $2, %eaxaddl $2, %eax

➔ Mieux, mais on ne va pas faire comme ça non plus !● En Python :

>>> 2+24

Page 28: Informatique en CPP

La Prépa 1A - Informatique - Introduction 28

Le langage Python : introduction

● Langage de programmation moderne (crée en 1990)● 2e langage le plus utilisé aujourd'hui (source : index TIOBE)● Utilisateurs notables de Python :

● Web (presque tout Youtube est écrit en Python !)● calcul scientifique (LHC, Nasa, …)● IA (Intelligence Artificielle, deep learning)● Langage de script pour étendre un logiciel (plugin) :

blender, vi, …● Attention : nous utilisons Python 3, incompatible avec

Python 2.

Page 29: Informatique en CPP

La Prépa 1A - Informatique - Introduction 29

Premier programme Python : Suite deFibonacci>>> a = 0>>> b = 1>>> while b < 10:... print(b)... c = a + b... a = b... b = c... 112358

En français :● Mettre 0 dans a● Mettre 1 dans b● Tant que b est plus petit que 10 :

● Afficher b● Mettre a+b dans c ● Mettre c dans b

Remarque : la valeur des variables (a, b et c) change !

Page 30: Informatique en CPP

La Prépa 1A - Informatique - Introduction 30

Forces et faiblesses de Python

Forces ● Facile à apprendre● Concis (les programmes sont courts)● Structure claire● Langage de haut niveau (cache les

détails de l'ordinateur)Faiblesse principale : lenteur