B2215 - ADVANCED COMPUTER PROGRAMMING AND PYTHON

Anno Accademico 2024/2025

  • Docente: Alberto Cordioli
  • Crediti formativi: 6
  • SSD: SECS-S/06
  • Lingua di insegnamento: Inglese

Conoscenze e abilità da conseguire

In this course students will learn advanced topics in the Python programming language. At the end of the course, students will be familiar with some of the most largely diffused Python's libraries and tools. More specifically, students will have acquired the knowledge of fundamental topics about i) optimization routines and ii) about the following libraries: NumPy (support to numerical calculus), SciPy (wide range of algorithms for optimization and many other classes of problems), Pandas (data analysis and manipulation tool), Statslib (tools for statistical and time series analysis).

Contenuti

Basic computer programming

  1. Introduction to programming languages

  2. Programming fundamentals (syntax & semantics, variables, data types, operators, control flow, ..)

Introduction to Python

  1. Why Python for Data Science

  2. Installing and configuring the Python environment

  3. Running Python scripts

  4. Python basics

Python Data Types and Data Structures

  1. Primitive data types

  2. Data structures

  3. Manipulating data structures

  4. Example of algorithms

File Management and Operating System

  1. File operations

  2. Interaction with the operating system

Advanced topics

  1. Fundamental OOP concepts

  2. Exception handling

  3. Modules and packages

  4. Using standard and third-party libraries

Introduction to NumPy

  1. Arrays and matrices

  2. Mathematical and statistical operations with NumPy

  3. Array manipulation

  4. Advanced NumPy functions

Data Analysis with Pandas

  1. Data structures in Pandas: Series and DataFrame

  2. Reading and writing data with Pandas

  3. Data manipulation and cleaning

  4. Data visualization with Pandas

Machine Learning with Scikit-Learn

  1. Introduction to Machine Learning

  2. Supervised vs unsupervised learning

  3. Scikit-Learn workflow

  4. Examples

Introduction to Big Data

  1. Introduction to Apache Spark

  2. PySpark fundamental

Testi/Bibliografia

https://docs.python.org/3/tutorial/

https://numpy.org/doc/stable/reference/index.html

https://docs.scipy.org/doc/scipy/tutorial/index.html

https://pandas.pydata.org/docs/getting_started/tutorials.html

https://matplotlib.org/stable/tutorials/introductory/index.html


Metodi didattici

Teaching will be in blended mode. Some lecture in presence some online.

Practical exercises on topics covered during the lecture.


Modalità di verifica e valutazione dell'apprendimento

Through the course there will be 3/4 home assignment that students are expected to do and return to the tutor for grading.

Final exam will be a written exam consisting in a programming task. Students are expected to deliver the code developed during the exam.

Th final grade will be weighted between home assignment and the final exam.

Strumenti a supporto della didattica

Most will be frontal lectures were the teacher explains concepts and discusses examples.

Python code will be showcased both as standalone scripts, developed within an IDE but most of all examples will be presented via Jupyter Notebook.

The most important tool will be the large number of exercises that will be proposed and will challenge the student.


Orario di ricevimento

Consulta il sito web di Alberto Cordioli