Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


INFORMATICA
INFORMATION TECHNOLOGY

A.A. CFU
2022/2023 6
Docente Email Ricevimento 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

Filosofia dell'Informazione. Teoria e Gestione della Conoscenza (LM-78)
Curriculum: LINGUAGGI DELLA RETE
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 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


Il tuo feedback è importante

Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

15 22

Se sei vittima di violenza o stalking chiama il 1522, scarica l'app o chatta su www.1522.eu

Il numero, gratuito è attivo 24 h su 24, accoglie con operatrici specializzate le richieste di aiuto e sostegno delle vittime di violenza e stalking.

Posta elettronica certificata

amministrazione@uniurb.legalmail.it

Social

Università degli Studi di Urbino Carlo Bo
Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
Partita IVA 00448830414 – Codice Fiscale 82002850418
2024 © Tutti i diritti sono riservati

Top