The project consists of developing a small but complete Python application that combines the main concepts introduced during the course.
Projects are designed to be completed in approximately 15–20 days. The standard scope refers to groups of 2 students, with reduced versions for individual projects and extended versions for groups of 3.
Each project should include, where meaningful:
- conditional statements and loops;
- suitable Python data structures;
- decomposition into functions;
- organization into multiple Python files/modules;
- file input/output;
- basic input validation and error handling;
- command-line arguments for relevant program options;
- meaningful processing of data and production of summaries, indicators, reports, or simple analyses.
The use of classes is encouraged when it provides a natural representation of the application domain, but it is not necessarily mandatory.
Projects may also use selected Python Standard Library modules and external libraries introduced during the course, or even others that can be considered appropriate to the specific case, such as tools for data analysis or visualization. Libraries should support the application without replacing the core programming work.
Each project will specify:
- Core Features, mandatory for all implementations;
- Optional Extensions, used to adapt the scope to individual projects and groups of 2 or 3 students.
Students must submit the source code, required data files, and a short README describing the project, execution instructions, program structure, required libraries, and division of work. For the discussion of the project, students may use some slides to help the explanation and make it clearer (not mandatory).
Alternative student-proposed projects are welcome, provided that they are comparable in scope and complexity to the official project catalogue and are approved in advance.
The exam evaluates individual programming and problem-solving skills; the project evaluates the ability to integrate those skills into a structured and complete application.