Projets
Choisissez ou proposez votre projet [« Ada & Zangeman » – Illustration David Revoy CC BY]
Projets et mini-projets de programmation
Votre code est placé sous licence GPL v3+. Il sera factorisé au maximum, en ayant réfléchi à l’utilisation des paramètres et des types de données utilisés.
Remplissez rigoureusement le journal de bord afin d’indiquer les avancées, les difficultés rencontrées et le rôle de chacun.
Différents paradigmes de programmation peuvent bien sûr être utilisés.
Vous respecterez la PEP 8 pour écrire du code lisible.
Première et Terminale
- Produire une image avec le module Turtle : voir le TP premiers pas : mini-projet (paragraphe 0.6). Vous trouverez quelques éléments, notamment pour réaliser un fond dégradé, sur nsi.xyz , sous réserve de les avoir bien intégrés.
- ODD Even Draw Rules : OEDR. Tracé d’une fractale avec les mots de Fibonacci.
- Tkinter (Première)
Complément sur Tkinter (Document de maths-info-lycee.fr) - Pavage du plan et diagramme de Voronoi : Diagramme de Voronoi -avec Tkinter.
[Complément sur les diagrammes de Voronoï]. - Générateur polychrome, adapté du TP tkinter.
- Etude et premier pas de création d’un jeu avec Pyxel par Nuit du code.
Autre tutoriel détaillé sur le site de F.Lallemand . - Un jeu : TRON (version Démo Atari ST, 1994). Jeu inspiré du film (1982) éponyme, ici dans sa version « reboot » en 2011 où l’on comprend bien le principe de couper la ligne de course de l’autre joueur.
Liens Youtube : utiliser Freetube ou Ublock Origin + Firefox.
Terminale ou fin de Première.
- Chat & Souris: Chat_Souris. Il vous est demandé d’améliorer ce petit projet aux abords assez simples :
– Visuel
– Règles du jeu - Fractales : Ensembles de MandelBrot et de Julia-avec Tkinter.
- Systèmes de Lindenmayer : L-système
- Initiation à Tkinter:
Tkinter (Adapté Terminale NSI)
Complément sur Tkinter (Document de maths-info-lycee.fr) - Automate de Conway (Arte.tv) : une version du jeu de la vie -avec Tkinter. Voir la vidéo d’Arte.tv Voyage au pays des maths-Le jeu de la vie. Vers 4’40, on y trouve les régles du jeu.
- WATOR avec Tkinter.
« Toujours, codez comme si le gars qui finit par maintenir votre code sera un psychopathe violent qui
John Woods
sait où vous vivez. »
Echéancier à respecter:
- Point d’étape 1 : Présentation d’une première version du code avec des tests.
- Point d’étape 2 : Correction des bugs, finalisation du code et des tests.
- Point d’étape 3 : Rédaction de la documentation. Exemples d’utilisation.
« N’importe quel idiot peut écrire du code qu’un ordinateur peut comprendre. Les bons
programmeurs écrivent du code que les humains peuvent comprendre. » – Martin Fowler
Projets et mini-projets matériel:
- Installation d’un OS libre et d’un serveur LAMP sur Raspberry Pi 4.
- Projet Miku : Raspberry, synthèse vocale et IA conversationnelle.
- Pêche aux oeufs: SenseHat et Raspberry
- NodeRed: création d’une page web associée à une station météo.
« Je ne suis pas un excellent programmeur. Je suis juste un bon programmeur avec d’excellentes habitudes. » – Kent Beck
Deux exemples de projets pour l’année de première ou de terminale:
La vidéo ci-dessous présente deux réalisations: un système proie-prédateur et le célèbre jeu de la vie, programmés en Python, avec une interface graphique Tkinter.
Note:
Ces scripts sont lancés sur un système d’exploitation GNU/Linux, le bureau est baptisé MATE. Compiz gère les bureaux 3D.
L’interpréteur Python Spyder est lancé en ligne de commande, ou terminal que nous étudierons en classe. On peut voir les processus au cours de la video lancés avec la commande top.
Les musiques sont jouées dans le script à l’aide du module Pygame.
Jeu de la vie et système proie/prédateur
Projets présentés
Dans l’ordre d’apparition:
Wator
Dans une mer torique, c’est à dire où les extrémités se rejoignent, vivent des thons et des requins, chaque espèce suit ses propres règles de vie et de reproduction. A chaque vague poisson et requin se déplacent, si un requin rencontre un thon, il le dévore. Et les thons peuvent se reproduire !
Jeu de la vie
Ce n’est un jeu que sur le choix de la configuration de départ, par exemple trouver une configuration stable, avec cycle, etc. Il admet les règles de vie suivantes pour chaque cellule:
Cellule morte
– Si, à l’instant t, il est dans l’état mort (représenté par la couleur blanche), alors le microcalculateur examine ses 8 voisins ; si 3 exactement sont vivants, il passe dans l’état vivant à l’instant t +1 ; sinon, il reste dans l’état mort.
Cellule vivante
– Si, à l’instant t, il est dans l’état vivant (représenté par la couleur noire), alors le microcalculateur examine ses 8 voisins ; si 2 ou 3 sont dans l’état vivant, le calculateur reste dans l’état vivant à l’instant t+1 ; sinon, il meurt. En résumé : « Naissance si 3 voisins vivants, survie si 2 ou 3 ».
Toutes les naissances et toutes les morts ont lieu en même temps au cours d’une génération.
John von neumann posa les bases des automates cellulaires, et John Conway imagina ce « jeu » vers 1970.
Projets hors NSI finalisés:
- CloudBox: https://maths-code.fr/cours/projets-equipe-the-cloudbox/
- Verdir Carnot: https://maths-code.fr/cours/verdir-carnot/