The workshop will include:
- an intensive course in Programming in Python, coordinated by Jean-Baptiste Yunès (Institut de Recherche en Informatique Fondamentale, Université Paris Cité) where the participants will learn to write correct programs.
- an intensive course in Algorithms, coordinated by Roberto Mantaci (Institut de Recherche en Informatique Fondamentale, Université Paris Cité) where the participants will learn to write efficient programs.
The courses will be composed of main lectures and applications in the form of exercise sessions or work sessions on machines.
The workshop will span over 10 days (September 5-9 and 12-16), including about six hours of lectures or application sessions per day.
Participants are strongly encouraged to bring and work on their personal laptop, however a certain number of computers will be available for those who do not have one.
Il you plan to attend RUPP Workshop, please read carefully all instructions and informations here.
Note : this page will be updated over time, so please try to get back here at different times.
Please read all the instructions with a lot of care.
Computer setup instructions
If you plan to attend RUPP Workshop, you need to pre-install software on your own. Remind that participants are highly encouraged to bring their own laptop at the school.
Python programming language will be used during courses, so it is strongly advised to install the latest version of Python before your arrival in Nairobi. Here are some links given to help you install a Python environment onto your computer.
Please note that the following downloads may require a lot of space on your machine and a lot of time with a low-bandwidth internet access.
Remind that Basic Python is mandatory, while IDE and Jupyter are optionals, Gnuplot is highly recommended.
1. Basic Python
A Python installation is required for the school. Environments for many operating systems flavours are available (Linux, Windows, Mac OS). Please visit the Python downloads page and follow the instructions. Please take care not to use any Python version below 3, the latest available version for common operating systems is 3.10.4, a must have.
If you are using Mac OS, you should be aware that the Python installed by default with your Mac is not of the right version, so please install a good one.
For a convenient use of Python, you may also use a smart code editor (IDE — Integrated Development Environment). It is highly recommended to install one. There is a lot of them, but PyCharm and Visual Studio Code are good ones. Of course, if you have a simple code editor (emacs, vim, etc) not any text/word enhanced editor like Word or such, that will be sufficient to have a working environment, and you may not install any IDE.
Please visit Pycharm download page and follow the instructions
Visual Studio Code
Please visit Visual Studio Code page and follow the instructions.
For a good experience in writing tutorials with Python code inside, you may also install some Jupyter’s softwares : Jupyter-lab and Jupyter-notebook. Please visit Jupyter install page and follow instructions. Note that instructions given such as
pip install... and alike commands must be run under a terminal or system console (if you use a simple basic installation) or under the console of your chosen IDE. If you don’t succeed into this, don’t be afraid, you will be able to program in Python during the school.
While not strictly necessary, that could be a good idea to install the gnuplot tool that we will use to make some drawings from data sets.
Please visit Gnuplot’s home page.
Classes will take place from Monday 5 to Friday 9 and from Monday 12 to Friday 16. They will include morning session of 3 to 4 hours (with breaks) consisting mainly of main lectures and exercice sessions, and afternoon sessions of 2-3 hours consisting mainly in machine sessions.
The workshop will include the following objectives:
- an intensive course in Programming in Python, where the participants will learn to write correct programs.
- an intensive course in Algorithms, where the participants will learn to write efficient programs.
The programming course is intended to be an introductory course to the syntax of Python. In the Algorithm course we will introduce the concept of complexity in time and space of an algorithm and we will learn to evaluate the performances of an algorithm in terms of time of computation and of used memory space. Some technics of optimisation will be introduced, such as the use of adequate data structures. The two courses will be totally complemnetary, since most of the machine sessions of the Programming course, students will have to write in Python the programs derived from the algorithms seen in the Algorithmic course.
Monday, 5th September 2022
- (Python) Live-made code (archive of 4 files).
- (Python) First sheet of exercises about basic Python instructions.
Tuesday, 6th September 2022
- (Python) Code to compute π with different “methods“.
- (Algorithmic) Slides.
- (Algorithmic) First work sheet.
Wednesday, 7th September 2022
- (Python/Algorithmic) Example about iteration and recursion.
- (Python) Second worksheet of exercices about recursion.
- (Python) Examples/Solutions to exercices. Binary, Factorial, Fibonacci, GCD, Pascal, Syracuse.
Thursday, 8th September 2022
- (Python) Worksheet on “Searching“.
Friday, 9th September 2022
- (Python) Solutions (partial) to exercices in worksheet on searching.
- (Python) Worksheet on “Basic sorting“.
- (Python) Worksheet on “Basic sorting – 2 (aka selection/insertion sort).
Monday, 12th September 2022
- (Python) Worksheet on “Merge sort“.
Tuesday, 13th September 2022
- (Python) Solution to exercice on finding the longest sequence of negative numbers in a given array.
Wednesday, 14th September 2022
- (Python) Solutions to sorting algorithms and comparing them counting and measuring operations and running time.
Thursday, 15th September 2022
- (Python) Worksheet on “trees”
Friday, 16th September 2022
- (Python) Binary Search Trees (implementation and basic tests).