Home - Estia-1a/projetGenieInfo_public GitHub Wiki
Welcome to the projetGenieInfo_public wiki! This is where you will find documentation relative to your project (e.g., explanation of how an image file is used in your program).
if you are looking to Set up the project
if you are looking to start your project
Educational Goals of the Class
In this class you will learn:
- To start and manage a software development project:
- Organize features to be developed
- Set up milestones to reach
- Test your code
- To use libraries
- To use a version control system
- To practice c programming
Evaluation
The evaluation is two parts :
- 8/20 on the project
- 12/20 table QCM and Code production on moodle with safe exam browser.
Project evaluation
You will be automatically evaluated based on how many functionalities you developed (issues) and how many milestones you managed to complete. Fairly simple: To get a passing grade (E), you need to complete at least the 2 first milestones (statistiques, colors) The more features you complete after that, the better your grade.
You can check by yourself how many tests your program passed or failed every day based on your current main
branch on GitHub.
A Continuous Integration is set up in your git repository.
This means that the tests will check if your new version passes new tests, but also previous ones (to prevent regression).
The tests simply consist in comparisons between:
- The output your program generates (e.g.
freud.exe -f images/input/test.jpg -c color_blue
==> generate a blue colored version of the input image) and, - The output of our own program for the same test and with the same input image.
If it is different, someone has an error. If you think our version is having a problem, do not hesitate to open an issue so that we can investigate further.
Important If you find a bug or problem in our version of the program, your grade will positively reflect that! Open issues to keep track of your contributions.
Plagiarism and GPT (ChatGPT, Copilot, Gemini)
The idea of the project is to produce C programming, not practice C plagiarism from other sources. Before the final evaluation, all code will be run through plagiarism detection. The tool identifies when two pieces of code are similar. The tool doesn't care about the names you select for variables, code indentation, spacing, etc. It operates at a higher level of abstraction. The tool is excellent at its job.
All code will have some degree of similarity (same function signatures for example). Still, at your coding experience level, the actual code variability is extremely high (because you are learning). Low variability across long or repeated pieces of code is thus increasingly unlikely, unless you share code or source. You have no control over what the AI is producing. Maybe it will give the same exact code to two teams; you'll might get flagged for plagiarism.
I (Dimitri Masson) don't care* why or how the code ends up being similar, if two pieces of code are identical I'll rule there was plagiarism. I don't care, that you worked in the same room as some other friends from another group, asked for help, showed your code to someone else to help them, or used an AI to produce the code. **At best I'll scale the grade according to uniqueness, at worst I'll fail all teams involved in similar code without asking questions. **
So the advice is the following :
- Never copy-paste something.
- Never show your code to anyone outside your team.
- Ask for explanations not for code (what is the idea to solve a problem, not the solution)
if you ask an AI for help, ask for a similar situation, explaining the concepts, going step by step to help you. Then produce the code yourself.
Freud - an image analyst
You program will consist in a utility tool to perform various actions on image files (e.g., rotate, crop, scale, re-color, etc). We set up milestones and issues with progressive difficulty. Your task is to implement the features described in each issues.
Extra
If you made enough progress and want to implement features not proposed in our list, do not hesitate to propose an issue in this public repository and assign the feature_proposal
label.
You should clearly explain what the feature is about, and the algorithm it should use (include online references if necessary).
We will then:
- Validate or invalidate the request (based on complexity, etc)
- Let you implement the feature
- Implement our own version for automatic evaluation
- Include the feature in future version of this course and credit your team