31. Evaluation#
We will detail the evaluation criteria for the Algorithm and Programming course. The evaluation will take the form of a mini-project. This project must be completed individually and submitted as an archive, following the guidelines we will establish.
31.1. Submission Guidelines#
The deadline for submitting the project is set for October 27 at 11:59 PM. After this date, it will no longer be possible to submit your project. Your completed project should be uploaded on EDUNAO
Your project must be contained in a directory named LASTNAME_firstname
(pay attention to the case). Your main program should be in a file named levelX.py
, where the call to the main()
function will be found. If other Python files are present, they should be placed directly in the LASTNAME_firstname
directory.
If some data are necessary for the execution of your program, they should be placed in a subdirectory named data
.
The project should also include a README.txt
file containing a description of your project and any other information you deem useful, such as any modules that need to be installed with pip
.
The entire directory should be compressed into a ZIP
file named LASTNAME_firstname.zip
.
Sample project structure.
- LASTNAME_firstname/
- README.txt
- levelX.py
- other_module.py
- data/
- data1.csv
- data2.csv
31.2. Topic Selection#
You have the option to choose your project from a set of topics. The topics are ranked by difficulty. Each topic begins with a set of detailed questions, which you are required to implement strictly, without modifying the function signatures. Each topic ends with an open-ended question, allowing you to extend the project, develop your own functions, and demonstrate the breadth of your programming skills in Python.
Only the highest rank project will be evaluated. Successfully completing the initial questions of any project, including the simplest one, is sufficient to achieve a good grade. However, to obtain the maximum grade of 20, you must propose and implement extensions to your project.
31.3. Evaluation Criteria#
Adherence to submission guidelines (The directory must be correctly named as per the provided instructions, files must be well-organized in subfolders, Python files should have clear and descriptive names without unnecessary spaces or special characters. The project must be compressed in the required format (zip, tar.gz, etc.), and the folder structure must be maintained in the archive). Presence of the README.txt file.
Code Organization
Function Decomposition
Functions must have descriptive names corresponding to their action (e.g., calculate_statistics instead of function1).
Each function should be short and focused on a specific task (ideally between 10-20 lines, if possible).
Functions should be reusable, well-modularized, and avoid duplicating code segments.
There should be no redundancy or unnecessary complexity in the code. Repetitive sections should be avoided by creating generic functions or classes.
Use of Variables
Variable names should be explicit and reflect their role in the program (e.g., user_count, average_temp).
The use of global variables should be minimized to avoid side effects; prioritize local variables or function parameters.
Ensure appropriate use of data types (int, float, string, etc.) and make sure variables are not misused or unnecessary.
Readability: The code should be easy to read through proper indentation, good line organization, and logical separation between different parts of the program.
Comments are present to explain the role of complex functions
Complex or unintuitive functions are commented on concisely to explain their operation.
Comments should not be too long or overwhelming, but strategically placed to clarify parts of the code that require explanation.
Comments should explain the reasoning behind choices in the code, not just describe what a line or function does.
Progress/Completion: The basic features defined in the project statement are implemented and functional.
Presence of bugs.
There are no major bugs (such as crashes or unhandled errors). Any errors are properly managed (with useful error messages for the user).
The application performs satisfactorily, running without significant slowdowns or performance issues, except in cases of heavy calculations.
Meeting the submission deadline
Taking initiative to improve or go beyond the basic requirements
Students have taken initiative to implement additional features or optimize the program.
The improvements go beyond the minimum requirements without compromising the overall quality of the project.
Initiatives are documented and justified in the report or presentation, explaining why they were added and their value to the project.
31.4. List of project#
Here the list of projects available for your evaluation.