Aller au contenu

Compétences et algorithmique

On peut distinguer quatre compétences à développer chez les élèves dans leur apprentissage de l’algorithmique :

  • Analyser un algorithme existant
    • (L) Lire un algorithme (simuler son exécution, décrire son fonctionnement)
    • (I) Interpréter son but
  • Réaliser un algorithme

    • (M) Modifier un algorithme existant pour obtenir un objectif fixé
    • (E) Écrire un algorithme en réponse à un problème donné

    « La création d’un nouveau contenu est une tâche cognitive exigeante souvent abordée dans l’enseignement sans que les étudiants n’aient préalablement appris à lire les contenus existants. Les étudiants adoptent alors fréquemment une approche empirique consistant à ajouter petit à petit de nouveaux éléments, faire un essai, corriger, refaire un essai, supprimer puis recommencer. Cette approche à tâtons peut s’avérer utile en présence de petits problèmes, mais est inadaptée aux difficultés de grande ampleur. »

    « Avant de créer eux-mêmes leurs propres contenus en cours d’informatique, il peut s’avérer très utile pour les étudiants de commencer par lire et analyser des contenus existants. Ils disposent alors d’une multitude d’exemples auxquels ils peuvent se référer.» 1

Dans chacun des exercices suivants, déterminer, pour chaque question, le type de compétence développée :

Exercice 1 (d’après bac S, Antilles-Guyane, juin 2015)"

On considère le programme Python suivant :

def boite_noire(a, b):
    r = a % b    # reste dans la division euclidienne de a par b
    while r != 0 :
        a = b 
        b = r 
        r = a % b 
    return b 

1- Quelle valeur renverrait l’exécution de l’instruction suivante : boite_noire(26,9)?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

2- Que représente la valeur renvoyée par la fonction boite_noire pourles valeurs a et b entrées comme arguments ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

3- Écrire une fonction premier_entre_eux(a, b), où a et b sont deux entiers non nuls, qui renvoie True si les nombres a et b sont premiers entre eux, et False sinon.

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

Exercice 2 (d’après bac S, Antilles-Guyane, juin 2012)

On considère le programme Python suivant :

from random import randint
def experience_aleatoire():
    compteur = 0
    for i in range(9):
        a = randint(1, 7) 
        if a > 5 :
            compteur = compteur + 1
    return compteur

On appelle \(X\) la variable aléatoire prenant la valeur renvoyée par l'exécution de la fonction experience_aleatoire().
Quelle loi suit la variable X ? Préciser ses paramètres.

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

Exercice 3 (niveau seconde)

On considère le programme Python suivant, où a et b désignent les longueurs des côtés d'un rectangle :

from math import sqrt   # fonction sqrt : racine carrée

def fonction_1(a, b):
    return a * b

def fonction_2(a, b):
    return sqrt(a * a + b * b)

1- Quelle valeur renverrait l'exécution de l'instruction suivante : fonction_1(8, 5) ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

2- Que représente la valeur renvoyée par la fonction fonction_1 pour le rectangle dont les longueurs des côtés sont les valeurs a et b entrées comme arguments ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

3- Que représente la valeur renvoyée par la fonction fonction_2 pour le rectangle dont les longueurs des côtés sont les valeurs a et b entrées comme arguments ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

4- Écrire une fonction perimetre(a, b), où a et b sont des nombres positifs, qui renvoie le périmètre du rectangle dont les longueurs des côtés sont les valeurs a et b entrées comme arguments.

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

Exercice 4 (niveau seconde)

On considère le programme Python suivant, où serie est une liste de valeurs numériques :

def mystere(serie):
    nb_elements = len(serie)
    somme = 0
    for element in serie :    # element prend successivement chaque valeur de serie
        somme = somme + element
    return somme / nb_elements 
1- Quelle valeur renverrait l'exécution de l'instruction suivante : mystere([12, 14, 8, 15, 16]) ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

2- Que représente la valeur renvoyée par la fonction mystere pour la liste de valeurs entrée en argument ?

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

3- Compléter la 4e ligne de la définition de la fonction plus_grand_element pour qu'elle renvoie le plus grand élément de la liste (non vide) de valeurs entrée en argument.

def plus_grand_element(serie):
    max = serie[0] 
    for element in serie :
        if ...             # ligne à compléter
            max = element
    return max
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

Exercice5 (niveau seconde/première)

Écrire un programme Python qui prend un entier n en argument et renvoie la somme des entiers de 1 à n.

  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme
  • (L) Lire un algorithme
  • (I) Interpréter son but
  • (M) Modifier un algorithme existant
  • (E) Écrire un algorithme

  1. Hartmann, W., Näf, M. et Reichert, R. (2012). Enseigner l’informatique. Paris ; New York : Springer. p. 139-14