1 Nouveau programme informatique 2 Historique 3 Donnes

  • Slides: 20
Download presentation
1. Nouveau programme informatique. 2. Historique. 3. Données & Information. 4. Primitives de l’algorithmique.

1. Nouveau programme informatique. 2. Historique. 3. Données & Information. 4. Primitives de l’algorithmique. 5. Les méthodes d’analyse. 6. Structures de données. 7. Langages. 8. Compilateurs. 1

Nouveau programme informatique Objectifs : - Présenter les principes de l’algorithmique et de la

Nouveau programme informatique Objectifs : - Présenter les principes de l’algorithmique et de la programmation. - Analyse et rédaction de programmes clairs, courts et précis. La 1ère partie du programme est consacrée aux primitives de l’algorithmique et les méthodes de programmation. Le but étant d’avoir les compétences suivantes : 1. Maîtrise de la méthode de programmation descendante. 2. Programmation modulaire. 3. Jeu de test pour validation des solutions et des documentations. 4. Maîtrise de quelques méthodes de programmation : itérative, récursive, 2 …

La 2ème partie du programme est consacrée aux structures données. L’élève doit acquérir les

La 2ème partie du programme est consacrée aux structures données. L’élève doit acquérir les compétences suivantes : 1. Représentation optimale des données afin de les traiter dans un algorithme. 2. Réalisation d’algorithmes en fonction des structures de données utilisées (influence des structures sur l’algorithme). 3. Gestion de la mémoire dynamique. 4. Utilisation des traitements des structures données dans la résolution des problèmes théoriques et réels (réservation, file d’attente, …) 3

Didactique : • Choix des données en fonction de la problématique. • Nécessité d’organisation

Didactique : • Choix des données en fonction de la problématique. • Nécessité d’organisation de données et de traitement. • Présentation et étude des différents types de structures données. • Choix de la méthode de programmation appropriée. • Les exemples et applications sont issus des matières enseignées en CPGE. • Une activité algorithmique intégrée dans les autres disciplines enseignées en termes d’applications (analyse numérique, …). • Transcription des algorithmes en langage de programmation. • Il est recommandé de mettre l’accent sur l’aspect algorithmique beaucoup plus que sur le langage de programmation lui-même. 4

Programme informatique I- Préliminaire ! : 1. Information et sa représentation sur PC (binaire,

Programme informatique I- Préliminaire ! : 1. Information et sa représentation sur PC (binaire, codage, conversion) 2. Structure d’un ordinateur : les principaux composants. 3. Principe de fonctionnement d’un ordinateur. 4. Définitions : Algorithme. Code machine. Programme. Langage de programmation. Compilateur et Compilation. 5

II- Méthodes de programmation : 1 - Les éléments de base d’un algorithme :

II- Méthodes de programmation : 1 - Les éléments de base d’un algorithme : Les données : Notion de Données, de Variables et de Constantes. Les types simples. Affectation. Les entrées / sorties standards et fonctions prédéfinis. La sélection : La sélection simple et réduite. La sélection imbriquée. Le choix multiple. Expression logique et algèbre de boole. L’itération : La boucle déterministe. La boucle indéterministe. Les boucles imbriquées. La démarche d’analyse descendante 6

Les tableaux et chaînes de caractères : Tableau à une dimension. Tableau à deux

Les tableaux et chaînes de caractères : Tableau à une dimension. Tableau à deux dimensions. Manipulation de chaînes de caractères. Programmation modulaire : Définition et paramètres de Procédure et de Fonction. Variable locale et variable globale. Passage par valeur et passage par référence. Les exemples sont issus du programme de mathématiques (arithmétique, algèbre linéaire, analyse, …) : Algorithme d’exponentiation rapide, Pivot de Gauss, Algorithme d’Euclide, Calcul matriciel, résolution d’équations numériques, calcul polynômial, . . . Des algorithmes de Tri et de recherche : Recherche séquentielle, Tri simple 7 d’un tableau, Tri par sélection, Tri par insertion, Tri à bulles, . . .

2 - Récursivité simple • Principe de la récursivité simple. • Exemples d’utilisation de

2 - Récursivité simple • Principe de la récursivité simple. • Exemples d’utilisation de la récursivité simple. • Occupation de mémoire (Pile). • Terminaison d’une fonction récursive. • Récursivité et Itération (champs d’utilisation). Exemples d’algorithmes récursifs et itératifs : Factorielle, Puissances entières, Suites récurrentes, PGCD, … 8

III- Structures de données : Définition et rôle des structures de données en programmation.

III- Structures de données : Définition et rôle des structures de données en programmation. 1 - Les enregistrements : Définition et manipulation d’enregistrement Manipulation globale et par champ. 2 - Allocation dynamique de la mémoire Notion d’adresse mémoire. Allocation et libération de mémoire. 9

3 - Les listes chaînées. Déclaration d’une liste chaînée. Création d’une liste chaînée. Fonctions

3 - Les listes chaînées. Déclaration d’une liste chaînée. Création d’une liste chaînée. Fonctions de manipulation de listes : insertion, suppression, recherche, tri, MAJ, … (utilisation de la récursivité et de l’itération). 4 - Les Piles et les Files. Définition d’une Pile / d’une File. Fonctions de manipulation d’une Pile / d’une File. Exemples : Évaluation d’expressions arithmétiques, … L’étude des structures de données (enregistrement, liste chaînée, etc. ) doit se faire à l’aide d’exemples illustratifs accompagnés de schémas. 10

La science informatique Une définition : « la science informatique est l’étude des algorithmes,

La science informatique Une définition : « la science informatique est l’étude des algorithmes, incluant: • leurs propriétés formelles et mathématiques; • leurs réalisations concrètes; • leurs descriptions dans un langage donné; et, • leurs applications. » selon cette définition … : les ordinateurs sont aux informaticiens ce que les télescopes sont aux astronomes (Dijkstra) 11

 • Fondements mathématiques et théoriques – Logique. – mathématiques discrètes. • Architecture des

• Fondements mathématiques et théoriques – Logique. – mathématiques discrètes. • Architecture des ordinateurs. • Systèmes d’exploitation. • Langages de programmation. • Réseaux informatiques. • Gestion de l’information. • Sécurité. • Systèmes intelligents. • Interaction entre ordinateurs et humains. • etc. 12

Historique Algorithme du surnom latin Algorismi du mathématicien Arabe Al Khwarizmi (780 -850), natif

Historique Algorithme du surnom latin Algorismi du mathématicien Arabe Al Khwarizmi (780 -850), natif de la région de Khwarezm (aujourd'hui Khiva), au sud de la Mer d'Aral (Ouzbékistan), mort à Bagdad. On connaît son manuscrit d'algèbre "Kitab al-Mukhtasar fi Hisab al-Jabr w'al. Muqàbala", traitant de la résolution des équations traduit en occident sous le titre "Dixit Algorismi". Autre ouvrage : "Kitab al Jami wa al Tafriq bi Hisab al Hind" (livre de l'addition et de la soustraction d'après le calcul des indiens). C'est le 1 er livre arabe connu où la numération décimale de position et les méthodes de calcul d'origine indienne font l'objet d'explications détaillées. 13

 • L’algorithmique est une science ancienne (ex: algorithme d’Euclide pour calculer le PGCD)

• L’algorithmique est une science ancienne (ex: algorithme d’Euclide pour calculer le PGCD) • • pgcd(m, n) = pgcd(m − n, n) si m > n pgcd(m, n) = pgcd(m, n − m) si m < n • La programmation est une science nouvelle [Knuth, the Art of Computer programming]). • Métier à tisser (1801) : ancêtre des cartes perforées • Développement de programmes assembleur à partir des 40’s. 14

Machine • Une machine est un objet, réel ou théorique, qui est capable de

Machine • Une machine est un objet, réel ou théorique, qui est capable de : – mémoriser un algorithme, – exécuter les opérations élémentaires qui composent cet algorithme, – enchaîner ces opérations élémentaires en respectant l’ordre imposé par l’algorithme. • Exemples de telles machines – La machine de Turing – Un PC – La machine virtuelle de Java (JVM - Java Virtual Machine) • L’algorithme est une solution conceptuelle, le programme est la solution technique mettant en œuvre l’algorithme. • Au début de l’informatique, les langages étaient proches de la machine – une solution conceptuelle était difficile à mettre en œuvre sans de bonnes connaissances techniques. 15

Architecture interne d’un ordinateur unité de contrôle unité arithmétique et logique mémoire principale carte

Architecture interne d’un ordinateur unité de contrôle unité arithmétique et logique mémoire principale carte mère unité centrale registres cache bus contrôleur carte graphique lecteur CD/DVD disque dur port USB moniteur carte réseau internet 16

Données & information Mémoire de sauvegarde Mémoire centrale (mémoire vive) Abaque romain chiffres notés

Données & information Mémoire de sauvegarde Mémoire centrale (mémoire vive) Abaque romain chiffres notés par des cailloux (calculus) Disque Dur – Identificateur : X – Type : entier – Valeur : 25 X 25 – Identificateur : Y – Type : réel – Valeur : 3, 7 Y 3, 7 RAM 17

Représenter de l’information binaire • Nombres entiers: – 8 bits donnent : • nombres

Représenter de l’information binaire • Nombres entiers: – 8 bits donnent : • nombres positifs : 0 à 255 nombres signés: -128 à +127 • Nombres réels sur 32 bits (e. g. 6. 02× 1023) • Caractères : codage (valeur numérique caractère) – ex. : code ASCII à 8 bits (256 choix) ASCII : « American Standard Code for Information Interchange » – ex. : code Unicode à 16 bits (65536 choix) Code ASCII caractère correspondant 50 ‘ 2’ 51 ‘ 3’ 18

La Fonction Mémoire Ecriture Lecture Caractéristiques Nombre de mots (Largeur du bus d’adresse) Adresse

La Fonction Mémoire Ecriture Lecture Caractéristiques Nombre de mots (Largeur du bus d’adresse) Adresse (Largeur du bus de données) MEM Donnée Taille d’un mot Adresse Temps d’accès Donnée Coût 19

Mémoire et exécution Code Données statiques Code objet du programme Valeurs constantes Piles d’appels

Mémoire et exécution Code Données statiques Code objet du programme Valeurs constantes Piles d’appels de fonctions Tas Allocation dynamique de mémoire 20