Aller au contenu principal

Révision pour examen 1

Consignes générales

  • Sur papier
  • Individuel
  • Vos avez droit à une feuille de notes format lettre, recto-verso et manuscrite.
  • Aucune autre ressource n'est permise.
  • Durée : 90 minutes
  • Début : 8h10
  • Matière:
    • Tout ce qui a été vu en classe jusqu'à maintenant, y compris les classes abstraites et les interfaces
    • NumPy n'est PAS à l'examen
    • L'héritage multiple n'est PAS à l'examen
  • Lorsque vous écrivez du code à la main, assurez-vous de respecter la syntaxe de Python et l'indentation. Un simple oubli d'un deux-points : n'est pas grave, mais une syntaxe incorrecte ou une indentation incorrecte le sera.
  • Si vous ne savez pas quoi répondre à une question, ne restez pas bloqué dessus. Passez à la prochaine question et revenez-y plus tard si vous avez le temps. Après avoir fait les autres questions, tentez de répondre à la question. Il est impossible pour le correcteur de donner ne serait-ce qu'un demi-point pour une question non répondue.

Apprendre de ses erreurs

Réviser le sommatif 1 sauf les questions concernant NumPy.

Programmation fonctionnelle

Exemples de questions

  • Expliquer dans vos mots ce que fait la fonction map. Indiquer notamment ses paramètres et ce qu'elle retourne.

  • Expliquer dans vos mots ce que fait la fonction filter. Indiquer notamment ses paramètres et ce qu'elle retourne.

  • Expliquer dans vos mots ce que fait la fonction reduce. Indiquer notamment ses paramètres et ce qu'elle retourne.

  • Pourquoi un programmeur voudrait utiliser map, filter ou reduce plutôt que des boucles for ou while?

  • Que se passe-t-il si on applique map sur une liste vide?

  • Que se passe-t-il si on applique filter sur une liste vide?

  • Que se passe-t-il si on applique reduce sur une liste vide?

  • Qu'est-ce qu'une fonction lambda? Pourquoi est-ce utile?

  • Y a-t-il une différence entre une fonction lambda et une fonction définie avec def? Par exemple entre f et g ci-dessous:

        f = lambda x: x + 1

    def g(x):
    return x + 1

Autres concepts

Il va sûrement y avoir des bouts de code à lire et à comprendre, comme par exemple traduire des boucles for en map ou filter ou reduce. Assûrez-vous également de bien comprendre les compréhensions de liste et de pouvoir les utiliser.

Programmation orientée objet

Exemples de questions

  • S'il n'y avait pas de classe en Python, comment feriez-vous pour regrouper des données et des fonctions qui les manipulent? Par rapport à cette méthode, quelles avantages offre la programmation orientée objet?
  • Quelle est la différence entre une classe (class Animal()...) et une instance de cette classe (chien = Animal())?
  • Quelle est la différence entre le concept de classe abstraite et une interface?
  • À quoi servent les méthodes dont le nom commence et se termine par deux underscores (ex: __str__)?
  • Quelle est l'utilité de la méthode __init__?
  • Quelle est l'utilité de super()?
  • Quelle est la signification du paramètre self dans les méthodes de classe?
  • Peut-on instancier une classe abstraite définie avec le module abc?
  • Qu'est-ce qu'on appelle un constructeur ? Quel est la méthode spéciale en Python qui sert de constructeur?

Autres concepts

Il va sûrement y avoir des bouts de code à lire et à comprendre, comme par exemple des classes à compléter ou des classes à instancier. Assûrez-vous également de bien comprendre l'héritage et la surcharge de méthodes.