Introduction to programming, with Python and Jupyter#

About this course#

Educational Path#

Note

You can adapt the educational path proposed here according to your experience. You can also explore the table of contents, where the sheets are classified by theme. You will notice that the proposed path rotates among the themes, returning to them in turn to deepen them (spiral learning).

0 - Discover Jupyter#

In this course, you will use Jupyter interactive worksheets. Jupyter is a web application that allows you to program interactively in many languages (Python, C++, …), a bit like a super calculator, and to write interactive documents.

Indication

If you are already familiar with using Jupyter, you can skip directly

to the next section.

  1. Open the worksheet00-PriseEnMainJupyter.md.

  2. Follow the instructions it contains.

1 - Discover Python#

_images/laby3a1.png

The Laby game offers several successive challenges; for each of them, the goal is to guide an ant step-by-step towards the exit of a labyrinth using a program. Each of these challenges will be an opportunity to have a first playful contact with some concepts (program, conditionals, loops, functions) that we will explore in more depth later.

Notes to teachers

Laby is not just a game. The goal is to capitalize on the notions that students will have thus perceived intuitively, such as the sequential execution of a program, loops, conditionals, functions, etc.

A common mistake is forgetting to put debut().

Each sheet below corresponds to a challenge. Open them one by one in order and follow the instructions included. If you get stuck on one of the challenges, don’t hesitate to move on and come back to it later.

Repeat:

Adapt:

Count:

2 - Calculate#

3 - Adapting to the context: conditional instructions#

4 - Repeat: Iterative instructions (loops)#

Attention

Challenges marked with a ♣ or ♣♣ are (significantly) more advanced; unless you are comfortable

and looking for a bit of a challenge, we recommend skipping them and coming back to them

later when you have seen the underlying concepts more formally.

5 - Structuring a program: functions#

6 - Structuring Data#

Todo

  • dictionaries / sets

  • tuples / immutability

7 - Communication: Inputs / outputs#

Todo

  • Print avancés

  • Ecrire / lire dans un fichier

  • lire depuis le clavier

  • Widgets ?

  • récuperer des informations depuis un site web

8 - Structuring a program: modules#

Todo

  • modules, packages, imports,

  • classes

9 - Additional challenges#

generic algorithms