Fondamenti di Informatica A 2014/2015
pagine
informazioni generali sul corso
Information
Sito del corso chiuso!
La attività di Mirko Viroli in questo corso è conclusa. Gli studenti facciano riferimento ora al prof. Moreno Marzolla.
conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede le conoscenze di base dei concetti di computazione, di programmazione imperativa, strutturata, e ad oggetti, e di strutture dati e loro algoritmi. In particolare, lo studente è in grado di:
- progettare algoritmi base per la manipolazione di strutture dati
- realizzare tali algoritmi nei linguaggi di programmazione Java e C
- costruire semplici applicazioni Java
contenuti
- Introduzione. Il concetto di elaboratore elettronico e computazione algoritmica. I principali risultati della teoria della computazione classica: automi, funzioni ricorsive primitive, tesi di Church, incompletezza di Goedel. I linguaggi di programmazione.
- La valutazione delle espressioni. I concetti di valore, tipo di dato, operatore ed espressione. I tipi primitivi, stringhe ed array, e loro operatori. Schemi di compilazione ed interpretazione. Abstract Syntax Tree e valutazione di una espressione.
- La programmazione imperativa e strutturata. I concetti di assegnamento, variabile, e statement. I costrutti di programmazione strutturata. Principali aspetti di sintassi, e esecuzione. Algoritmi iterativi per l'elaborazione di sequenze.
- La programmazione funzionale. L'astrazione di funzione. Il record di attivazione. Confronto fra algoritmi ricorsivi ed algoritmi iterativi. La ricorsione tail. Assegnamento ed array: il problema del side-effect.
- Programmazione procedurale e modulare. Le classi di Java come moduli. Java Development Kit.
- Costruzioni Algoritmi. Aspetti metodologici nella costruzione degli algoritmi. Algoritmi base: ricerca, ordinamento. Elementi di complessità computazionale.
- La programmazione nel linguaggio C. Strutture dati e operatori in C. Array e puntatori. Input e Output. Compilazione di programmi C. Elementi di sistemi operativi e gestione dei file in C.
testi / bibliografia
Consigliati solo come approfondimento:
- Informatica teorica e Programmazione
- Ceri, Mandrioli, Sbattella. “Informatica: arte e mestiere”, McGraw Hill
- Aho, Ullman. “Fondamenti di Informatica”, Zanichelli
- Ghezzi, Mandrioli. “Informatica Teorica”, CLUP, Milano, 1989
- Java
- “Java2: i Fondamenti”, McGraw-Hill (Sun Microsystems Press), 1999
- “Java Language Specification”, McGraw-Hill (Sun), scaricabile al sito http://java.sun.com/docs/books/jls/index.html
- Goodrich, Tamassia, "Strutture dati e algoritmi in Java", Zanichelli
- C:
- Bellini, Guidi. "Linguaggio C: guida alla programmazione", McGraw-Hill
- Deitel, Deitel. "C: How to Program", Pearson International Edition
metodi didattici
Approssimativamente 7 ore di lezione alla settimana, di norma 4/5 in aula e 2/3 in laboratorio
modalità di verifica e valutazione dell'apprendimento
- Prova scritta su programmazione Java e C in laboratorio
- Prova teorica su tutti gli argomenti del corso in laboratorio, tramite quiz
strumenti a supporto della didattica
- Slide proiettate a lezione e pubblicate sul sito del docente in anticipo
- Software: Java Development Kit, Compilatore C Gnu (GCC)
2014/2015
— a.a.
2014/2015
— crediti
9
— livello
laurea
— lingua
chi
— professore
— altri docenti
— tutori
— università
Alma Mater Studiorum-Università di Bologna
— campus
Cesena
— dipartimento / facoltà / scuola
DISI
— laurea
0947 Ingegneria elettronica e delle telecomunicazioni
URL & ID
— ID corso
15305