Logo ÉTS
Session
Cours
Responsable(s) Kim Khoa Nguyen, Catherine Laporte

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement


Préalables

Programme(s) : 7483, 7883
             
  Profils(s) : Électricité, Informatique, Technologie de systemes ordines  
             
    ELE116    
             
Programme(s) : 7694
             
  Profils(s) : Tous profils  
             
    ELE216    
             
Programme(s) : 7483, 7883
             
  Profils(s) : Électricité, Technologie de systemes ordines  
             
    INF147    
             
Programme(s) : 7483, 7883
             
  Profils(s) : Électricité, Technologie de systemes ordines  
             
    INF147    
             
 

Unités d’agrément

25,0 % 75,0 %
Total d'unités d'agrément : 64,8

Qualités de l’ingénieur

 







Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué

- Survolez les icones pour voir le nom de chaque qualité.
- Cliquez sur les icones pour voir la description.

Descriptif du cours

Étudier les caractéristiques des algorithmes dans le but d’obtenir une réalisation efficace sur ordinateur.

Présentation des algorithmes de base comme les algorithmes voraces, des techniques «diviser pour régner», de la programmation dynamique et d’exploration des graphes. Notion de complexité d'algorithme. Techniques de programmation. Récursivité, retour-arrière, allocation dynamique, recherche de solutions. Structures de données : listes, piles, files, arborescences. Algorithmes de tri. Techniques de recherche. Algorithmes élémentaires de manipulation d'arbres. Différents algorithmes sont développés pour le même problème et comparés à partir de moyens analytiques et de simulations.

Séances de laboratoire visant à développer des logiciels appliquant les principes mentionnés précédemment selon des techniques reconnues de génie logiciel.

 





Objectifs du cours

À la fin de ce cours, l’étudiant(e) aura assimilé les notions suivantes :

  • structures de données élémentaires : liste, pile, file, tableau, arbre, graphe, etc.
  • techniques d’analyse de performance des algorithmes
  • techniques de base de conception d’algorithmes : récursivité, algorithmes gloutons, programmation dynamique, etc.
  • algorithmes de recherche et d’extraction de l’information
  • algorithmes de tri classiques.

À la fin du cours, l’étudiant(e) sera capable de :

  • analyser la performance des algorithmes pour faire un choix réfléchi entre divers algorithmes
  • choisir des structures de données judicieuses et implanter des algorithmes de manière à obtenir de bonnes performances
  • concevoir des algorithmes simples en utilisant les techniques classiques de conception
  • analyser les résultats et faire des améliorations algorithmiques si possible et nécessaire.

Stratégies pédagogiques

Un (1) cours magistral par semaine (3 heures). Des exemples seront faits en classe pour permettre aux étudiant(e)s d’assimiler les concepts théoriques.

 

Une (1) séance de laboratoire par semaine (3 heures).  Au laboratoire, les étudiants travaillent en équipe de deux ou trois.  Les laboratoires contiennent tous une composante majeure d’implémentation d’algorithmes ; l’étudiant doit donc maîtriser le langage de programmation C. 

 

Des séances de laboratoire pourraient être interverties avec des séances de cours afin de mieux arrimer le contenu des laboratoires à la progression des notions vues en cours.



Utilisation d’appareils électroniques

Le cours étant donné à distance, l'étudiant aura besoin d'un ordinateur avec une connexion Internet et, idéalement, d'une caméra et d'un microphone.  Une caméra pourrait être obligatoire pour l'examen final.

L’utilisation d’appareils électroniques pour l’enregistrement des cours ou des laboratoires doit faire l’objet d’une approbation par le professeur.  L’approbation ne sera donnée que pour des motifs majeurs.



Coordonnées de l’enseignant

* Double-cliquez sur le champ pour modifier le contenu