Présentation du cours



Documents pareils
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

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

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

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

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

Rappels d architecture

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

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

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

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

nom : Collège Ste Clotilde

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

IV- Comment fonctionne un ordinateur?

Architecture des ordinateurs Introduction à l informatique

Recommandations techniques

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

Structure de base d un ordinateur

Le codage informatique

Architecture matérielle des systèmes informatiques

Une version javascript sera disponible directement dans le cours prochainement.

Introduction à l informatique en BCPST

Environnements et Outils de Développement Cours 1 Introduction

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

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

Logiciels libres et Open source

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

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

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

Logiciel et format de fichiers

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

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

Cours 1 : Qu est-ce que la programmation?

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

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Leçon 1 : Les principaux composants d un ordinateur

CH.3 SYSTÈMES D'EXPLOITATION

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

Matériel informatique (hardware)

Annexe : La Programmation Informatique

2 Comment fonctionne un ordinateur, dans les grandes lignes

AUJOUR'HUI, NOUS ALLONS DÉCOUVRIR

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

Python - introduction à la programmation et calcul scientifique

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

Représentation d un entier en base b

Chapitre 1 I:\ Soyez courageux!

Machines virtuelles Cours 1 : Introduction

Cours Bases de données

Licence Sciences et Technologies Examen janvier 2010

I.1- DÉFINITIONS ET NOTIONS DE BASE

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

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

1 Introduction au codage

Évaluation et implémentation des langages

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

Je participe à la société branchée

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

Quelques bases sur les ordinateurs

Chapitre 13 Numérisation de l information

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

Qu est-ce qu un Ordinateur

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

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

WINDOWS Remote Desktop & Application publishing facile!

Cours 1 : La compilation

Tester Windows 8 sans l'installer avec Virtualbox

La communication et la gestion de l'information

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Démontage d'un ordinateur

À la découverte de l ordinateur

Microprocesseur + Logiciel

I00 Éléments d architecture

Cours 3 : L'ordinateur

Un ordinateur, c est quoi?

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

Indiquer l'espace libre sur le disque dur

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

Logiciel de Base. I. Représentation des nombres

Installation et prise en main d UBUNTU

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Le poids et la taille des fichiers

Ordinateurs, Structure et Applications

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

ORDINATEUR DOSSIERS FICHIERS

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Transcription:

Thibault HILAIRE thibault.hilaire@lip6.fr François PECHEUX francois.pecheux@lip6.fr Informatique générale 1 (Python) Introduction Présentation du cours AGRAL-MTX-GM 2014-2015 20h de cours, 40h de TP/projets Informatique générale 1 1 TP sur l utilisation de Word/Excel 9 Cours suivi du TP correspondant 3 séances de Projet QCM/mini interro en début/fin de certains cours les TP seront tous évalués, certains seront notés projet noté un examen final 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 Il est illustré par l apprentissage du langage Python Tous les concepts vus pourront être appliqués à d autres langages. T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 3/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 4/42

À quoi ça sert? Information et ordinateurs T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 5/42 Architecture d un ordinateur "#$%&'($')#(*+(,*-#+&./'()#,* Les ordinateurs calculent! carte mère CPU (microprocesseur) écran clavier mémoire vive (RAM) cartes de périphériques alimentation lecteur de disque (CD, DVD) 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! souris disque dur T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 7/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 8/42

Information binaire 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 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, F. Pecheux Informatique générale 1 (Python) Introduction 9/42 Numérotation de position T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 10/42 La base décimale 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 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, F. Pecheux Informatique générale 1 (Python) Introduction 11/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 12/42

Représentation binaire Unités informatiques 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. s 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) 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, F. Pecheux Informatique générale 1 (Python) Introduction 13/42 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 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 14/42 Le codage binaire : codage Recherche des puissances successives de 2 Divisions entières successives par 2 (restes) Décodage de 10110101 b 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 128 64 32 16 8 4 2 1 Il n y a que 10 sortes de gens dans la vie : ceux qui comprennent le binaire et les autres T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 15/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 16/42

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 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, F. Pecheux Informatique générale 1 (Python) Introduction 17/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 18/42 Qu est-ce que l algorithmique? Introduction à 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, F. Pecheux Informatique générale 1 (Python) Introduction 20/42

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 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, F. Pecheux Informatique sucre beurre chocolat rhum générale 1 (Python) Introduction 21/42 entrées d un programme amandes farine oeufs T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 22/42 d un programme Écrire un algorithme programme informatique Recette revient du gâteau à écrire nantais 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 sorties gâteau nantais 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. 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, F. Pecheux Informatique générale 1 (Python) Introduction 23/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 24/42

Langages informatiques 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, F. Pecheux Informatique générale 1 (Python) Introduction 25/42 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 Format 31 2827 1615 87 0 Instruction typ Cond Cond 0 0 I Opcode S 0 0 0 0 0 0 A S Rn Rd Rd Rn Rs Operand2 1 0 0 1 Rm Data processing / Multiply Cond 0 0 0 0 1 U A S RdHi RdLo Rs 1 0 0 1 Rm Long Multiply 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 Swap interprété par le processeur de l ordinateur tout en restant Cond 0 1 I P U B W L Rn Rd Offset Load/Store Byte/ 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 Load/Store Multi Halfword transfer : Imm Halfword transfer: Reg Branch résultat Cond dans 0 0 0 le1 registre 0 0 1 00" 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 Rn Branch Exchange Le langage d assemblage (assembleur) Cond 1 1 0 P U N W L Rn CRd CPNum Offset Coprocessor data Cond 1 1 1 0 Op1 CRn CRd CPNum Op2 0 CRm Coprocessor data T. Hilaire, F. Pecheux Cond Informatique 1 1 1 0 Op1 générale L 1 (Python) CRn Introduction Rd CPNum Op2 1 CRm Coprocessor 26/42 regi Cond 1 1 1 1 SWI Number Software interrup 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 The ARM Instruction Set - ARM University Program - V1.0 Python T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 27/42

Python Références bibliographiques 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.) 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, F. Pecheux Informatique générale 1 (Python) Introduction 29/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 30/42 À propos de logiciels libres Petit aparté Licences logicielles 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, F. Pecheux Informatique générale 1 (Python) Introduction 32/42

Logiciels libres Logiciels libres 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 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, F. Pecheux Informatique générale 1 (Python) Introduction 33/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 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 Nom CC-by CC-by-sa CC-by-nd CC-by-nc CC-by-nc-sa CC-by-nc-nd 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. Symboles T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 35/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 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. 1 ers pas en Python T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 37/42 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 Exemple Invite de commande 1 >>> print ("Ca va bien ou bien?") 3 >>> On peut aussi se servir de l interpréteur comme d une calculatrice Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 >>> 2+2 Type "help", "copyright", "credits" or "license" for more information. 4 >>> >>>»> correspond à l invite de commande : Python attend une commande On quitte Python avec Ctrl+D. T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 39/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 40/42

Fichier.py Commentaires 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 ("?") 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, F. Pecheux Informatique générale 1 (Python) Introduction 41/42 T. Hilaire, F. Pecheux Informatique générale 1 (Python) Introduction 42/42