Scheda programma d'esame
PROGRAMMAZIONE I E LABORATORIO
ROBERTO BARBUTI
Anno accademico2018/19
CdSINFORMATICA
Codice007AA
CFU12
PeriodoPrimo semestre
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
PROGRAMMAZIONE I E LABORATORIOINF/01LEZIONI96
DAVIDE BACCIU unimap
ROBERTO BARBUTI unimap
GIULIO ROSSETTI unimap
ALINA SIRBU 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 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.

Modalità di verifica delle conoscenze

Verifiche in itinere. Esame scritto prova di laboratorio.

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à acqusito  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.
(S)He will
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 prova finale di laboratorio.

Assessment criteria of skills

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

Comportamenti

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.

Behaviors

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.

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 demonstrate, 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

Mathematical basic concepts provided by the high school.

Indicazioni metodologiche

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 laboratorio gli studenti sono seguiti da docenti presenti in aula. Gli studenti possono avere interazione con i docenti durante l'orario di ricevimento o mediante email. Il corso prevede due prove in itinere.

Teaching methods

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.

Programma (contenuti dell'insegnamento)

Costrutti di base dei linguaggi imperativi e loro semantica. Programmazione C su array e liste. Automi a stati finiti e accettazione di linguaggi. Grammatiche libere da contesto e generazione di linguaggi.  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 pdf delle lezioni. 

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 pervisto per i frequentanti.

Non-attending students info

The program and teaching material for non-attendants is the same for the attendants.

Modalità d'esame

L'esame è composto da una prova scritta e da una prova di laboratorio. Si può accedere alla prova di laboratorio se il voto della prova scritta è maggiore o uguale a 16/30. 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 quattro esercizi da risolvere più una domande di teoria. Le due prove devono essere svolte nella stessa sessione d'esami. 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 teh student can access directly to the laboratory test. The written test consists of 4 exercises 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.

Altri riferimenti web

 

 

Ultimo aggiornamento 24/09/2018 12:37