Fondamenti di Informatica Iblackboard- Polo di Prato

Novità

Date esame

Gli studenti interessati a sostenere l'esame devono iscriversi mandandomi un'email e sempre controllare data e ora sul sito del Polo didattico di Prato (link diretto: sezione prenotazione aule)

Lucidi lezioni e materiale collegato

I collegamenti agli articoli di Wikipedia sono generalmente fatti alle versioni in inglese.

Introduzione al corso (6.7 MB), Wikipedia: linguaggio C (in italiano)

La rappresentazione dei dati (4 MB), articolo di Dr. Dobbs Journal sui tipi numerici, Wikipedia: floating point e IEEE 754, programma di esempio

Definizione di un linguaggio (500 KB), Wikipedia: Extended Backus-Naur Form, tutorial su BNF ed EBNF

Il compilatore C (600 KB), il preprocessore (dalla versione online del libro "The C Book, second edition" di Mike Banahan, Declan Brady and Mark Doran, pubblicato da Addison Wesley nel 1991), Compiler, Assembler, Linker and Loader: a brief story, IBM DeveloperWorks: Dissecting shared libraries e Anatomy of Linux dynamic libraries

Il linguaggio C: tipi, variabili e costanti (400 KB)

Il linguaggio C: puntatori e array (400 KB), tutorial su puntatori ed array

Il linguaggio C: istruzioni, funzioni, dati strutturati (450 KB), il passaggio dei parametri in Java 1, 2.

Strutture dati: le liste (450 KB), Wikipedia: Linked List, tutorial su linked list

Costo di esecuzione e complessità/ Algoritmi di ricerca: sequenziale e binaria (650 KB), Google Blog: Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken, Wikipedia: Binary search

Algoritmi di ordinamento: Sequential sort, Bubble-sort, Quicksort (450 KB), Wikipedia: Bubble sort e Quicksort (con animazioni)

Algoritmi di ordinamento: Mergesort (400 KB), Wikipedia: Mergesort (con animazione)

Strutture dati: alberi binari (500 KB), Wikipedia: binary tree

Modalità di svolgimento dell'esame

L'esame si compone di una prova scritta e una orale.
La prova scritta consiste in alcuni elaborati di programmazione e nella discussione di contenuti del programma. La prova è organizzata "a batteria" in due parti di 45-60 minuti ciascuna: nella prima parte vengono date risposte a questioni di natura teorica, nella seconda viene svolto un esercizio di programmazione.
La prova scritta è svolta su carta, usando fogli in formato A4 (no fogli protocollo). Al termine, viene presentata e discussa la soluzione. Successivamente i candidati ricevono la fotocopia del loro elaborato.
Per accedere alla prova orale, il candidato deve correggere il proprio elaborato, riportando le correzioni in maniera visibile sulla fotocopia. Il candidato deve anche realizzare il programma corretto e funzionante che corregge l'elaborato e lo completa facendone un programma autocontenuto. Il candidato deve infine fornire una autovalutazione del proprio elaborato, in base al valore attribuito a ciascuna parte della prova, alla discussione della soluzione, all'esperienza acquisita nella correzione e realizzazione effettiva del programma.
La prova orale può essere sostenuta a partire dalla settimana seguente alla prova scritta, non oltre la prova scritta successiva.
La prova orale inizia con la discussione dell'elaborato, e prosegue con l'approfondimento di tutti i contenuti del programma.

Esempi di compiti sono disponibili sul sito del Prof. Enrico Vicario.

Ambienti di sviluppo/compilatori consigliati

Eclipse CDT (richiede l'installazione di Eclipse e di un compilatore come GCC) - multipiattaforma

Code::Blocks (disponibile in distribuzione che contiene il compilatore) - multipiattaforma

Compilatore per Windows: GCC nella distribuzione MinGW

Compilatore per Linux e OSX: GCC

Libro di testo

Copertina VicarioE. Vicario, "Fondamenti di programmazione - Linguaggio C, strutture dati e algoritmi elementari, c++", Società Editrice Esculapio, 2011

 

 

 

 

 

 

 

 

Libri consigliati

H.M. Deitel, P.J. Deitel, “C Corso completo di programmazione”, Apogeo, 2007
Copertina Deitel&Deitel

 

 

 

 

 

 

 

 

 

H. Schildt, “C Guida completa”, McGraw-Hill, 2000Copertina Schildt

 

 

 

 

 

 

 

 

Sedgewick Robert, “Algoritmi in C”, Pearson EducationCopertina Sedgewick

 

 

 

 

 

 

 

 

Jon Bentley, “Programming Pearls”, Addison WesleyCopertina Bentley