Assignments
Classes will cover the theory but most of the work will happen outside of classes. Students are highly encouraged to collabore using the official discussion channels.
The main goal of the course is to get you to contribute to an Open Source project you use. But there are multiple steps required to get there.
You are supposed to dedicate at least 2 hours every week for the course. But you will not be able to catch up by working 30 hours straight the last week. Some stuff takes time and interacting with others mean you will need to wait for others.
So get started now, it’s easy.
Task 0: Starting a "stream of consciousness" journal
This course will not ask you for a formal report. Instead, you will make a "stream of consciousness". This should be done using the Gemtext format (which is highly simplified Markdown. Really, it is trivial to use.)
The journal can be done in French or English. It’s up to you.
So open an empty text file right now and start writing. Don’t go back. Don’t correct mistakes. Just write, day after day. The use of AI/helpers/agents is strictly forbidden.
This file will be your companion for the whole duration of the course.
Task 1: Installing and using a free Operating System
Seriously, you thought you could pass an "Open Source" course while staying on Windows or MacOS?
So get your hands dirty and choose a GNU/Linux distribution that you will install on your computer. All the work for LINFO2401 needs to happen on it. Ubuntu was considered the easier but I don’t think it is the case anymore. Debian, Arch are very good to learn but it is up to you. Mint is good for beginners. Void, Alpine are more hardcore for desktop use.
If you feel aventurous, go outside of the Linux world: OpenBSD, FreeBSD, Haiku, Plan9… As long as it is Free and Open Source and you can run a terminal with git, that’s fine.
During the exam, you might be asked to justify your choice and to explain what you have learned in the processs.
Task 2: Getting familiar with git, with the command-line and with an editor
If you are not familiar with the shell and the command line, you should starts now. There are enough tutorial everywhere to get you covered.
It is expected from you to do basic command line stuff (cd, cat, less, mv, rm, grep, find, head, tail, |)
For this course, git should be used straight from the command line. VSCode is not allowed (it took me a while to understand why most student had garbled filenames).
You should also be confident enough to use a text editor in a terminal. People who started learning Vim or Emacs never regret it later. It’s hard to get started but it is a skill useful for the rest of your life. Some prefer Nano. There’s also Helix, Kakoune. Pick your choice but be sure to be able to use it confidently the day of the exam.
Use it to write your journey in your journal!
Task 3: Mapping your software stack, identifying projects you want to contribute to
To contribute to an opensource projects, you need to identify one which interests you. A project that you use.
The first advice is to list all the projects you use in your different workflows to see which one are opensource. What would be interesting is to create a long list of the software important for you and for those proprietary, write which corporation is behind it. That could highlight your dependencies to a few multinationals.
If you don’t use any Open Source project, well, you probably didn’t look closely enough to all the software you are using.
What is also interesting is to explore Open Source alternatives to the software you are using or the software you want to use. This course could be a way to let you get started with some Open Source software.
Note that any kind of software is fine as long as you use it: games are very interesting projects. Niche software for your special hobby are also very interesting.
Be realistic: if you have no previous experience, you will not contribute to the Linux kernel or any very high-stakes project. While a small launcher for your favourite game or an addon for your desktop environment might be very interesting.
Justification about which project you choose to contribute to will count for at least 25% of the project note (10% of the final grade).
Task 4: Contributing to an Open Source project
The goal is simple: you have to make an useful contribution to the project. Preferably with code. You also have to demonstrate your commitment and your interactions with the community.
During the exam, you will have to answer questions about the project: which license? which kind of governance? Is there any kind of business model behind it? How is the money handled? Who is behind the project? What is its history? What are the main technical choices?
This task will cover the remaining 75% of the project note (30% of the final grade).
If you count it well, the whole project will account for 40% of your final grade.
Some students choose to do multiple contributions to different projects. This is perfectly allowed and this may increase your grade but this is not required.
Task 5: Adding your journal to the repository
Once your contribution is done, you should add your project to the "projects_2026" folder, with your name and noma as the filename and gmi for the extension: jane_doe_12345689.gmi.
Before commiting, add a "summary" section at the start of the document. This summary should contains the name of the project you contributed to, a brief explanation of why you choose it and a direct link to your contribution (multiple links if multiple contributions). Links to your interactions with the community are also welcome.
After doing the summary, do the commit and send it as a patch to this repository.