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 se connecter au serveur depuis chez eux, terminer toutes les fiches Jupyter (voir l’exo 6 + exo 7), et déposer les fiches terminées.

  • Rappeler que pour cela il faut qu’ils aient bien fait un submit en fin de TP, et aussi qu’ils commencent par faire un fetch chez eux pour récupérer leur travail (le fait qu’il ne suffit pas de déposer à la fin du TP pour avoir leur TP sur JupyterHub, mais qu’il faut ensuite faire un fetch lorsqu’ils se connectent sur le serveur pour récupérer leur travail n’est pas clair pour certains d’entre eux).

  • 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 ça 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

  • Fermer le terminal qui a lancé Jupyter.

  • 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.

  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#

  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 : Service JupyterHub@Paris-Saclay#

Indication

Rappel L’université a déployé un service JupyterHub (expérimental) vous permettant de travailler en dehors des séances avec simplement une connexion internet et un navigateur web (firefox, chrome, safari, …).

Attention

Cet exercice n’est à faire que si vous n’avez pas encore utilisé ce service ou si vous avez rencontré des difficultés. Demandez de l’aide au besoin à votre enseignant.

  1. Suivez les instructions de la page Case départ du site web pour vous connecter au service JupyterHub;

  2. Téléchargez-y vos TP 1 et 2 et consultez les;

Exercice 5 : Retour sur le TD#

Travaillez successivement sur les deux feuilles suivantes :

  1. 04-td-exercice3.md.

  2. 05-td-exercice4.md.

Exercice 6 : Pour la semaine prochaine#

  1. Vous vérifierez que vous pouvez vous connecter au service JupyterHub depuis chez vous et que vous pouvez y exécuter vos feuilles Jupyter (voir exercice « Service JupyterHub » ci dessus).

  2. Terminez les fiches Jupyter de ce TP, soit en salle informatique de l’université, soit depuis chez vous en utilisant le service JupyterHub.

Note

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.

Astuce

Astuce

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.