gantt
title Provisional Schedule 2024
dateFormat YYYY-MM-DD
axisFormat %d %b
tickInterval 1week
section Lectures
Lecture :milestone, 2025-08-25,
Lecture :milestone, 2025-09-01,
Exam :milestone, 2025-09-28,
section Practical sessions
Lab 1 :milestone, 2025-08-28,
Lab 2 :milestone, 2025-09-04,
Lab 3 :milestone, 2025-09-11,
Lab 4 :milestone, 2025-09-18,
Lab 5 :milestone, 2025-09-25,
section Project
Mentoring 1 :milestone, 2025-08-28,
Mentoring 2 :milestone, 2025-09-04,
Mentoring 3 :milestone, 2025-09-11,
Mentoring 4 :milestone, 2025-09-25,
3-day immersion (Mentorings 5 and 6) :active, 2025-11-03, 3d
Mentoring 7 :milestone, 2025-11-13,
section Deadlines
WEI :crit, 2025-09-18, 3d
Analysis Document :milestone, 2025-09-17,
All Saints' break :crit, 2025-10-24, 7d
Final Report and Code :milestone, 2025-11-21,
Presentation :milestone, 2025-12-09,
IT project presentation
automatic translation of the ‘Présentation élèves’ page
Objectives
- Develop an application in Python
- Discover software architecture
- Communicate with a database and web services
- Design and Model (UML)
- Work as a team
A day in the life of a developer
- Concepts covered in lectures and practical sessions
- PostgreSQL OK, SQLite NO
An application
- Database
- Backend
- Frontend
- External API
Database:
- shared or individual
- init.sql and pop.sql files + reset_database
Backend: core of the application, to be carefully developed
Frontend: if needed, code not assessed
External API:
- Static or dynamic data? When to query?
- Beware of limitations
Working environment
You can code on:
- a datalab (recommended)
- the ENSAI VM
You can also code on your own machine, but you will be entirely responsible for managing the required installations.
Save your code with Git
- Use of AI
Schedule
| Date | Topic |
|---|---|
| Friday, August 28 | Lab 1 and Mentoring 1 |
| Friday, September 4 | Lab 2 and Mentoring 2 |
| Friday, September 11 | Lab 3 and Mentoring 3 |
| Friday, September 18 | Lab 4 |
| Friday, September 25 | Lab 5 and Mentoring 4 |
| Tue-Thu, November 3-5 | 3-day immersion (Mentorings 5-6) |
| Friday, November 20 | Mentoring 7 (video conference) |
| Wednesday, December 9 | Presentation |
| Date | Topic |
|---|---|
| EVERY Thursday | Weekly update |
| Thursday, September 17, 8:00 PM | Analysis Document |
| Saturday, November 21, 8:00 PM | Final Report and Code |
3-day immersion
- essential for making good progress on the project
- if used well -> 90% of the work completed
Weekly update: I’ll come back to this
💡 Get ahead in September
⚠️ Absences during project or practical sessions -> penalty
Let me know if there is a valid reason, otherwise I will use the attendance list
2 phases
Analysis / General Design (September)
- 4 × 3-hour Mentoring sessions
- end of September: feedback on the analysis document
Implementation (October - November)
- 3 × 3-hour Mentoring sessions
- You have 1 month as a team of 5. An STD student has 6 hours
If your analysis document is perfect but you have not started developing yet
💡 Advice:
- the most comfortable student starts a POC around September 20
- then presents the v0 application to the others
Proofread your reports!
Group work
- Avoid combining the roles of Project Manager and Tech Lead
- Team spirit
- Discussion channel
- Let me know as soon as possible if something is not going well
- Behave professionally
- Some teams will work better than others
- In professional life, you do not always work with your friends
- If you are skilled -> do not do everything yourself
- Inform the tutor and then the professor if there is a problem
There is no point in saying once the project is finished:
- I did everything
- another team member did nothing
Day 1
- Ask questions to the tutor
- Discuss among yourselves (who knows how to do what)
- Organize yourselves
- Be proactive and take initiative
- Take initiative
- Stand out
- Backend (and frontend?)
- Essential features
Mentoring
Weekly update MANDATORY
To be completed every week
- by Thursday evening at the latest
- by each member
- otherwise a penalty for the team
More details in the student guide.
- As in professional life
- Mandatory, otherwise a penalty
- Show the template
- Nothing to report: if you have done nothing
- Write down your questions (Think about the answers: Plan A, Plan B)
Make the most of each Mentoring session to prepare and ask questions
A meeting needs to be prepared.
Deliverables
Analysis Document
Your tutor has expressed a need:
- Explain how to address it
- Reformulate their request
- Use the appropriate UML diagrams
UML: Be careful not to overload it (validate with the tutor)
Macro-level Gantt
Code
- We expect quality code
- Documentation mandatory for every class, every method
- Unit tests required
- README in English
- Code in small increments
Follow Python development best practices:
- Class names in CamelCase
- Files in snake_case
- Meaningful variable and method names
- ⚠️ Methods that do not work because they call methods that do not work
Final Report
- Focus on interesting features
- Refer to your figures
- Proofread your work!
- 💡 Use Typst with Quarto
It is not necessarily a good idea to write more than 25 pages.
Individual grade
20-minute presentation:
- friendly but different jury members
- give your demo some personality
- Test beforehand, Introduce yourselves, Number your slides, Readable slides, introduction, conclusion
- No user management
To discuss with the tutor
- Methods to test (service, DAO?)
- Public / private visibility
- Use of mypy
Template
Almost…
- data, doc, src
- config files: logs, cov, pyproject, gitignore
- README: instructions for installing and running
- .vscode: VS Code setup
- CI: explain the principle
- Docker
Tools
-
- Git, Datalab, API, Markdown…
Git is mandatory -> penalties if there are no commits