Salta al contenuto principale
CODICE 109203
ANNO ACCADEMICO 2025/2026
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre

PRESENTAZIONE

L'insegnamento presenta i concetti fondamentali in programmazione, strutture dati e algoritmi, fornendo conoscenze di base utili per molti insegnamenti erogati nella Laurea Magistrale in Computer Science.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L'insegnamento presenta i concetti fondamentali della programmazione, delle strutture dati e degli algoritmi utilizzando il linguaggio Python e introduce all'uso della libreria numpy.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Lo studente dovrà acquisire le competenze per creare semplici applicazioni utilizzando il linguaggio Python, la capacità di valutarne empiricamente le prestazioni e di scegliere le migliori strutture dati, tra quelle disponibili nel linguaggio, per svolgere determinati compiti. In particolare, al termine del corso gli studenti saranno in grado di:

  • utilizzare la documentazione online su Python e alcune delle sue librerie
  • analizzare parti di programmi (scritti in Python) e comprenderne il funzionamento
  • modificare, eseguire e testare piccoli programmi
  • partendo da una specifica informale di un problema, progettare e scrivere (parti di) programmi che risolvono il problema

MODALITA' DIDATTICHE

Language constructs: expressions, assignments, conditionals, iteration, functions, recursion, exceptions, list comprehension. Data structures: lists/sequences, dictionaries, sets Algorithmic techniques: divide-and-conquer, list processing, memoization, staging Numpy library: arrays,linear algebra operations

486 / 5,000

L'insegnamento prevede lezioni frontali in aula e alcuni compiti a casa relativi agli argomenti trattati.

Si presuppone che gli studenti dispongano di un computer portatile con anaconda3 installato. Assistenza per l'installazione di anaconda3 e per l'utilizzo di Jupyter Notebook verrà fornita all'inizio del corso.

Le lezioni possono essere registrate su MS Teams (a beneficio degli studenti all'estero).

I compiti a casa possono essere svolti in gruppo (al massimo 3 studenti) e devono essere caricati su aulaweb entro le scadenze specificate.

PROGRAMMA/CONTENUTO

  • Modelli di calcolo: macchine di Turing, automi cellulari, macchine di Moore
  • Costrutti linguistici di Python: espressioni, assegnazioni, istruzioni condizionali, iterazioni, funzioni, ricorsione, eccezioni, list comprehension
  • Strutture dati: liste/sequenze, dizionari, insiemi
  • Tecniche algoritmiche: divide et impera, elaborazione di liste, memorizzazione, staging
  • Libreria Numpy: array, operazioni di algebra lineare

TESTI/BIBLIOGRAFIA

Ulteriore materiale (comprese registrazioni video) sarà reso disponibile su aulaweb.

 

DOCENTI E COMMISSIONI

LEZIONI

INIZIO LEZIONI

In accordo con il calendario approvato dal Consiglio del Corso di Laurea in Informatica.

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'esame (della durata massima di 3 ore) consiste in esercizi di programmazione svolti individualmente nei laboratori software DIBRIS e consegnati su aulaweb. Dopo la consegna, verrà resa disponibile una possibile soluzione e gli studenti avranno un tempo limitato (massimo 18 ore) per confermare la consegna. Solo gli elaborati confermati vengono valutati e, se il voto ottenuto è inferiore a 10/30, lo studente accumula una penalità di 1 punto sul voto finale futuro.

Il voto finale è dato dalla media ponderata (arrotondata per eccesso) dei punteggi ottenuti nelle due parti

  • 30% dei compiti a casa svolti in itinere
  • 70% dell'esame finale (test di laboratorio)

meno le penalità accumulate. L'esame si considera superato se il voto finale è di almeno 18/30.

MODALITA' DI ACCERTAMENTO

Le due parti valutano le competenze di programmazione acquisite dagli studenti in diversi contesti:

  • nei compiti a casa in itinere, lo studente dovrà utilizzare in modo appropriato i costrutti di programmazione presentati finora e potrà lavorare in team;
  • nei test di laboratorio, lo studente dovrà lavorare individualmente in un tempo limitato e, dopo la consegna, avrà del tempo extra per autovalutare l'elaborato rispetto a una soluzione proposta.

Agenda 2030

Agenda 2030
Istruzione di qualità
Istruzione di qualità