Programmation, Structures de données

et Algorithmes (8SIF109)

 

Automne  2011

 

Maintenant, les documents pour le cours 8SIF109 au trimestre d'automne 2011 sont téléchargeables à partir de votre dossier étudiant (Site de cours).

 


Voici la procédure pour savoir comment y accéder :

(S’il s’agit de votre première visite dans votre dossier étudiant, vous devez cliquer sur le lien "Première utilisation" en rouge et répondre aux questions qui vous seront posées à l’écran. Votre nouvel identifiant sera ensuite indiqué à l’écran et si vous n’êtes pas en mesure de répondre aux questions, vérifiez votre facture, elle contient votre NIP, code permanent etc. et si vous ne trouvez toujours pas les réponses à vos questions sur votre facture, vous pouvez contacter le bureau du registraire au poste 5005 et votre NIP et/ou votre code permanent vous seront mentionnés) ;

(Si vous ne vous souvenez plus de votre mot de passe, cliquez sur "Première utilisation" et réinitialisez votre compte comme c’est indiqué dans le paragraphe entre parenthèses plus haut sur cette feuille) ;

NB :      Un lien permettant de télécharger les visualiseurs de documents est disponible dans le haut de la page des documents (Télécharger des visualiseurs), les étudiants peuvent les télécharger gratuitement à cet endroit les visualiseurs permettant d’afficher les différents types de documents versés par leurs enseignants (ex. le visualiseur adobe reader pour les fichiers .pdf etc.).

Si ça ne fonctionne toujours pas après avoir bien suivi ces indications, vous pouvez composer le
545-5011 poste 6000 et une personne pourra vous guider par téléphone (sur les heures de bureau de l’UQAC).

 

 


 

 

Programmation, Structures de données

et Algorithmes (8SIF109)

 

Hiver 2011

Bonnes vacances !

Résultats finaux (avec les côtes): consulter

Résultats des examens 1, 2 et des devoirs 1, 2 et 3 : consulter

À propos de l’examen de fin de session

-          L’examen de mi-session aura lieu : le mercredi 27 avril 2011 de 16h à 19h.

-          Les locaux où va se dérouler l’examen sont : P1-7000 et P1-7060. 

-          Seules mes notes de cours sont autorisées. 

-          L’accès à internet est formellement interdit durant l’examen.

-          La matière à réviser est come suit :

            exercice 1 (20pts) : questions de cours.

            exercice 2 (25pts) : arbres binaires, de recherche et AVL.

            exercice 3 (10pts) : opérations d’insertion/suppression dans un B-arbre.

            exercice 4 (10pts) : modélisation par un graphe.

            exercice 5 (15pts) : algorithme du plus court chemin.

            exercice 6 (10pts) : conception d’un algorithme de tri.

            exercice 7 (10pts) : application de la table de hachage avec listes chainées.

Information : le Canal Savoir diffusera bientôt un reportage mettant en vedette des professeurs et étudiants du DIM de l'UQAC.

Vous pouvez obtenir tous les détails en visitant le site Web : http://www.canalsavoir.tv/emission.php?id=10113

Emploi de temps 

Lundi : 11h -12h15, local  P1-6170 (cours).

Mardi : 8h – 9h15, local: P1-6140 (cours).

Mercredi : 16h – 18h45, local: P3-6050 (travaux dirigés- pratiques).

Information au fur et à mesure

1.     Le devoir 1 est maintenant disponible (voir plus bas).

2.     Les TD débutent ce mercredi 26 janvier (le local et l’horaire sont comme indiqués ci-dessus).

3.     Le nom de l’assistante en charge des TD/TP est : Agathe de Montmorillon.

4.     Son courriel est : agathe.demontmorillon@gmail.com

5.     Une partie de la séance de TD du mercredi 9 février sera consacrée aux exercices sur l’analyse des algorithmes. C’est moi qui vais l’assurer.

6.     Une partie de la séance de TD du mercredi 16 février sera consacrée à la matière à réviser pour l’examen de mi-session du mercredi 23 février.

C’est moi qui vais l’assurer.

7.     Une aide en programmation C++ est offerte par le département. Les personnes intéressées par cette aide sont invitées à consulter le lien :

http://www.uqac.ca/dim/doc/InfoSMI.htm ou prendre contact avec monsieur Jean Forgues, pour plus de détails. Son courriel est : Jean_Fogues@uqac.ca

8.     Le devoir 2 est maintenant disponible (voir le lien plus bas).

9.     Pour les prochains devoirs, il est important de déposer vos travaux dans vos comptes sensens.

10.  Chaque dépôt doit comporter votre code source et votre exécutable.

11.   Le devoir 3 est maintenant disponible (voir lien plus bas).

À propos de l’examen de mi-session

-          L’examen de mi-session aura lieu : le mercredi 23 février 2011 de 16h à 19h.

-          Le local de l’examen est : P1-4250.

-          L’examen se déroulera à livre ouvert. Cependant, l’accès à internet n’est permis que pour consulter mes notes de cours. Votre collaboration est appréciée.

-          La durée de l’examen est de 3 heures (16-19h).

-          Veuillez remettre les sujets d’examen à la fin de l’épreuve.

-          L’examen comprend 5 exercices :

    Exercice 1 (30pts): questions sur la compréhension du cours.

    Exercice 2 (15pts): notation asymptotique, récursivité, taille d’une pile et suppression de la récursivité.

    Exercice 3 (15ps): constructeur et destructeur.

    Exercice 4 (15): Utilisation d’une pile et d’une file.

    Exercice 5 (25pts) : 2 questions sur les listes simplement chainées.

Notes de cours 

 

Notes de cours

Travaux dirigés

Devoirs pratiques

Syllabus: consulter

Instructions utiles sur UNIX: consulter

 

Trucs de programmation : consulter

 Informations sur la fonction main : consulter

Série 1: consulter ; exospointeurs                                                          

Devoir 1:  consulter

Chapitre 0 :  Une vue d’ensemble sur le cours

 

Série 2:    consulter

Exercices sur les fichiers : consulter     

Solutionnaire:   exo1   exo2   exo3

                                                             

 Devoir 2:

Chapitre 1 

 

1.       rappels du langage C

2.       rappels sur les pointeurs en C

 

série 3: notations asymptotiques :  consulter

             exercices avec solutions :   consulter 

                                                         consulteraussi

                                                   

 

Chapitre 2 

 

1.        Éléments du langage C++

2.       Declaration-Tableaux-C ++

3.       Lecture-Références

4.       Lecture-Constructeur-Destructeur

              

Série 4;   Solutionnaire

Devoir 3:

 

Chapitre 3 

1.       Analyse des algorithmes

  

2.   Quelques rappels utiles de mathématiques

Consulter ; consulter aussi ;

    

3.       Quelques astuces pour écrire  des pgmes efficaces : consulter

 

Série 5:  les arbres; solutionnaire

 

 Chapitre 4

1.       Liste-Piles-Files

 

2.       STL-C++

 

série 6:   arbresAVL; solutionnaire

 

Chapitre 5

1.        Les Arbres  

2.       InsertionAVL

 

série 7:  arbres généraux; solutionnaire;    

    

                    

Chapitre 6:    ArbreGeneraux   

série 8:   algorithmes sur les graphes; solutionnaire           

 

 

Chapitre 7 : Les Graphes

               Algorithme_Dijkstra_sur_un_exemple

Série 9 :   serie9sif101trihaching.doc;   solutionnaire    

Chapitre 8 : algorithme de tri 

Chapitre 9 : recherche en table

 

Programmation, Structures de données et Algorithmes (8SIF109)

 

Hiver 2010

Je vous souhaite d’excellentes vacances d’été

Résultats finaux: consulter

Le devoir 3 est disponible (voir lien plus bas)

À propos de l’examen final

1.     L’examen aura lieu le mercredi 28 avril de 16h à 19h au local P1-6340.

2.     L’examen va se dérouler à livre ouvert ; seules mes notes de cours et vos notes sont permises.

1.      Seules mes notes de cours sont autorisées via vos laptops, si vous le désirez.

3.     L’accès à internet pendant l’examen est formellement interdit

4.     L’examen comporte 7 exercices et un bonus :

5.      Exercice 1 (25pts) : 11 questions de cours.

 Exercice 2 (10pts) : construire un arbre AVL à partir d’une suite de nombres.

 Exercice 3 (10pts) : suppression dans un B.arbre.

 Exercice 4 (20pts) : conception d’algorithmes dans les arbres  binaires.

 Exercice 5 (10pts) : modélisation d’une situation réelle à l’aide d’un graphe.

 Exercice 6 (15pts) : manipulation de l’algorithme de Dijkstra.

 Exercice 7 (10pts) : 3 petites questions sur les méthodes hashing.

 Bonus (5pts)          : modélisation d’une situation réelle à l’aide d’un graphe.

                                                    

À propos de l’examen de mi-session

 

1    L’examen de mi-session aura lieu le mercredi 24 février 2010 de 16h à 19h.

2.   Le local où va se dérouler l’examen est : H0-1070.

3.   La matière à réviser vous sera communiquée ultérieurement.

3.   L’examen va se dérouler à livre ouvert ; seules mes notes de cours et vos notes sont permises.

4.   L’examen comporte 5 exercices :

 Exercice 1 (30pts): 10 questions de cours. Essentiellement, vous aurez à trouver les erreurs sur des portions de programmes.

                                  Il y aura aussi une question sur l’évaluation d’une expression postfixe.

 Exercice 2 (15pts): 3 petites questions sur l’analyse des algorithmes (une sur la notation O; un autre sur une boucle while, et enfin la dernière

                                  sur ce que fait une fonction récursive et le calcul de la taille de la pile qu’elle génère.

 Exercice 3(10pts) : comprendre le fonctionnement des destructeur et constructeur lors de l’utilisation d’un objet de type class.

             Exercice 4(20pts) : manipulation de classes.

       Exercice 5 (25pts) : manipulation de pointeurs sur une liste chaînée.

 

Informations  au fur et à mesure

 

1.      Olivier Pilotte est votre chargé de TD. Son adresse courriel est comme suit : olivierpilotte@gmail.com

2.      L’adresse du site d’Olivier Pilotte est : sunens.uqac.ca/~opilotte

3.      Je donne cours ce mercredi 20 janvier 2010 au Local H0-1090, de 16h-à 17h. Le reste du TD se fera au local P3-6070

À partir de la semaine du 25 janvier 2010, les TD se feront désormais au Local P3-6070

4.       Étant donné le peu d’étudiants qui se sont présentés en classe, à cause du mauvais temps,

j’ai dû annuler le cours de ce lundi 25 janvier 2010.

5.      Il y a une séance de cours durant la première période du TD de ce mercredi  27 janvier 2010

          au local : H0-1090 (16h à 17h15).

 

6.      Comme convenu en cours, je viendrai faire un TD théorique ce mercredi 10 février

durant la deuxième partie du TD, soit de 17h30 à 19h.

 

Emploi de temps :

Lundi :            11:00 à 12:15 :                        Local: H0-1090  (cours).

Mardi :            08:00 à 09:15 :                        Local: H0-1090  (cours).

Mercredi:         16h à 18h45:                           Local : H0-1090  (TD/TP). Ce local sera changé incessamment.

                        Local pour les TD pratiques : P3-6070.

 

Notes de cours 

 

Notes de cours

Travaux dirigés

Devoirs pratiques

Syllabus: cosulter

Instructions utiles sur UNIX: consulter

 

Trucs de programmation : consulter

 Informations sur la fonction main : consulter

série 1:    consulter     

                  exospointeurs                                                          

 

Chapitre 0 :  Une vue d’ensemble sur le cours

 

série 2:    consulter

Exercices sur les fichiers : consulter     

Solutionnaire:   exo1   exo2   exo3

                                                             

 

Chapitre 1 : rappels du langage C

                       rappels sur les pointeurs en C

 

série 3: notations asymptotiques :  consulter

               exercices avec solutions :   consulter 

                                                         consulteraussi

                                                   

 

Chapitre 2 :  Une introduction on au langage C++

                        DeclarationDeTableauEnC++

 

                       LectureSurDestructeur

série 4 :   consulter  solutionnaire                                 

 

Chapitre 3 : Analyse des algorithmes

Quelques rappels utiles de mathématiques: consulter

                                                                              consulter aussi

 

série 5:   consulter; solutionnaire   consulter 

                                                      

 

Chapitre 4 :  listespilesetfiles 

                       STLC++                                     

 

série 6:   arbresAVL; solutionnaire

 

Chapitre 5 : les arbres                                                     

                      lesarbreendoc

                      InsertionAVL

 

série 7:  arbres généraux; solutionnaire                              

                  

Chapitre 6 : les arbres generaux

 

série 8:   algorithmes sur les graphes; solutionnaire           

 

 

Chapitre 7 : Les graphes                                                                      

                       Algorithme_Dijkstra_sur_un_exemple

série 9:   algorithmes de tri et de hachage; solutionnaire

Chapitre 8 :  Les algorithmes de tri

 

 

 

Chapitre 9 : Les tables de recherche

 

 

 

 

 

 

 

Programmation, Structures de données et Algorithmes (8SIF109)

 

Automne 2009

 

Résultats finaux : consulter

 

Résultats des examens de mi-session et fin de session, et des devoir 1, 2 et 3 : consulter

 

Le devoir 3 est maintenant disponible – voir le lien plus bas dans section devoirs pratiques.

 

Le devoir 2 est disponible – voir le lien plus bas dans section devoirs pratiques.

 

Comme convenu en classe, il y a cours le vendredi 27 novembre 2009 au local de TP/TD: P3-6050.

 

 

À propos de l’examen final

 

1.      L’examen final aura lieu le lundi 14 décembre de 9h à 12h.

2.      Le local est : P2-4140.

3.      La matière à réviser vous sera communiquée ultérieurement.

4.      L’examen va se dérouler à livre ouvert. Toutefois, seules mes notes de cours seront permises.

5.      L’examen comporte 6 exercices :

1.      exercice 1 (20pts) : 10 questions sur le cours (sur les files, arbres et les graphes).

2.      exercice 2 (10pts) : unesuite d’insertion dans un arbre AVL. 

3.      exercice 3 (10pts) défintion d’un B.arbre et suppression dans un B-arbre.

4.      exercice 4 (25) : 5 questions sur les arbres binaires (conception d’algorithmes et calcul de complexités temporelles).

5.      exercice 5 (20pts) : 3 questions sur l’algorithme de plus court chemin (algorithme de Djikstra et application).

6.      exercice 6 (15pts) : 3 questions sur les tables de hachage.

    

 

 

À propos de l’examen de mi-session

 

6.       L’examen de mi-session aura lieu le 9 octobre de 13h à 16h au local : P1-6090.

7.      La matière à réviser vous sera communiquée ultérieurement.

8.      L’examen va se dérouler à livre ouvert ; seules mes notes de cours sont permises.

9.      Il y aura 5 exercices :

 Exercice 1 (30pts): 10 questions sur le cours.

 Exercice 2 (15pts) : 3 petites questions sur l’analyse des algorithmes.

 Exercice 3(15pts) : comprendre un algorithme récursif et le rendre itératif.

             Exercice 4(15pts) : manipulation de classes.

             Exercice 5 (20pts) : manipulation de pointeurs sur une liste chaînée.

 

 

Informations  au fur et à mesure

 

1.      Le local du TD est bien le P1-6050 et non P1-5060 comme je l’ai écrit précédemment par inadvertance.

2.      L’examen de mi-session aura lieu le vendredi 9 octobre 2009 de 13h à 16h. Le local et la matière à réviser vous seront donnés ultérieurement.

3.      Comme convenu en classe, le cours du lundi 28 septembre va débuter à 10h30 et se terminer à 12h45.

  1. Consulter les correctifs apportés au Devoir 1.
  2. Je viendrai, à la séance de TD, ce vendredi, 23 octobre, de 13h-14h15 pour faire quelques exercices sur l’analyse des algorithmes.
  3. L’adresse courriel du chargé de TD (Olivier Pilotte) est comme suit : olivierpilotte@gmail.com
  4. L’adresse du site d’Olivier Pilotte est : sunens.uqac.ca/~opilotte

 

 

 

Emploi de temps :

Lundi :              11:00 à 12:15;  Local: H0-1110  (cours).

Mardi :             08:00 à 09:15;  Local: P1-6080  (cours).

Vendredi :        13h à 15h45;    Local : P3-6050  (TD/TP)                                                                              

 

Notes de cours 

 

Notes de cours

Travaux dirigés

Devoirs pratiques

Syllabus:  consulter

Rappels d’instructions sur UNIX: consulter

 

Trucs de programmation : consulter

série 1:    consulter     

                  exospointeurs                                                          

Devoir 1 :   consulter  

Exemple de constructeur : consulter

 

Chapitre 0 :  Une vue d’ensemble sur le cours

 

série 2:    consulter

Exercices sur les fichiers : consulter     

Solutionnaire:   exo1   exo2   exo3

                                                             

 

Chapitre 1 : rappels du langage C

                       rappels sur les pointeurs en C

 

série 3: notations asymptotiques :  consulter

               exercices avec solutions :   consulter 

                                                         consulteraussi

                                                   

 

Chapitre 2 :  Une introduction on au langage C++

                       DeclarationDeTableauEnC++

série 4 :   consulter  solutionnaire                                 

Devoir 2 : consulter

 

 

Chapitre 3 : Analyse des algorithmes

Quelques rappels utiles de mathématiques: consulter

                                                                              consulter aussi

 

série 5:   consulter; solutionnaire   consulter 

                                                      

 

Chapitre 4 :  listespilesetfiles

                       STLC++                                     

 

série 6:   arbresAVL; solutionnaire

 

Chapitre 5 : les arbres                                                     

                      lesarbreendoc

                      InsertionAVL

 

série 7:  arbres généraux; solutionnaire                              

Devoir 3: consulter                        

Chapitre 6 : les arbres generaux

 

série 8:   algorithmes sur les graphes; solutionnaire           

 

 

Chapitre 7 : Les graphes                                                                      

 

série 9:   algorithmes de tri et de hachage; solutionnaire

Devoir 4 : consulter

Le fichier test :

Chapitre 8 :  Les algorithmes de tri

 

 

 

Chapitre 9 : Les tables de recherche