Université de Genève · CUI BSc · Algorithmique & Structures de données
Environment Setup & Python Syntax
Séminaire 1
1 / 12
Qui nous sommes
Prof. Katarzyna Wac, Ph.D.
Alexander Horst
2 / 12
Objectifs pour le BSc CUI ALGs
- Introduction au langage de programmation Python
- Concept des algorithmes et des structures de données pour les collections
- Méthodes de recherche et de tri
- Concept de complexité algorithmique
- Récursion et algorithmes fondés sur le principe « diviser pour régner »
- Structures d'arbres et de graphes
- Représentation des nombres et algorithmes numériques
- Complexité des problèmes, problèmes NP-complets et problèmes indécidables
3 / 12
É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.
4 / 12
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
5 / 12
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)
6 / 12
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.
7 / 12
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
8 / 12
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) !
9 / 12
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
10 / 12
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
11 / 12
Université de Genève · CUI BSc · Algorithmique & Structures de données
Merci et amusez-vous bien !
12 / 12