|
Insegnamento
FONDAMENTI DI INFORMATICA
IN18103361, A.A. 2019/20
Informazioni valide per gli studenti immatricolati nell'A.A. 2019/20
Dettaglio crediti formativi
Tipologia |
Ambito Disciplinare |
Settore Scientifico-Disciplinare |
Crediti |
ALTRO |
Abilità informatiche e telematiche |
-- |
3.0 |
BASE |
Matematica, informatica e statistica |
ING-INF/05 |
6.0 |
Organizzazione dell'insegnamento
Periodo di erogazione |
Primo semestre |
Anno di corso |
I Anno |
Modalità di erogazione |
frontale |
Tipo ore |
Crediti |
Ore di didattica assistita |
Ore Studio Individuale |
LEZIONE |
9.0 |
72 |
153.0 |
Inizio attività didattiche |
23/09/2019 |
Fine attività didattiche |
18/01/2020 |
Visualizza il calendario delle lezioni |
Lezioni 2019/20 Ord.2017
|
Commissioni d'esame
Commissione |
Dal |
Al |
Membri |
3 2018 |
01/10/2018 |
15/03/2020 |
TRAMARIN
FEDERICO
(Presidente)
REGGIANI
MONICA
(Membro Effettivo)
|
Prerequisiti:
|
Non si richiedono prerequisiti specifici. Nello svolgimento del programma si assume comunque che gli studenti abbiano nozioni di matematica di base e conoscenze pratiche sull’uso del computer pari a quanto certificato da ECDL (scompattare file, installare programmi, usare la posta elettronica, accedere a internet, ecc.). |
Conoscenze e abilita' da acquisire:
|
Il corso offre l’opportunità di raggiungere le conoscenze di base dei concetti di computazione, di programmazione imperativa, strutturata e di strutture dati e loro algoritmi.
Al superamento con successo del corso, gli studenti avranno conseguito le seguenti abilità:
- Conoscenza del linguaggio C e padronanza di una terminologia corretta e dei concetti di base dell’informatica
- Capacità di progettazione e sviluppo in linguaggio C di strutture dati e algoritmi
- Comprensione dei metodi generali di studio di un linguaggio di programmazione
- Comprensione dei metodi generali di ragionamento nella progettazione di strutture dati e algoritmi.
- Comprensione della struttura e dei principi di funzionamento di un calcolatore, del rapporto tra il linguaggio C e il suo ambiente di esecuzione, e del processo di compilazione, assemblaggio e collegamento. |
Modalita' di esame:
|
Esame scritto |
Criteri di valutazione:
|
L'esame di compone di una singola prova scritta volta ad accertare le competenze teoriche e pratiche acquisite sugli argomenti del corso. La verifica della conoscenza della teoria sarà effettuata mediante una serie di domande a risposta aperta su tutti gli argomenti trattati durante il corso. La parte di programmazione consiste nello sviluppo di alcuni semplici programmi in linguaggio C secondo le specifiche assegnate dal docente. |
Contenuti:
|
Parte Generale:
Rappresentazione dei dati e dell'informazione. Architettura del calcolatore. Linguaggio macchina. Introduzione ai sistemi operativi ed alla gestione dei processi. Algoritmi e loro rappresentazione. Ordinamento per selezione, inserimento, merge e quicksort. Ricerca lineare e binaria. Prestazioni e notazione O-grande. Programmazione procedurale e programmazione orientata agli oggetti. Astrazioni sui dati. Strutture dati: liste, pile, code, alberi e loro implementazione.
Il linguaggio C:
Tipi di dati fondamentali, nozioni di variabile e assegnazione. Tipi numerici base e operatori relativi. Parentesi e regole di precedenza, operatori di incremento e decremento. Operatori logici. Conversioni di tipo, compatibilità di assegnamento, costanti. I/O formattato: printf e scanf. Espressioni logiche. Condizioni: istruzioni if, if-else, if-else annidati, if-else multi-ramo e switch. Istruzioni di iterazione: while, for, do-while. Cicli annidati e valori sentinella.
Vettori, indicizzazione, operatore sizeof. Vettori di lunghezza variabile. Semplici algoritmi per la gestione dei vettori (contare, trova valore e massimo/minimo). Copiare array.
Definire e invocare funzioni, dichiarazione di funzioni, argomenti. Istruzione return. Record di attivazione, stack, variabili statiche. Blocchi, ambito di visibilità (scope) e durata della memorizzazione delle variabili. Suddivisione del software in più file e include guards. Variabili puntatore, operatore indirizzo e dereference. Puntatori usati come argomenti e come valori restituiti. Nome di un vettore usato come puntatore [eventualmente: aritmetica dei puntatori.] Variabili struttura, tipi di struttura. Annidamento tra strutture e vettori. Information hiding, tipi di dato astratti, incapsulamento. Concetto di heap e allocazione dinamica della memoria:
funzioni alloc, realloc, free. Dangling pointer, riferimento NULL.
Operatore "->". Liste concatenate. Stringhe letterali, variabili stringhe, leggere e scrivere stringhe. |
Attivita' di apprendimento previste e metodologie di insegnamento:
|
Una serie di lezioni frontali presenta concetti, metodi, problemi e soluzioni. Diversi esercizi di base vengono proposti al calcolatore sotto la supervisione diretta del docente. Attività di laboratorio settimanali permettono allo studente di formulare soluzioni personali a problemi proposti. |
Eventuali indicazioni sui materiali di studio:
|
Le lezioni frontali si basano sui testi di riferimento indicati. Tutto il materiale di ogni lezione viene reso disponibile agli studenti nella piattaforma moodle. |
Testi di riferimento: |
|
Didattica innovativa: Strategie di insegnamento e apprendimento previste
- Laboratory
- Files e pagine caricati online (pagine web, Moodle, ...)
Didattica innovativa: Software o applicazioni utilizzati
- Moodle (files, quiz, workshop, ...)
|
|