Scheda programma d'esame
PROGRAMMAZIONE I E LABORATORIO
PAOLO MILAZZO
Anno accademico2017/18
CdSINFORMATICA
Codice007AA
CFU12
PeriodoPrimo semestre
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
PROGRAMMAZIONE I E LABORATORIOINF/01LEZIONI96
ROBERTA GORI unimap
PAOLO MILAZZO unimap
NADIA PISANTI unimap
GIOVANNA ROSONE unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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.

 

Knowledge

The student will become proficient in the methodologies for the creation of finite state automata for the acceptance of languages and of context-free grammars for the generation of languages. The student will become proficient in the basic constructs for imperative programming in the C programming language. The student will become proficient in the basic constructs for functional programming in the CAML programming language. Furthermore, s/he will become proficient in the theoretical aspects of the semantics of imperative and functional programming languages.

Modalità di verifica delle conoscenze

Verifiche in itinere. Esame scritto e orale.

Assessment criteria of knowledge

Periodic written tests. Written and orale exam.

Capacità

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à acquisito  la capacità di realizzare programmi di media complessità usando il paradigma funzionale e il linguaggio CAML. 

Skills

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. Furthermore, s/he will acquire the ability to implement programs of average complexity using the functional paradigm and the CAML language.

 

Modalità di verifica delle capacità

Verifiche in itinere. Esame scritto e attività e prova finale di laboratorio.

Assessment criteria of skills

Periodic written tests. Written exam and laboratory activities with final test.

Comportamenti

Lo studente acquisirà dimestichezza con i principali strumenti e processi di sviluppo del software e con la definizione formale degli strumenti utilizzati.

Behaviors

The student will become familiar with the main software development tools and processes and with the formal definitions of such tools.

Modalità di verifica dei comportamenti

Lo studente dovrà dimostrare, nella prova finale di laboratorio, di aver acquisito piena consapevolezza delle soluzioni tecniche viste nel corso.

Assessment criteria of behaviors

The student will have to show, in the laboratory final test, full awareness of the technical solutions presented in the course.

Prerequisiti (conoscenze iniziali)

Nozione matematiche di base fornite nella scuola secondaria.

Prerequisites

Basic mathematical concepts introduced during high school.

Indicazioni metodologiche

Il corso prevede lezioni frontali, con l'ausilio di lavagna elettronica. Sono previste esercitazioni in aula/laboratorio formando gruppi e utilizzando i PC delle aule laboratorio. È previsto un sito web del corso e uno per il laboratorio. Nel sito web del laboratorio è possibile usare uno strumento interattivo per lo svolgimento delle esercitazioni. Nelle attività di laboratorio gli studenti sono seguiti da docenti presenti in aula. Le lezioni sono registrate e caricate nel sito di e-learning dell'Università di Pisa. Gli studenti possono avere interazione con i docenti durante l'orario di ricevimento o mediante e-mail. Il corso prevede due prove in itinere.

 

Teaching methods

The course includes lectures 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 out the exercises. In the laboratory activities, students are supervised by teachers present in the classroom. The lessons are recorded and uploaded at the University of Pisa e-learning site. Students can interact with teachers during office hours or by e-mail. The course includes two periodic tests.

Programma (contenuti dell'insegnamento)

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.

Syllabus

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.

Bibliografia e materiale didattico

Dispense del corso e lezioni registrate. Manuale del linguaggio di programmazione C.

 

Bibliography

Course notes and recorded lessons. Manual of the C programming language.

 

Indicazioni per non frequentanti

Il programma e il materiale didattico per i non frequentanti è lo stesso previsto per i frequentanti.

Non-attending students info

The program and teaching material for non-attendants are the same as those for those attending.

Modalità d'esame

L'esame è composto da una prova scritta, una prova di laboratorio e una prova orale. Si può accedere alla prova di laboratorio se il voto della prova scritta è maggiore o uguale a 16/30. Si può accedere alla prova orale se viene superata la prova di laboratorio. Durante il corso si svolgono due prove in itinere. Se entrambe sono superate con un voto maggiore o uguale a 16/30 si può non fare la prova scritta e accedere direttamente alla prova di laboratorio. La prova scritta consiste in 4 esercizi da risolvere. La prova orale consiste di domande di teoria. Di norma le tre prove devono essere svolte nello stesso appello. In ogni anno accademico le regole di dettaglio sono pubblicate sulla pagina web del corso.  

Assessment methods

The exam consists of a written test, a laboratory test, and an oral test. The laboratory test can be accessed if the mark of the written test is greater than or equal to 16/30. The oral test can be accessed if the laboratory test is passed. During the course, two interim tests are carried out. If both are passed with a mark greater than or equal to 16/30, the student can access directly to the laboratory test. The written test consists of 4 exercises that must to be solved. The oral test consists of theory questions. Usually, the three tests must be carried out in the same exam. In each academic year the detailed rules are published on the course website.

Ultimo aggiornamento 21/07/2017 13:14