You are on page 1of 15

Tronc Commun X2011

Amphi 1 : introduction au cours


I. Prsentation gnrale du cours. II. Un ordinateur, comment a marche? III. La programmation en Java. IV. Organisation du cours. V. Derniers mots.

INF311 : Introduction lInformatique


Franois MORAIN
morain@lix.polytechnique.fr

D PARTEMENT D I NFORMATIQUE

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

1/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

2/58

I. Prsentation gnrale du cours

Linformatique pour les X


Les missions du DIX:
Enseigner linformatique tous les lves, quelle que soit

leur voie dentre lcole.

Un ingnieur moderne doit connatre linformatique, un niveau toujours plus lev.

Enseigner le maximum daspects diffrents du domaine:

calculabilit, rseau, web, etc.

Les qualits des X:


rigueur; adaptabilit ( accumuler culture + exprience); formation pluridisciplinaire; architectes.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

3/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

4/58

INF311
Cours fait pour les dbutants en informatique

Toute science a son codage

Maths :
Faire connaissance avec linformatique (science +

2 1

xdx =

3 2

techniques) ;

Se familiariser avec un systme dexploitation (Unix),

Physique : E = mc2 Chimie : NO + O3 NO2 + O2 conomie: $ Informatique : 1011000

quelques outils modernes (diteur de dveloppement intgr IDE).

Commencer apprendre la programmation.

10 blocs : 1 bloc = 1 amphi de 1h30 + TP de 2h sur machine + deux heures de travail personnel.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

5/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

6/58

LInformatique
calculer:

Mais encore ?

Programmer le monde !

exp( 163) = 262537412640768743.99999999990595004674

concepts fondamentaux : modularit (e.g., sparation du

automatiser; abstraire;

calcul de lafchage, etc.), abstraction; structures de base de linformation : tables, listes, arbres, graphes ; 1 gen col1 col2 cap2 D C 2 3 l -> a -> b -> c -> 0 A B E

rutiliser (bibliothques); dnir des modles (spcier);

structurer / organiser; dcomposer en structures traduire: langages, 0/1; relier des mondes;

lmentaires avec des liens entre elles (arbres, graphes);

cap1

changer linformation: client/serveur (web), protocoles

de scurit, etc.

modliser linformation et son traitement de plus en plus

complexe (un humain, une promotion, un pays, une plante, etc.).

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

7/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

8/58

II. Un ordinateur, comment a marche? A) La machine

0 et 1 sufsent. . .
On construit tous les entiers (ou beaucoup) ; on en dduit

les rationnels ;

Entre

1001

Processeur Mmoire

1110

Sortie

construire des nombres presque rels (les ottants) ; construire des lettres (ASCII, UNICODE), donc des

alphabets, donc des mots, des livres, etc. ;

Un ordinateur est une machine qui excute des programmes qui rsolvent un problme. un trs bas niveau, le processeur transforme des 0 et des 1 en dautres 0 et dautres 1. Leur interprtation se fait suivant des conventions prcises (1011000 = X).
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 9/58

des images (photos, lms ; en couleurs ; en 2D, en 3D),

des sons, etc.

grande force de linformatique : linformation est unie.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

10/58

Le modle de base du calcul

Quest-ce quun calcul ?


Modle de base : squentiel les instructions sont excutes lune aprs lautre), calculs internes sur des entiers: 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000

John von Neumann 1903 1957

une carte PC

Algorithmes: dterministes (311/421) ou non (431/programmes dapprofondissement anne 3) ; probabilistes/randomiss. Autres modles : vectoriels, parallles (SIMD, MIMD), distribus. Modles du futur : quantique, biologique, etc.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

11/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

12/58

La machine la plus rapide du moment


On mesure la puissance dun ordinateur par le nombre dinstructions quil peut excuter par seconde (Mips, op/s). Cf. la page des top 500. Nov 2011: K Computer (Fujitsu; K = Kei = 1016 ) install au RIKEN Advanced Institute for Computational Science (AICS) Kobe, Japon
10.51 Petaop/s
systme linaire dense. sur le benchmark LINPACK factorisation LU avec pivot partiel dun

La loi de Moore

705,024 curs SPARC64; mmoire: 1,410,048 GB; Linux;

consommation: 12.66 MW, ou 830 Mops/watt (le plus

efcace. . . !).

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

13/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

14/58

B) Le systme dexploitation
Un intermdiaire ncessaire entre le processeur et lutilisateur.

Unix
Un systme multi-utilisateurs en temps partag. Bienvenue dans un monde dans lequel les ordinateurs ne sarrtent jamais et . . . ne doivent jamais tre arrts.
mmoire, temps de calcul : plusieurs programmes

matriel noyau programmes

tournent en mme temps ; la mmoire est protge : impossible de planter lordinateur ! organisation des disques suivant une structure arborescente : /users/eleves-a/x2011/toto users eleves-a x2010 eleves-b

Le matriel passe, les programmes restent!


F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 15/58

x2011 toto

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

16/58

C) Des programmes
Quest-ce quun programme ? Cest la traduction dans un langage comprhensible pour lordinateur dun ensemble dalgorithmes qui permettent de rsoudre des problmes. Langages de programmation : Java langage assembleur langage machine a+b add A, B 1000110010100000

Historiquement : apparition dans lordre inverse. tape ultime : lordinateur qui comprend le langage humain directement. . . ou inversement?

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

17/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

18/58

Langages (1/2)

Langages (2/2)

Un langage est un moyen dexpression, il traduit un

processus de pense (un ensemble dalgorithmes). a pas de meilleur langage.

Tous les langages ont leurs qualits et des dfauts. Il ny

Alan Turing 1912 1954 Thm. Tous les langages de programmation sont quivalents (car quivalents une machine de Turing).

les algorithmes existent en dehors dun langage particulier; les langages passent, les algorithmes restent! il faut clarier ses ides pour pouvoir les exprimer dans un formalisme. Cf. morse (trs comparable au binaire des ordinateurs), radio, commande vocale, un enfant, un journaliste, un tudiant, un sous-ofcier, etc.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

19/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

20/58

Tous les programmes sont buggs


. . . moins davoir prouv quils taient corrects! bug

III. La programmation en Java


Pourquoi programmer ?
formation commune tous les informaticiens ; apprendre clarier/organiser sa pense; la meilleure faon de comprendre les algorithmes;

programmeur

programme

rsoudre des problmes toujours nouveaux (e.g.,

rseaux) ;

se faire une ide sur la faisabilit/difcult des problmes

Pour diminuer le nombre de bugs, il faut:


typer, compiler, tester, prouver.
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 21/58

(informatique exprimentale);

bien souvent lutilisation principale de linformatique dans

les autres domaines scientiques.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

22/58

Pourquoi Java ?

A) Le premier programme
nom de la classe point dentre dans la classe

relativement simple, trs rpandu, conu pour le WWW,

maintenant dans les tlphones (android) ;

quand on connat un langage, il est facile den apprendre

typ, avec des objets (object oriented), gestion mmoire ;

dautres.

Pierre Franois Xavier Bouchard (X96)

public class Bonjour{ public static void main(String[] args){ System.out.println ("Salut !"); return; } fonction dafchage } pour redonner argument de la fonction la main lappelant Mots en bleu : mots-clefs de Java public caractrise les constituants de la classes qui sont visibles de lextrieur de la classe (pour une classe, cf. plus loin) F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

23/58

24/58

Compilation, interprtation
la main : on crit le programme dans un chier Bonjour.java, puis on le compile par : unix% javac Bonjour.java et on lexcute avec : unix% java Bonjour En vrai : javac vrie la syntaxe et le typage, puis traduit le programme dans un langage intermdiaire (byte-code portable) qui est ensuite traduit pour lordinateur par java. Avec eclipse : il fait tout tout seul, sauf taper pour vous !

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

25/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

26/58

B) Constituants du (dun?) langage


commenant par une lettre, spares par des espaces, caractres de tabulation, retours la ligne ou des caractres spciaux (+, -, *, etc.). mots-clefs : class, public, static, etc.
types primitifs: entiers (int), rels (double), Identicateurs : squences de lettres et de chiffres

public class Calculs{ public static void main(String[] args){ System.out.println(2 + 2); System.out.println((13 * 2) % 5); System.out.println(2. * Math.PI * 1.5); return; } } unix% java Calculs 4 1 9.4247779607693793

caractres (char).

Oprations arithmtiques: +, -, *, /, % (modulo). Bibliothques intgres : Math.sqrt(), Math.PI,

String, etc.

Constructions classiques: if/else, while, for. Crations par lutilisateur: fonctions, objets.
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 27/58 F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 28/58

Variables
Une variable est reprsente par un identicateur, elle a un type (cest--dire quon doit savoir dans quel ensemble elle prend ses valeurs). On peut utiliser sa valeur, lui en affecter une (nouvelle). Une variable doit toujours tre dclare : int x; double u; Cela permet au compilateur de
faire du contrle de type; rserver de la place en mmoire pour le contenu de la

C) Affectation
u = e;
u est une variable et e une expression ;

les deux ont mme type ;

lexpression e est value, puis la variable u prend pour

valeur le rsultat de cette valuation : on a affect la valeur de e u.

x = -155; z = x + 3; Une variable doit avoir reu une valeur explicite, par une affectation, avant de pouvoir tre utilise dans une expression.

variable (4 caractres pour un int, 8 pour un double).


29/58 F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 30/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

D) Un peu de convivialit
On peut condenser dclaration et initialisation : int x = -155; Une instruction idiomatique : avec le mcanisme daffection, les instructions : int i = 3; i = i + 1; sont valides, car on calcule dabord i+1 et le rsultat 4 est mis dans i la place de 3. } } Chanes de caractres : pour rendre un programme plus convivial, on afche des chanes de caractres, comme "Bonjour". public class Calculs2{ public static void main(String[] args){ int n = 10, b; b = n*(n-1)/2; System.out.print("rsultat="); System.out.println(b); return;

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

31/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

32/58

Intractions avec le programme


Ex: demander un entier lutilisateur et afcher le carr de lentier lcran. public class Calculs{ public static void main(String[] args){ System.out.print("Entrer n="); int n = TC.lireInt(); System.out.print("n^2="); System.out.println(n * n); return; } } La classe TC: crite spcialement pour le Tronc Commun. Cest une classe comme System. Documentation sur les pages web du cours.
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 33/58

E) Quelques types primitifs a) les entiers


Un entier n 0 scrit en binaire sous la forme: n = bp 2p + bp1 2p1 + + b0 avec p 0, bi {0, 1}.

Ex. 29 = 1 24 + 1 23 + 1 22 + 0 21 + 1 20 = 111012 . Les entiers en Java: int (le plus courant, 32 bits), long (64 bits), short (16 bits). On choisit en fonction du problme. Oprations : +, -, *, /, % (modulo). Ex. int q = 5 / 2; int r = 5 % 2;
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 34/58

Arithmtique signe
Le type int permet de coder les entiers de [231 , 231 1] = [2147483648, 2147483647]. 2 si 0 x< 231 ,
31

x < 2 b31 b30 . . . b0

31

+=+
Mathmatiquement: si x et y sont de type int, donc lments de [231 , 231 1], alors x+y = x + y mod 232 . Donc: 2000000000+2000000000 = -294967296. Pas trs grave pour des indices de boucle, etc. En cas de besoin, utiliser des long [263 , 263 1] = [9223372036854775808, 9223372036854775807].
df

avec bi {0, 1}, et le bit b31 est interprt comme bit de signe: b31 = 0 et x = b30 230 + b29 229 + + b0 . si 231 x < 0, b31 = 1 et x + 231 = b30 230 + b29 229 + + b0 .

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

35/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

36/58

b) les ottants
Type principal: double reprsente des nombres approchs dans lintervalle 4.9E-324..1.7976931348623157E308 avec signe. Ex. 3.14 ou 31.4e-1 La classe Math:
=Math.PI, e =Math.E; ceil, floor, round; sqrt; exp, log;

Exemples

public class Ex{ public static void main(String[] args){ double x = Math.PI, y; System.out.println(Math.cos(x)); // calcul de y = x3 2.2x + 5.3 y = x*(x*x-2.2)+5.3; System.out.println("y="+y);

cos, sin, tan, acos, asin, atan;

Rem. Attention aux problmes lis la prcision xe (perte dassociativ, etc.).


F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 37/58

Rem. Nous ferons trs peu appel aux ottants dans le cours.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

38/58

c) Boolens
Df. un boolean a pour valeur true ou false. Expressions logiques: values true ou false, combinaisons doprateurs de comparaison arithmtiques: <, <=, >, >=, ==, != et doprateurs logiques: ! (ngation), && (et), || (ou). x > 8; x == 7; y != ((x == 1) && (z > 9)); Attention la diffrence entre = affectation, et == comparaison.

Tables de vrit

NOT V F !x F V

ET V V V F F x &&

F F F y

OU V V V F V x ||

F V F y

XOR V F V F V F V F x y

Rem. prolongation aux entiers, en oprant bit bit: 11&10 = 10, 01|00 = 01

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

39/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

40/58

Rgles dvaluation

F) Instructions conditionnelles

Soient c1 et c2 deux expressions boolennes, dans linstruction boolean b = (c1 || c2); Java value c1; si c1 est vraie, c2 nest pas value (valuation paresseuse) et b vaut true. De mme, dans: boolean b = (c1 && c2); si c1 est faux, c2 nest pas value, et b vaut false.

But: faire prendre des dcisions simples par lordinateur. public class Ifelse{ public static void main(String[] args){ int devinette = 3, n = 4; condition boolenne if(n == devinette){ System.out.println("Gagn"); bloc } dinstructions else{ System.out.println("Perdu"); } return; } }

Rem. le bloc else est optionnel; on peut se passer daccolades quand il ny a quune instruction dans le bloc.
41/58 F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 42/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

Comment a marche dans le processeur ?

G) Itrations
Les lignes while(E) I

But: crire de manire gnrique des calculs rptitifs.

011 012 013 020 011 012 013 020

si n == 3 aller la ligne 20 suite des instructions si n == 3 aller la ligne 20 suite des instructions

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

43/58

rptent linstruction I tant que E est vraie. public class Devinette{ public static void main(String[] args){ int devinette = 3, n = 0; while(n != devinette){ n = TC.lireInt(); if(n == devinette){ System.out.println("Gagn"); } else{ System.out.println("Perdu"); } } return; } } cole polytechnique Introduction lInformatique (INF 311) Promo X2011 F. Morain

44/58

H) Fonctions
Pourquoi des fonctions ? abstraire, clarier, cest la premire tape de la modularit ; rutiliser ; cest un exemple de communication de donnes. Exemple : public class Calculs{ public static int carre(int n){ return n * n; } public static void main(String[] args){ System.out.print("Entrer n="); int n = TC.lireInt(); System.out.print("n^2="); System.out.println(carre(n)); return; } } F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

Syntaxe
public static <type_de_retour> <nom>(<paramtres>) { [dclaration de variables] [suite dinstructions] return <rsultat>; }
type_de_retour : une fonction calcule un rsultat et le

retourne la fonction qui la appele; ce rsultat a ncessairement un type (int, etc.). avec lesquels elle peut travailler.

paramtres : les arguments passs la fonction et

45/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

46/58

Le type spcial void


Si la fonction ne retourne pas de valeur, elle a un type de retour spcial void. Cest le cas dune fonction qui ne fait que de lafchage. Cest aussi le cas de la fonction main: public static void main(String[] args){ ... return; } Rem. Dans ce cas uniquement, le return est optionnel, mais il permet de bien voir o nit lexcution du programme.

Visibilit des variables


public static int f(int r){ int n = 3; bloc mmoire de f return (r+n); } public static void main(String[] args){ int n = 10, m; m = f(n); System.out.println(n); } bloc mmoire de main Quest-ce qui est afch? 10. Rgle: la variable n de f est locale f. Elle na rien voir avec la variable n de main (ce sont deux emplacements mmoire diffrents).

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

47/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

48/58

IV. Organisation du cours


Autre exemple: public static void f(int n){ n = n+1; return; } public static void main(String[] args){ int n = 10; f(n); System.out.println(n); } Quafche-t-il en sortie ? 10. Rgle: une fonction ne peut pas changer la valeur dune variable dun type primitif extrieure elle-mme. On dit que les arguments sont passs par valeur (cest--dire recopie).
10 blocs : 1 bloc = 1 amphi de 1h30 suivi de TP de 2h le

jour mme ou le lendemain ; complter par deux heures de travail personnel.

Tutorat: encadrement disponible pour les 2h de travail

perso pour aider rgler les bloquages ventuels (premier tutorat le lundi 14 mai).

Tout est sur le web: poly, exercices, etc. Matriel : stations de travail PC sous GNU/Linux (kde).

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

49/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

50/58

Notation

Et vous dans tout a ?


Chaque lve a un compte pour
travailler pour linformatique et les autres matires, depuis

composition sur machines: bloc 6 (11/12 juin pendant les

les salles info ou sa chambre (serveur de chiers redondants, etc.) ; daccs spcial, li R ENATER on est sage !

TD);

composition

papier.

Hors Classement le jeudi 12 juillet sur

le web, le courrier lectronique. LX est un fournisseur

Mot de passe :
le mme identiant/mot de passe (ldap) permet dutiliser

Note nale: 1/3 pale machine + 2/3 pale papier (sur 18 points) + 2 points de note de participation aux TDs.

tous les services de lcole (web, enex, etc.).

ne pas oublier la feuille pour aller en TP.

Ne jamais oublier ses mots de passe ou les donner

quelquun.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

51/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

52/58

propos du courrier lectronique


Traitement par dfaut dun message : From: ww@zz To: xx.yy@polytechnique.edu poly bote lettres de xx.yy ventuellement : redirection (avec ou sans copie locale) Interdit : boucles dans les redirections Pour plus dinformations, cf. http://www.enseignement. polytechnique.fr/profs/informatique/Philippe. Chassignet/INIT/courrier.html
F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011 53/58

Les participants au cours


1 - 10 2 - 11 3 - 12 4 - 13 5 - 14 6 - 15 7 - 16 8 - 17 9

Lquipe enseignante: 1 responsable + 1 adjoint par groupe. Ben SMITH+Alexis BERNADET Luca CASTELLI ALEARDI+Mikael RABIE Philippe CHASSIGNET+Claire LUCAS Stphane REDON+Yi JIAZI Maks OVSJANIKOV+Bogdan TOMCHUK ric FUSY+Christina BOURA David SAVOUREY+Assale ADJ Dominique POULALHON+Andrey IVANOV Stphane REDON+Olivier BOUISSOU

X
xx.yy@mymail.com

Dlgu(e)s : Un dlgu(e) pour chaque groupe avec parit; un dlgu et une dlgue pour le niveau lu(e)s parmi ceux-ci. Pour quoi faire? Faire remonter les problmes; sondage; runions de dpartement; djeuner de temps en temps. Je veux les noms la semaine prochaine . . . F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

54/58

V. Derniers mots

Prochains rendez-vous

TD 1 (avec vos mots de passe !) : Ordinateur, etc. Rsum de lintroduction Java :


identicateurs, variables ; premiers programmes. types primitifs : int, double, boolean ;

Groupes 16 1015 79 16, 17

aujourdhui 13h3015h30 15h4517h45

aprs-demain

13h3015h30 15h4517h45

Venez un peu plus tt si possible, a permet dtaler vos arrives et les problmes ventuels ; donc ds que vous pouvez: 13h13h15 laprs-midi. Prochain amphi: jeudi 10 mai 8h30 (Poincar).

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

55/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

56/58

O sont les salles info ?

Au rdc, ct du couloir des langues. Pour y aller : passer ct de la scola, prendre le couloir daccs aux laboratoires ; descendre le premier escalier sur votre gauche ; arriv(e) en bas, passer dessous, cest la premire porte droite aprs les portes vitres ; elle souvre avec le badge ; les noms des lves sont afchs sur les portes des salles.

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

57/58

F. Morain cole polytechnique Introduction lInformatique (INF 311) Promo X2011

58/58

You might also like