Semaine 2 : premiers éléments de programmation impérative#

La semaine dernière, Laby nous a amené à la découverte de premiers éléments de la programmation impérative: programmes, fonctions, instructions conditionnelles et itératives. Cette semaine, nous allons commencer à formaliser ces éléments, en y ajoutant expressions et variables.

Cours#

TD : affectations, instructions conditionnelles#

TP#

Attention

Rappel Tout exercice non marqué d’un ♣ est à terminer pour la semaine prochaine.

Notes aux enseignants

Consignes

  • Rappeler en début de séance qu’ils doivent démarrer les ordinateurs sous Ubuntu et pas sous Windows.

  • Rappeler en fin de séance qu’ils doivent terminer toutes les fiches Jupyter (voir l’exo 5 + exo 6), et déposer (?) les fiches terminées.

  • Certains étudiants exécutent les cellules sans trop refléchir. N’hésitez pas à signaler que ce qui est important, ce n’est pas d’avoir un TP fini, mais d’avoir bien compris les notions abordées.

  • Pour les élèves qui paniquent parce qu’ils ne comprennent pas bien les fonctions: les rassurer en leur disant que ce sera vu en détail en amphi de la semaine 4, pour l’instant on donne juste un aperçu de façon intuitive. Par contre cette semaine il faut avoir bien compris les notions de variables, types, conditionnelles.

Quelques erreurs fréquentes des étudiants

  • Ne pas avoir exécuté certaines cellules (en particulier celles de déclaration ou d’initialisation) après re-démarrage du noyau.

  • Mélanger définition de fonction et instructions dans une même cellule (voir avertissement «une fonction – une cellule» dans la feuille 2).

  • Mettre un ; à la fin de l’en-tête d’une fonction (soit à la place de l’accolade ouvrante, soit avant celle-ci)

  • Oublier le return dans une fonction non void

  • Oublier de préciser le type d’un paramètre d’une fonction

  • Oublier de fermer l’accolade d’une fonction (cela donne un message très peu parlant, genre Interpreter error)

  • Vouloir faire renvoyer plusieurs résultats à une fonction (c’est en particulier le cas des élèves qui veulent traiter l’exo sur le rendu de la monnaie avec une fonction, ce qui n’est pas demandé).

Exercice 0 : Notes de cours#

  1. Consultez les notes de cours de la semaine 1 sur le site web.

  2. Que signifie syntaxe? Et sémantique? Vérifiez dans les notes de cours, en utilisant l’index.

  3. Quelle est la syntaxe et la sémantique de l’affectation de variables? Vérifiez dans les notes de cours de la semaine 2 (voir le site web ou ci-dessus).

Exercice 1 : Jupyter#

Chaque semaine, nous commencerons par une petite feuille pour vous familiariser progressivement à l’utilisation de Jupyter. Aujourd’hui, ce sera:

Exercice 2 : Jupyter, valeurs, types, types, variables, conditionnelles, fonctions#

Travaillez successivement sur les feuilles suivantes :

Exercice 3 : Dépôt de votre travail (si GitLab est disponnible)#

  1. Utilisez le tableau de bord pour déposer votre travail sur GitLab (consultez au besoin la page Case départ du site web).

  2. N’oubliez pas de déposer à nouveau votre travail en fin de séance, afin que tout soit bien sauvegardé.

Exercice 4: Retour sur le TD#

Travaillez successivement sur les deux feuilles suivantes :

  1. 04-td-exercice3.md.

  2. 05-td-exercice4.md.

Exercice 5 : Pour la semaine prochaine#

  1. Terminez les fiches Jupyter de ce TP, soit en salle informatique de l’université soit depuis chez vous.

Astuce

Indications

  • Vous pouvez aborder les exercices ♣ suivants dans l’ordre que vous souhaitez.

  • Pour les réaliser, vous créerez au fur et à mesure de nouvelles feuilles de travail (notebook). Pour cela : utilisez le menu Fichier -> Nouveau -> Notebook et sélectionnez le noyau Python 3 ou C++ 17. Vous noterez dans le titre de l’onglet que votre feuille s’appelle Untitled.ipynb; utilisez un clic droit sur le titre de l’onglet et choisissez Renommer dans le menu pour donner un nom informatif à la feuille.

  • Pour que le dépôt sur GitLab tienne compte de vos nouveaux fichiers, vous devez au préalable les déclarer au système de gestion de version sous-jacent git. Par exemple, pour déclarer un nouveau fichier mon_fichier.md que vous avez créé dans votre répertoire Semaine2, vous ouvrirez un terminal et ferez :

    cd ~/ProgImperative/Semaine2
    git add mon_fichier.md
    

    Il sera alors inclus dans tous les dépôts ultérieurs.

Exercice ♣ : Euler forever!#

Vous trouverez sur le site du projet Euler https://projecteuler.net une série de problèmes mathématiques qui nécessitent chacun une combinaison de réflexion sur feuille et de programmation (voir http://submoon.freeshell.org/fr/sphinx/euler.html pour avoir les énoncés en français).

Essayez de résoudre les problèmes 1, 2, 5 et tous ceux qui vous plairont!

Exercice ♣ : Python#

Dans le cours «Introduction à la programmation», vous (re)découvrirez le langage de programmation Python. Pour prendre un peu d’avance, refaites le TP en utilisant cette fois Python.

Vous pouvez consulter la feuille Résumé de la syntaxe de base Python.