Les attendus de la soutenance et la grille d'évaluation :
Le bageunaudier est un jeu solitaire qui se joue sur une tablette divisée en 5 cases ou plus.
La règle est simple : à chaque coup les seules cases jouables (c'est à dire où l'on peut mettre ou enlever un pion) sont la première case ou la case qui suit la première case occupée.
Le but est de remplir chaque case par un pion.
Une façon équivalente de décrire le jeu :
- A tout moment, chaque case contient au plus un jeton
- Au début de la partie toutes les cases sont vides
- A tout moment on peut vider ou remplir la case 1
- Si la case 1 est remplie, alors on peut remplir ou vider la case 2
- Pour tout 3 ≤ k ≤ 5, on peut remplir ou vider la case k lorsque les k-2 premières cases sont vides et que la case k-1 est remplie.
L'objectif de ce projet est d'implémenter ce jeu avec le module Pygame.
Vous commencerez à vous familiariser avec pygame à l'aide du tutoriel suivant :
Partagez vous le travail. L'un-e d'entre vous peut commencer à implémenter le jeu pendant l'autre cherche à construire une fonction qui donnera la solution à cette énigme.
Voici l'algorithme pour trouver la solution avec n cases (dans notre cas n=5) :
Pour poser n jetons sur le bageunaudier :
- si n=0, ne rien faire
- si n=1, on place un jeton dans la première case
- si n ≥ 2 , on pose des jetons dans les n-1 premières cases, on vide les n-2 premières cases, on pose un jeton dans la case n, on pose des jetons dans les n-2 premières cases.
Pour vider les n premières cases :
- si n= 0, ne rien faire
- si n=1, on vide la première case
- si n ≥ 2 , on vide les n-2 premières cases, on vide la case n, on pose un jeton dans les n-2 premières cases, on vide les n-1 premières cases.
Une fois l'implémentation terminée, vous rajouterez un bouton reset permettant de réinitialiser le jeu et un bouton "undo" permettant de revenir un coup en arrière
Pour la solution, vous pouvez soit fournir un programme séparé affichant les coups à jouer (solution facile) soit l'implémenter dans le jeu par l'appuie d'une touche (solution plus difficile).
Voici un exemple de ce à quoi pourrait ressembler votre interface :
Quel est le point commun entre un chou romanesco, les côtes terrestres, une feuille de fougère ou bien encore un flocon de neige ?
Tous ces éléments sont de nature fractale, c’est-à-dire qu’il possède une propriété d’auto-similarité quelle que soit
l’échelle à laquelle on les observe. Autrement dit, le tout est semblable à l’une de ses parties. C’est en reprenant les
travaux de Gaston Julia et Pierre Fatou que Benoît Mandelbrot a introduit et définit le terme « fractale » en 1980.
Grâce aux moyens informatiques dont il disposait, il a pu obtenir une représentation « visuelle » de ces objets
mathématiques que ces prédécesseurs ne pouvaient seulement qu’imaginer.
Votre objectif sera de produire un programme python pour dessiner certaines de ces courbes.
Votre programme devra :
- proposer à l'utilisateur de choisir parmi un choix de fractales
- dessiner la fractale choisie
- certains réglages pourront être choisis par l'utilisateur (couleur, vitesse de tracé, taile ... )
Commencez par vous familiariser avec le module turtle :
Nom de la fractale | feuille de route |
---|---|
Le flocon de Koch | |
La courbe de Sierpinski | |
Une variante de la courbe de Peano | |
Un arbre fractale |
Pour assouvir votre curiosité, vous pouvez :
Dans une université, chaque élève de première année doit suivre obligatoirement une option et une seule.
De plus une même option est enseignée par un seul professeur, et un professeur peut enseigner plusieurs options.
En revanche il peut y avoir plusieurs groupes d’options de la même matière.
Vous êtes membre du service informatique de cette université et on vous met à disposition une Base de Données se nommant BDD_projet.db dont le MCD est ci-dessous :
Vous commencerez par établir le MLD de cette base de données.
Il vous faudra ensuite créer cette base de donnée avec le logiciel DB Brownser.
Puis vous mettrez au point une platefrome en ligne qui permet de gérer cette base de données. Plus précisément, à l’ouverture de cette plateforme en ligne, on accèdera à une page « menu » qui nous permettra d’obtenir :
- Une page web permettant d’enregistrer dans la base le nom et le prénom d’un nouveau professeur (Id_prof devra être généré automatiquement = 2 premières lettres du nom, puis les deux premières lettre du prénom).
- Une page web permettant d’enregistrer dans la base l’identifiant, la matière et l’identifiant du professeur d’une nouvelle option.
- Une page web permettant d’enregistrer dans la base le nom, le prénom, la date de naissance et l’identifiant de l’option d’un nouvel élève (Id_eleve devra être généré automatiquement = 2 premières lettres du nom, puis celles du prénom, et le mois et l’année de naissance).
- Une page web permettant de supprimer un élève (en cas de départ en cours d’année scolaire).
- Une page web permettant de mettre à jour le nom et le prénom d’un professeur (en cas de changement de professeur en cours d’année scolaire), sans changer son identifiant.
- Une page web permettant d’obtenir la liste des élèves suivant une option spécifique (à partir de son Id).
- Une page web permettant d’obtenir la liste des élèves suivant une matière donnée en option.
- Une page web permettant d’obtenir le nom et le prénom du professeur de l’option d’un élève (à partir de son Id).
Voici un exemple de ce à quoi pourrait ressembler votre interface :
L'objectif de ce projet est de créer une application graphique permettant de visualiser les informations disponibles sur la station spaciale internationale (ISS) ainsi que sur les astéroides s'approchant de la Terre.
Avant de commencer, commencez par relire le jupyter sur les APIs.
La station spatiale internationale (ISS) orbite autour de la Terre depuis la fin des années 1990 à une altitude comprise entre 330 km et 420 km. La NASA communique la position de la station en temps réel à travers l'API Open Notify ISS now.
Pour interroger l'API, il suffit de se rendre à l'adresse http://api.open-notify.org/iss-now.json. Les données obtenues sont au format JSON et ont la forme d'un dictionnaire.
Votre application devra permettre par exemple
Near Earth Object Web Service (NEOWS) https://api.nasa.gov/ est une API par l'intermédiaire de laquelle la NASA met à disposition des données sur les astéroïdes passant à proximité de la Terre.
Cette nécessite de disposer d'une clé d'API, qui permet d'identifier le programme consommateur et éventuellement de limiter le nombre de requêtes autorisées.
La clé de démonstration DEMO_KEY est fournie par la NASA pour tester l'API. Le nombre de requêtes est néanmoins limité à 30 par heure et par adresse IP et à 50 par jour et par adresse IP. Vous pouvez vous inscrire pour obtenir une clé gratuite personnelle.
Voici un exemple de requête à utiliser : https://api.nasa.gov/neo/rest/v1/feed?start_date=2021-08-01&end_date=2021-08-01&api_key=DEMO_KEY
Votre application devra permettre par exemple
Pour réaliser l'interface graphique, nous allons utiliser le module Tkinter de Python.
Vous trouverez sur le Web de nombreux Tutoriels. Pour débuter je vous conseil de lire et de tester les deux tutos suivants :https://python.doctor/page-tkinter-interface-graphique-python-tutoriel et https://www.cours-gratuit.com/tutoriel-python/tutoriel-python-programmer-une-interface-graphique-avec-tkinter-partie-1.
Pour générer une carte interactive, vous utiliserez le modul folium. Le tutoriel https://sti2d-sin-isn.blogspot.com/2020/02/utilisation-basique-de-folium-sous.html vous indique les instructions de bases à connaitre.
Voici un exemple de ce à quoi pourrait ressembler votre interface :
Il s'agit d(un projet un peu particulier puisqu'il émane d'une demande du département EPS du lycée.
L'objectif est de créer une interface graphique permettant d'enregistrer les temps des élèves participants à une course à l'aide des code-barres ou des QRcode collés sur leurs dossards.
Si vous choisissez de réaliser ce projet, il est important de vous rapprocher de l'équipe d'EPS afin d'identifier leurs besoins pour une telle application.
Pour réaliser l'interface graphique, nous allons utiliser le module Tkinter de Python.
Vous trouverez sur le Web de nombreux Tutoriels. Pour débuter je vous conseil de lire et de tester les deux tutos suivants :
https://python.doctor/page-tkinter-interface-graphique-python-tutoriel
et https://www.cours-gratuit.com/tutoriel-python/tutoriel-python-programmer-une-interface-graphique-avec-tkinter-partie-1.
Quelques aides :
Voici un exemple de ce à quoi pourrait ressembler votre interface :