96346 - INFORMATICA

Academic Year 2023/2024

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

Learning outcomes

Al termine del corso lo studente possiede una conoscenza della struttura del calcolatore e dei linguaggi di programmazione moderni, in particolare di Python. Tali conoscenze sono adeguate e sufficienti per affrontare e risolvere semplici problemi di natura scientifica mediante programmi eseguiti al calcolatore, quali lettura, scrittura e rielaborazione di dati, e algoritmi di base per la derivazione e l'integrazione. L'attività laboratoriale lo introduce ai primi esempi di metodi e modelli applicati

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.

An intense laboratory activity is planned, during which the instructor is accompanied by tutors who 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)

Altre letture consigliate:

Allen B. Downey
How to Think Like a Computer Scientist: Learning with Python
Online interactive edition

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

Laboratory exercises that can take place in the same classroom where the lectures are held, using students' laptops, or in a computer lab: one PC for every two students, practicing pair programming. During the lab sessions, the instructor is accompanied by tutors. The course is held in the second semester (from February to May).

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 lasting approximately 20 minutes. During the oral session, the instructor will also verify the student's understanding of the discussed concepts through specific questions.

Teaching tools

All the information and course material will be available starting from the professor's personal webpage and, during the course, on the virtual platform unibo.it.

If the laboratory is held in the same classroom as the lectures, it will be conducted using students' laptops. It is necessary to install a version of the Python programming language on the laptop. Thonny is suggested, which is a self-contained programming environment for Python 3 and will be used during the lessons.

Office hours

See the website of Luca Sciullo