Première NSI • Fiche de révision • QCM /20

Langages et programmation

L’essentiel du chapitre à connaître, puis 20 questions pour vérifier immédiatement tes acquis.

🐍

Fiche de révision

Le chapitre complet, structuré pour réviser efficacement

Les repères essentiels

📌

Fonctions

Une fonction regroupe des instructions réutilisables. Elle peut recevoir des paramètres et renvoyer une valeur avec return. Une fonction bien conçue possède un rôle précis.

🧠

Portée et variables

Les paramètres et variables créés dans une fonction sont généralement locaux. Il faut distinguer la valeur transmise à une fonction de la variable utilisée à l’extérieur.

⚙️

Spécification

Une fonction doit être documentée : rôle, paramètres, type des données, résultat attendu et éventuellement préconditions. Les annotations de type améliorent la lisibilité sans imposer à elles seules le type à l’exécution.

🔎

Tests et erreurs

Les tests permettent de comparer le résultat obtenu au résultat attendu. Une erreur de syntaxe empêche l’interprétation correcte du programme ; une erreur logique produit un résultat incorrect.

✅

Bibliothèques

Les modules permettent de réutiliser des fonctions et objets existants. import charge un module ou rend certaines ressources disponibles.

La fiche détaillée

Toutes les notions du chapitre sont reprises ici avec les définitions, méthodes, exemples et points à retenir.

Langages et programmation

Cette fiche de révision appartient au chapitre « Langages et programmation ». Les notions suivantes sont abordées : les bonnes pratiques de programmation et les différents paradigmes de programmation .

Il n’existe pas de langage de programmation « universel ». En effet, si l’on peut, en général, tout programmer avec n’importe quel langage, certains langages seront plus adaptés à la programmation de telle ou telle tâche. Le langage Python, par exemple, est très utilisé pour la mise en place rapide de programmes. Cependant, dès lors que l’on a besoin de performances plus élevées, ce n’est plus forcément le langage le plus adapté.

Il en résulte que depuis la création de l’informatique de nombreux langages sont apparus, souvent inspirés de langages déjà existants et incorporant ou développant de nouveaux aspects. Le temps d’apprendre à coder dans un langage, celui-ci est déjà dépassé et remplacé par un nouveau langage.

Les bonnes pratiques de programmation: Avant de se lancer dans la programmation, l’expression claire d’un énoncé est indispensable pour tenir compte de toutes les particularités du problème (besoin fonctionnel). On spécifie son code, son programme , sa fonction en donnant :

•
L’auteur et le nom du programme.
•
La description des données en entrée (quelles types de variables).
•
Une description de ce que doit faire le programme.
•
La description des données en sortie.

En conséquence peut importe le langage, un code "bien écrit" doit avoir les propriétés suivantes :

•
Être facile à lire, pas soi-même mais aussi par les autres.
•
Avoir une organisation logique et évidente, utiliser une charte de nommage.
•
Être explicite, montrer clairement les intentions du développeur.
•
Être soigné et spécifié.

Un tel code sera dès lors facilement « supportable » (le faire durer et évoluer dans le temps).

Les commentaires sont essentiels pour "éclairer" le code. Un commentaire est un texte qui est ignoré par l'ordinateur lorsqu'il exécute le programme, mais qui peut être lu par le développeur lorsqu'il lit le programme. Bien que les commentaires soient essentiels, il ne faut pas en abuser.

Il est important d’utiliser des outils de versionning comme GitHub, SVN, … pour

•
Partager le code
•
Mettre en commun des modules
•
Gérer l’historique, les droits et workflows

Les méthodes Agiles sont des groupes de pratiques de pilotage et de réalisation de projets. La plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée .

Les différents paradigmes de programmation

En programmation, un paradigme est la manière d’écrire un programme basé sur un ensemble de principes ou une théorie.

Programmation impérative : Décrit les opérations en séquences d'instructions exécutées dans l’ordre (procédurale). C’est celui des premiers langages de programmation (C, Basic, Pascal, . . . )

Paradigme fonctionnel : Tout est fonction, absence de variables mutables, une fonction peut appeler une autre fonction ou s’appeler elle-même (Récursive), on utilise de préférence des fonctions pures. La plupart des langages (C, Phyton, …) autorise le paradigme fonctionnel. Une fonction pure est une fonction qui respecte ces deux propriétés:

•
A toujours les mêmes valeurs de retours pour les mêmes entrées
•
N’a pas d’effet de bord

Programmation objet : S’intéresse aux données plutôt qu’aux traitements. Toute entité du monde est un objet défini par une classe. Un objet peut contenir des attributs ou propriétés ainsi que des actions ou méthode. Le langage C++ est une évolution du langage C pour permettre l’utilisation de la programmation objet. Le « diagramme de classe UML » est une méthode qui standardise la façon de structurer les objets.

Programmation événementielle : Le déroulement du programme est déterminé par des évènements. Ce type de programmation est utilisé dans les automates, drones, droid, ou des langages comme Javascript qui interagissent avec un utilisateur ( ou un capteur pour les robots).

À retenir

Il faut suivre les « STANDARD » de programmation.

La plupart des langages utilisés de nos jours dont Python sont multi-paradigmes.

La programmation parallèle est un cas particulier de la programmation concurrente où les opération s’exécutent toujours au même moment.

Un programme doit être « recetté « ( validé par des tests unitaires et fonctionnels dépendant des spécifications)

QCM : Langages et programmation

20 questions • score sur 20

1. Quel mot-clé renvoie une valeur ?

2. Un paramètre est…

3. Une variable locale est principalement accessible…

4. Une spécification précise notamment…

5. Les annotations de type…

6. Une erreur logique…

7. import sert à…

8. Pourquoi écrire des fonctions ?

9. print et return…

10. Un bon nom de fonction doit être…

11. Que se passe-t-il après l’exécution d’un return dans une fonction ?

12. Pourquoi print ne remplace-t-il pas return ?

13. Une précondition d’une fonction précise…

14. Que vaut une variable locale après la fin de la fonction, depuis l’extérieur ?

15. Quel test est le plus pertinent ?

16. Une exception se distingue d’une erreur de syntaxe car…

17. Que permet <code>from math import sqrt</code> ?

18. Quel intérêt principal présente la décomposition en fonctions ?

19. Une fonction sans return explicite renvoie en Python…

20. Pourquoi documenter le type attendu d’un paramètre ?

← Retour aux ressources NSI