Cartes Java

    • Préface
      • Introduction
          • 1.1. Outil de validation
            • 1.2. Langages et notations utilisées
              • 1.3. Visualisations avec des cartes à jouer
                • 2.1. Objets
                  • 2.2. Tableaux d'objets
                    • 2.3. Graphes d'objets
                      • 3.1. Performance Vs efficacité
                        • 3.2. Efficacité en temps
                          • 3.3. Efficacité en espace
                            • 4.1. Liste naïve
                              • 4.2. Liste par tableau
                                • 4.3. Liste chaînée simple
                                  • 4.4. Liste chaînée double
                                    • 5.1. Arbre générique
                                    • 5.2. Arbre binaire
                                    • 6.1. Mappage naïf
                                      • 6.2. Mappage par hachage
                                        • 6.3. Mappage avec arbre
                                        • Conclusion
                                        • Bibliographie
                                            • Annexe 1: la notation grand O
                                              • Annexe 2: accéder aux exemples
                                                • Annexe 3: programmer un nouvel exemple
                                                  • Annexe 4: suggérer une modification à ce manuel
                                                      • Procédures déplacer/décaler
                                                        • Modéliser la suite de Fibonacci
                                                          • Liste par tableau
                                                            • Arbre binaire
                                                              • Bilan juin 2022
                                                              • Bilan octobre 2022
                                                            Bilan octobre 2022
                                                            • Bilan octobre 2022
                                                              • Avancement actuel
                                                              • Ressources trouvées par Valérie Jacques
                                                              • Pour finaliser le projet
                                                              • Impressions et réflexions
                                                                • Ce qui fonctionne bien
                                                                • Ce qui reste à peaufiner
                                                                • Trois « intuitions de programmeur » à mieux enseigner
                                                              • Recommandations pour le suivi de projet

                                                            Bilan octobre 2022 #

                                                            Avancement actuel #

                                                            Brouillons sur codelescartes.ca :

                                                            • Présentation de l’approche.
                                                            • Comment modifier ce manuel.

                                                            Matériel de mon cours 3C6 développé pour ce projet et qu’il reste à inclure dans le manuel codelescartes.ca :

                                                            • Procédure pour déplacer/décaler des cartes.
                                                            • Modéliser des cartes.
                                                              • Graphe d’objets.
                                                            • Récursivité.
                                                              • Modélisation de la séquence de Fibonacci.

                                                            Matériel qui existait déjà pour mon cours 3C6 et qu’il reste à inclure dans le manuel codelescartes.ca :

                                                            • Structures de données en Java
                                                            • Structures de données en JSON

                                                            Ressources trouvées par Valérie Jacques #

                                                            Les ressources ci-dessous pourront servir d’inspiration pour le manuel :

                                                            • Algorithms and Data Structures With Application to Graphics and Geometry (2011) de Jurg Nievergelt et Klaus Hinrichs
                                                            • Data Structures : {fundamental tools} (revisé en 2020) de Alfred V. Aho, Jeffrey D. Ullman et al. [Wikibooks]
                                                            • Introduction to Programming Using Java (8 éd., 2022) de David J. Eck
                                                            • Java, Java, Java : Object-Oriented Problem Solving (2017) de Ralph Morelli et Ralph Walde
                                                            • Programming Fundamentals : A Modular Structured Approach (2e éd., 2018) de Kenneth Leroy Busbee et Dave Braunschweig
                                                            • Think Java : How to Think Like a Computer Scientist (2e éd., 2020) de Chris Mayfield et Allen Downey

                                                            Pour l’instant, il n’est pas prévu de traduire des sections des ressources ci-haut dans le but des intégrer au présent manuel.

                                                            Pour finaliser le projet #

                                                            1. L’objectif pour février 2023 est de rédiger 25% du manuel initialement prévu, soit environ 50 pages.

                                                            2. L’objectif demeure réaliste :

                                                              • Le matériel créé pour ce projet compte déjà environs 20 pages.

                                                              • Le matériel que j’ai déjà compte pour un autre 20 pages.

                                                            3. À noter que cette portion du manuel risque d’être partiellement réécrite puisque l’approche a encore besoin d’être peaufinée.

                                                            Impressions et réflexions #

                                                            Ce qui fonctionne bien #

                                                            1. C’est très agréable d’utiliser les cartes surdimensionnées pour expliquer une procédure au tableau blanc :

                                                              Crédit photo : Mikael Tardif

                                                            2. C’est aussi très agréable de faire des séances de théorie 100% au tableau blanc, sans utiliser le projecteur.

                                                            3. Les étudiant·e·s semblent apprécier l’utilisation de cartes à jouer et adhérent bien à l’idée de faire des entrevues formatives :

                                                              • Durant l’entrevue formative, l’étudiant.e démontre sa compréhension de la théorie avec des cartes ou en dessinant un schéma sur papier
                                                            4. Les étudiant·e·s semblent beaucoup apprécier l’outil de validation, en particulier le fait que l’outil génère des visualisations à partir de leur code. P. ex. :

                                                              cartes = new MaCarte[] {new MaCarte(1, Sorte.CARREAU),
                                                                                      null,
                                                                                      new MaCarte(1, Sorte.COEUR)};
                                                              
                                                              memoireA = null;
                                                              memoireB = new MaCarte(1, Sorte.TREFLE);
                                                              i = 1;
                                                              aDeplacer = 2;
                                                              

                                                            Ce qui reste à peaufiner #

                                                            1. Tout ! L’approche a besoin de « vivre un peu ». P. ex. :

                                                              • Plusieurs étudiant·e·s ont pris du temps à comprendre que l’outil de validation génère des visualisations à partir de leur code. Il faudra trouver des façons de présenter cet aspect plus directement (d’autant plus que c’est un aspect très apprécié une fois découvert !).

                                                              • Les étudiant·e·s ont trouvé facile de trier des cartes, mais plus difficile de traduire en code la procédure. Je pense que je devrais fournir plus d’exemples plus rapidement afin de pratiquer cette traduction.

                                                            2. Malheureusement, pour l’instant, créer un nouvel exemple de visualisation est difficile et long. Je dois écrire beaucoup de code pour créer les visualisations et ces dernières doivent quand même être capturées à la main avec un outil de capture d’écran. Certains graphes d’objets doivent aussi être retravaillés à la main. P. ex. le graphe ci-dessous a été retravaillé pour y inclure la variable nouvelleTete :

                                                            Trois « intuitions de programmeur » à mieux enseigner #

                                                            1. Construire et imaginer un graphe d’objets.

                                                            2. Utiliser une variable de type « curseur » pour pointer sur différents objets d’un graphe d’objets durant l’exécution du programme.

                                                            3. Utiliser des appels récursifs pour construire un graphe d’objet.

                                                            Recommandations pour le suivi de projet #



                                                            FabriqueREL
                                                            Creative Commons License
                                                            Modifier cette page Edit
                                                            Collège Montmorency
                                                            • Bilan octobre 2022
                                                              • Avancement actuel
                                                              • Ressources trouvées par Valérie Jacques
                                                              • Pour finaliser le projet
                                                              • Impressions et réflexions
                                                                • Ce qui fonctionne bien
                                                                • Ce qui reste à peaufiner
                                                                • Trois « intuitions de programmeur » à mieux enseigner
                                                              • Recommandations pour le suivi de projet