Anno accademico 2022-2023

LINGUAGGI DI PROGRAMMAZIONE PER L'INTELLIGENZA ARTIFICIALE

Docenti

Marco Comini
Totale crediti
6
Periodo didattico
Primo Periodo
Tipologia
Caratterizzante
Metodi didattici. Lezioni frontali ed esercitazioni.
Modalità di verifica. L’esame consiste di vari micro-progetti da svolgere singolarmente e a gruppi, con esercizi da implementare al computer.

Seguirà una prova orale individuale in cui discutere i progetti e gli argomenti trattati a lezione.

Obiettivi formativi
Obiettivi formativi specifici

Questo corso intende fornire una conoscenza delle caratteristiche dei linguaggi di programmazione che vengono utilizzati per l’implementazione delle applicazioni basate sull’intelligenza artificiale.

Dopo un inquadramento degli elementi comuni a tutti i linguaggi di programmazione si analizza nel dettaglio il linguaggio Python e la libreria numpy. Questa libreria costituisce la base delle librerie utilizzate in intelligenza artificiale.

1.1 Conoscenza e capacità di comprensione

Lo studente conosce i principali concetti della programmazione, del linguaggio Pyhon e della libreria numpy.

1.2 Conoscenza e capacità di comprensione applicate

Lo studente impara gli elementi base necessari per poter implementare applicativi basati sulle tecniche di intelligenza artificiale apprese in corsi successivi.

Le attività di progetto permettono allo studente di consolidare le conoscenze teoriche presentate attraverso il loro utilizzo in casi pratici.

2.1 Autonomia di giudizio

Obiettivo del corso è migliorare la capacità dello studente di identificare le soluzioni più pratiche e semplici nell’implementazione di codice Python.

2.2 Abilità comunicative

Lo studente impara l’esatto significato dei termini usati nella programmazione e nella implementazione in linguaggio Python. Attraverso l’attività di progetto di gruppo lo studente migliora le proprie capacità comunicative e di interazione.

2.3 Capacità di apprendere

Le conoscenze apprese permettono allo studente di realizzare più agevolmente applicazioni basate su tecniche di intelligenza artificiale apprese in corsi successivi.

Grazie all’interazione con i compagni del gruppo di progetto lo studente impara a valutare il proprio grado di apprendimento mediante il confronto con gli altri.

https://www.uniud.it/it/didattica/info-didattiche/regolamento-didattico-del-corso/LM-comunicazione-multimediale-tecnologie-informazione/all-B2

Contenuti
apprendimento dei concetti di base dei linguaggi programmazione

* macchine astratte

* nomi e ambiente

* strutturare il controllo (espressioni, comandi per il controllo di sequenza)

* astrarre sul controllo (procedure/funzioni, passaggio dei parametri)

* astrarre i dati (array, liste, record, record varianti, classi e oggetti)

il linguaggio Python

* il lessico di Python (letterali, operatori, …)

* espressioni

* comandi

* Primitive Python di uso comune

* tipi predefiniti

* Controllo di flusso e funzioni

* le regole di scoping di Python

* moduli

* Oggetti Python e oggetti primitivi Python di uso comune

* gestione delle eccezioni

* la gerarchia standard dei tipi

* iteratori ed iterabili

* funzioni di ordine superiore

* alcune primitive delle librerie standard ‘itertools’ e ‘functools’

la libreria numpy

* creazione e operazioni base su ndarray

* manipolazione delle forme

* copie e viste

* regole di ‘broadcasting’

* universal functions e metodi reduce/accumulate

* input/output di ndarray in formati binari e testuali

* indicizzazione avanzata

cenni sulla la libreria pandas

Testi di riferimento
https://wiki.python.org/moin/PythonBooks