96346 - INFORMATICA

Academic Year 2025/2026

  • Docente: Paolo Felli
  • Credits: 6
  • SSD: INF/01
  • Language: Italian
  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Materials Science (cod. 6830)

Learning outcomes

At the end of the course, the student possesses necessary knowledge of computer structure and appropriate familiarity with modern programming languages, particularly Python. Such knowledge is adequate and sufficient to address and solve simple scientific problems through the design and implementation of suitable algorithms and data structures. Laboratory activities introduce them to initial examples of applied methods and models.

Course contents

The course introduces the main concepts of computer science, problem-solving, and abstract machines. It then delves into programming in Python, with particular attention to:

  • The Python machine
  • Names and their visibility
  • Functions
  • Modifiable and non-modifiable objects
  • Basic data types (numbers, strings, lists, dictionaries, etc.)
  • Abstract data types (binary trees)

Furthermore, the course presents some classes of algorithms (e.g., sorting) with an overview of computational complexity. It discusses the limitations of effective procedures and the existence of problems that are unsolvable algorithmically.

Laboratory activity is included, to support students in understanding and applying the concepts learned during the lessons.


Readings/Bibliography

John V. Guttag: Introduzione alla programmazione con python, Egea, 2021 (traduzione italiana ridotta di: Introduction to Computation and Programming Using Python Third Edition: With Application to Computational Modeling and Understanding Data, MIT Press, 2021)

 

Further readings:

Allen B. Downey: How to Think Like a Computer Scientist: Learning with Python. Online interactive edition: https://runestone.academy/ns/books/published/thinkcspy/index.html

Allen B. Downey: Think Python 2e, O'Reilly Media, 2012. ISBN 978-1449330729. 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 and laboratory exercises. 

Assessment methods

The course includes the completion of an individual or group project related to the development of a Python application. This project will be discussed, along with the design and implementation choices, during an oral exam session. During the oral session, the instructor will also verify the student's understanding of the discussed concepts through specific questions.


Teaching tools

Slides and teaching material will be made available on virtuale.unibo.it.

Office hours

See the website of Paolo Felli