The course introduces students to imperative programming by referring to the Python language. The course is divided in two parts: the first presents Python and its object-oriented features, the second focuses on libraries that can be useful in scientific computation and data analysis, in particular NumPy and pandas.
Expected learning outcomes
Students will acquire the ability to write and tune a program that automatizes simple computational tasks; they will be able to understand how a small piece of Python code works, to find the reasons of a malfunction and to correct it appropriately. Moreover, students will be able to use the NumPy and pandas library to analyze tabular data.
The Python 3 programming language. Native data types, typing hints. Functions, selections and iterations. Basic data structures: lists, tuples, dictionaries. Files. Object-oriented encapsulation, iterators. Numpy multi-dimensional arrays and matrices. Data manipulation and analysis with pandas and libraries for visualization. Basics of probabilistic programming.
Prerequisites for admission
Students are required to be able to solve computational problems in an algorithmic way.
The course has lectures, which present the subject and interactively discuss problem solutions and laboratory sessions to experiment with tools. Course attendance is highly recommended.