INFORMATICA
INFORMATION TECHNOLOGY
A.A. | CFU |
---|---|
2022/2023 | 6 |
Docente | Ricevimento studentesse e studenti | |
---|---|---|
Mirko Tagliaferri | Il Docente riceverà gli studenti al termine delle lezioni nel proprio ufficio a Palazzo Veterani. |
Didattica in lingue straniere |
---|
Insegnamento con materiali opzionali in lingua straniera
Inglese
La didattica è svolta interamente in lingua italiana. I materiali di studio e l'esame possono essere in lingua straniera. |
Assegnato al Corso di Studio
Giorno | Orario | Aula |
---|
Giorno | Orario | Aula |
---|
Obiettivi Formativi
Questo corso ha due scopi principali: (1) Introdurre ai concetti chiave della programmazione informatica e (2) fornire agli studenti conoscenze tecniche per poter applicare tali concetti in un contesto reale. In tal senso, il corso si focalizzerà principalmente sul concetto di algoritmo e come esso possa essere visto sia come concetto teorico generale sia come strumento di risoluzione di problemi in contesti pratici. Per raggiungere tali scopi, gli studenti avranno modo di studiare la storia dei concetti di algoritmo e di macchine calcolatrici, per poi entrare nel merito dei dettagli tecnici che caratterizzano tali concetti. Dal lato pratico, il corso si focalizzerà sul linguaggio Python, che verrà applicato in diversi contesti, fissando i concetti appresi durante le lezioni teoriche.
Programma
Il programma consiste di due parti, equamente distribuite durante il corso.
La prima parte (1) avrà natura prettamente teorica, durante la quale gli studenti studieranno il concetto di algoritmo e le sue caratteristiche fondamentali. In particolare, tale parte sarà così strutturata:
1.1. Preliminari: Introduzione e revisione storica; algortimi e dati; i linguaggi e i paradismi di programmazione.
1.2. Metodi e Analisi: Metodi algoritmici; la correttezza degli algoritmi; l'efficienza degli algoritmi.
1.3. Limiti e Robustezza: Inefficienza ed intrattabilità; non computabilità e indecidibilità; l'universalità algoritmica e le sua robustezza.
1.4. Rilassare le Regole: Parallelismo, concorrenza e modelli alternativi; algoritmi probabilistici; crittografia e interazioni affidabili.
La seconda parte (2) avrà natura pratica, durante la quale gli studenti rivredranno alcuni dei concetti teorici studiati in precedenza in situazioni reali di programmazione. Il linguaggio scelto per lo svolgimento di tale parte pratica sarà Python. In particolare, tale parte sarà così strutturata:
2.1. Introduzione a Python.
2.2. Sviluppo Software, Data Types ed Espressioni.
2.3. Loop e Selection Statements.
2.4. Stringhe e File Testuali.
2.5. Liste e Dizionari.
2.6. Progettare con Funzioni.
Eventuali Propedeuticità
Non sono previste propedeuticità per il corso.
Può risultare utile aver completato degli esami di Logica Matematica o di Fondamenti di Logica.
Risultati di Apprendimento (Descrittori di Dublino)
Conoscenze e comprensione: lo studente sarà in grado di descrivere e e comprendere i concetti chiave della programmazione informatica. Inoltre, sarà in grado di contestualizzare tale conoscenza e comprensione a diversi campi del sapere scientifico e pratico. Infine, lo studente svilupperà il pieno controllo del pensiero computazionale, imparando ad interpretare le informazioni che lo circondano in maniera chiara e razionale.
Capacità di applicare conoscenze e comprensione: lo studente sarà in grado di trovare soluzioni a problemi semplici di programmazione, adattando il proprio metodo ai diversi contesti applicativi. In particolare, tale studente avrà una padronanza di base di Python e delle sue possibili applicazioni a diversi ambienti lavorativi, siano essi di ricerca o per attività lavorative.
Autonomia di giudizio: lo studente sarà in grado di analizzare diverse tipologie di problemi per comprendere quale metodologia di soluzione sia la più adatta a tale contesto. Egli sarà in grado di comprendere quale paradigma di programmazione sia il più adatto per risolvere il problema e avrà la capacità di valutare quali strumenti pratici di Python siano necessari per giundere in maniera adeguata a tale soluzione.
Abilità comunicative: lo studente sarà in grado di esprimere in maniera chiara e coerente i concetti chiave alla base della nozione di algoritmo e di sistema informatico. Sarà inoltre in grado di spiegare in maniera adeguata i propri processi di analisi di un problema per poi delineare una potenziale soluzione algoritmica a tale problema.
Capacità di apprendimento: lo studente svilupperà la capacità di apprendere nuovi linguaggi di programmazione basandosi sui concetti teorici già appresi e sarà in grado di adattare le proprie competenze a diversi contesti applicativi.
Materiale Didattico
Il materiale didattico predisposto dalla/dal docente in aggiunta ai testi consigliati (come ad esempio diapositive, dispense, esercizi, bibliografia) e le comunicazioni della/del docente specifiche per l'insegnamento sono reperibili all'interno della piattaforma Moodle › blended.uniurb.it
Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento
- Modalità didattiche
Lezioni teoriche ed esercitazioni guidate in laboratorio.
- Didattica innovativa
All'interno del corso saranno inclusi diverse attività di didattica innovativa. In particolare, per la parte teorica (1) saranno previsti momenti di "flipped lecture", durante le quali gli studenti prepareranno i materiali da discutere in autonomia per poi dedicare la lezione ad approfondimenti su tali materiali. Per la parte pratica (2), gli studenti svolgeranno esercitazioni in classe nella forma del "learning by doing", durante le quali gli studenti svolgeranno attività di gruppo per fissare i concetti appresi durante le lezioni teorico/pratiche.
- Obblighi
Non sono previsti obblighi.
- Testi di studio
Le dispense fornite dal docente e disponibili sulla piattaforma Moodle sono integrate dai seguenti testi:
(1) Harel & Feldman: Algoritmi, lo spirito dell'informatica, Springer-Verlag, 2008. (Versione digitale reperibile gratuitamente al seguente link: https://link.springer.com/book/10.1007/978-88-470-0580-8)
(2) Lambert: Programmazione in Python, II ed., Maggioli Editore, 2018.
- Modalità di
accertamento L'esame consiste in una prova orale e in un progetto individuale. L'orale riguarda la prima parte e pesa per metà del voto finale. Ha lo scopo di verificare le conoscenze acquisite e la capacità di comprensione, interpretazione, ed uso degli argomenti trattati. Il progetto, assegnato dal docente ai singoli studenti, avrà lo scopo di verificare la loro competenza pratica nell'uso di Python. Lo studente dovrà anche analizzare il proprio progetto in fase di esaminazione orale. Tale parte peserà per l'altra metà del voto finale.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
Informazioni aggiuntive per studentesse e studenti non Frequentanti
- Modalità didattiche
Lezioni teoriche ed esercitazioni non sono obbligatorie ma comunque consigliate. Il materiale fornito sulla piattaforma Moodle consente di sopperire alla mancata frequenza.
- Obblighi
Non sono previsti obblighi.
- Testi di studio
Le dispense fornite dal docente e disponibili sulla piattaforma Moodle sono integrate dai seguenti testi:
(1) Harel & Feldman: Algoritmi, lo spirito dell'informatica, Springer-Verlag, 2008. (Versione digitale reperibile gratuitamente al seguente link: https://link.springer.com/book/10.1007/978-88-470-0580-8)
(2) Lambert: Programmazione in Python, II ed., Maggioli Editore, 2018.
Per il testo (1) si dovranno completare i primi 4 capitoli. Per il testo (2) si dovranno completare i primi 6 capitoli.
- Modalità di
accertamento L'esame consiste in una prova orale e in un progetto individuale. L'orale riguarda la prima parte e pesa per metà del voto finale. Ha lo scopo di verificare le conoscenze acquisite e la capacità di comprensione, interpretazione, ed uso degli argomenti trattati. Il progetto, da concordare tra studente e professore in anticipo, avrà lo scopo di verificare la competenza pratica nell'uso di Python. Lo studente dovrà anche analizzare il proprio progetto in fase di esaminazione orale. Tale parte peserà per l'altra metà del voto finale.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
« torna indietro | Ultimo aggiornamento: 06/10/2022 |