91256 - Introduction to Algorithms and Programming

Course Unit Page

  • Teacher Simone Martini

  • Credits 6

  • SSD INF/01

  • Teaching Mode Traditional lectures

  • Language English

  • Campus of Bologna

  • Degree Programme Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)

  • Course Timetable from Sep 22, 2021 to Oct 15, 2021


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

Quality education

Academic Year 2021/2022

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 types (numbers, strings, tuples, lists, dictionaries) and their use in the solution of problems. Classes and objects. Exceptions. Basics of computational complexity. Methods and inheritance. Introduction to the library NumPy  and its N-dimensional array objects.

Some lab work will propose experiments and homework.

Prerequisites: some programming experience. In its 40 hours, the course shall only introduce one programming language, and cannot treat programming techniques, which are largely independent from the specific language.


John V. Guttag
Introduction to Computation and Programming Using Python
(Second Edition: With Application to Understanding Data)
MIT Press, 2016

Other textbooks:
Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: see https://greenteapress.com/wp/think-python-2e/

Jessen Havill
Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming
Chapman and Hall/CRC. ISBN 9781482254143

Teaching methods

Lectures---all students will have the opportunity to attend from remote (also to lab classes).

Guided lab experimentations using the students' laptop in class (BYOD: Bring Your Own Device).


Lectures and lab (for a total of 40 hours) will be concentrated at the beginning of the semester (before Oct 16). In October we will take an informal pre-exam---A passed, sufficient pre-exam will be registered in January as a full exam for the course.

As it concerns the teaching methods of this course unit, all students must attend Modules 1 and 2 on Health and Safety online

Assessment methods

Written test, part of which will be the production of Python programs

Office hours

See the website of Simone Martini