Coding Weeks

The Coding Weeks are organized as a two-week mini-programming boot camp for first-year students (~L3/BSc). The motivation for these two weeks is twofold. On the one hand, they serve as an introduction to the practices and methodologies of software development when working in groups. On the other hand, the complete implementation of a project defined beforehand by the students permits them to consolidate their knowledge in programming and the development of computer applications. These two ambitions will allow the students to learn and acquire through practice the main ideas related to the culture of code quality (or “software craftsmanship”).

An example of a subject about implementing the game 2048, intended for beginner-level students, can be found on Céline’s Github page.

Teaching time performed: 124 hours

  • 2019 : project “Open source code and learning games for coding”.
  • 2020 : project “Gamejam”.
  • 2021 : project “Game of life and cellular automata”

Part of the teaching team for the school years 2019-2020, 2020-2021, and 2022-2023.

Instructors: Céline Hudelot (2019-2021) then Paolo Ballarini et Marc-Antoire Weisser (2022)

Student level: First year (~L3/BSc).

Details The coding weeks correspond to two consecutive weeks of software development for groups of three to five students.

During the first week, the students work on a project proposed by the pedagogical teams. The project is organized as a sequence of progressive iterations (or sprints) to obtain a minimum viable product as soon as possible and building the end product by adding more advanced features. Through the first week, the students also learn methodological and technical elements such as working with the terminal, version management with Git, project-related APIs, the test-driven development process or the construction of a meaningful README. These elements are explained via lectures or tutorials, and sometimes in a playful way (for instance, we use Learn Git Branching to help the students get accustomed to Git).

During the second week, the students develop their project (within the theme of their first-week project). The goal is to do everything from the idea to the end product capitalizing on the knowledge and methodologies acquired during the first week.

Examples In 2019, I supervised a series of projects around the diffusion of code and coding skills. We discussed the question of opensource software, learning through games and programming competitions. I encouraged the students to make their projects open and some are still available on GitHub:

  • Learn Python by coding TicTacToe by Abdelmotalib Ali, Briand Paul, Lemzah Yassine, and Vauboin Paul. The project offers a step-by-step creation of a TicTacToe by asking for the implementation of the needed functions and showing the current state of the game.
Learn Python by coding TicTacToe
Learn Python by coding TicTacToe
  • PickleBreak by Yohann Bosqued, Remon Majoor, Alexandre Le Bian, Victor Collodel, and Antoine Marras. The project lets you learn some basis of Python by solving a series of puzzles.
  • Algorithmic project by Antoine Huguet, Rémi Heitz, and Youssef Irhboula. The project aims at helping people learn basic algorithmics with blocs (in a fashion similar to Scratch with Python backend).
Algorithmic project
Algorithmic project