Thibault HILAIRE. thibault.hilaire@lip6.fr. Informatique générale 1 (Python) CM1 AGRAL-MTX 2015-2016



Documents pareils
Présentation du cours

La mémoire. Un ordinateur. L'octet. Le bit

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours Informatique 1. Monsieur SADOUNI Salheddine

Algorithme. Table des matières

L informatique en BCPST

Informatique Générale

Codage d information. Codage d information : -Définition-

Découverte de l ordinateur. Partie matérielle

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

nom : Collège Ste Clotilde

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

TP 1. Prise en main du langage Python

UE Programmation Impérative Licence 2ème Année

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Architecture des ordinateurs Introduction à l informatique

Rappels d architecture

Le codage informatique

Introduction à l algorithmique et à la programmation (Info 2)

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Une version javascript sera disponible directement dans le cours prochainement.

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Architecture matérielle des systèmes informatiques

IV- Comment fonctionne un ordinateur?

Introduction à l informatique en BCPST

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Environnements et Outils de Développement Cours 1 Introduction

Recommandations techniques

Structure de base d un ordinateur

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

I. QU'EST-CE QU'UN ORDINATEUR? Un ordinateur est relié à plein de périphériques

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

La communication et la gestion de l'information

Cours 1 : Qu est-ce que la programmation?

«Connais toi toi-même comme l as dit Socrate!»

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Logiciels libres et Open source

Leçon 1 : Les principaux composants d un ordinateur

CH.3 SYSTÈMES D'EXPLOITATION

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Travaux pratiques Détermination de la capacité de stockage des données

Logiciel et format de fichiers

1 Introduction au codage

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Introduction à l Informatique licence 1 ère année Notes de Cours

Chapitre 1 I:\ Soyez courageux!

Représentation d un entier en base b

AUJOUR'HUI, NOUS ALLONS DÉCOUVRIR

2 Comment fonctionne un ordinateur, dans les grandes lignes

L informatique pour débutants

Python - introduction à la programmation et calcul scientifique

Les 100 incontournables dans le domaine des technologies! Décembre 2011

Chapitre 13 Numérisation de l information

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Cours 1 : La compilation

Qu est-ce qu un Ordinateur

Licence Sciences et Technologies Examen janvier 2010

Machines virtuelles Cours 1 : Introduction

Un ordinateur, c est quoi?

I00 Éléments d architecture

Matériel informatique (hardware)

Annexe : La Programmation Informatique

Évaluation et implémentation des langages

Indiquer l'espace libre sur le disque dur

Le partenaire tic de référence. Gestion des ressources humaines INOVA RH

Installation et prise en main d UBUNTU

I.1- DÉFINITIONS ET NOTIONS DE BASE

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Je participe à la société branchée

Le poids et la taille des fichiers

Cours Bases de données

Tester Windows 8 sans l'installer avec Virtualbox

Présentation du module Base de données spatio-temporelles

MODULE 2 : L échange et le partage de fichiers numériques

À la découverte de l ordinateur

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Gestion collaborative de documents

Bases de données cours 1

Environnement Informatique EMSE Linux

Un ordinateur, c est quoi?

Quelques bases sur les ordinateurs

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Quel PC pour quels usages? 1) PC de Bureau ou Portable? Les différents types de portables. - Les ultra-portables. - Les portables généralistes

Initiation Internet Module 0 : Découverte de L ordinateur

TD Architecture des ordinateurs. Jean-Luc Dekeyser

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

GPA770 Microélectronique appliquée Exercices série A

ORDINATEUR DOSSIERS FICHIERS

Transcription:

Thibault HILAIRE thibault.hilaire@lip6.fr Informatique générale 1 (Python) CM1 AGRAL-MTX 2015-2016

Présentation du cours

Informatique générale 1 Ce cours est un cours d introduction à la programmation et l algorithmique, basée sur le langage Python. Il est composé de cours vidéos (équivalent à 20h de cours) exercices interactifs et de TP/projets Ce cours est réparti sur 10 semaines : Semaine type 1 Lecture des vidéos (à votre rythme) 2 Exercices interactifs d entraînement 3 TP d application Puis 3 séances pour les projets. La visualisation des vidéos sera suivie, les TP seront tous évalués, certains notés. T. Hilaire Informatique générale 1 (Python) CM1 3/42

Préambule Ce cours est une introduction à la programmation et l algorithmique : Programmer pour effectuer des calculs compliqués/répétitifs (automatisation des tâches du métier d ingénieur) Apprendre à réfléchir (algorithmique) et à mettre en œuvre (programmer) dans n importe quel langage Appréhender la difficulté de résolution d un problème informatique donné et savoir discuter avec un développeur Programmer pour le traitement des données (métier de l ingénieur) Il est illustré par l apprentissage du langage Python Tous les concepts vus pourront être appliqués à d autres langages (présents et futurs). T. Hilaire Informatique générale 1 (Python) CM1 4/42

À quoi ça sert? T. Hilaire Informatique générale 1 (Python) CM1 5/42

Information et ordinateurs

Représentation de l information Représentation binaire et hexadécimale Architecture d un ordinateur "#$%&'($')#(*+(,*-#+&./'()#,* carte mère CPU (microprocesseur) mémoire vive (RAM) écran cartes de périphériques alimentation clavier lecteur de disque (CD, DVD)! souris disque dur T. Hilaire Informatique générale 1 (Python) CM1 7/42

Représentation de l information Représentation binaire et hexadécimale Les ordinateurs calculent! utilisés pour traiter du texte, du son, des images,... pourtant ils ne font qu une seule chose : Calculer tout est donc représenté par des nombres (texte, son, image, jeux...) plus exactement, ils ne manipulent que des informations binaires 0 ou 1 T. Hilaire Informatique générale 1 (Python) CM1 8/42

Représentation de l information Représentation binaire et hexadécimale Information binaire information avec uniquement deux états vrai ou faux, ouvert ou fermé,... correspond à une réalité physique de l ordinateur l électronique numérique du processeur stockage en mémoire (RAM), sur le disque dur, le DVD,... la transmission d information numérique T. Hilaire Informatique générale 1 (Python) CM1 9/42

Représentation de l information Représentation binaire et hexadécimale Information binaire On représente une information binaire par 0 ou 1 Ce n est qu une abstraction pour représenter l information. Autres abstractions : un mappemonde permet de représenter la terre un plan de métro représente le plan du réseau le chiffre 4 peut se représenter de différentes façons : 4, IV, 100... T. Hilaire Informatique générale 1 (Python) CM1 10/42

Représentation de l information Représentation binaire et hexadécimale Numérotation de position Pour représenter tous les nombres, nous utilisons un alphabet spécialisé : les chiffres : 0, 1, 2, 3, 4 5, 6, 7, 8, 9 on représente nos nombres en base 10 on utilises parfois d autres bases (heures, minutes, secondes) certaines civilisations utilisent d autres bases (maya en base 20) Les Simpsons utilisent la base 8 L ordre des chiffres dans un nombre est capitale (numérotation de position) C est la position des nombres qui donnent la valeur 2034 = 2 1000 + 0 100 + 3 10 + 4 1 2 10 3 + 0 10 2 + 3 10 1 + 4 10 0 T. Hilaire Informatique générale 1 (Python) CM1 11/42

Représentation de l information Représentation binaire et hexadécimale La base décimale En base décimale, on utilise ces 2 règles pour l écriture d un nombre On utilise uniquement l alphabet de 0 à 9 (10 chiffres) La position d un de ces chiffres dans un nombre nous indique la puissance de dix par laquelle ce chiffre doit être multiplié pour reconstituer le nombre S il y a un 7 en 5 ème position, ce 7 représente 7 10 4, c-à-d 70, 000 Si le 7 est en 1ère position (à droite), il représente 7 10 0, c-à-d 7 (c est l unité) T. Hilaire Informatique générale 1 (Python) CM1 12/42

Représentation de l information Représentation binaire et hexadécimale Représentation binaire Concrètement, les ordinateurs ne traitent que des données binaires. L information est donc stockée avec une représentation binaire. On utilise donc la base 2. Définitions Une information binaire, symbolisée couramment par 0 ou 1 s appelle un bit (binary digit) Un groupe de 8 bits s appelle un octet (en anglais Byte, à ne pas confondre avec bit) T. Hilaire Informatique générale 1 (Python) CM1 13/42

Représentation de l information Représentation binaire et hexadécimale Unités informatiques On parle souvent de kilo-octets, méga-octets, giga-octets, téra-octets 1 ko = 1 000 octets 1 Mo = 1 000 ko = 1 000 000 octets 1 Go = 1 000 000 000 octets... Attention, avant 1998, on avait 1 ko = 1024 octets, 1Mo = 1024 ko = 1 048 576 octets. iphone de 64Go, disque dur de 2To (ou 2TB) connection internet de 20 gigabit/s... T. Hilaire Informatique générale 1 (Python) CM1 14/42

Représentation de l information Représentation binaire et hexadécimale Le codage binaire : décodage En base binaire, on utilise ces 2 règles pour l écriture d un nombre On utilise uniquement l alphabet composé de 0 et 1 La position d un de ces chiffres dans un nombre nous indique la puissance de deux par laquelle ce chiffre doit être multiplié pour reconstituer le nombre Décodage de 10110101 b Il n y a que 10 sortes de gens dans la vie : ceux qui comprennent le binaire et les autres T. Hilaire Informatique générale 1 (Python) CM1 15/42

Représentation de l information Représentation binaire et hexadécimale Le codage binaire : codage Recherche des puissances successives de 2 Divisions entières successives par 2 (restes) 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 128 64 32 16 8 4 2 1 T. Hilaire Informatique générale 1 (Python) CM1 16/42

Représentation de l information Représentation binaire et hexadécimale Octets et choix d un codage Un octet peut servir à coder 2 8 nombres différents (car 8 bits de 2 états) Différents choix sont possibles pour interpréter un octet la série des nombres entiers de 0 à 255 la série des nombres entiers relatifs de -128 à +127... Pure affaire de convention, de choix de codage Si on veut coder des nombres plus grands, il faudra utiliser plusieurs octets avec 2 octets, 65 536 possibilités avec 3 octets, 16 777 216 possibilités... T. Hilaire Informatique générale 1 (Python) CM1 17/42

Représentation de l information Représentation binaire et hexadécimale Octets et codage de texte Un octet peut aussi coder un caractère Il y a 26 caractères minuscules, 26 majuscules, 10 chiffres, plus la ponctuation Un octet est suffisant pour coder un jeu de caractères (hors accents) Une norme permet à tout le monde d avoir la même représentation l ASCII American Standard Code for Information Interchange) est le standard 43 00101011 b + 48 00110000 b 0 49 00110001 b 1 65 01000001 b A 67 01000011 b C 97 01100001 b a T. Hilaire Informatique générale 1 (Python) CM1 18/42

Introduction à l algorithmique

Définition De l algorithme au programme Qu est-ce que l algorithmique? Vous avez déjà exécuté des algorithmes en suivant une recette de cuisine en déchiffrant un mode d emploi (Ikea) Vous avez déjà fabriqué et fait exécuté des algorithmes si vous avez déjà indiqué un chemin à un touriste si vous avez fait chercher un objet à quelqu un par téléphone L algorithmique est une aptitude partagée par tout le monde (ce n est pas uniquement informatique) T. Hilaire Informatique générale 1 (Python) CM1 20/42

Définition De l algorithme au programme Définition d un algorithme On peut comparer un algorithme à une recette de cuisine. Les ingrédients nécessaires à la réalisation du gâteau sont les données ou entrées. L algorithme est une suite d actions qui produira des résultats ou sorties. La recette du gâteau nantais T. Hilaire sucre Informatique beurre chocolat rhum générale 1 (Python) CM1 21/42

Définition De l algorithme au programme L algorithme gâteau nantais Les actions (ou instructions) qui composent un algorithme sont séquentielles Les actions se suivent et doivent être réalisées l une après l autre ; Ex : On ne peut pas cuire le gâteau nantais avant d avoir verser la pâte dans le moule L algorithme du gâteau nantais : 1 Mélanger le beurre mou avec le sucre 2 Ajouter les amandes, et incorporer les oeufs un à un. 3 Tant que le sucre n a pas totalement fondu, bien mélanger 4 Raper le chocolat pour en faire des petites paillettes et les rajouter 5 Ajouter 5cl de rhum 6 Ajouter à la spatule la farine, sans trop mélanger 7 Verser la pâte dans le moule 8 Faire cuire 45 min à 170-180 C dans un moule à manqué 9 Sortir le plat du four 10 Arroser avec 5cl de rhum 11 Quand le gâteau est froid, mélanger 5cl de rhum avec le sucre glace, et napper avec ce glaçage T. Hilaire Informatique générale 1 (Python) CM1 22/42

Définition De l algorithme au programme Définition d un programme Écrire un programme informatique revient à écrire un algorithme dans un langage compréhensible par un ordinateur : Un programme informatique est une liste d ordres indiquant à un ordinateur ce qu il doit faire Il se présente sous la forme d une ou plusieurs séquences d instructions devant être exécutées dans un certain ordre par un processeur, et comportant souvent des données d entrées chargées en mémoire. T. Hilaire Informatique générale 1 (Python) CM1 23/42

Définition De l algorithme au programme Définition d un programme Un programme informatique est écrit dans un langage de programmation Le langage permet à la personne qui rédige un programme de faire abstraction de certains mécanismes internes Contrairement à un algorithme qui s écrit dans un langage de pseudo-code ou en langage naturel, un programme doit être correct syntaxiquement. Un même algorithme peut être écrit dans des dizaines de langages de programmations différents. T. Hilaire Informatique générale 1 (Python) CM1 24/42

Définition De l algorithme au programme De l algorithme au programme Pourquoi apprendre l algorithmique pour apprendre à programmer? En quoi a-t-on besoin d un langage spécial, distinct des langages de programmation compréhensibles par les ordinateurs? L algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. Plus facile de réfléchir au problème, le découper, le résoudre si on n a pas à se soucier des particularités d un langage Analogie avec la dissertation : algorithme plan, les idées, leur organisation code rédaction + orthographe T. Hilaire Informatique générale 1 (Python) CM1 25/42

Définition De l algorithme au programme Langages informatiques Le langage machine C est la suite de bits qui est interprétée par le processeur de l ordinateur lors de l exécution d un programme, chaque instruction étant caractérisée par un code d opération. ARM Instruction Set Form 31 2827 1615 87 0 Cond 0 0 I Opcode S Rn Rd Operand2 Cond 0 0 0 0 0 0 A S Rd Rn Rs 1 0 0 1 Rm Le langage d assemblage (assembleur) Cond 0 0 0 0 1 U A S RdHi RdLo Rs 1 0 0 1 Rm Langage proche du langage machine qui peut être directement Cond 0 0 0 1 0 B 0 0 Rn Rd 0 0 0 0 1 0 0 1 Rm interprété par le processeur de l ordinateur tout en restant Cond 0 1 I P U B W L Rn Rd Offset lisible par un humain, créé pour faciliter le travail des Cond 1 0 0 P U S W L Rn Register List programmeurs. Il consiste à représenter les combinaisons de Cond 0 0 0 P U 1 W L Rn Rd Offset1 1 S H 1 Offset2 bits employées en langage binaire par des symboles. Cond 0 0 0 P U 0 W L Rn Rd 0 0 0 0 1 S H 1 Rm Exemple : ADD r0,r1,0x62 signifie "ajouter la valeur du registre Cond r11 avec 0 1 L la valeur hexadécimale Offset 0x61 et mettre le résultat dans le registre 0" Cond 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 Rn Cond 1 1 0 P U N W L Rn CRd CPNum Offset Cond 1 1 1 0 Op1 CRn CRd CPNum Op2 0 CRm Instruct Data proc Multiply Long Mul Swap Load/Stor Load/Stor Halfword tran Halfword tra Branch Branch Ex Coproces Coproces T. Hilaire Cond 1 Informatique 1 1 0 Op1 générale L CRn 1 (Python) Rd CM1 CPNum Op2 1 CRm Coproces 26/42

Définition De l algorithme au programme Langages informatiques Le C Langage de haut niveau, plus lisible que l assembleur, tout en restant proche de la machine Systèmes d exploitation, systèmes embarqués, calculs intensifs,... C++, Java, Objective-C,... Langage haut niveau orientés objets PHP, HTML, SQL Langages vus en Informatique Générale 2, liés au web HTML : langage de description de page SQL : langage de requêtes sur des bases de données PHP : langage de programmation web T. Hilaire Informatique générale 1 (Python) CM1 27/42

Python

Python Simple Efficace, et fourni avec de nombreuses bibliothèques (Battery included!) Code très lisible, pédagogique De plus en plus utilisé (Google,...) Logiciel libre, disponible sur toutes les plateformes (Windows, Linux, Mac OS, etc.) T. Hilaire Informatique générale 1 (Python) CM1 29/42

Références bibliographiques Programmation Python, conception et optimisation, Tarik Ziadé, Éd. Eyrolles Python, Learn it the hard way http://learnpythonthehardway.org/book/ Dive Into Python http://diveintopython.adrahon.org/ http://www.python.org/ Cours, TD, TP en ligne http://www.docmatic.fr, rubrique Enseignement/Infogen1 T. Hilaire Informatique générale 1 (Python) CM1 30/42

Licences logicielles

À propos de logiciels libres Petit aparté Licence de logiciel Une licence de logiciel est un contrat par lequel le titulaire des droits d auteur sur un programme informatique définit avec son cocontractant (utilisateur) les conditions dans lesquelles ce programme peut être utilisé, diffusé ou modifié. Contrat de Licence Utilisateur Final (CLUF) Deux grands types de logiciels (selon leur licence) : Logiciels propriétaires licence fixe, nominative ou flottante logiciel payante ou gratuit Logiciels libres peut être payant T. Hilaire Informatique générale 1 (Python) CM1 32/42

Logiciels libres Définition Un logiciel est libre s il confère à son utilisateur 4 libertés : la liberté d exécuter le programme, pour tous les usages, la liberté d étudier le fonctionnement du programme et de l adapter à ses besoins, la liberté de redistribuer des copies du programme (donner ou vendre des copies), la liberté d améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté. L accès au code source est donc nécessaire mais pas suffisant logiciels libres logiciel open source T. Hilaire Informatique générale 1 (Python) CM1 33/42

Logiciels libres Ces logiciels sont-ils libres ou propriétaires? Libres Propriétaires Windows Windows GNU/Linux GNU/Linux MSN MSN Firefox Firefox Chromium Google Chrome Google Chrome Android Android Skype Skype Microsoft Office Microsoft Office Open Office Open Office Facebook Facebook T. Hilaire Informatique générale 1 (Python) CM1 34/42

Licence de libre diffusion De la même manière, ce type de licence est étendu à une œuvre de l esprit au sens large (logiciel, document, photo, etc.) La possibilité d utiliser l œvre, pour tous les usages ; La possibilité d étudier l œuvre ; La possibilité de redistribuer des copies de l œuvre ; La possibilité de modifier l œuvre de l esprit et de publier ces modifications. Principales licences : GNU GPL (GNU General Public License), GFDL BDS Creative Commons CeCiLL... T. Hilaire Informatique générale 1 (Python) CM1 35/42

Licences Creative Commons Les licences Creative Commons sont un ensemble de licences régissant les conditions de réutilisation et/ou de distribution d œuvres. Nom Symboles CC-by CC-by-sa CC-by-nd CC-by-nc CC-by-nc-sa CC-by-nc-nd T. Hilaire Informatique générale 1 (Python) CM1 36/42

Licences Creative Commons Exemples d œuvres sous licence Creative Commons : Ce cours, sous licence CC-by-nc-sa De nombreux cours, polycopiés, exercices, etc. Le long métrage Le Bal des Innocents La bière Vores ØI (CC-by-sa), (OpenCola sous licence GPL,...) etc. T. Hilaire Informatique générale 1 (Python) CM1 37/42

1 ers pas en Python

Langage interprété Python est un langage interprété : chaque ligne de code est 1 lue 2 interprétée (décodée) 3 exécutée Si on lance Python depuis un terminal (avec la commande python), on a Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more in >>>»> correspond à l invite de commande : Python attend une commande T. Hilaire Informatique générale 1 (Python) CM1 39/42

Invite de commande Exemple 1 >>> print ("Ca va bien ou bien?") 3 >>> On peut aussi se servir de l interpréteur comme d une calculatrice >>> 2+2 4 >>> On quitte Python avec Ctrl+D. T. Hilaire Informatique générale 1 (Python) CM1 40/42

Fichier.py On peut aussi sauvegarder son programme dans un fichier.py Mon1erProgramme.py # Ceci est mon 1 er programme print ("Ca va bien, ou bien?") print (" Comme 2 et 2 font ") print (2+2) print ("?") T. Hilaire Informatique générale 1 (Python) CM1 41/42

Commentaires Les commentaires commencent par le caractère # jusqu à la fin de la ligne Ils servent à donner plus d informations Il faut les utiliser pour Annoter le code Séparer les différentes parties du code Indiquer le rôle de chaque variable (indispensable dès qu on a beaucoup de variables) T. Hilaire Informatique générale 1 (Python) CM1 42/42