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.


Fractale de MandelBrot

Première et Terminale

Terminale ou fin de Première.

« Toujours, codez comme si le gars qui finit par maintenir votre code sera un psychopathe violent qui
sait où vous vivez. »

John Woods

 

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

Vidéo de présentation du projet Voronoï aux trophées NSI 2022.

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.

Vidéo de présentation du projet Générateur PolYChRomE aux trophées NSI 2023.

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

Vidéo de présentation des projets Wator et du jeu de la vie de John Conway. Attention : chiptune 😉

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: