flowchart LR
CL["🎓 GitHub Classroom<br>Register your team"] -->|"creates"| GH["☁️ GitHub Repository<br>Shared code · Issues · CI"]
LM["💻 Local Machine<br>VS Code · gcc · CMake"] <-->|"git push / pull"| GH
Projet Génie Informatique — Freud Image Analyst
The project
Freud is an image analyst — a command-line tool that performs actions on image files: rotate, crop, re-color, compute statistics, and more.
You will build this tool in C, working as a team of three. The project is organized into milestones (groups of related features) and issues (individual features). You implement features one by one, incrementally, validating each against automated tests.
$ ./build/freud.exe -f images/input/test.jpg -c color_blue
Not sure what a command line is? Start with Using the Command Line.
Goals
- Learn to write C code — structure, pointers, files, functions — by doing
- Organize a software project with milestones and issues
- Work as a team with Git and GitHub
- Build and validate a C project against a set of specifications and automated tests
- Prepare for the individual exam: coding in a sandbox, answering questions about the project
The goal is to develop your own C programming skills. Do not use AI assistants (ChatGPT, GitHub Copilot, Gemini, etc.) to generate your code. The final exam is individual, in a sandboxed environment, with no internet or coding tools — what matters is what you have learned to write.
Think of learning to program like going to the gym: the point is not to move weight from one place to another, the point is to become stronger yourself. Plagiarism is like pretending to be a fitness influencer by posting someone else’s lift as your own. Using an LLM to generate your code is like bringing a forklift to move the weights for you: it is not the same kind of fault, but it still misses the point of the exercise.
See the Ethics & AI Policy page for the course policy on plagiarism, AI tools, and appropriate help.
How you are evaluated
The course grade has two components:
| Component | Weight |
|---|---|
| Project (team, automatic CI) | 5 / 20 |
| Exam (individual, Moodle + Safe Exam Browser) | 15 / 20 |
The exam tests your ability to answer questions about the project and write C code in a sandboxed environment — individually, without tools.
→ See Grading & Progress for full details.
Three spaces, one project
Every line you write lives locally until you push it. GitHub Actions compile and test what is on main — that is what gets graded.
Onboarding — follow in order
Do not skip ahead. Each step depends on the previous one.
- The Project Ecosystem — understand the three spaces and the overall flow
- Setup — register team, clone, install tools, validate, activate workflows, import issues
- First Steps — learn the dev loop, then start Milestone 1 together
Where do you want to go?
🚀 Just registered?
Start from the beginning — register your team, set up your environment, and make your first commit.
💻 Ready to code?
Browse features, pick your next issue, and understand the dev loop.
→ Code
🔍 Stuck or confused?
Common build errors, Git problems, and debugging strategies.
📊 How am I graded?
Understand the milestone system, CI evaluation, and academic integrity policy.
→ Evaluate
📚 Want to understand deeper?
Image data structure, the build system, how to collaborate with git.
→ Learn
🛠 Looking for a tool?
VS Code, Git, CMake, command line — all in one place.
→ Tools