lo studente avrà acquisito conoscenze in merito agli strumenti e alle metodologie per la creazione di automi a stati finiti per il riconoscimento di linguaggi e di grammatiche libere da contesto per la generazione di linguaggi. Avrà acquisito conoscenze dei costrutti fondamentali per la programmazione imperativa nel linguaggio di programmazione C. Avrà acquisito conoscenze dei costrutti fondamentali per la programmazione funzionale nel linguaggio di programmazione CAML. Avrà acquisito conoscenze su aspetti teorici della semantica dei linguaggi di programmazione imperativi e funzionali.
The student will acquire knowledge about the methodologies for the creation of finite
state automata for the acceptance of languages and context-free grammars for the
generation of languages. The student will acquire the knowledge of the basic constructs
for imperative programming in the C programming language. The student will acquire the knowledge
of the basic constructs for functional programming in the CAML programming language.
(S)He will acquire the knowledge of theoretical aspects of the semantics of imperative and
functional programming languages.
Verifiche in itinere. Esame scritto e orale.
Periodic written tests. Written and orale exam.
Lo studente avrà acquisito la capacità di definire automi per il riconoscimento di linguaggi e di definire grammatiche libere da contesto per la loro generazione. Avrà acquisito la capacità di realizzare programmi di media complessità usando il paradigma imperativo e il linguaggio C. Avrà acqusito la capacità di realizzare programmi di media complessità usando il paradigma funzionale e il linguaggio CAML.
The student will acquire the ability to define automata for the acceptance of languages and to
define context-free grammar for their generation. The student will acquire the ability to
implement programs of average complexity using the imperative paradigm and the C language.
(S)He will will acquire the ability to implement programs of average complexity using the
functional paradigm and the CAML language.
Verifiche in itinere. Esame scritto e attività e prova finale di laboratorio.
Periodic written tests. Written exam and laboratory activities and final test.
Lo studente acquisirà dimestichezza con i principali strumenti e processi di sviluppo del software. Lo studente acquisirà dimestichezza con la definizione formale degli strumenti usati.
The student will become familiar with the main software development tools and processes. The student will become familiar with the formal definitions of the used tools.
Lo studente dovrà dimostrare, nella prova finale di laboratorio, di aver acquisito piena consapevolezza delle soluzioni tecniche viste nel corso.
The student will have to demonstrate, in the laboratory final test, full awareness of the technical solutions presented in the course.
Nozione matematiche di base fornite nella scuola secondaria.
Mathematical basic concepts provided by the high school.
Nessuno.
None.
Il corso fornisce contenuti di base usati in numerosi corsi successivi.
The course provides basic concepts used in several subsequent courses.
Il corso prevede lezioni frontali, con ausilio di lavagna elettroniche. Sono previste esercitazioni in aula/laboratorio formando gruppi e utilizzando i PC delle aule laboratorio. E' previsto un sito web del corso e uno di laboratorio. Nel sito web del laboratorio è possibile usare uno strumento interattivo per lo svolgimento delle esercitazioni. Nelle attività di loboratorio gli studenti sono seguiti da docenti presenti in aula. Le lezioni sono registrate e caricate nel sito di elearning dell'Università di Pisa. Gli studenti possono avere interazione con i docenti durante l'orario di ricevimento o mediante email. Il corso prevede due prove in itinere.
The course includes frontal lessons, with the aid of electronic whiteboards.
Classroom/laboratory exercises are provided by forming groups and using PCs in the laboratory.
A course website and a laboratory website are provided. In the laboratory website it is possible
to use an interactive tool to carry outexercises. In the laboratory activities, students are
supervised by teachers present in the classroom. The lessons are recorded and uploaded at
the University of Pisa's elearning site. Students can interact with teachers during office
hours or by email. The course includes two periodic test.
Automi a stati finiti e accettazione di linguaggi. Grammatiche libere da contesto e generazione di linguaggi. Costrutti di base dei linguaggi imperativi e loro semantica. Programmazione C su array e liste. Introduzione alla programmazione ricorsiva. Teorema di ricorsione. Programmazione funzionale in CAML.
Finite states automata and language acceptance. Context-free grammars and language generation.
Basic constructs of imperative languages and their semantics. C programming on arrays and lists.
Introduction to recursive programming. Recursion theorem. Functional programming in CAML.
Dispense del corso e lezioni registrate.
Manuale del linguaggio di programmazione C.
Course notes and recorded lessons.
Manual of the C programming language.
Il programma e il materiale didattico per i non frequentanti è lo stesso pervisto per i frequentanti.
Nessuno.
None.
http://pages.di.unipi.it/gadducci/
http://didawiki.cli.di.unipi.it/doku.php/informatica/prl/start
http://pages.di.unipi.it/gadducci/
http://didawiki.cli.di.unipi.it/doku.php/informatica/prl/start