Université de Genève · CUI BSc · Algorithmique & Structures de données

Environment Setup & Python Syntax

Séminaire 1

Qui nous sommes

Prof. Katarzyna Wac, Ph.D.
Prof. Katarzyna Wac, Ph.D.
Alexander Horst
Alexander Horst

Objectifs pour le BSc CUI ALGs

  1. Introduction au langage de programmation Python
  2. Concept des algorithmes et des structures de données pour les collections
  3. Méthodes de recherche et de tri
  4. Concept de complexité algorithmique
  5. Récursion et algorithmes fondés sur le principe « diviser pour régner »
  6. Structures d'arbres et de graphes
  7. Représentation des nombres et algorithmes numériques
  8. Complexité des problèmes, problèmes NP-complets et problèmes indécidables

Éléments de base

Éléments de base
Remarque : les cours magistraux n'expliquent pas point par point le contenu du séminaire. Les cours fournissent le contexte des algorithmes et de la gestion des données.

Répartition de la note

  • 70% — examen écrit (180 min)
  • Examen à livre fermé, rédigé à la main sur papier
  • Contenu du séminaire uniquement (algorithmique ET Python)
  • La moitié est QCM avec pénalité, l'autre moitié des questions ouvertes
  • Les petites erreurs de syntaxe sont tolérées si le sens reste clair
  • Questions en anglais et en français — les réponses peuvent être dans l'une ou l'autre langue
  • 30% — projet noté + soumission avec évaluation par les pairs
  • Votre code : poussé sur GitLab avant le 19 May 2026 23:59
  • Évaluation par les pairs : terminée avant le 31 May 2026 23:59

Projet étudiant (30% de la note)

  • Goal: apprendre l'algorithmique en travaillant sur un seul jeu de données réel
  • Dataset: données d'activité par pas de 12 utilisateurs réels de Withings ScanWatch
  • Appliquez les algorithmes du cours — tri, recherche, programmation dynamique, graphes — aux données
  • Justifiez chaque choix algorithmique dans votre README
  • Optional: connectez votre propre smartphone via l'application Withings et analysez vos propres données
  • Deliverables (details in Seminar 4):
  • Dépôt de code + README expliquant vos algorithmes (15% de la note finale)
  • Évaluation par les pairs du code d'un collègue assigné aléatoirement (15% de la note finale)

Calendrier

Calendrier
Remarque : ce n'est pas un cours complet sur Python — nous couvrons le minimum nécessaire pour approfondir l'algorithmique. Vous pouvez sauter les 3 premières semaines si vous êtes à l'aise avec Python, mais nous vous suggérons d'au moins faire les exercices car le contenu sera pertinent pour l'examen.

Pourquoi apprendre Python ?

Pourquoi apprendre Python ?
[tiobe.com/tiobe-index]
  • Simplicity: lisible, Hello World en une ligne
  • Relevance : langage n°1 (indice TIOBE)
  • Versatile: data science, backend, scripting
  • Same algorithmic concepts as C/Java, syntaxe plus claire

Règles du séminaire

  • Help each other: la collaboration et la discussion sont encouragées
  • Talking is allowed: c'est un atelier, pas une salle de cours magistral
  • ChatGPT is allowed: mais remettez en question ses réponses, ne copiez jamais aveuglément
  • Comprenez chaque ligne avant de l'utiliser
  • Questions during class? demandez à tout moment
  • Questions outside class? envoyez-moi un email
  • Exercises are your exam prep — prenez-les au sérieux
  • Coming is optional: mais nous serons ravis de vous voir, surtout à partir de la semaine 4 (projet et algorithmique) !

Objectifs d'aujourd'hui

  • À la fin de la séance, vous serez capables de :
  • Configurer et utiliser un environnement virtuel (venv)
  • Travailler avec les types de base de Python et convertir entre eux
  • Utiliser les f-strings pour le formatage moderne des chaînes
  • Appliquer les conventions de style PEP-8

Exercices du jour

  • Ex 1 — Script de salutation : demander le nom et l'âge, calculer l'année de naissance
  • Ex 2 — Corriger 11 violations de PEP-8 dans un extrait fourni
  • Ex 3 — Conversions de types : analyser l'entrée, convertir entre int / float / str
Exercices du jour
Université de Genève · CUI BSc · Algorithmique & Structures de données

Merci et amusez-vous bien !