Advanced Python Programming

Year:
1st year/2nd year
Semester:
S1
Programme main editor:
(I2CAT)
Onsite in:
CNAM
Remote:
ECTS range:
3 ECTS

Professors

img
Professors
Eulalie Verhulst
CNAM

Prerequisites:

Standard computer science/engineering bachelor bases

Pedagogical objectives:

The aim of the course is to refresh the basics of Python programming (beginner) to then learn how to perform object-oriented programming with Python (advanced) as well as traffic analysis and generation tools in Python. At the end of the course, students would be able to write computer programs in Python using popular packages.

Evaluation modalities:

Individual project oriented toward AI for connected systems.

Description:

Topics:

  • Python programming (beginner): Programming in Python (variables, conditional structures, lists, arrays, loops, etc.). Writing functionalities in the Python environment.
  • Object-oriented programming (advanced): Principles of object-oriented programming in Python (classes, abstraction, etc.).
  • Files and data structures in Python: Read and write files using different data formats (csv, json…)
  • Use of packages: Discover virtual machines and libraries in Python. Realize Data manipulation and data visualization using specialized packages (Pandas, Numpy, Matplotlib). Writing a report using Jupyter Notebook. Manipulate packets using Scapy.

Required teaching material

[recording of the lessons] Teaching material will be shared in the course moodle. [personal computer] A personal computer is required for remote participants. [urls] https://scapy.net/ UUlm: Moodle with Tool-Server and browser based JupyterHub -> participants need a personal computer Literature: McKinney, W. (2018), Datenanalyse mit Python - Auswertung von Daten mit Pandas, NumPy und IPython, O’Reilly Media Hunt, J. (2020), A Beginners Guide to Python 3 Programming, Springer Bird, A. Et al. (2019), The Python Workshop, Packt Publishing

Teaching volume:
lessons:
4 hours
Exercices:
Supervised lab:
26 hours
Project:

Devices:

  • Laboratory-Based Course Structure
  • Open-Source Software Requirements