Initiation à la programmation - Université de Lille1 [LIVRE]
Résumer
Introduction
[. . .] l'informatique est la discipline qui s'applique à étudier et à dé nir des opérations, et
où l'on opère des transformations sur des combinaisons de symboles très généraux représen
tant diverses informations en de nouvelles combinaisons de symboles, elles-mêmes porteuses
d'informations.
G. Ifrah, Histoire Universelle des Chi res, coll. Bouquins, t. II, p. 725.
Ce document est le support du cours d'initiation à la programmation (InitProg) proposé au semestre 1 de la première année de licence Sciences et Technologies de l'université de Lille 1, dans les parcours MASS, MIMP, PC, PEIP et SPI.
Les étudiants peuvent poursuivre l'étude de la programmation dans les deux cours Algorithmes et Programmation Impérative 1 (API1), proposé au semestre 2 de première année dans les pro ls MASS, MIMP, PEIP et SPI; et Algorithmes et Programmation Impérative 2 (API2), proposé au semestre 3 en deuxième année de licence dans les mentions Génie civil, Génie méca, Informatique, Maths, Mécanique
et MASS.
La programmation
Un algorithme est la description d'un enchaînement de calculs et de tâches élémentaires en vue de la réalisation d'un traitement automatique de données. Ces données doivent être représentées par des structures appropriées. L'algorithme peut ensuite être codé dans un langage de programmation pour donner un programme. La programmation regroupe ces activités : algorithmique, structuration de données et codage, les deux premières étant certainement les plus importantes.
Contrairement à ce que pourrait croire un novice, la tâche principale de la conception d'un programme n'est pas l'écriture de celui-ci dans un langage informatique donné. La réalisation d'un programme se décompose en e et en plusieurs phases. De manière simplifée, on présente ainsi la genèse d'un programme :
1. établissement d'un cahier des charges : le problème posé;
2. analyse du problème et décomposition de celui-ci en sous-problèmes plus ou moins indépendants et plus simples à résoudre;
3. choix de structures de données pour représenter les objets du problème;
4. mise en ÷uvre des di érents algorithmes à utiliser pour résoudre les sous-problèmes;
5. codage des algorithmes et création du programme dans un langage de programmation
donné;
6. tests (et corrections) et validation auprès des utilisateurs.
Bien souvent, dans la pratique, ces étapes ne sont pas aussi nettement découpées. Les quatre premières sont certainement les plus importantes et on peut remarquer qu'elles sont indépendantes du langage de programmation choisi, qui n'intervient normalement qu'à la cinquième étape. La dernière étape est, elle aussi, très importante et ce serait une grave erreur de penser qu'elle ne fait pas partie du cycle de création d'un programme.
Pour un débutant en informatique, étudiant de surcroît, le cahier des charges consistera souvent en un énoncé d'exercice ou de problème proposé par un enseignant. Une première tâche, et elle est souvent plus di cile qu'on ne le croit, sera de comprendre cet énoncé! Il faudra ensuite réfléchir à la résolution de ce problème et, ensuite seulement, le coder dans un langage. On peut donc le constater, une bonne partie du travail doit se faire avec un crayon et un papier! Une erreur (méthodologique) des débutants est souvent, une fois l'énoncé lu (ou plus souvent simplement survolé), de se ruer sur leur clavier et de commencer à taper dessus (on ne sait d'ailleurs trop quoi) et seulement alors de commencer à réfléchir à la résolution du problème.
Objectif du cours
Il s'agit de poser les notions de base en programmation impérative.
- Expressions et instructions.
- Constantes et variables, affectation. Variables locales.
- Types de données simples : nombres entiers ou non entiers, booléens, caractères et chaînes de caractères.
- Expressions et instructions conditionnelles.
- Répétition conditionnelle d'instructions (boucle tant que). Répétition non conditionnelle d'instructions (boucle pour).
- Fonctions et procédures. Paramètres formels, paramètres effectifs, Dans les deux cours qui suivent (API1 et API2) sont abordées les notions
- tableaux;
- enregistrements;
- Fichiers ;
- récursivité ;
- structures de données dynamiques;
- programmation modulaire;
- algorithmes de recherche et de tri;
- complexité des algorithmes.
Le choix du langage
Il existe de très nombreux langages impératifs : C, Pascal, Ada, Python, Caml...
Pendant quelques années nous avons utilisé le langage Pascal. Mais l'expérience a montré que la lourdeur de la syntaxe de ce langage, ainsi que certaines de ses ambiguïtés, présentaient de réelles difficultés pour des étudiants débutant en programmation. Ce langage nécessitant une phase d'édition, puis une phase de compilation avant toute exécution, il devient très vite fastidieux de tester la moindre idée d'algorithme. Pour ces raisons nous avons décidé de changer de langage.
Nous nous sommes alors tournés vers Caml. Même si à la base ce langage est avant tout un langage fonctionnel, il o re aussi la possibilité de programmer dans un style impératif. Il dispose de plusieurs modes d'exécution :
- un mode interactif
- un mode compilé1 qui permet de produire des exécutables autonomes.
Resultats du Test [ Initiation à la programmation - Université de Lille1 ]
Surnom | Date Test | Points Obtenu |
---|---|---|
WILLY123456789101112 | 28/06/2024 | 47 |
GUY12345678 | 10/05/2025 | 47 |
Elie 12345 | 16/04/2025 | 27 |
Sam la terreur | 18/03/2025 | 26 |
CHRISTUS | 15/03/2024 | 18 |
FARID LE CRÉATEUR | 12/01/2025 | 18 |
Juldeb | 28/04/2025 | 18 |
Zola123 | 30/11/2024 | 13 |
Wdesrosin | 12/06/2025 | 13 |
Franck12345678910111 | 25/06/2025 | 10 |
BASHI | 19/12/2024 | 7 |
Levinas | 17/01/2025 | 7 |
Jessie1 | 03/08/2024 | 5 |
Nanou1234 | 17/04/2025 | 5 |
Empreur | 10/09/2024 | 2 |
Delama | 02/05/2025 | 2 |
Champion Non Inscrit | 18/03/2024 | 0 |
Champion Non Inscrit | 07/05/2024 | 0 |
Jeanky le Chinois | 15/05/2024 | 0 |
Liousa | 17/05/2024 | 0 |
PEM_160.154.229.211 | 17/05/2024 | 0 |
PEM_160.154.229.211 | 17/05/2024 | 0 |
Champion Non Inscrit | 17/05/2024 | 0 |
Champion Non Inscrit | 18/05/2024 | 0 |
Le réveil | 21/05/2024 | 0 |
Champion Non Inscrit | 24/05/2024 | 0 |
Champion Non Inscrit | 25/05/2024 | 0 |
Champion Non Inscrit | 25/05/2024 | 0 |
Faraday | 25/05/2024 | 0 |
Faraday | 25/05/2024 | 0 |
Champion Non Inscrit | 27/05/2024 | 0 |
Le pg | 27/05/2024 | 0 |
Champion Non Inscrit | 31/05/2024 | 0 |
Champion Non Inscrit | 03/06/2024 | 0 |
Champion Non Inscrit | 05/06/2024 | 0 |
La douce123456 | 10/06/2024 | 0 |
Champion Non Inscrit | 13/06/2024 | 0 |
Champion Non Inscrit | 15/06/2024 | 0 |
PEM_160.113.0.192 | 20/06/2024 | 0 |
Champion Non Inscrit | 22/06/2024 | 0 |
Champion Non Inscrit | 22/06/2024 | 0 |
Champion Non Inscrit | 24/06/2024 | 0 |
PEM_154.0.27.137 | 25/06/2024 | 0 |
Champion Non Inscrit | 27/06/2024 | 0 |
PEM_102.222.204.39 | 28/06/2024 | 0 |
PEM_197.214.13.148 | 29/06/2024 | 0 |
PEM_197.214.13.148 | 29/06/2024 | 0 |
Docta1234 | 29/06/2024 | 0 |
PEM_190.115.174.173 | 02/07/2024 | 0 |
Champion Non Inscrit | 11/07/2024 | 0 |

L'AUTEUR DU TUTORIEL
RUSSELL EYENGA
Niveau d'études : L2