Académique Documents
Professionnel Documents
Culture Documents
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 1 1
Objectifs du cours
INTRODUCTION
PLAN
PLAN
P A
L Historique N
Concepts
Applications
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 2
Langage Python
Objectifs
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 3 3
OBJECTIFS
Python est le langage de programmation le plus
utilisé dans le domaine du Machine Learning,
du Big Data et de la Data Science. Créé fin des
années 80 utilisé en 1991, le langage de
programmation Python s’est hissé parmi les plus
utilisés dans le domaine du développement de
logiciels, de gestion d’infrastructure et d’analyse
de données. Il s’agit d’un élément moteur de
l’explosion du Big Data.
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 4
OBJECTIFS
À l'issue de ce cours, l’étudiant sera capable de :
Traiter les exceptions et les erreurs
Écrire des commandes dans l’interpréteur Python
Maîtriser les règles qui définissent la portée des
variables
Créer et éditer des objets
Créer des classes, des attributs et des méthodes
Hériter des méthodes d’une classe
Utiliser les modules de la bibliothèque standard
Tester une application unitairement avec unittest
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 5
Intitulé Volume horaire (VH)
Elément de
del'Elément du Evalua VH
module CM TD TP
module tion global
EMGE360-1Language Python 14 0 8 2h 24
Applications du
EMGE660-2 8 0 16 2h 26
language Python
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 6
Avez-vous des questions ?
N. Zidane
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 7
Langage Python
Introduction
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 88
ENSAM RABAT
Introduction à la programmation
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 151
Langage Python
Historique
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 116
ENSAM RABAT
Généralités sur
l'informatique
Objectifs de ce chapitre
En suivant ce chapitre vous allez :
Plan du chapitre
Voici les parties que nous allons aborder :
L’évolution au
cours d’un siècle
Plan de la partie
Voici les parties que nous allons aborder :
• La 1ère génération d’ordinateurs.
• La 2ème génération
d’ordinateurs.
• La 3ème génération
d’ordinateurs.
• La 4ème génération
d’ordinateurs.
• Le numérique d’aujourd’hui.
• Le numérique de demain.
• Synthèse.
http://www.lemonde.fr/technologies/article/2010/10/28/la-ch
ine-revendique-la-premiere-place-du-classement-des-super
ordinateurs_1432656_651865.html#xtor=AL-32280184
Le numérique d’aujourd’hui
Le numérique envahit les foyers
■ Plus généralement, le numérique envahit les appareils du
quotidien (de la machine à laver au magnétoscope en
passant par la cafetière programmable).
■ Nous commencons à parler de domotique (du latin domus
signifiant maison) et de maison intelligente.
Le numérique d’aujourd’hui
Amélioration des moyens de stockage
■ Depuis 1982, le Compact Disc a progressivement remplacé
les disques vinyles et les cassettes audio.
■ Le Digital Video Disc, introduit en 1995 supplante peu à
peu les cassettes vidéo (par la suite, ce support est devenu
polyvalent, nous parlons de Digital Versatil Disc 1999).
■ 2004 début technologique du Blu-Ray Disc
■ Le HD DVD de Toshiba en soutien avec Microsoft
abandonné en Février 2008.
■ La Blu-ray Disc Association livre en fin 2009 un
standard Blu-ray 3D, pour visionner des films en trois
dimensions.
Le numérique d’aujourd’hui
Amélioration des moyens de transmission
■ Vers 2002, les offres « triple play » ont démocratisé l’accès
à Internet ce qui a permis une utilisation plus massive de la
« voix sur IP » (Voice Over IP ou VOIP) en concurrence
avec le téléphone traditionnel.
Le numérique d’aujourd’hui
Amélioration des moyens médicaux
■ Les prothèses se sont améliorées au point de pouvoir
« remplacer » certaines fonctions du corps humain.
■ Jesse Sullivan (2005) et Claudia MITCHELL (2006) sont
munis de bras bioniques pour « remplacer » leur membres
perdus dans des accidents.
Le numérique de demain
L’avenir du numérique dans les nanotechnologies
■ Richard FEYNMAN prédisait en 1959 qu’il serait possible
de stocker les 24 volumes de l’encyclopédie Britanica dans
une tête d’épingle.
■ Ce fut chose faite dans les années 80.
Le numérique de demain
La course à la miniaturisation – Le projet Millipède d’IBM
■ Stocker 20 fois plus de données par millimètre carré que
sur les supports magnétiques actuels grâce à des
minuscules aiguilles qui déforme temporairement une
plaque de molécules préalablement chauffée.
■ 500 Mo de données sur une puce carrée de 3 mm de côté.
■ Des densités de stockage plusieurs milliers de fois
supérieures à celles d'aujourd'hui seraient envisageables.
Le numérique de demain
La course à la miniaturisation – Les FPGA et FPNI
■ 8 fois plus denses que les circuit actuels car la matrice de
routage (crossbar switch), placée au-dessus des blocs
logiques (contrairement aux FPGA actuels).
■ Moins gourmands en énergie car utilisation de nano-câble
pour conduire l’électricité.
■ La technologie FPNI (Field Programmable Nanowire
Interconnect),
(http://www.01net.com/editorial/349608/les-alternatives-aux
-processeurs-multic-and-%23339-urs/).
Le numérique de demain
La course à la miniaturisation – Les FPGA de HP
■ IBM implante des portes logiques OU et ET 260000 fois
plus petits que ceux des puces à semi-conducteur actuelles
les plus perfectionnées en utilisant le déplacement en
cascade des molécules comme dans un jeu de domino
(voir http://www.research.ibm.com/nanoscience/nl015606f.pdf)
Le numérique de demain
La course à la miniaturisation – Les qubit du CEA
■ Le CEA travaille à la mise au point d'un « qubit »,
l'équivalent quantique d'un bit, permettant de stocker
simultanément une "superposition" de 0 et de 1.
■ Ce qubit devrait permettre de concevoir des processeurs
plusieurs milliers de fois plus rapides dans 15 ou 20 ans
(http://www.qubit.org/)
Synthèse
Quelques points de repère historiques
1ère génération 2ème génération 3ème génération 4ème génération
1941 - 1956 1956 - 1963 1963 - 1971 1971 – aujourd’hui
l'IBM 704 (lancé par IBM en 1955) est développé par Gene
Amdahl. Il s'agit de la première machine commerciale disposant
d'un coprocesseur mathématique. Cette machine marque le début
de l'ère des super-ordinateurs dédiés au calcul scientifique.
Elle utilisait une mémoire à tores de ferrite de 32768 mots de 36
bits et allait 3 fois plus vite que l’IBM 701.
• Multiprogrammation
• Ordonnancement de travaux
• Spooling
• Interruption
• Pipeline
• Stockage entrelacé
• Stockage (mémoire) virtuelle
• Pagination
Le circuit intégré
La réalisation de ce projet a
suscité une abondante
littérature qui a influencé
la réalisation les autres
systèmes d'exploitation ...
Historique : UNIX
UNplexed Information and Computing
Service
Historique : UNIX
UNplexed Information and Computing Service
Les premiers travaux furent effectués sans
financement mais les premiers succès
permirent à Thompson et Ritchie d'obtenir
un PDP-11 pour continuer leurs travaux.
Historique : UNIX
La première version du système UNIX fut officiellement
opérationnel en 1970.
Historique : UNIX
Le fonctionnement du
microprocesseur
Description du fonctionnement
Le CPU et la mémoire
Description du fonctionnement
Phase de recherche
Description du fonctionnement
Phase de recherche – incrémentation du compteur ordinal
Description du fonctionnement
Phase de recherche – Envoi de l’adresse à la RAM
Description du fonctionnement
Phase de recherche – Envoi de l’adresse à la RAM
Description du fonctionnement
Phase de recherche – Sélection de la case mémoire
Description du fonctionnement
Phase de recherche – Envoi des données vers le CPU
Description du fonctionnement
Phase de recherche – Envoi des données vers le CPU
Description du fonctionnement
Phase de recherche – Stockage des données
Description du fonctionnement
Phase de décodage
Description du fonctionnement
Phase de décodage – Décodage de l’instruction
Description du fonctionnement
Phase de décodage – Décodage de l’instruction
Description du fonctionnement
Phase de décodage – Pré-activation des éléments du CPU
Description du fonctionnement
Phase d’exécution
Description du fonctionnement
Phase d’exécution – Lecture du registre sélectionné
Description du fonctionnement
Phase d’exécution – Activation des éléments de l’UAL
Description du fonctionnement
Phase d’exécution – Ecriture dans les registres sélectionnés
Intel d’aujourd’hui
Ordinateur de bureau :
■ Pentium Dual/Quad-Core - E5x00 (2/4 cœurs physiques
– 2/4 cœurs logiques) – 2 caches L1 L2.
■ Sandy Bridge – 3 caches L1 L2 L3
Intel d’aujourd’hui
Historique de Python
Le nom du langage étant inspiré de la série Monty Python(1), cela donne une
idée de la philosophie derrière Python : la programmation doit être un plaisir.
Concepts
Le
Le 14/10/2021
21/10/2021ZIDANE
ZIDANE NORDINE
NORDINE 1
109
Caractéristiques de base de PYTHON
Python est portable sur différents environnements tels que Unix et Windows.
Logiciel libre.
La syntaxe du langage est simple.
Python gère lui-même l’espace mémoire disponible.
Python est doté d’un typage dynamique car il n’y a pas de déclaration explicite de
variables ni de spécification de types; le type d’une variable est déterminé à
l’exécution seulement de même que l’allocation de l’espace mémoire.
Il existe des interpréteurs en Python.
Il existe des compilateurs en Python qui produisent un code intermédiaire, appelé
bytecode lequel est transmis à un interpréteur pour l’exécution finale.
Il offre des possibilités pour la programmation orientée objets.
Une approche « jeu de construction » pour concevoir des programmes :
ne pas essayer de réinventer la roue mais se servir de pièces existantes
chaque fois que c’est possible (réutilisation de logiciels).
Il possède une bibliothèque très riche (interfaces graphiques, bases de données,
protocoles Internet, …).
Le 14/10/2021 ZIDANE NORDINE 110
Avantages du langage PYTHON
universel : non orienté vers un domaine d’applications particulières comme en
FORTRAN ou en COBOL.
compact : basé sur un noyau de fonctions et d’opérateurs limité, permettant la
formulation d’expressions simples mais efficaces.
moderne : Python offre les opportunités rencontrées dans les autres langages de
haut niveau.
intégration : On peut utiliser Python sur une plate-forme JAVA et Python peut
contenir du code C ou C++ par exemple.
ouvert : C’est un langage Open Source. Il peut de ce fait être librement utilisé et
distribué.
simplicité : la syntaxe claire et lisible facilite considérablement la création de
programmes et leur mise au point. Renferme peu de mots-clés.
portable : on peut utiliser le même programme sur presque tous les systèmes
d’exploitation (Linux/UNIX, Windows, Mac, OS/2, …).
extensible : le langage possède tout un ensemble de librairies d’outils, notamment
dans le domaine de l’accès aux bases de données, les interfaces
graphiques, le développement pour le WEB, etc. Permet de compléter
ou d’adapter leurs outils afin d’être plus productifs.
II Langage d’assemblage
Langages de script.
V Perl, Python
Python renferme des structures de données de haut
niveau intégrées au langage ce qui est beaucoup plus
simple à utiliser que les librairies précédentes.
Exemple :
Entrée : 2 entiers positifs, un numérateur et un dénominateur.
Sortie : la valeur de l’expression : numérateur / dénominateur.
Le programme doit accepter 2 entiers positifs en entrée seulement
et fournir uniquement le résultat escompté.
Précision souhaitée des données
Lors des calculs effectués, indiquer la
:
précision souhaitée (# de décimales).
Valide
Lorsque le programme est une composante d’un système, il doit
:
fonctionner sur une base individuelle mais aussi à l’intérieur du système.
Il existe de nombreuses variantes de cette loi, basés sur le fait que toute catastrophe possible a une fâcheuse
tendance à se produire. La plus connue est sans doute la Loi de la tartine beurrée, selon laquelle "Toute
tartine
beurrée livrée à elle-même tombera du côté beurré." (Ça marche aussi avec de la confiture, et c'est encore plus
efficace si vous avez un tapis en dessous).
Corollaire sur la programmation :
Plus tôt vous commencez à coder votre programme (au-lieu de penser),
plus tard vous finirez.
3. Utiliser une technique de programmation (par ex., une approche « top-down »).
4. Utiliser autant que possible des structures linéaires (éviter les « GOTO »).
7. N’assumer jamais que l’ordinateur a assumé quelque chose (valeurs par défaut).
8. Vérifier à la main votre programme avant de le faire exécuter.
Le 14/10/2021 ZIDANE NORDINE 117
Étapes dans la vie d’un programme
1. Définir le problème avec précision.
6. Documentation.
7. Maintenance.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 1.2.2
>>>
Prêt à exécuter une commande.
Les différentes versions de Python (pour Windows, Unix, etc.), son tutoriel original,
son manuel de référence, la documentation des bibliothèques de fonctions, etc. sont
disponibles gratuitement, à partir du site officiel: http://www.python.org .
On peut alors télécharger et installer Python à partir de cet emplacement en tenant compte
de la plate-forme utilisée.
Par exemple, sous Windows, vous devez télécharger le fichier python-2.5.msi à partir du
site officiel et l’exécuter pour installer Python. Le dossier d’installation est dans C:\Python,
puis les fichiers de la bibliothèque standard dans C:\Python\Lib.