FONDAMENTI DELL'INFORMATICA
cod. 07581

Anno accademico 2015/16
2° anno di corso - Secondo semestre
Docente
Roberto BAGNARA
Settore scientifico disciplinare
Informatica (INF/01)
Ambito
Discipline informatiche
Tipologia attività formativa
Caratterizzante
84 ore
di attività frontali
9 crediti
sede: PARMA
insegnamento
in - - -

Obiettivi formativi

Fondamenti matematici dell'informatica:

Il corso fornisce gli strumenti formali e le nozioni fondamentali per studiare problemi trattabili e non mediante calcolatore. Viene presentata la teoria degli automi e dei linguaggi formali, teoria a fondamento della descrizione e dell'implementazione dei linguaggi di programmazione. Vengono poi illustrati i concetti e la natura dei problemi che ammettono soluzione effettiva, ovvero dei problemi risolvibili mediante calcolatore.

Principi e paradigmi dei linguaggi di programmazione:

L'interazione con i computer avviene in molti modi: quando il comportamento che si desidera ottenere è semplice o già codificato, si possono usare formalismi poveri ed intuitivi. Per comunicazioni più sofisticate non si può prescindere dall'impiego di formalismi dall'elevato potere espressivo. I linguaggi di programmazione offrono una vastissima gamma di notazioni per la specifica dei comportamenti che si richiedono ad un computer. Lo studio dei linguaggi di programmazione è affascinante ed importante. In primo luogo perché lo studio dei principi fondamentali (valori, legami, controllo, astrazione, incapsulazione, oggetti, moduli, nondeterminismo, tipi, ...) e della loro realizzazione nei vari linguaggi (C, C++, Fortran, Pascal, OCaml, Java, Python, ...) aiuta a capire ciò che veramente conta nella scelta di un linguaggio di programmazione, ben al di là della "moda" del momento. In secondo luogo, perché lo studio comparato dei linguaggi conduce ad affinare l'abilità e lo stile di programmazione quali che siano i linguaggi che, in un dato momento della propria vita professionale, si usano maggiormente. Infine, più spesso di quanto non si creda la soluzione di un problema informatico passa per la definizione di un linguaggio e dalla realizzazione di una "macchina" che lo interpreta.

Prerequisiti

Fondamenti di programmazione.

Contenuti dell'insegnamento

Il corso comprende due parti distinte e complementari: una parte sui fondamenti matematici dell'informatica, l'altra sui principi e paradigmi dei linguaggi di programmazione.

Programma esteso

Fondamenti matematici dell'informatica:

* Cenni introduttivi sul concetto di algoritmo, sulla rappresentazione dell'informazione, e sull'architettura del calcolatore.
* Linguaggi formali.
* Espressioni regolari.
* Automi a stati finiti.
* Grammatiche generative.
* Linguaggi liberi dal contesto.
* Macchine di Turing.
* Funzioni calcolabili e non.
* Calcolabilità e linguaggi di programmazione.
* Cenni su insiemi ricorsivi e ricorsivamente enumerabili.

Principi e paradigmi dei linguaggi di programmazione:

* Descrizione dei linguaggi di programmazione.
* Nomi e ambiente.
* Gestione della memoria.
* Strutture e astrazioni del controllo.
* Strutture e astrazioni dei dati.

Bibliografia

* A. Dovier, R. Giacobazzi. Fondamenti dell'Informatica: Linguaggi Formali e Calcolabilità.
* A. M. Pitts. Regular Languages and Finite Automata.
* I. Mastroeni. Eserciziario per il corso ``Fondamenti dell'Informatica: Linguaggi Formali e Calcolabilità''.
* U. Solitro. Linguaggi Formali, Computabilità e Complessità: Esercizi risolti, 2006.
* A. Pettorossi. Automata Theory and Formal Languages, Aracne Editrice, 2006. ISBN: 88-548-0889-X.
* A. Pettorossi. Elements of Computability, Decidability, and Complexity, Aracne Editrice, 2006. ISBN: 88-548-0682-X.
* M. Gabbrielli e S. Martini. Linguaggi di programmazione: principi e paradigmi, Seconda edizione. McGraw-Hill Italia, 2011. ISBN 88-386-6573-8.
* R. W. Sebesta. Concepts of Programming Languages, Tenth edition. Pearson, USA, 2013. ISBN-10: 0131395319. ISBN-13: 9780131395312.

Metodi didattici

Lezioni ed esercitazioni.

Modalità verifica apprendimento

Esame scritto.

Altre informazioni

Mailing list: http://studenti.cs.unipr.it/mailman/listinfo/Fondamenti-Informatica

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Contatti

Numero verde

800 904 084

Segreteria studenti


E. segreteria.scienze@unipr.it

Servizio per la qualità della didattica

Manager della didattica:
Dott.ssa Claudia Buga

T. 0521 902842
E. smfi.didattica@unipr.it
E. claudia.buga@unipr.it

Presidente del corso di studio

Prof. Vincenzo Bonnici
E. vincenzo.bonnici@unipr.it

Delegato orientamento in ingresso

Prof. Vincenzo Arceri
E. vincenzo.arceri@unipr.it

Delegato orientamento in uscita

Prof.ssa Chiara Guardasoni
E. chiara.guardasoni@unipr.it

Referente piani di studio

Prof. Flavio Bertini
E. flavio.bertini@unipr.it

Referente convalide

Prof. Andrea Munaro
E. andrea.munaro@unipr.it

Docenti tutor

Prof. Enea Zaffanella
E. enea.zaffanella@unipr.it

Delegati Erasmus

Prof. Andrea Munaro
E. andrea.munaro@unipr.it

Studente tutor per scambi all'estero (in definizione)
E.

Responsabile assicurazione qualità

Prof.ssa Chiara Guardasoni
E. chiara.guardasoni@unipr.it

Tirocini formativi

Referente prof. Enea Zaffanella
E. enea.zaffanella@unipr.it

Referente per le fasce deboli

Prof. Fiorenza Morini
E. fiorenza.morini@unipr.it

Studenti tutor

Tutor a.a. 2024-2025 
Dott. Saverio Mattia Merenda
Tutorato a sportello tutti i venerdì 9:00-10:30 in aula M a Matematica previo appuntamento via e-mail:
E. saveriomattia.merenda@studenti.unipr.it
 

Rappresentanti degli studenti in CCSU

  • Lorenzo Copelli
  • Alessandro Frasconi
  • Marcello Galli
  • Samuel Seligardi