7

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

Whatsapp 243898739759

Téléphone 243898739759

Email russelleyenga13@gmail.com