Introduction à la programmation¶
1. Objectif du cours¶
Découvrir les bases de la programmation : définitions, origines historiques, rôles et processus de création d'un programme. Comprendre les notions d'algorithme, de code, de compilation et la distinction entre langages bas et haut niveau.
2. Notions et définitions essentielles¶
- Programmation : art de donner des instructions à un ordinateur pour qu'il réalise des tâches spécifiques.
- Programme : ensemble d'instructions (code) accomplissant une tâche précise, comparable à une recette.
- Programmeur : personne qui transforme une idée en une séquence d'instructions compréhensibles par la machine.
- Algorithme : suite d'instructions logiques pour résoudre un problème, indépendante du langage.
- Code : traduction d'un algorithme dans un langage de programmation concret.
- Compilateur : logiciel qui vérifie la syntaxe du code source et le transforme en code machine exécutable.
- Langage machine (binaire) : seul langage directement compréhensible par l'ordinateur (0 et 1).
3. Fonctionnement et principes¶
- Processus de création : comprendre le problème → planification/algorithme → écriture du code source → tests → débogage et correction → compilation en exécutable.
- Rôle du compilateur : contrôle syntaxique, traduction du code source en langage machine et optimisation pour produire un fichier exécutable.
- Rôle du processeur : exécuter les instructions du programme (après compilation) en traitant les données et produisant les résultats.
- Distinction algorithme / code : l'algorithme définit la logique et l'ordre des opérations ; le code implémente cette logique dans une syntaxe donnée.
- Niveaux de programmation :
- Bas niveau (langage machine, assembleur) : proche du matériel, offre un contrôle précis mais est plus complexe.
- Haut niveau (ex. Java, Python, C# cités dans le document) : abstrait, plus lisible et productif pour le développeur.
- Erreurs et tests : les erreurs proviennent généralement du code (erreur humaine) ; il faut tester, lire les messages et corriger (la machine est « toujours » dans son droit).
4. Commandes et manipulations¶
Non abordé dans ce cours.
5. Sécurité et bonnes pratiques¶
- Lisibilité : indentation et gestion des espaces pour structurer le code.
- Documentation et commentaires : expliquer le fonctionnement et faciliter la maintenance.
- Nommage : utiliser des noms de variables significatifs.
- Découpage : diviser le code en fonctions logiques et réutilisables.
- Éviter la duplication : centraliser les valeurs récurrentes (constantes) pour faciliter les mises à jour.
- Conventions de codage : respecter un style commun pour garantir la cohérence.
- Réutilisation : utiliser bibliothèques/modules existants pour ne pas réinventer.
- Attitude face aux erreurs : analyser, comprendre et corriger sans présumer de la faute de la machine.
6. Points essentiels à retenir pour le TSSR¶
- La programmation consiste à écrire des instructions (code) pour que l'ordinateur effectue des tâches.
- Un algorithme est le plan ; le code en est l'implémentation.
- Le compilateur traduit le code source en exécutable et signale les erreurs de syntaxe.
- Les langages bas niveau sont proches du matériel ; les langages haut niveau privilégient l'abstraction et la productivité.
- Le processeur exécute les instructions une à une une fois le code traduit en langage machine.
- Les premières machines (ex. Baby / Manchester Mark 1) ont introduit le concept de programme enregistré.
- La création d'un programme suit une séquence logique : compréhension → planification → codage → tests → debug → compilation.
- Les erreurs de code proviennent majoritairement d'erreurs humaines ; le test et le débogage sont essentiels.
- La lisibilité et l'organisation du code (indentation, commentaires, fonctions) facilitent la maintenance.
- Réutiliser des bibliothèques et suivre des conventions réduit les risques et accélère le développement.
7. Tableau récapitulatif¶
| Élément | Caractéristique principale | Avantage | Inconvénient |
|---|---|---|---|
| Langage machine | Binaire (0/1) | Exécution directe par le processeur | Très difficile à écrire/maintenir |
| Assembleur | Mnémoniques liés au matériel | Plus lisible que le binaire | Dépendant de l'architecture |
| Langages haut niveau | Abstraction et syntaxe lisible | Productivité et lisibilité | Moins de contrôle matériel direct |
| Algorithme vs Code | Logique vs Implémentation | Indépendance du langage | Le code doit respecter la syntaxe |
| Compilateur | Traduction + vérification | Produit exécutable optimisé | Rapporte erreurs à corriger |
8. Vérifications pratiques¶
- Compilation : le compilateur signale les erreurs de syntaxe ; absence d'erreurs permet la génération d'un exécutable.
- Exécution : lancer l'exécutable et vérifier que la sortie attendue (ex. message d'accueil, somme affichée) correspond au résultat prévu.
- Tests fonctionnels : exécuter cas de test pour valider les étapes de l'algorithme (comme l'exemple du sandwich ou de l'addition).
- Itération : après correction, re-tester pour confirmer la disparition des erreurs signalées précédemment.
9. Flashcards Anki¶
Qu'est-ce que la programmation ? :: L'art de donner des instructions à un ordinateur pour qu'il réalise des tâches spécifiques.
Qu'est-ce qu'un programme ? :: Un ensemble d'instructions qui accomplit une tâche spécifique, comparable à une recette.
Quel est le rôle du programmeur ? :: Transformer une idée en une séquence d'instructions compréhensibles par l'ordinateur.
Qu'est-ce qu'un algorithme ? :: Une séquence d'instructions logiques pour résoudre un problème ou accomplir une tâche.
Quelle est la différence entre algorithme et code ? :: L'algorithme décrit la logique ; le code est sa traduction dans un langage de programmation.
Quel est le rôle du compilateur ? :: Vérifier la syntaxe du code source et le transformer en code machine exécutable.
Quel langage un ordinateur comprend-il directement ? :: Le langage binaire aussi appelé langage machine (0 et 1).
Quelle particularité a l'ordinateur Baby (Manchester Mark 1) ? :: C'est le premier ordinateur à programme enregistré.
Quelles sont les étapes clés de la programmation dans l'ordre ? :: Comprendre le problème > planification > codage > tests > déboguer et corriger > compilation.
Pourquoi la programmation de haut niveau est-elle souvent préférée ? :: Parce qu'elle offre plus d'abstraction, de lisibilité et de productivité pour le programmeur.