91256 - Introduction to Algorithms and Programming

Course Unit Page

  • Teacher Simone Martini

  • Learning modules Simone Martini (Modulo 1)
    Maurizio Gabbrielli (Modulo 2)

  • Credits 6

  • SSD INF/01

  • Teaching Mode Traditional lectures (Modulo 1)
    Traditional lectures (Modulo 2)

  • Language English

  • Campus of Bologna

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

SDGs

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

Quality education

Academic Year 2019/2020

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