ECTS
4 credits
Component
Faculty of Science
Description
This course focuses on discovering good coding practices for a professional level.
The language used is Python, but some elements of bash and git will also be useful.
A special emphasis will be placed on data processing and visualization at the heart of the course.
We will focus mainly on basic programming concepts, as well as discovering Python's scientific libraries, including "numpy, scipy, pandas, matplotlib, seaborn".
Beyond the knowledge of these fundamental packages, we will introduce modern code practices: (unit) testing, version control (git), automatic documentation generation, etc.
Objectives
Be able to create a professional level package in Python including, code versioning, unit testing and documentation.
Necessary pre-requisites
Students should be familiar with the basic concepts of probability, optimization, linear algebra and statistics. A minimum knowledge of basic programming structures is also required (if, then... else, while/for loop).
Recommended prerequisites: A minimum of knowledge in Python would be a plus, as well as in numerical analysis (floating point, rounding errors, etc.).
Knowledge control
- CC
- Project (70% of the final grade)
- Modality: small group, with a balanced contribution from each member.
- Expected work: a "github" repository where the work is available, a synthesis report and a defense.
- Graded practical work (15% of the final grade)
- Quiz (15% of the final grade)
Syllabus
- coding: algorithms, modules, basic types, functions, loops
2. coding: list, dictionary, tuples, if and loops, exceptions
3. classes (`__init__`, `__call__`, etc...), operator overloading, file management, git: a first introduction
4. `numpy`: basic notions about arrays, slicing, simple linear algebra, masking; `matplotlib`: first plots
5. `github`, creating an ssh key, various git commands, conflict, pull request
6. `numpy`: casting, concatenation, `imshow`, `meshgrid`, casting, copy, scipy`: EDO, Interpolation, Optimization
7. hands on git, intro to linux basics and command line tools
8. `scipy`: Images/channel, FFT, Pandas: missing data
9. bash, regexp, grep, find, rename, Python virtual environment
10. Pandas : first steps
11. Python virtual env: Anaconda, IDE: VScode, Create a Python Module
12. Pandas : learn more
13. Create a Python module, unit tests
14. Unit test
15. Sparse matrices and graphs and memory
16. Numba
17. Documentation with Sphinx
18. Statsmodels
Additional information
Hourly volumes:
CM : 12h
TD : 18h
TP :
Field :