Algorithmique

Présentation & objectifs

Bienvenue dans la partie du cours consacrée à l’algorithmique !

Dans ce bloc, vous étudierez comment résoudre des problèmes en utilisant des solutions algorithmiques, c’est-à-dire, des séries d’opérations qui, lorsqu’elles sont appliquées, calculent une solution au problème, un peu comme suivre une recette de cuisine pour faire un gâteau.

En plus d’écrire des algorithmes, nous étudierons également certaines propriétés des algorithmes, telles que la complexité ou la terminaison. En effet, il est important de pouvoir caractériser ces propriétés, soit pour pouvoir comparer des algorithmes entre eux (par exemple, pour déterminer lequel choisir pour une tâche spécifique), soit pour garantir qu’ils agiront comme prévu.

Enfin, nous ferons la transition vers des solutions algorithmiques plus avancées, et d’autres approches pour résoudre des problèmes. Nous vous donnerons en particulier une introduction à l’intelligence artificielle, afin que vous sachiez en quoi elle diffère des approches algorithmiques classiques.

L’objectif du bloc algorithmique est que vous soyez capable de :

  • Concevoir un algorithme pour répondre à une spécification de problème.
  • Comprendre comment fonctionne la récursivité.
  • Comprendre et utiliser les structures de données et leurs spécificités.
  • Comparer des algorithmes en fonction de leurs propriétés.

Planning

Comment est organisée une session ?

La plupart des sessions commenceront par une présentation rapide des concepts clés par votre enseignant, avec des diapositives. Ces diapositives ne contiendront qu’un résumé des notions que vous devez apprendre. Ensuite, vous devrez étudier quelques articles pour compléter cette présentation.

Après cette courte introduction, vous devrez travailler sur des exercices qui mettent en pratique les concepts de la session. Dans toutes les activités pratiques, nous vous demandons de commencer par désactiver les outils d’IA pour le codage, afin que vous compreniez les concepts fondamentaux des exercices. Plus tard, vous pourrez refaire les exercices avec ces outils activés pour optimiser votre code.

Une fois le cours terminé, vous devez vous assurer de compléter tous les exercices non optionnels, et de comprendre tous les concepts brièvement introduits par l’enseignant, en utilisant les articles détaillés. Nous vous fournissons quelques quiz d’auto-évaluation pour vous aider à vérifier votre compréhension. N’hésitez pas à interagir sur la plateforme Discord !