Menù principale
B024280 - FONDAMENTI DI INFORMATICA
Principali informazioni
Lingua Insegnamento
Contenuto del corso
Libri di testo consigliati
Obiettivi Formativi
Prerequisiti
Metodi Didattici
Altre Informazioni
Modalità di verifica apprendimento
Programma del corso
Anno Accademico 2019-20
Coorte 2019 - Laurea Triennale (DM 270/04) in INGEGNERIA INFORMATICA
Anno di corso
Primo Anno - Primo Semestre
Dipartimento di Afferenza
Ingegneria dell'Informazione
Modulo di sola Frequenza di
Settore Scientifico disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Crediti Formativi
9
Ore Didattica
81
Periodo didattico
16/09/2019 ⇒ 20/12/2019
Frequenza Obbligatoria
No
Tipo Valutazione
Giudizio Finale
Contenuto del corso
mostra
Programma del corso
mostra
Docenza
Mutuazione
Insegnamento mutuato da:
B024280 - FONDAMENTI DI INFORMATICA
Laurea Triennale (DM 270/04) in INGEGNERIA INFORMATICA
Curriculum TECNICO SCIENTIFICO
B024280 - FONDAMENTI DI INFORMATICA
Laurea Triennale (DM 270/04) in INGEGNERIA INFORMATICA
Curriculum TECNICO SCIENTIFICO
Lingua Insegnamento
Italiano
Contenuto del corso
Definizione ed uso del linguaggio C. Sviluppo di algoritmi, anche di elevata complessità nel livello della programmazione, seppure con minore complessità nella struttura delle funzioni.
Comprensione del rapporto tra linguaggio C e suo ambiente di esecuzione, natura del processo di compilazione, link e assemblaggio, dei principi di funzionamento di un processore.
Comprensione del rapporto tra linguaggio C e suo ambiente di esecuzione, natura del processo di compilazione, link e assemblaggio, dei principi di funzionamento di un processore.
Libri di testo consigliati (Cerca nel catalogo della biblioteca)
Stefano Berretti, Laura Carnevali, Enrico Vicario, "Fondamenti di Programmazione, linguaggio c, strutture dati e algoritmi elementari, c++," Editrice Esculapio, Bologna, edizione giugno 2018.
Il codice C di diversi esempi svolti a lezione è a disposizione alla pagine del corso su moodle.
Il codice C di diversi esempi svolti a lezione è a disposizione alla pagine del corso su moodle.
Obiettivi Formativi
Fornire le conoscenze di base relative alla struttura di un calcolatore ed alla esecuzione di un programma.
Conoscenza ed uso del linguaggio C. Capacità di realizzare programma di media complessità in linguaggio C. Conoscenza degli algoritmi per la gestione di strutture dati base, algoritmi di ricerca e ordinamento.
Conoscenza ed uso del linguaggio C. Capacità di realizzare programma di media complessità in linguaggio C. Conoscenza degli algoritmi per la gestione di strutture dati base, algoritmi di ricerca e ordinamento.
Prerequisiti
I requisiti essenziali sono l’interesse, la capacità di ragionamento logico, la attitudine ai processi di conoscenza deduttivi, la capacità di attenzione e applicazione ai problemi. Molte di queste cose si apprendono nello studio della matematica, che è utile nel formare il metodo e fornire strumenti specifici. Chi ha esperienza nella programmazione, tipicamente gli studenti che provengono da istituti tecnici, è inizialmente facilitato. Il corso è comunque disegnato per studenti che non abbiano alcuna precedente conoscenza in materia di informatica.
Metodi Didattici
Prevalentemente lezioni frontali con presentazione alla lavagna. Alcune lezioni finalizzate alla esercitazione e svolte in laboratorio. Alcune lezioni svolte con l’ausilio di un portatile collegato a proiettore per illustrare l’uso di compilatore e ambiente di sviluppo.
Altre Informazioni
<hr align="center" size="3" >
Calendario appelli d'esame
<hr align="center" size="3">
Iscrizione agli appelli d'esame
<hr align="center" size="3">
Calendario appelli d'esame
<hr align="center" size="3">
Iscrizione agli appelli d'esame
<hr align="center" size="3">
Modalità di verifica apprendimento
L'esame si compone di una prova scritta ed una orale.
La prova scritta consiste in alcuni esercizi di programmazione relativi alla realizzazione di funzioni C che risolvono specifici problemi. Altri esercizi possono comprendere la grammatica e semantica del C. Per accedere alla prova orale, oltre a riportare una complessiva valutazione positiva, il candidato deve realizzare il programma corretto e funzionante di uno degli esercizi della prova scritta. Il programma deve essere autocontenuto e deve poter essere compilato ed eseguito. La prova scritta è svolta su carta. Dopo la conclusione, i testi assegnati nelle prove scritte e le loro soluzioni sono resi disponibili in all’interno della piattaforma Moodle.
La prova orale inizia con la discussione dell'elaborato e della prova scritta, e prosegue con l'approfondimento di tutti i contenuti del corso.
La prova scritta consiste in alcuni esercizi di programmazione relativi alla realizzazione di funzioni C che risolvono specifici problemi. Altri esercizi possono comprendere la grammatica e semantica del C. Per accedere alla prova orale, oltre a riportare una complessiva valutazione positiva, il candidato deve realizzare il programma corretto e funzionante di uno degli esercizi della prova scritta. Il programma deve essere autocontenuto e deve poter essere compilato ed eseguito. La prova scritta è svolta su carta. Dopo la conclusione, i testi assegnati nelle prove scritte e le loro soluzioni sono resi disponibili in all’interno della piattaforma Moodle.
La prova orale inizia con la discussione dell'elaborato e della prova scritta, e prosegue con l'approfondimento di tutti i contenuti del corso.
Programma del corso
PARTE I: RAPPRESENTAZIONE DI BASSO LIVELLO
Introduzione intuitiva al linguaggio C; codifica numerica dei tipi; codifica di basso livello delle istruzioni in forma simbolica (assembler MIPS) e numerica (linguaggio macchina MIPS); architettura di un processore Risc (Risc4000); processo di compilazione e assemblaggio.
PARTE II: LINGUAGGIO C
Definizione di un linguaggio: sintassi, grammatica, albero sintattico, BNF, semantica; Linguaggio C: tipi variabili e costanti, Operatori ed espressioni, Puntatori, Array, Istruzioni, Funzioni, dati strutturati.
PARTE III: STRUTTURE DATI ELEMENTARI
Liste: rappresentazione in forma sequenziale, collegata con arrays e indici, collegata con puntatori; Iterazione e ricorsione.
PARTE IV: ALGORITMI ELEMENTARI
Costo di esecuzione e complessità; Algoritmi di ricerca: sequenziale, binaria, a salti; Algoritmi di ordinamento: sequential-sort, bubble-sort, merge-sort, quick-sort. Complessità minima di un problema: il caso dell'ordinamento.
Introduzione intuitiva al linguaggio C; codifica numerica dei tipi; codifica di basso livello delle istruzioni in forma simbolica (assembler MIPS) e numerica (linguaggio macchina MIPS); architettura di un processore Risc (Risc4000); processo di compilazione e assemblaggio.
PARTE II: LINGUAGGIO C
Definizione di un linguaggio: sintassi, grammatica, albero sintattico, BNF, semantica; Linguaggio C: tipi variabili e costanti, Operatori ed espressioni, Puntatori, Array, Istruzioni, Funzioni, dati strutturati.
PARTE III: STRUTTURE DATI ELEMENTARI
Liste: rappresentazione in forma sequenziale, collegata con arrays e indici, collegata con puntatori; Iterazione e ricorsione.
PARTE IV: ALGORITMI ELEMENTARI
Costo di esecuzione e complessità; Algoritmi di ricerca: sequenziale, binaria, a salti; Algoritmi di ordinamento: sequential-sort, bubble-sort, merge-sort, quick-sort. Complessità minima di un problema: il caso dell'ordinamento.