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 particular 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 the discovery of Python's scientific libraries, including "numpy, scipy, pandas, matplotlib, seaborn".
Beyond knowledge of these fundamental packages, we will introduce modern practices for code: (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 prerequisites
Students should have a basic knowledge of probability, optimization, linear algebra and statistics. A minimum knowledge of basic programming structures (if, then... else, while/for loop) is also required.
Recommended prerequisites: A minimum knowledge of Python would be a plus, as well as numerical analysis (floating point, rounding errors, etc.).
Knowledge control
- CC
- Project (70% of final grade)
- Modality: small group, with a balanced contribution from each member.
- Expected work: a "github" repository where the work is available, a summary report and a defense.
- Graded practical work (15% of final grade)
- Quiz (15% of 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 of 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. Learn more about Pandas
13. Creating a Python module, unit testing
14. unit testing
15. Sparse matrices and graphics and memory
16. Numba
17. Documentation with Sphinx
18. Statsmodels
Further information
Timetable:
CM : 12h
TD : 18h
TP :
Field :