Présentation aux tutrices et tuteurs

Author

Ludovic Deneuville

Objectifs

  • Développer une application en python
  • Découvrir l’architecture logicielle
  • Communiquer avec une base de données PostreSQL
  • Utiliser des webservices
  • Concevoir et Modéliser

Compétences visées

  • Travailler en groupe (organisation, suivi, git)
  • Modéliser une application complexe (UML)
  • Appliquer les principes de la POO
  • Valoriser son travail à l’écrit et à l’oral

Cours

Les cours de Compléments d’informatique vise à fournir aux élèves les outils pour mener à bien le projet informatique.

  • 6h des cours
  • 4 TP de 3h
    • dispensés par les tutrices / tuteurs
    • le sujet est fourni

Notions abordées en cours

  • Utilisation basique de Git
  • Rappels de POO
  • Décomposer une application en couches
  • Communiquer avec une base de données / une API
  • Tests unitaires
  • Documentation

Cadre général du projet

  • 1er semestre de 2A
  • Groupes imposés de 4 ou 5 élèves
  • Les groupes votent pour leurs sujets préférés
  • 4 groupes par tutrice / tuteur

2 phases

  • Analyse / Conception générale (sept)
    • 4 séances de 3h de suivi
    • la séance de mi-octobre permet de faire un retour aux équipes sur le dossier d’analyse
  • Implémentation (oct-nov)
    • 3 séances de 3h de suivi

Livrables

  • 5 octobre : Dossier d’analyse
  • 23 novembre : Rapport final + code
  • 12 décembre : Soutenance

Dossier d’analyse

Document d’une dizaine de pages contenant :

  • la compréhension du besoin
  • un planning (diagramme de Gantt)
  • des diagrammes UML (cas d’utilisation, classe…)

Soutenance

Les soutenances ont lieu début décembre.

Les élèves présentent leur projet à un jury composé de 3 personnes :

  • un président de jury
  • un enseignant de l’ENSAI
  • la tutrice / le tuteur

Notes

Livrable Correcteur Coef projet Coef cours
Dossier d’analyse Tutrice / Tuteur 1/3
Code Tutrice / Tuteur 1/3
Rapport final Jury 1/3
Soutenance Jury 1/3
Devoir sur table Enseignant 2/3

Le code du projet comptera pour un tiers de la note du cours de Compléments d’informatique.

Planning

gantt
    title Planning provisoire 2024
    dateFormat  YYYY-MM-DD
    axisFormat  %d %b
    tickInterval 1week
    
    section Cours
    CM                           :milestone, 2024-09-02,
    CM                           :milestone, 2024-09-09, 
    Examen                       :milestone, 2024-10-07,
    
    section TP
    TP1                          :milestone, 2024-09-06,
    TP2                          :milestone, 2024-09-13,
    TP3                          :milestone, 2024-09-20,
    TP4                          :milestone, 2024-09-27,
    
    section Projet
    Suivi 1                      :milestone, 2024-09-06,
    Suivi 2                      :milestone, 2024-09-13,
    Suivi 3                      :milestone, 2024-09-27,
    Suivi 4                      :milestone, 2024-10-11,
    3j immersion (Suivi 5 et 6)  :active,    2024-10-21, 3d
    Suivi 7                      :milestone, 2024-11-15,
    
    section Échéances
    WEI                          :crit,      2024-09-20, 3d
    Dossier Analyse              :milestone, 2024-10-05,
    Toussaint                    :crit,      2024-10-26, 2024-11-03
    Rapport final et Code        :milestone, 2024-11-23,
    Soutenance                   :milestone, 2024-12-12,
    
    %%Stats univariées retraités   :done,         2021-11-28, 3d

Dates

Date Topic
vendredi 6 septembre TP1 et Suivi 1
vendredi 13 septembre TP2 et Suivi 2
vendredi 20 septembre TP3
vendredi 27 septembre TP4 et Suivi 3
vendredi 11 octobre Suivi 4 (retour sur les dossiers d’analyse)
lun-mer 21-23 octobre 3 jours d’immersion (Suivi 5 et 6)
vendredi 15 novembre Suivi 7
jeudi 12 décembre Soutenance

Sujet

À vous de jouer pour trouver une bonne idée !

Éléments requis

  • Utilisation de la POO
  • Stockage en BDD (sans utiliser d’ORM type SQLAlchemy)
  • Utilisation et / ou Création d’un webservice
  • Pas d’interface graphique
    • pour les sujets n’impliquant pas de création de WS, InquirerPy sera utilisé comme IHM en mode console

Exemples de sujets

  • Application utile
    • données SNCF pour optimiser ses réductions
    • réduire l’impact carbone de la VOD
    • recherche de stage, de velib, de carburant moins cher, de bières
    • recommandation de produits meilleurs pour la santé
  • Autour des jeux ou de la musique
    • stats de jeux videos
    • Jeux de mots (Wordle)
    • convention de JDR
    • RAP analytics

Il est tout à fait possible de proposer un sujet plus exotique (⚠️ à ne pas trop faire peur aux élèves).

Anciens sujets

Liste des anciens sujets.

Template

### Titre

Tuteur / Tutrice : 

#### Présentation

contexte, objectifs, API utilisée, création d'une API et/ou d'un menu interactif ?

#### Fonctionnalités de base

- F1 : 
- F2 : 

#### Fonctionnalités optionnelles

- FO1 : 
- FO2 : 

#### Conseils / Outils ...

Résumé du travail de tutrice / tuteur

  • 4 x 3h de TP de compléments d’informatique
  • 7 x 3h de suivi de projet
  • Lire et noter les 4 dossiers d’analyse
  • Noter le code
  • Lire du rapport final, participer à la notation
  • Participer aux 4 soutenances

Votre rôle

  • Guider les élèves
  • Suivi des équipes (avancement, participation, bonne entente)
  • Maîtrise d’Ouvrage
  • Aide au débogage

Stack VM

  • Python 3.10
  • PostgreSQL (chaque élève a une BDD)
  • Git Bash
  • Visual Studio Code

Principaux Packages Python

Nom du package Très courte description
inquirerPy Créer des interfaces en ligne de commande interactives
fastapi Créer des webservices
psycopg2-binary Communiquer avec PostgreSQL
pytest Tests unitaires
python-dotenv Variables d’environnement à partir d’un fichier .env
requests Requêtes HTTP
uvicorn Serveur ASGI