View syllabus
THEORETICAL FOUNDATIONS AND PROGRAMMING
FILIPPO BONCHI
Academic year2020/21
CourseDIGITAL HUMANITIES
Code437AA
Credits12
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
ELEMENTI DI PROGRAMMAZIONEINF/01LEZIONI42
CLAUDIO GALLICCHIO unimap
FRANCESCA PRATESI unimap
METODI FORMALI PER L'INFORMATICAINF/01LEZIONI42
FILIPPO BONCHI unimap
IOANNA MILIOU unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Modulo A: Introduzione alla risoluzione di problemi e acquisizione della conoscenze di base della programmazione,

Modulo B: Acquisizione di concetti di base della teoria del calcolo.

 

Knowledge

The student who successfully completes the course will have the ability to write compile and run programs in the JavaScript language. The students will be aware of the kind of problems that can be solved with a computer.

 

Assessment criteria of knowledge

The student must be able to solve the exercises of the first test and answer to the questions of the second test.

 

Capacità

Alla fine del corso lo studente deve essere in grado di scrivere semplici programmi in JavaScript che utilizzino i tipi primitivi e gli array e i costrutti di base ed avere acquisito e fatto propri i concetti fondamentali della teoria del calcolo.

Skills

At the end of the course the student must be able to write simple JavaScript programs using primitive types, arrays and basical control structures. Furthermore she/he must know the fundamental concepts of computing theory.

Prerequisiti (conoscenze iniziali)

Nessuno. E` pero utile che lo studente abbia delle buone basi di matematica e logica.

Prerequisites

None, but it is useful for the student to know mathematical and logic basic concepts

Indicazioni metodologiche
  • Le lezioni sono frontali, con ausilio di slides che vengono pubblicate sulla pagina del corso spesso in anticipo. Gli studenti sono invitati a guardare le slides anche prima della lezione per poter seguire in modo più attivo e proficuo alla comprensione dei temi trattati.
  • Le esercitazioni si svolgono in parte in laboratorio usando i PC delle aule informatiche, o i PC personali degli studenti, in parte in aula invitando gli studenti a mostrare la soluzione  del problemi proposto e discutendo le diverse soluzioni possibili.
  • Gli esercitatori aiutano gli studenti prevalentemente nella parte di programmazione (Modulo A). Possono tenere le esercitazioni e i ricevimenti degli studenti. Chiariscono dubbi e rispondono alle domande, correggono gli esercizi.
  • Il materiale didattico è in gran parte scaricabile dalla pagina web del corso ed in ogni caso tutte le informazioni sul materiali didattici, comunicazioni docente-studenti, avvengono sul sito del corso. E` necessario registrarsi su mooodle polo4.elearning.unipi.it/ e iscriversi al corso.
  • Durante il corso vengono tenuti dei ricevimenti in aula per incoraggiare gli studenti a presentare e discutere le loro soluzioni ai problemi e la formazione d gruppi di studio.

 

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • laboratory work

Attendance: Advised

Teaching methods:

  • lectures
  • laboratory

 

Programma (contenuti dell'insegnamento)

Il corso è articolato in 2 moduli:

Modulo A:   
Argomento:  Introduzione alla programmazione utilizzando il linguaggio JavaScript.
Argomenti affrontati:

  •      Espressioni
  •      Variabili: dichiarazioni e uso
  •      Comandi: assegnamento, condizionali e iteratori.
  •      Funzioni: definizioni e invocazione.
  •      Visibilita` dei nomi
  •      Strutture dati: array e array associativi. 

Modulo B:   
Argomento:   Concetti di base dell'informatica.
Argomenti affrontati:

  • Concetti di base del ragionamento formale e ai vari tipi di dimostrazioni. [1]
  • Insiemi [2] 
  • relazioni [2] 
  • funzioni [2] 
  • grafi [2] 
  • alberi [2] 
  • Linguaggi formali: automi e grammatiche [3]
Syllabus

The course is devided in two:

Module A - Introduction to computer programming: Introduction to the JavaScript language: command, espressions, declaration, functions, array, associative array

Module B - Computer science basic concepts: Formal reasoning and types of proofs, set theory, relations, functions, graphs, threes, automata and grammars

 

Bibliografia e materiale didattico

Testi modulo A:  
Lucidi delle lezioni, pubblicati sulla pagina del corso
V. Ambriola. "Programmazione in JavaScript": Prima parte, Nota didattica, V. Ambriola, in formato pdf

Testi modulo B:
Lucidi delle lezioni. Dipsense caricate su Moodle
[1] Automi linguaggi e calcolabilita` Hopcroft J. et al. cap.1
[2] T. Cormen et al. "Introduzione agli algoritmi", Jackson libri, cap.5
[3] R. Barbuti et al. Elementi di Sintassi dei Linguaggi di  Programmazione", pdf

Testi di consultazione:

  1. Automi linguaggi e calcolabilita` Hopcroft J
  2. Introduzione alla teoria della computazione M. Sipser 

 

 

 

Bibliography

Module A:  
Lectures slides, published on the web course site
V. Ambriola. "Programmazione in JavaScript": Prima parte, Nota didattica, V. Ambriola, pdf format

Module B:
Lectures slides, published on the web course site
[1] Hopcroft J. et al., "Introduction to Automata Theory, Languages and Computation"  cap.1
[2] T. Cormen et al. "Introduction to algorithms", Jackson libri, cap.5
[3] R. Barbuti et al. Elementi di Sintassi dei Linguaggi di  Programmazione", pdf

Testi di consultazione:

  1. Automi linguaggi e calcolabilita` Hopcroft J
  2. Introduzione alla teoria della computazione M. Sipser 

 

 

 

Indicazioni per non frequentanti

Nessuna indicazione. Il programma e le competenze richieste sono le stesse per tutti gli studenti.

Non-attending students info

None

Modalità d'esame

A causa dell'emergenza COVID è stato necessario utilizzare delle nuove modalità d'esame descritte qui: https://elearning.di.unipi.it/mod/page/view.php?id=9306

L'esame prevede 2 prove:

  • La prima prova è scritta e richiede la soluzione di esercizi e la scrittura di programmi, con la possibilità di consultare il materiale didattico. La prova e` articolata in 2 parti relative ciascuna ad un modulo (A e B). Per superare la prova è necessario ottenere la sufficienza in entrambi i moduli. Il superamento della prima prova ammette lo studente alla seconda prova
  • La seconda prova richiede di rispondere a domande di teoria ed eventualmente di risolvere esercizi, senza la consultazione di materiale didattico. Questa seconda prova può essere orale o scritta.

L'ammissione alla seconda prova è condizionata al superamento della prima prova.

Prove in itinere A metà circa del corso viene tenuta una prima prova in itinere sulla parte di programma svolto fino a quel momento. Alla fine delle lezioni viene tenuta una seconda prova in itinere sulla parte di programma svolta nella seconda parte del corso. La seconda prova in itinere è riservata agli studenti che hanno hanno ottenuto la sufficienza nella prima prova. Le prove in itinere superate con successo valgono l'ammissione alla seconda prova.

Iscrizione alle prove Sul portale esami di ateneo vengono fissate le date delle prime prove di ogni appello, a cui gli studenti devono iscriversi per poter sostenere la prova. Nella prima sessione (gennaio/febbraio), la seconda prova può essere sostentuta in una delle date fissate dal docente previa iscrizione sulla pagina web del corso. Nelle sessioni successive la seconda prova di ogni appello viene fissata d'accordo con gli studenti in un'unica data precedente la prima prova dell'appello successivo e comunicata agli studenti al momento della pubblicazione dei risultati della prima prova sulla bacheca: Risultati delle prove in itinere e degli esami.

Assessment methods

Since the COVID emergency, there are novel examination procedures that are described in full detail here https://elearning.di.unipi.it/mod/page/view.php?id=9306

The exams consists of 2 tests:

The first test is written and rather practical. It is necessary to write programs and solve exercises. The student can use all the materials he/she wants: books courses notes her/his own notebook etc. Passing the first test admits the student to the second test

The second test is written or on student demand oral. The student must answer to theoretical questions and the student cannot consult books or any other didactic material.

Altri riferimenti web

Pagina del corso su Moodle: https://elearning.di.unipi.it/course/view.php?id=204

Additional web pages

Course's page on Moodle: https://elearning.di.unipi.it/course/view.php?id=204

 

 

Note

Si consigliano vivamente gli studenti di seguire le lezioni, studiando contemporaneamente ed interagendo con il docente e gli assistenti il più possibile, al fine di colmare eventuali lacune che impediscono la comprensione degli argomenti successivi del corso ed il raggiungimento di un livello di preparazione sufficiente per il superamento dell'esame.

Notes

Attending the lessons is strongly reccomended.

Updated: 02/02/2021 18:57