- Docente: Simone Martini
- Credits: 6
- SSD: INF/01
- Language: English
- Moduli: Simone Martini (Modulo 1) Maurizio Gabbrielli (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)
Learning outcomes
At the end of the course, the student is able to analyze a problem, formulate an algorithm for solving it, and code such an algorithm into an executable program. The student understands some basic algorithms and a general-purpose programming language.
Course contents
Computer science and problem solving. Abstract machines. Python machine. Programming in Python: names and visibility, functions, immutable and mutable objects, basic data structures (strings, tuples, lists, dictionaries) and their use in the solution of problems. Classes and objects. Methods and inheritance. Introduction to some libraries (e.g.,numpy and its N-dimensional array objects).
Some lab work will propose experiments and homework.
Readings/Bibliography
Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: see http://www.cs.unibo.it/~martini/MATH/index.html
Jessen Havill
Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming
Chapman and Hall/CRC. ISBN 9781482254143
Teaching methods
Lectures.
Guided lab experimentations using the students' laptop in class (BYOD: Bring Your Own Device).
Assessment methods
Written test
Office hours
See the website of Simone Martini
See the website of Maurizio Gabbrielli
SDGs

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.