• Aucun résultat trouvé

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