- 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)
-
from Mar 18, 2024 to May 20, 2024
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