91256 - INTRODUCTION TO ALGORITHMS AND PROGRAMMING

Scheda insegnamento

SDGs

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.

Istruzione di qualità

Anno Accademico 2020/2021

Conoscenze e abilità da conseguire

Al termine dell'attività formativa, lo studente è capace di analizzare un problema, formulare un algoritmo per risolverlo e codificare tale algoritmo in un programma eseguibile. Lo studente conosce alcuni algoritmi di base e un linguaggio di programmazione.

Contenuti

Informatica e problem solving. Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, strutture dati di base (stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Classi e oggetti; metodi ed ereditarietà. La libreria NumPy e i suoi array N-dimensionali.

Saranno proposti esercizi ed attività di laboratorio.

Prerequisiti: qualche esperienza di programmazione. Il corso, per ovvi motivi di tempo, introdurrà soprattutto un linguaggio di programmazione, mentre non potrà dilungarsi sulle tecniche di programmazione (che sono per larga natura indipendenti dallo specifico linguaggio).

Testi/Bibliografia

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

Metodi didattici

Lezioni in aula, con possibilità di fruizione in remoto (anche delle ore di laboratorio).
Esercitazioni guidate usando in aula i computer portatili degli studenti (BYOD: Bring Your Own Device).

 

Lezioni ed esercitazioni (40 ore complessive) sono concentrate nel periodo iniziale del semestre (dal 16/9 al 16/10). Mercoledì 21 ottobre sarà offerto un pre appello informale: un pre appello sufficiente sarà registrato in gennaio come un esame per l'intero corso.

Modalità di verifica dell'apprendimento

Esame scritto, parte del quale consisterà nella produzione di programmi Python

Orario di ricevimento

Consulta il sito web di Simone Martini