- Docente: Alberto Cordioli
- Credits: 6
- SSD: SECS-S/06
- Language: English
- Teaching Mode: Traditional lectures
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Applied Economics and Markets (cod. 5969)
Also valid for Second cycle degree programme (LM) in Greening Energy Market and Finance (cod. 5885)
-
from Feb 11, 2025 to May 23, 2025
Learning outcomes
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).
Course contents
Basic computer programming
-
Introduction to programming languages
-
Programming fundamentals (syntax & semantics, variables, data types, operators, control flow, ..)
Introduction to Python
-
Why Python for Data Science
-
Installing and configuring the Python environment
-
Running Python scripts
-
Python basics
Python Data Types and Data Structures
-
Primitive data types
-
Data structures
-
Manipulating data structures
- Example of algorithms
File Management and Operating System
-
File operations
-
Interaction with the operating system
Advanced topics
-
Fundamental OOP concepts
-
Exception handling
-
Modules and packages
-
Using standard and third-party libraries
Introduction to NumPy
-
Arrays and matrices
-
Mathematical and statistical operations with NumPy
-
Array manipulation
-
Advanced NumPy functions
Data Analysis with Pandas
-
Data structures in Pandas: Series and DataFrame
-
Reading and writing data with Pandas
-
Data manipulation and cleaning
-
Data visualization with Pandas
Machine Learning with Scikit-Learn
-
Introduction to Machine Learning
-
Supervised vs unsupervised learning
-
Scikit-Learn workflow
-
Examples
Introduction to Big Data
-
Introduction to Apache Spark
-
PySpark fundamental
Readings/Bibliography
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
Teaching methods
Teaching will be in blended mode. Some lecture in presence some online.
Practical exercises on topics covered during the lecture.
Assessment methods
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.
Teaching tools
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.
Office hours
See the website of Alberto Cordioli