Chaque optique identifiée à l’aide du cadre de référence de questionnement didactique est utilisée pour la dérivation d’attributs concrets et observables des langages de programmation.
Les différentes stratégies de raisonnement utilisées lors de la dérivation des attributs sont identifiées dans le tableau suivant. Il est important de noter que lorsque la stratégie réfère à l’acte d’inventorisation, il s’agit d’un inventaire fait par le chercheur et est donc subjectif et non exhaustif.
67 Tableau 5 Stratégies de dérivation des attributs
Optiques considérées Stratégies de dérivation des attributs Attributs
La structure générale d’un programme
Inventorisation des attributs relatifs à la structure générale d'un programme
Fonction principale (point d'entrée unique)
Point(s) de sortie unique ou multiples La non-utilisation des variables globales
Les structures de contrôle Inventorisation des structures de contrôle utilisées en programmation
Support pour les séquences
Support pour les alternatives: if, else, else if, switch-case
Support des répétitives: while, for, do-while, for each
Les variables Inventorisation des options à considérer lors de la déclaration des variables
Syntaxe de déclaration des variables Contraintes relatives au nommage des variables
Typage statique (types acquis à la compilation)
versus
Typage dynamique (types acquis à l'exécution)
68 Inventorisation des options à considérer lors de
l'utilisation des variables
Fortement typé (peu de conversions ou transtypages implicites)
versus
Faiblement typé (beaucoup de conversions et transtypages implicites)
Les modules Inventorisation des types de modules
Support pour les procédures ou fonctions sans valeur de retour Support pour les fonctions Les paramètres Inventorisation des types de paramètres
Support pour paramètres par valeur Support pour paramètres par référence
Les variables tableaux
Inventorisation des types de tableaux
Support pour tableaux unidimensionnels Support pour tableaux multidimensionnels
Inventorisation des contraintes d'utilisation
Indices de tableau débutant à zéro, un ou au choix.
Contraintes associées au passage des tableaux en paramètre
Écriture et modification du code selon (Gouvernement du Québec,
2013)
Inventorisation des fonctionnalités importantes d'un éditeur
Éditeur intégré à l'environnement de développement
Éditeur : support pour copier-coller Éditeur : support pour la coloration syntaxique
Éditeur : support pour le complètement automatique
69 Débogage du code
selon (Gouvernement du Québec, 2015)
Inventorisation des fonctionnalités importantes d'un débogueur
Débogueur intégré à
l'environnement de développement Débogueur : point d'arrêt sur
instruction
Débogueur : l'inspection des variables
Débogueur : exécution contrôlée supportant le pas-à-pas et le pas-à- pas approfondi
Programmation en équipe
Inventorisation des fonctionnalités importantes d'un environnement de
développement approprié pour la programmation en équipe
Environnement de développement intégré supportant la mise en commun de code source
Environnement de développement intégré supportant la communication publique et privée entre les étudiants et étudiantes, et avec l'enseignant Programmation en binôme ou en
aquarium
Inventorisation des fonctionnalités importantes d'un éditeur approprié pour la programmation en binôme ou en aquarium
Éditeur : support pour l'affichage des numéros de ligne
Analyser la situation Inventorisation des fonctionnalités du langage de programmation en lien avec la production
d'algorithmes en pseudocode.
Aucun
Mettre au point l'algorithme Aucun
Valider l'algorithme Aucun
La préparation de l’environnement de programmation
Inventorisation des fonctionnalités importantes d'un environnement de
programmation
Existence de raccourcis clavier Support pour l'utilisation des mnémoniques clavier
Support pour la personnalisation des raccourcis clavier
70 Support pour la personnalisation de
la police de caractère utilisée dans l'éditeur
Support pour la personnalisation des couleurs du texte et du fond d'écran dans l'éditeur
Surbrillance de la syntaxe adaptée au langage de programmation
L’adaptation de l’algorithme aux contraintes du langage de
programmation
Inventorisation des contraintes imposées par le langage de programmation pouvant influencer
l'adaptation d'algorithmes écrits en pseudocode.
Système de types de données le plus naturel possible
Opérations d'entrées et sorties simplifiées
Support pour toutes les structures de contrôle utilisées en algorithmique Syntaxe confortable se rapprochant du langage naturel
Règles sémantiques et paradigmes appropriés pour un cours introductif. La traduction de l’algorithme dans
le langage de programmation
Inventorisation des contraintes imposées par le langage de programmation pouvant influencer
l'adaptation d'algorithmes écrits en pseudocode.
Aucun
La compilation du programme Inventorisation des fonctionnalités importantes d'un compilateur
Compilation automatique lors de l'exécution
Repérage facile des erreurs de compilation
71 Avertissements pertinents ou
configurables
La validation du programme
Inventorisation des fonctionnalités importantes d'un environnement de développement pour la validation du
programme
Support intégré pour les tests unitaires
Langue maternelle de la programmeuse ou du
programmeur
Inventorisation des attributs d'un langage de programmation relatif à la langue maternelle
Langue utilisée pour les mots-clés du langage de programmation
Patrimoine intellectuel en mathématiques de la programmeuse ou du
programmeur
Inventorisation des attributs d'un langage de programmation relatif au bagage
mathématique
Opérateurs mathématiques familiers
Erreurs dont l’origine dépend de la compréhension qu’ils ont du
modèle d’exécution d’un programme
Inventorisation des fonctionnalités permettant d'améliorer la compréhension qu'ils ont du
modèle d'exécution d'un programme
Historique des valeurs de variables Surbrillance des variables lors du changement de valeur
Pile des appels facile d'approche Valeurs de retour des fonctions présentées dans l'outil d'inspection des variables
Distance cognitive entre la représentation naturelle qu’ils ont
d’un concept et la représentation du langage
La distance cognitive est fonction du
72 La connaissance qu'a l'enseignante
ou enseignant du langage de programmation
La connaissance est mesurée qualitativement par le niveau de compétence.
Niveau de compétence de
l'enseignante ou enseignant dans ce langage
Production de notes de cours Inventorisation des fonctionnalités nécessaires à la production de notes de cours
Langage facilement incorporable dans un document Word, OpenOffice ou LaTeX
Création de programmes exemples Inventorisation des fonctionnalités nécessaires pour la création de programmes exemples
Code des exemples est autosuffisant (isolé, sans dépendances)
Support pour les commentaires Support pour les commentaires multilignes
Création d'exercices Inventorisation des fonctionnalités nécessaires pour la création d'exercices
L'environnement de développement permet le contrôle des entrées à l'aide de fichiers de donnée pour permettre l'autocorrection.
Création d'évaluations Inventorisation des fonctionnalités nécessaires pour la création d'évaluations
L'environnement de développement permet le contrôle des entrées et la validation des sorties à l'aide de fichiers de donnée pour permettre la correction automatisée.
Paradigme de programmation Sélection tirée directement de (Kelleher et Pausch, 2005) Procédurale (structurée) Fonctionnelle Orientée-objet Événementielle Automate à états
73 Construits supportés Sélection tirée directement de (Kelleher et
Pausch, 2005)
Alternative (if, switch)
Répétitive (for, while, for each, do…while)
Variables Paramètres
Procédures, fonctions et/ou méthodes
Types personnalisés Pré et post conditions
Représentation du code Sélection tirée directement de (Kelleher et Pausch, 2005) Texte Images Organigramme Animations Formulaires Automate fini Objets physiques
Construction du programme Sélection tirée directement de (Kelleher et Pausch, 2005)
Entrée de code
Assemblage d'objets graphiques Démonstration d'actions
Sélection et remplissage de formulaires
Assemblage d'objets physiques Supports améliorant la
compréhension de l'exécution du programme
Sélection tirée directement de (Kelleher et Pausch, 2005)
Débogage
Interprétation physique Modifications en direct lors de l'exécution
74 Génération d'exemples
La prévention des erreurs de syntaxe
Sélection tirée directement de (Kelleher et Pausch, 2005)
Potentialité des formes physiques Sélection à partir des options valides seulement
Édition dirigée par la syntaxe Déposer seulement aux endroits valides
Meilleurs messages d'erreurs de syntaxe
Accessibilité du langage Sélection tirée directement de (Kelleher et Pausch, 2005)
Limitation du domaine d'application Sélection de mots-clés centrés sur l'utilisateur
Retirer la ponctuation superflue Utilisation du langage naturel Élimination des redondances Communications Sélection tirée directement de
(Kelleher et Pausch, 2005)
Côte à côte
Manipulation ensemble par réseau Partage des résultats par réseau Choix des tâches Sélection tirée directement de
(Kelleher et Pausch, 2005)
Divertissantes Utiles
Éducatives Site Web accessible avec les
principaux navigateurs modernes qui respectent les standards
établis
Inventorisation des fonctionnalités standardisées pour les environnements web
HTML et CSS
N'utilisant pas les technologies propriétaires
75 Fourni dans un standard reconnu
lisible sur au moins l'un des principaux dispositifs et systèmes
d'exploitation actuels
Inventorisation des plateformes logicielles et matérielles
Disponible Windows, Linux ou MacOS
Disponible sur PC ou Mac Disponible en version web
Ne présente aucune erreur structurelle
Inventorisation des erreurs structurelles pouvant possiblement affecter la
programmation
Aucun bogue flagrant
Les menus provoquent tous une opération
Aucune erreur structurelle dans la documentation
Donne des indications techniques adaptées à la clientèle concernant l'utilisation et le fonctionnement
Inventorisation des indications techniques relatives à la programmation
Messages d'erreur courts
Messages d'erreur compréhensibles Système de complétion automatique pour le code source
Donne accès à une fonction "Aide", dans le matériel et en
ligne, en cas de problème
Inventorisation des fonctionnalités nécessaires pour la fonction d'aide
Aide contextuelle disponible Index des rubriques d'aide
Outil de recherche dans les rubriques d'aide
Aide disponible en ligne
Aide disponible hors ligne (sans connexion internet)
L’interface propose des éléments facilitant la lisibilité du matériel
affiché à l’écran
Inventorisation des fonctionnalités permettant d'améliorer la lisibilité du matériel affiché à
l'écran
Choix de la police de caractère et de sa taille
Choix des couleurs Permet le zoom
76 Inventorisation des caractéristiques rendant la
navigation intuitive
Interface réutilisant des paradigmes établis
Appropriation facile par l'utilisateur des opérations du logiciel
Vision béhavioriste de l'apprentissage
Adéquation des types d'activités pédagogiques favorisées et de la vision de l’apprentissage
Facilitant les exercices pratiques et les examens théoriques
Vision cognitiviste de l'apprentissage
Adéquation des types d'activités pédagogiques