Pourquoi faire de l informatique?

Documents pareils
length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

TP 1. Prise en main du langage Python

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Recherche dans un tableau

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Présentation du langage et premières fonctions

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Cours de Programmation 2


Algorithmique et Programmation, IMA

Classes et Objets en Ocaml.

Programme Compte bancaire (code)

Représentation d un entier en base b

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Introduction à l algorithmique et à la programmation M1102 CM n 3

Cours 7 : Utilisation de modules sous python

Algorithmique et programmation : les bases (VBA) Corrigé

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

STAGE IREM 0- Premiers pas en Python

Initiation à la programmation en Python

I. Introduction aux fonctions : les fonctions standards

Glossaire des nombres

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Informatique Générale

Rappels Entrées -Sorties

Conventions d écriture et outils de mise au point

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours d algorithmique pour la classe de 2nde

Algorithmique & programmation

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

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

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Cours 1 : La compilation

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Programmation en Caml pour Débutants

TP3 : Manipulation et implantation de systèmes de fichiers 1

Bases de programmation. Cours 5. Structurer les données

Maple: premiers calculs et premières applications

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

Application 1- VBA : Test de comportements d'investissements

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Découverte de Python

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Introduction au langage C

Chapitre 10. Les interfaces Comparable et Comparator 1

Table des matières. Introduction

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Objets et Programmation. origine des langages orientés-objet

Théorie de la Programmation

Principes des langages de programmation INF 321. Eric Goubault

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Premiers Pas en Programmation Objet : les Classes et les Objets

ALGORITHMIQUE ET PROGRAMMATION En C

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

Compilation (INF 564)

Examen Médian - 1 heure 30

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

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

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Cours Informatique Master STEP

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Peut-on tout programmer?

Plan du cours. Historique du langage Nouveautés de Java 7

Logiciel de Base. I. Représentation des nombres

TRIGONOMETRIE Algorithme : mesure principale

V- Manipulations de nombres en binaire

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Claude Delannoy. 3 e édition C++

Dérivation : Résumé de cours et méthodes

Traduction des Langages : Le Compilateur Micro Java

Logiciel Libre Cours 2 Fondements: Programmation

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Chapitre 2. Eléments pour comprendre un énoncé

OCL - Object Constraint Language

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

Découverte du tableur CellSheet

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Chapitre VI- La validation de la composition.

Système binaire. Algèbre booléenne

Programmation assembleur : aperçu

TP1 : Initiation à Java et Eclipse

Transcription:

Pourquoi faire de l informatique? Science : discipline scientifique à part entière champ d étude, méthode, principes, objets étudiés Technique : outil scientifique dans toutes les disciplines simulation, recueil et analyse de données, modèles Métiers : cursus professionalisants Pédagogie : vision nouvelle de concepts récurrents dans les sciences fonction, ensemble, modèle, calcul, etc.

Cours sur deux ans MIAS 1 : notions de base Que contient un langage de programmation? Que permet-il de faire? MIAS 2 : notion de langage Comment est fabriqué un langage de programmation? 12 cycles : Cours, ED, ED-machine Structure : cadre : notion, notation, typage, évaluation exemples concrets mise en application systématique sur machine

Chaque année : examen écrit (3/4) exament de TP (1/4, pondéré par contrôle continu) La note de MIAS 1 est intégrée au calcul pour la validation de modules par compensation La note de module tient compte de la note de MIAS 2 et de MIAS 1

Utilisez le matériel et le logiciel Libre-service Documentation électronique Discutez avec vos enseignants Soyez actifs Nous faisons des erreurs, repérez-les Participez aux ED et TP Expérimentez Ne croyez que ce que dit la machine Analysez tout ce que dit la machine, surtout lorsque c est inattendu!

Définition 1 : description symbolique d une relation fonctionnelle entre deux ensembles (l ensemble des données et l ensemble des résultats)» un programme est l expression d un modèle» analogue à une équation physique (mais qui serait orientée) Définition 2 : mécanisme qui calcule la valeur du résultat à partir de la valuation des données» un programme est la résolution d un modèle» analogue à l application numérique en physique

Que peut-on faire avec un programme? le construire» algorithmique, génie logiciel le valider» s assurer qu il est correct le transformer» pour le rendre plus efficace» pour le rendre exécutable l exécuter» quelquefois...

valeur : objet informatique qui ne peut plus être transformé par le mécanisme de calcul courant. Définition relative, en particulier à la notion de calcul calcul : application automatique de règles de transformation qui produisent une valeur finale (le résultat) à partir des données (valeurs initiales) réduction de * réduction de + 2*3 + 4 6 + 4 10 valeur finale Calcul

Nom : symbole, défini par le programmeur, qui dénote une valeur. Pi, vitesse, g, f, position_du_mobile, v90 sont des noms Pi-deux, vitesse du mobile, 14v ne sont pas des noms. Les noms permettent d écrire des expressions lisibles x = 1/2 * g * t * t + v0 * t 2 * Pi * rayon

Liaison : association entre un nom et une valeur Notation Caml let nom = valeur ;; let nom1 = valeur1 and nom2 = valeur2 ;; Règle des noms Un nom doit être lié avant d être utilisé let a = b * 2;; incorrect let b = 4;; let a = b * 2;; correct

Un seul mécanisme en Caml : la réécriture Tout ce qui est remplaçable est remplacé par sa valeur Les remplacements s arrêtent lorsque plus rien ne peut être remplacé (on obtient le résultat) Chaque construction Caml possède sa règle d évaluation qui explique comment s effectue la réécriture Nom : _ + _ : let n = v : remplacement par la valeur liée évaluation des arguments si les deux sont des valeurs, remplacement par la somme évaluation de partie droite liaison avec le nom L évaluation commence lorsque le symbole ;; est rencontré.

Type = Un ensemble de valeurs Un ensemble d opérations sur les valeurs Une expression de type Exemples : type des nombres entiers valeurs: -1, 0, 1,... opérateurs : +, -, *, / <, <=, >, >=, = expression int type des nombres décimaux valeurs: -1.0, 0.0, 0.1,... opérateurs : +., -., *., /. <., <=., >., >=., = expression : float type des valeurs logiques valeurs: true, false opérateurs : &, or, not, = expression : bool

CAML : langage fortement typé toute expression possède un type type d un nom : type de la valeur qui lui est liée permet le contrôle des programmes» assure qu on n additionne jamais des chèvres avec des choux!» un programme incorrectement typé est un programme faux!» mais l inverse n est pas vrai : un programme correctement typé a de bonnes chances d être correct Avant toute évaluation, CAML s assure que le typage est correct

Inférence de type : Ensemble des règles permettant de calculer le type d une expression Mécanisme qui porte sur le texte des programmes et expressions raisonnement sur les programmes aide à la programmation (et à la conception d algorithmes) Assistance tout résultat Caml s affiche comme un type et une valeur un type inattendu = très probablement une erreur!

Concept les nombres entiers relatifs, limités en taille Notation Notation usuelle pour les nombres et les opérations le type est noté int Typage Une expression de la forme a + b est de type int si a et b sont de type int Une expression de la forme a = b est de type bool si a et b sont de type int Evaluation Règles de calcul usuelles pour les opérations usuelles

Concept les nombres décimaux, limités en taille Notation Notation usuelle pour les nombres, les opérations ont un point le type est noté float Typage a +. b est de type float si a et b sont de type float a >. b est de type bool si a et b sont de type float sqrt a est de type float si a est de type float Evaluation Règles de calcul usuelles pour les opérations usuelles

Concept valeurs logiques Notation valeur : true et false type : bool opérations : et ou non Typage similaire aux types numériques Evaluation règles usuelles (tables de vérité) & or not

Concept expression de calculs dépendants de conditions Notation if <expression_booléenne> Typage then <expression 1> else <expression 2> l expression est bien typée si l expression derrière if est de type bool, et les expressions derrière then et else sont de même type. le type de l expression est celui des expressions suivant then et else

Evaluation (if b then v1 else v2) = v1 si b est évalué à (if b then v1 else v2) = v2 Exemples symbole de Kroneker : (if i = j then 1 else 0) valeur absolue (if a > 0 then a else -a) + 2 true false

Caml offre une notation très proche des mathématiques f : D R x expression (x) carre : ℵ ℵ x x 2 carre(3) carre(2+2) let f = function x -> expr (x);; let carre = function x -> x * x;; carre 3;; carre (2+2);; La théorie complète au prochain cours!