RSS cours - 1/1 Blog architecture (2) coding_gouter (2) cours (3) histoire (3) jeu (2) livre (2) mathematiques (3) notebook (2) programmation (8) python (2) scratch (3)


cours - 1/1

Syntaxe et grammaire en programmation

2015-10-06

Les élèves me disent parfois que l’ordinateur devrait pouvoir comprendre quand on oublie quelques éléments de syntaxe, en l’occurence celle du langage Python. Effectivement, plus rien ne marche lorsqu’on oublie un : à la fin d’une ligne

s = 0
for i in range(10)
    s += i**2

Dans ce cas là, il est vrai qu’on se doute qu’il manque un symbol :. La grammaire et l’orthographe sont aussi très strictes, même si on peut comprendre un texte sans accents, sa lecture est désagréable et il faut parfois un peu de contexte pour éviter les ambiguïtés.

article

Comment les aveugles rangent-ils leur chambre ?

2015-10-06

Lorsqu’on demande aux élèves s’ils ont compris, ils disent souvent oui. Lorsqu’on leur demande ce qu’ils ont compris, ils bafouillent souvent. Et quand on leur demande d’être plus précis, les phrases sont accompagnés de geste et de pronoms neutres. Il n’est pas toujours évident de traduire ce discours en un algorithme écrit dans un langage de programmation.

Imaginons maintenant que je suis aveugle et qu’il faut un surcroît d’indications pour que je parvienne à reproduire les calculs qu’on m’explique. Cela représente à peu près ce qu’il manque aux explications des élèves pour décrire fidèlement un algorithme.

La mémoire d’un ordinateur sert à retenir toutes ces informations dont on a besoin pour faire des calculs compliqués. Lorsque je fais des courses, je dois me souvenir de ce que tous mes placards contiennent pour ne pas acheter ce que j’ai déjà. Visiter mentalement sa maison, organiser cet espace invisible qu’est la mémoire, ce n’est pas si éloigné finalement.

article

La programmation avec les cartes

2015-09-05

J’avais décidé de reprendre quelques-uns des jeux développés pour les enfants lors de mon premier cours à l’ENSAE. On a passé un peu de temps à déployer un fil de laine au milieu de l’amphithéâtre pour illustrer un algortihme. On a joué avec des cartes. Il y eut quelques fou rires aussi.

Le travail lors des deux heures qui suivirent fut plus studieux mais j’ai repris les cartes pour expliquer quelques bouts de code utilisant les listes. Alors que j’avais insisté sur la distinction entre la position d’un élément d’une liste et sa valeur, les élèves tombaient sur cet exemple qui mélangeaient allègrement les deux

l = [ 4, 3, 0, 2, 1 ]
i = 0
while l[i] != 0 :
    i = l[i]
    print (i)  # que vaut l[i] à la fin ?

J’ai donc repris les cartes je disposai comme suit :

../_images/carte11.jpg

Il n’y avait pas de carte zéro dans mon jeu donc j’ai pris une image ronde qui la symbolise. Les cartes sont disposées en ligne, de la position 0 à la position 4 car en Python, la première case est la position 0. Pour connaître la valeur de l’élément du tableau, on retourne la carte. Le jeu est simple :

  • Pour obtenir l’élément i du tableau, on compte à partir du début à partir de 0 jusqu’à i.
  • Pour connaître l’élément du tableau, on retourne la carte.
../_images/carte21.jpg

Puis on suit l’algorithme, tant que la carte retournée n’est pas zéro (ou le bus dans notre cas), on à la position indiquée par la carte retournée donc 4 :

../_images/carte31.jpg

Puis carte 1 (soit la deuxième en partant de la gauche) :

../_images/carte41.jpg

Puis 3 :

../_images/carte51.jpg

Puis 2 :

../_images/carte61.jpg

Et on a trouvé.

Pour la petite note, cet algorithme sert à déterminer les cycles d’une permutation.

article


RSS cours - 1/1 2015-03 (1) 2015-04 (5) 2015-05 (1) 2015-06 (3) 2015-07 (1) 2015-08 (1) 2015-09 (1) 2015-10 (3) 2015-12 (1) 2016-01 (3) 2016-03 (2) 2016-04 (1) 2016-05 (4) 2016-06 (1) 2016-07 (2) 2016-08 (4) 2016-09 (1) 2016-10 (2) 2017-02 (1) 2017-04 (1) 2017-05 (1) 2017-07 (1) 2017-08 (1)