<string>

Table des matières

Mission 1 - Mise en route

Mission 1 : mise en route

Mission 1 : mise en route

Introduction

Chacun d'entre vous possède une expérience qui lui est propre en ce qui concerne l'utilisation d'outils informatiques. Certains ont déjà écrit des programmes sur un ordinateur, tandis que d'autres ont à peine effleuré un clavier...

Pour pouvoir commencer à travailler en groupe pour ce cours d'informatique, il est nécessaire de combler quelque peu ce fossé et de vous mettre plus sur un pied d'égalité. Autrement, ce sont ceux qui ont le plus d'expérience qui mèneront les groupes et les plus novices auront moins l'occasion de participer, donc d'apprendre - ce qu'il faut absolument éviter. Nous avons donc organisé une mission de mise en route, que chacun de vous devra accomplir individuellement.

Deux principes importants

  1. Vous devez mener cette mission individuelle de front avec les autres activités de la semaine. A chacun d'entre vous de veiller à combiner travail de groupe et travail individuel, ainsi que travail dans les autres cours. Plus tard, vous devrez être en mesure de combiner encore plus d'activités en y consacrant le temps et les efforts nécessaires.
  2. Même si chacun d'entre vous doit avoir effectué la mission individuellement, il est utile que les membres du groupe s'entraident !

Pré-requis

Conditions à remplir pour pouvoir résoudre le problème :

  • savoir effectuer son login
  • s'y retrouver dans les icônes, les fenêtres, etc. sur un poste de travail informatique
  • savoir utiliser le navigateur (browser) Internet
  • savoir consulter le livre de référence du cours d'informatique :
    https://self-learning.info.ucl.ac.be/index/info1-theory

Si certains d'entre vous ont des difficultés avec un ou plusieurs de ces pré-requis, il est indispensable que le groupe les résolve avant de commencer à travailler.

Objectifs

Chaque mission vise à atteindre des objectifs individuels liés à la compréhension de la matière et des objectifs collectifs liés au fonctionnement du groupe. Pour cette mission de mise en route, les objectifs sont les suivants :

Objectifs individuels

A l'issue de cette mise en route, chacun d'entre vous :

  • sera en mesure de dire quelques mots (sensés !) sur certains concepts sous-jacents à un programme Python simple (après une première prise de connaissance) :

    • langage de programmation, programme
    • fichier contenant un programme Python
    • commentaires
    • exécution d'un programme
    • variables
    • boucles, conditions
  • sera en mesure d'utiliser l'environnement de travail Thonny pour écrire et exécuter des programmes en Python

  • aura une première idée des différentes ressources mises à votre disposition

Objectifs collectifs

A l'issue de ce problème, le groupe tout entier :

  • aura montré sa capacité à travailler ensemble pour aider les membres qui ont des difficultés à les résoudre.

Préparation, étude et apprentissage

La matière relative à cette mission porte sur les sections suivantes du syllabus. Vous devez lire et comprendre ces parties du syllabus pour pouvoir mener à bien cette mission.

Questionnaire de démarrage

Durant chaque mission, vous devrez répondre à deux types de questions individuelles :

Binding Inginious

Si c'est la première fois que vous vous connectez, vous voyez pour le moment 'Please log in to see this exercise' à la place du premier exercice. Vous devez d'abord vous logger avec votre identifiant global en cliquant sur 'Log In' en haut à droite. Ensuite, suivez la marche à suivre pour lier votre compte Inginious à ce compte et complétez les exercices.

  1. Des questions à choix multiples.

    Ces questions sont accessibles depuis un serveur Internet. Ce serveur vous génère automatiquement un ensemble de réponses différent à chaque fois que vous vous y connectez. Cela vous permet de tester vos connaissances lors de la première lecture du livre, mais aussi plus tard lorsque vous préparez l’interrogation ou l’examen. Vous devez préparer ces questions à choix multiples individuellement avant la réunion de bilan intermédiaire.

    
            
            

    Les questions à choix multiples de cette semaine sont également accessibles en ligne depuis https://inginious.info.ucl.ac.be/course/LSINF1101-PYTHON/Session1_QCM

  2. Des questions ouvertes. Ces questions seront discutées oralement durant la réunion de bilan intermédiaire. Votre tuteur choisira plusieurs étudiants et ceux-ci devront présenter au tableau leur réponse à l’une de ces questions ouvertes. Préparez ces questions avant cette réunion:

Question 1

a, b et c sont des variables contenant des nombres entiers quelconques. Comment feriez-vous pour déterminer la médiane de ces trois nombres ? Pour rappel, la médiane d’un ensemble de nombres est la valeur m telle qu’il y a dans l’ensemble autant de valeurs qui sont supérieures ou égales à m que de valeurs inférieures ou égales à m.

 
 
 
 
 
 

Question 2

Sachant que print(x) permet d’afficher à l’écran la valeur stockée dans la variable x, comment feriez-vous pour afficher à l’écran la table de multiplication par 123 ?

 
 
 
 
 
 

Question 3

Que se passe-t-il lors de l'exécution de la boucle suivante :

n = 1
i = 0
while n > 0:
    i=i+n
print(i)
 
 
 
 
 

Question 4

Sachant que les expressions a // b et a % b calculent respectivement la division et le reste de la division de l’entier stocké dans la variable a par l’entier stocké dans la variable b, pouvez-vous écrire un boucle qui affiche à l’écran en utilisant la commande print() les diviseurs entiers du nombre entier positif stocké dans la variable n.

 
 
 
 
 
 
Mission 1

Mission 1

Une des premières applications des ordinateurs (et même des calculateurs mécaniques, comme la machine de Babbage) a été de générer, de manière automatique et fiable, des tables numériques de fonctions mathématiques, comme les logarithmes ou les fonctions trigonométriques.

Une table de logarithmes.

Dans cette mission initiale, vous allez produire une table des carrés et des sommes des carrés :

1        1       1
2        4       5
3        9       14
4        16      30
5        25      55
6        36      91
7        49      140
8        64      204
9        81      285
10       100     385
  • Démarrez une session de travail à l'ordinateur avec votre nom d'utilisateur et votre mot de passe. Créez, si ce n'est déjà fait, un répertoire (dossier) info1 où vous placerez tout ce qui se rapporte à l'informatique pour BAC1.

    Si vous ne voyez pas comment faire, faites-vous aider. Vous pouvez, entre autres, utiliser un navigateur Web ("Web browser") pour consulter les documents accessibles sur le site Moodle du cours.

  • Inscrivez vous au site web du cours. Vous y trouverez, entre autres, un lien vers des ressources qui sont mises à votre disposition. Parmi ces ressources, il y a des modes d'emploi qui expliquent comment utiliser les logiciels mis à votre disposition sur vos postes de travail.

  • Inscrivez vous au cours sur INGINious (https://inginious.info.ucl.ac.be). Pour cela, allez sur INGInious, connectez-vous à l'aide de votre identifiant global UCL et inscrivez-vous au cours INFO1.

  • Faites démarrer l'environnement de développement Thonny, qui permet d'introduire, de modifier et d'exécuter des programmes Python.

    Thonny est installé sur toutes les machines de l'EPL. Nous ne supportons pas d'autre éditeur de programmes en Python. Si vous souhaitez installer Thonny sur votre ordinateur personnel, téléchargez-le sur https://thonny.org/.

  • Créez un nouveau fichier que vous baptiserez mise_en_route.py.

  • L'instruction print(a, "\t", b) permet d'afficher à l'écran la valeur des variables a et b, séparées par une tabulation (le caractère spécial "\t"). Ecrivez un programme qui affiche à l'écran les nombres, les carrés et la somme des carrés pour les nombres entiers de 1 à 10, comme dans l'exemple ci-dessus. Utilisez la fonction print(), une boucle while et une variable pour calculer la somme au fur et à mesure.

  • Testez votre programme pour en vérifier le bon fonctionnement. Pour cela, cliquez sur le bouton Run (triangle blanc). Les résultats s'affichent dans le panneau Shell en bas de la fenêtre.

  • Exécutez votre programme pas à pas pour observer son fonctionnement. Pour cela, affichez d'abord le panneau des variables (menu View > Variables). Ensuite cliquez sur le bouton Debug (scarabée) et progressez avec les trois boutons Step into, Step over et Step out (flèches jaunes). Familarisez-vous avec leur fonctionnement et observez les valeurs des variables.

  • La somme des carrés des nombres de 1 à n peut aussi se calculer par la formule n(n + 1)(2n + 1) ⁄ 6. Modifiez votre programme pour qu'il affiche les nombres calculés par cette formule dans une quatrième colonne. Si votre programme est correct, les troisième et quatrième colonnes doivent être identiques !

Remise de votre solution

A l'issue de cette mission préparatoire vous devez soumettre votre programme au serveur de soumissions de programmes du cours. Ce serveur de test sera utilisé pour toutes les missions et également pour des exercices complémentaires. Il est important que chacun d'entre vous sache l'utiliser.

Si vous n'avez pas réussi à terminer l'écriture du programme, expliquez vos problèmes dans un fichier README.TXT mais soumettez quand même votre programme au serveur car c'est via le serveur que votre tuteur recevra les programmes qu'il corrigera pour la séance de retour. Si vous avez réussi à terminer le programme correctement, le fichier README.txt doit contenir une documentation destinée aux utilisateurs de votre programme.

La soumission automatique des projets se déroule comme suit :

  • Cette première mission est individuelle, mais les prochaines missions sont à réaliser avec un binôme différent chaque semaine. Avant de soumettre chaque mission, vous devez d'abord indiquer dans vos fichiers avec qui vous avez travaillé.
  • Seul un membre du groupe a besoin d'effectuer la procédure et soumettre chaque fichier complété demandé pour avoir un feedback en séance.

        
        

Si vous remarquez une erreur après la soumission, vous pouvez resoumettre pour la corriger. Vous recevrez un feedback global de votre tuteur durant la réunion de bilan final. En cas de problème de soumission via le serveur, utilisez le forum Helpdesk sur le site du cours.

Challenge

Les étudiants qui ont résolu rapidement cette mission de mise en route sont invités à écrire un programme permettant de résoudre le problème suivant.

Considérons un programme utilisant cinq variables entières : a, b, c, d et e. Comment feriez-vous, en utilisant uniquement des if ...: ... else: ... pour calculer la médiane de ces cinq valeurs. Pour rappel, la médiane est la valeur qui est telle qu'il y a exactement deux valeurs inférieures à elle et deux valeurs supérieures à elle.

Questions complémentaires

Questions complémentaires

The method sum(list) returns the sum of the elements contained in list.

Example: the sum of [1,2,3] is 6

Note that your algorithm should be able to compute the sum even when the list list contains malicious elements (not numbers).









You want to use your computer to easily compute a polynomial with the following form: y = ax6 + bx2 + c. We give you the coefficients (stored in a, b and c) and the variable x and ask you to put the value of the polynomial at abscissa x inside a variable named y.

Note: there is a way to make this shortly in only one line of code.









En mathématiques, la factorielle d'un entier strictement positif x, noté x!. La factorielle de 0 est 1. Calculez la factorielle d'un entier x et enregistrez la valeur calculée dans la variable result.

Exemples:

  • 5! = 5 × 4 × 3 × 2 × 1 = 120
  • 0! = 1









Lucie veut prendre un bain, mais sa baignoire est trouée. Si elle ouvre le robinet, 12L coulent dans la baignoire chaque minute, et 1L s'écoule par le trou chaque minute. Vous aimeriez savoir combien de minutes elle devra attendre pour que la baignoire contienne au moins 80L d'eau et aussi simuler la croissance du volume de l'eau en Python.

D'abord, calculez le nombre de minutes nécessaires pour avoir exactement 80L dans la baignoire (exprimé en nombre à virgule flottante) et l'enregistrer dans une variable nommée filled_time. Ensuite, enregistrez le volume d'eau actuel dans une variable nommée water_vol (qui commence à 0) et utilisez une boucle for dans laquelle, à chaque itération (représentant chaque minute), les volumes d'eau s'écoulant du robinet ou par le trou sont ajoutés/retirés du volume d'eau total. En d'autres termes, à chaque itération, water_vol devrait augmenter de 12L et diminuer d'1L.

La boucle for devrait s'arrêter à la première itération où le volume d'eau dépasse les 80L. Ceci peut être calculé à partir de filled_time.

Note: vous pouvez arrondir un nombre à virgule flottante au premier integer plus grand en utilisant le code suivant :

float_nb = 3.14\n"
int_nb = ceil(float_nb)  # `int_nb` is equal to 4