Scheda insegnamento
-
Docente Mirko Viroli
-
Moduli Mirko Viroli (Modulo 1)
Sara Montagna (Modulo 2)
-
Crediti formativi 9
-
SSD ING-INF/05
-
Modalità didattica Convenzionale - Lezioni in presenza (Modulo 1)
Convenzionale - Lezioni in presenza (Modulo 2)
-
Lingua di insegnamento Italiano
-
Campus di Cesena
-
Corso Laurea in Ingegneria biomedica (cod. 0946)
Anno Accademico 2010/2011
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
Informatica Teorica. Il concetto di elaboratore elettronico
e computazione algoritmica. Le grammatiche formali come strumento
per la descrizione sintattica di dati e programmi. I principali
risultati delle 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 di Java,
stringhe ed array, e loro operatori. Schemi di compilazione ed
interpretazione. Abstract Syntax Tree, typing e valutazione di una
espressione.
La programmazione funzionale. L'astrazione di funzione:
motivazioni, sintassi Java e principali aspetti di typing e
valutazione. Ricorsione e algoritmi ricorsivi per l'accesso alle
sequenze. Ingegneria delle funzioni: analisi e progetto. Progetto
della signature, funzionalità di test, schemi implementativi: la
ricorsione e la composizione.
La programmazione imperativa e strutturata. I concetti di
assegnamento, variabile, e statement. I costrutti di programmazione
strutturata. Principali aspetti di sintassi, typing e esecuzione.
Algoritmi iterativi per l'elaborazione di sequenze. Il record di
attivazione. Confronto fra algoritmi ricorsivi ed algoritmi
iterativi. La ricorsione tail. Assegnamento ed array: il problema
del side-effect.
La programmazione procedurale e modulare. La classe Java
come modulo. Variabili globali e inizializzazione. I modificatori
di accesso. I package e l'utilizzo della libreria di Java. Il
framework di Java ed il Java Development Kit.
La programmazione con gli Abstract Data Types. Gli oggetti
di Java: costruttori, metodi e campi. Sintassi, typing,
valutazione. Gestione a run-time. I tipi di dato astratto e la loro
implementazione con gli oggetti. Implementazione di strutture dati
rilevanti in Java.
Elementi di programmazione Object-Oriented. Classi, oggetti,
metodi e campi. Ereditarietà. Le librerie di Java.
La programmazione nel linguaggio C. Strutture dati in C.
Array e puntatori. Input e Output. Compilazione di programmi
C.
Testi/Bibliografia
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
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)
Link ad altre eventuali informazioni
http://www.ingce.unibo.it/~mviroli/
Orario di ricevimento
Consulta il sito web di Mirko Viroli
Consulta il sito web di Sara Montagna