Logo ÉTS
Session
Cours
Responsable(s) Diala Naboulsi

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Diala Naboulsi


PLAN DE COURS

Hiver 2026
LOG675 : Programmation compétitive (3 crédits)


Préalables
Pour tous profils : LOG320



Description du cours
Ce cours vise à acquérir les connaissances algorithmiques, mathématiques et de programmation, nécessaires pour la programmation compétitive.

Au terme de ce cours, l’étudiante ou l’étudiant sera en mesure de : analyser un problème de programmation compétitive ; choisir les structures de données adéquates pour un problème donné ; concevoir un algorithme efficace pour résoudre un problème ; développer des programmes fiables pour implémenter une solution conçue ; coordonner le travail d’une équipe dans une compétition de programmation ; bien gérer le temps avec des délais serrés.

Données linéaires et non linéaires. Paradigmes de résolution de problèmes. Algorithmes de traitement de chaines. Algorithmes de graphes. Analyse combinatoire. Théorie des nombres. Géométrie.



Stratégies pédagogiques

Le cours comprend:
- Un cours magistral par semaine, couvrant les aspects théoriques ainsi que des exemples et exercices (3 heures)
- Une séance de laboratoire par semaine, permettant aux étudiants de se préparer pour les compétitions (2 heures)




Informations concernant l’agrément du BCAPG
Ce cours compte 58,8 unités d'agrément réparties comme suit :

Catégories de UA Nombre Proportion Matière(s) traitée(s)
Science du génie 29,4 UA 50,00 %
Conception Ingénierie 29,4 UA 50,00 %






Utilisation d’appareils électroniques

L'ordinateur sera utilisé pour suivre le cours magistral ainsi que pour la réalisation des exercices, laboratoires, devoirs et compétitions.




Horaire
Groupe Jour Heure Activité
01 Lundi 08:30 - 12:00 Activité de cours
Jeudi 13:30 - 15:30 Laboratoire (Groupe A)
Jeudi 15:30 - 17:30 Laboratoire (Groupe B)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Diala Naboulsi Activité de cours diala.naboulsi@etsmtl.ca A-4496
01 Abderrahime Filali Laboratoire (Groupe A) abderrahime.filali@etsmtl.ca



Cours

Ci-dessous se trouve le plan de cours prévu avec les heures approximatives d'enseignement pour chaque sujet, incluant le temps alloué pour une compétition de groupe et l'examen intra (compétition individuelle). Des modifications et ajustements au plan du cours pourront avoir lieu durant la session.

  1. Introduction à la programmation compétitive (3.5 heures)
    • Introduction aux compétitions et platformes existantes
    • Comment être compétitif
  2. Structures de données (SD) (7 heures)
    • SD linéaires avec librairies intégrées
    • SD non linéaires avec librairies intégrées
    • SD avec nos propres librairie
  3. Chaines (3.5 heures)
    • Algorithmes de recherches de sous-chaine
    • Arbre et tableau de suffixe
  4. Paradigmes de résolution de problèmes (5.5 heures)
    • Recherche exhaustive
    • Diviser pour régner
    • Algorithmes gloutons
    • Programmation dynamique
  5. Graphes (5 heures)
    • Algorithmes de parcours de graphes
    • Arbre couvrant de poids minimal
    • Problème du plus court chemin avec source unique
    • Problème de toutes les paires de plus courts chemins
    • Graphes spéciaux
  6. Analyse combinatoire (2.5 heures)
    • Nombres de Fibonacci
    • Coefficients binomiaux
    • Nombres Catalans
  7. Autres sujets mathématiques (1.5 heure)
    • Probabilités
    • Théorie de jeu
  8. Théorie des nombres (3.5 heures)
    • Nombres premiers
    • Décomposition en facteurs premiers
    • Crible d'Érastosthène
    • PGCD et PPCM
    • Factoriel
    • Arithmétique modulaire
    • Algorithme d'Euclide étendu
  9. Géométrie (3.5 heures)
    • Objets géométriques de base
    • Périmètre et aire d'un polygone
    • Test de convexité d'un polygone
    • Emplacement d'un point par rapport à un polygone
    • Découpage d'un polygone avec une droite
    • Enveloppe convexe
  10. Préparation aux entretiens d'embauche (3.5 heures)
    • Le processus
    • Questions de comportement
    • Questions techniques

Tous les cours sont d'une durée de 3 heures et 30 minutes par semaine (incluant une pause de 30 minutes).

L'ordre et le contenu peut être modifié en cours de session en fonction de circonstances particulières




Laboratoires et travaux pratiques

Des laboratoires seront proposés au cours de la session et permettront aux étudiants de mettre en pratique leurs compétences de résolution de problèmes.

  • Laboratoire 1: Introduction
  • Laboratoire 2: Structures de données
  • Laboratoire 3: Structures de données/Chaines
  • Laboratoire 4: Paradigmes de résolution de problèmes
  • Laboratoire 5: Paradigmes de résolution de problèmes
  • Laboratoire 6: Graphes
  • Laboratoire 7: Résolution de compétition de groupes
  • Laboratoire 8: Analyse combinatoire
  • Laboratoire 9: Simulation d'entretiens
  • Laboratoire 10: Théorie des nombres
  • Laboratoire 11: Géométrie
  • Laboratoire 12: Problèmes variés



Utilisation d'outils d'ingénierie

Les étudiant(e)s utiliseront un outil de développement logiciel intégré (IDE) pour développer des logiciels.

Note importante: Les exemples de cours seront en Java. Les exercices, laboratoires, devoirs et compétitions sont vérifiés en Java et en Python. Vous pouvez ainsi choisir un de ces deux langages pour les évaluations.




Évaluation


Informations additionnelles :

 

8 Devoirs 20 %
Compétition de groupe 20 %
Examen intra 25 %
Examen final 25 %
Entretiens 10%

 

Dates et modalités :

Examen intra 2 Février 2026
Compétition de groupe 23 Février 2026
Examen final Durant la période des examens finaux
Entretiens Semaines 10 et 11

 

Veuillez noter qu’une moyenne inférieure à 50% dans les évaluations individuelles de type "examen" (examens intra, final et entretiens) entraîne automatiquement un échec au cours. Ceci est une condition nécessaire mais non suffisante pour réussir ce cours.




Seuil de passage pour les éléments à caractère individuel

Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 2 février 2026



Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Les devoirs remis en retard auront une pénalité de 15% par jour de retard pour un maximum de deux jours. Une soumission avec un retard de plus que deux jours ne sera pas corrigée.




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par la personne enseignante du cours ou la personne coordonnatrice dans le cas des stages.



Documentation obligatoire

Aucune documentation obligatoire.




Ouvrages de références
  • S. Halim, F. Halim, S. Effendy “Competitive Programming 4 – Book 1", Lulu Independent Publish, 2020
  • S. Halim, F. Halim, S. Effendy “Competitive Programming 4 – Book 2", Lulu Independent Publish, 2020
  • S. Skienna, M. Revilla, "Programming Challenges", Springer Verlag, 2003
  • T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, "Introduction to Algorithms (Fourth Edition)", MIT Press, Cambridge, MA, 2022



Adresse internet du site de cours et autres liens utiles

Site Moodle/ENA du cours: https://ena.etsmtl.ca/course/view.php?id=25403