96346 - INFORMATICA

Academic Year 2026/2027

  • Docente: Paolo Felli
  • Credits: 6
  • SSD: INFO-01/A
  • Language: Italian
  • Teaching Mode: In-person learning (entirely or partially)
  • 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
  • Classes and hierarchies
  • Basic data types (numbers, strings, lists, dictionaries, etc.)
  • Abstract data types (e.g. binary trees)
  • Elements of algorithms and complexity
  • Introduction to NumPy 

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 written exam (laboratory practical exam) will assess whether the student has attained an adequate understanding of the course content and acquired programming skills, in particular the ability to write programs in the Python programming language.

The use of AI is prohibited and constitutes a violation of academic integrity.

Teaching tools

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

Office hours

See the website of Paolo Felli