Bases de la programmation été 2016/17

Documents pareils
Évaluation et implémentation des langages

Éléments de programmation et introduction à Java

Préparation à l examen EFA en Macro

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre 1 Qu est-ce qu une expression régulière?

Cours d Algorithmique et de Langage C v 3.0

Cours 1 : La compilation

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

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

M Études et développement informatique

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

M Études et développement informatique

Cours d algorithmique pour la classe de 2nde

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

Rappels sur les suites - Algorithme


Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

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

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

Éléments d'architecture des ordinateurs

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

Machines virtuelles Cours 1 : Introduction

CAHIER DE S CHARGE S Remote Workload Manager

Visual Paradigm Contraintes inter-associations

Programmation Web. Madalina Croitoru IUT Montpellier

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Introduction aux Bases de Données Relationnelles Conclusion - 1

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

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

Organigramme / Algorigramme Dossier élève 1 SI

Enseignement secondaire technique

C U R R I C U L U M V I T A E

Ingénieur Développement Nouvelles Technologies

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

Informatique Générale

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

Cours 1 : Qu est-ce que la programmation?

S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Les Langages Informatiques

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Programmation linéaire

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

STAGE IREM 0- Premiers pas en Python

L informatique en BCPST

Processus d Informatisation

DIRECTEUR / CHEF DE PROJETS / CONSULTANT. «Project Management Institute PMP»

Dispositif sur budget fédéral

MABioVis. Bio-informatique et la

Optimisation de logiciels de modélisation sur centre de calcul

Environnements de développement (intégrés)

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithme. Table des matières

Outils pour les réseaux de neurones et contenu du CD-Rom

Le génie logiciel. maintenance de logiciels.

Introduction à la modélisation

DIF VAE Technicien Supérieur de Support en Informatique

Introduction à NetCDF

Mise en œuvre des serveurs d application

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

Compression Compression par dictionnaires

Logiciel Libre Cours 2 Fondements: Programmation

EXAMENS EN VUE DU RECRUTEMENT ET DE LA CONSTITUTION DE RÉSERVES DE RECRUTEMENT DE SYSTEM ADMINISTRATORS APPLICATION DEVELOPERS

Entraînement au concours ACM-ICPC

Calculabilité Cours 3 : Problèmes non-calculables.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Learning Object Metadata

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

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

Notions fondamentales du langage C# Version 1.0

Architectures web/bases de données

Informatique Machines à calculer en théorie et en pratique

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

L objectif de ce cycle est de former des techniciens supérieurs spécialisés dans l administration et la gestion de bases de données et des réseaux.

ALGORITHMIQUE ET PROGRAMMATION En C

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

PLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Initiation à l algorithmique

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Algorithmique avec Algobox

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

Hébergement de site web Damien Nouvel

Utilisez Toucan portable pour vos sauvegardes

CESI Bases de données

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

CA Mainframe Application Tuner r8.5

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Mercredi 15 Janvier 2014

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Langues : Anglais Allemand (notions scolaires)

Simulation de Réseaux Ferroviaires

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

INFORMATIQUE SYSTÈMES D EXPLOITATION TRAITEMENTS DE TEXTE LES BASES DE WINDOWS (COURS MODULE 2 ECDL)

Transcription:

Bases de la programmation été 2016/17 Dr Łukasz Starzak, MSc(Eng) PhD Lodz University of Technology Faculty of Electrical, Electronic, Computer and Control Engineering Department of Microelectronics and Computer Science ul. Wólczańska 221/223, bât. B18, bureau 51 htp://neo.dmcs.p.lodz.pl/~starzak [pl, en] htp://neo.dmcs.p.lodz.pl/bdp [fr]

Pourquoi programmer? Objectif du cours L ordinateur peux fournir la solution : dans un temps plus court avec plus de précision et vraisemblance avec moins d engagement de la part de l humain L ordinateur est particulièrement utile en génie économique et gestion de même qu en génie ingénieur Mais il faut savoir comment : inventer ce que doit être fait et dans quel ordre décrire les actions de façon compréhensible pour l ordinateur assurer que le résultat soit juste trouver et éliminer des erreurs améliorer son programme coopérer avec d autres codeurs et utilisateurs Programmation est une matière à apprendre Łukasz Starzak, Bases de la programmation, été 2016/17 2

Plan du cours magistral 1. Notions de base de la programmation et de l algorithmique 2. Éléments d un langage de programmation ; introduction au langage Matlab et à l environnement Octave a) Données et leurs types b) Afectation et opérateurs arithmétiques c) Obtention et afichage de données 3. Fonctions et portée de variables 4. Structures de contrôle a) Algorithmes simples du traitement de données b) Opérateurs de relation et logiques c) Alternatives et boucles d) Instructions de terminaison 5. Représentation et stockage de données 6. Problèmes avancés de l algorithmique et de la programmation 7. Erreurs d exécution et de programmation Łukasz Starzak, Bases de la programmation, été 2016/17 3

Plan des travaux pratiques 1 re partie : Programmation en bureautique Enseignant : Dr. Małgorzata Napieralska Durée : 15h = 5 semaines Langage : HTML développement de pages web Langage : Visual Basic automatisation des outils bureautique 2e partie : Algorithmique en commerce Enseignant : Dr. Łukasz Starzak Durée : 25h = 8⅓ semaines (2h dans les semaines 13 et 14) Langage : Matlab calcul numérique Travail personnel en plus des classes sera nécessaire c est prévu dans le programme du cours c est normal pour tous les cours en génie informatique Où travailler? on peut accéder aux laboratoires du Département on va utiliser des environnements gratuits (à l exception de Microsof Ofice) qui peuvent alors être installés sur vos ordinateurs personnels Łukasz Starzak, Bases de la programmation, été 2016/17 4

Évaluation Cours magistral interrogation écrite lors du dernier cours ou plus tard selon la décision du groupe plus tard est conseillé afin d avoir la possibilité de pratiquer tous les sujets, ce qui permetra de les comprendre mieux voir la page web pour des repères (lorsque la date est fixée) 2 interrogations de ratrapage Travaux pratiques bureautique les règles seront communiquées par Dr. Napieralska en TP Travaux pratiques algorithmique travail pendant les cours montrez les résultats, sinon ils ne seront pas évalués compte-rendu après que chaque énoncé est accompli voir la page web pour des directives Note finale 0,5 CM + 0,5 (15/40 TP bur + 25/40 TP alg ) Łukasz Starzak, Bases de la programmation, été 2016/17 5

Présence aux cours Travaux pratiques présence obligatoire 1 absence sans excuse tolérable Conférence Mais présence n est pas obligatoire présence n afecte pas votre note (directement) je ne vais pas répéter en TP ce que j aurai présenté et expliqué en conférence (ça ne veut pas dire qu on ne peut pas me demander d aide) ne pas venir en CM, c est déclarer qu on sait déjà ou bien librement choisir de ne pas savoir alors je ne vais rien expliquer aux personnes absentes à la conférence c est pourquoi : la présence en CM est fortement conseillée on fera la liste il faut demander si on ne comprend pas Łukasz Starzak, Bases de la programmation, été 2016/17 6

1. Notions de base de la programmation et de l algorithmique Programmation Langages de programmation Cycle de vie Łukasz Starzak, Bases de la programmation, été 2016/17 7

Processus de la programmation Problème Programmation Programme Un problème est une question à résoudre par une solution informatique Une instance du problème est une entrée nécessaire pour calculer une solution du problème Un programme est une description d actions qu un ordinateur doit efectuer pour résoudre un problème donné un ensemble d actions un ordre d exécution données [d entrée] (entrées) résultats (sorties) est le processus de développement (création) de programmes Łukasz Starzak, Bases de la programmation, été 2016/17 8

Programmation : exemple Problème Trouver la température de l air à une altitude donnée. Formule empirique valable dans la troposphère t(h) = t(0) 6,4 C/km h Instance du problème Trouver la température à l altitude de 1 km si elle est de 20 près de la surface. Programme (strictement : algorithme) 1. Obtenir les données d entrée t 0 et h 2. Multiplier h et 6,4 3. Mémoriser le résultat 4. Soustraire le résultat précédent du t 0 5. Renvoyer le résultat t h Dans la plupart des cas, c est une réponse au problème et non pas à son instance! Le degré de généralisation sera diférent selon le cas Łukasz Starzak, Bases de la programmation, été 2016/17 9

Principes méthodologiques 1. Abstraire Retarder le plus longtemps possible le développement du code destiné à l ordinateur 2. Décomposer Diviser le problème en parties plus facilement abordables 3. Combiner Assembler les solutions partielles pour obtenir la solution globale Łukasz Starzak, Bases de la programmation, été 2016/17 10

Spécification d un problème Un énoncé est un texte définissant sans ambiguïté : l entrée (données d entrée) la sortie (résultats) relations entre les données et les résultats Problèmes mal posés Rechercher la position de l élément le plus petit d une suite. Si l entrée est { 2, 3, 1, 4, 1, 9 }, le résultat c est? Complément nécessaire : quel doit être le résultat s il y a plusieurs éléments égaux au minimum de la suite Il peut y avoir une solution univoque Sinon il faut demander à l utilisateur du programme première position? dernière position? un ensemble de toutes les postions? erreur? Łukasz Starzak, Bases de la programmation, été 2016/17 11

Précision sur la notion du programme : algorithme Problème Spécification Énoncé Résolution Algorithme Codification Programme Un algorithme est une description d un processus de résolution d un problème défini Un algorithme est une succession d actions qui, agissant sur un ensemble de données (entrée) fourniront la solution (sortie) à un problème défini Un programme est alors un algorithme destiné à l ordinateur, écrit dans un langage de programmation La codification est le processus de conversion de l algorithme en code («texte» écrit dans un langage de programmation) Le programmeur ne doit pas laisser l objectif final (le code) l aveugler Łukasz Starzak, Bases de la programmation, été 2016/17 12

Pseudo-code Langage le plus proche possible du langage humain, néanmoins : simplifié on n observe pas toutes les règles de grammaire formalisé pas de synonymes, interdit de changer de l ordre de mots Sert à décrire des algorithmes, non pas des programmes Peut être traduit en langage de programmation quelconque Certains symboles pourront avoir une signification diférente en pseudo-code et dans le langage utilisé Symboles généralement reconnus : + * / = < > etc. Symbole de l afectation : on écrit : a 2 on lit : afecter la variable a avec la valeur 2 ça veut dire : faire que la valeur de la variable a soit 2 Caractères à signification définie : [ ] élément d un tableau (matrice, vecteur, chaîne de caractères ) ( ) arguments d une fonction, procédure. composant (champ, méthode ) d un objet, enregistrement Łukasz Starzak, Bases de la programmation, été 2016/17 13

Langages de programmation Bas-niveau 1 ėre génération codes machine 2 e génération assembleurs spécifiques pour chaque processeur directement compréhensibles (codes machine) ou litéralement traduisibles (assembleurs) pour le processeur alors directement exécutables par le processeur très dificiles (plus faciles les 2G) à comprendre par l humain aujourd hui rarement utilisés en génie informatique (plutôt en électronique) mais toujours utilisés par les processeurs eux-mêmes Haut-niveau plus proches du langage humain et du pseudo-code alors plus abordables pour l humain incompréhensibles pour les processeurs ne dépendent pas du processeur il existe des traducteurs capables d en produire un code machine 3 e génération :::: plus formels et exigeants mais eficaces exécution plus rapide et fiable 4 e génération :::: faciles et abordables même pour des nonprofessionnels programmation plus rapide Łukasz Starzak, Bases de la programmation, été 2016/17 14

Généalogie simplifiée des langages haut-niveau 3G Fortran 1954 Cobol 1959 Algol 1958 Lisp 1958 ISWIM 1966 Tcl/Tk 1988 Basic 1964 PL/I 1964 Pascal 1970 C 1971 Simula 1964 Scheme 1975 ML 1973 Visual Basic 1991 Delphi 1995 Ada 1979 Modula 1975 Matlab 1984 Perl 1987 C++ 1983 SmallTalk 1971 Haskell 1987 VB.NET 2001 Python 1991 PHP 1995 JavaScript 1995 OCaml 1996 Il n existe pas un langage universel Basé sur : Éric Lévénez, 2013 http://www.levenez.com/lang/ Java 1995 Fortran : calcul numérique (mathématiques, contrôle) Visual Basic : programmes simples «macros» p. ex. en bureautique C, Python : programmes simples, fonctions de base, les systèmes Linux, MacOS C++ : projets complexes, le système Windows C#, Java : programmes modérément complexes avec interfaces graphiques PHP, Java, JavaScript : programmation réseaux (internet, sites web ) Matlab : créé strictement pour ce logiciel donc calcul numérique (4G) C# 2000 Ruby 1993 Łukasz Starzak, Bases de la programmation, été 2016/17 15

Popularité des diférents langages haut-niveau Source : R. King, IEEE Spectrum, 2011 http://spectrum.ieee.org/at-work/ tech-careers/the-top-10-programming-languages Łukasz Starzak, Bases de la programmation, été 2016/17 16