FONDAMENTI TEORICI E PROGRAMMAZIONE

Settore: INF/01Codice: 437AACrediti: 12Semestre: 1
Docenti: Leporini Barbara, Pratesi Francesca , Naretto Francesca

Obiettivi di apprendimento

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.

 

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.

Prerequisiti

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

Indicazioni metodologiche

  • Le lezioni sono frontali, con ausilio di slides che verranno pubblicate sulla pagina del corso (MS Teams e/o Google Classroom) in anticipo. Gli studenti sono invitati a prendere visione delle slides anche prima della lezione per poter seguire in modo più attivo e proficuo la lezione stessa.
  • Le esercitazioni si svolgono in laboratorio (Fib H-Lab, I-Lab, M-Lab) usando i PC delle aule informatiche, o i PC personali degli studenti.
  • Gli esercitatori aiutano gli studenti prevalentemente nella parte di programmazione (Modulo A). Possono tenere le esercitazioni e i ricevimenti degli studenti. Chiariscono dubbi, rispondono alle domande, correggono gli esercizi.
  • Il materiale didattico è scaricabile dall’aula virtuale MS Teams del corso e, in ogni caso, tutte le informazioni sul materiale didattico, comunicazioni docente-studenti, avvengono tramite quest’aula. E` comunque necessario registrarsi su moodle polo4.elearning.unipi.it e iscriversi al corso.
  • 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.

Programma

Il corso è articolato in 2 moduli:

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

Argomenti affrontati:

  • Introduzione al corso
  • Editor di JavaScript: come scrivere un programma in JS, eseguirlo e mostrare i risultati
  • Operatori: aritmetici, di assegnazione, di confronto e logici
  • Variabili: dichiarazione, nome e tipo
  • Istruzioni cicliche (o iterative) e istruzioni condizionali (o decisionali)
  • Funzioni: definizione, passaggio dei parametri e invocazione, funzioni ricorsive, variabili locali e variabili globali
  • Strutture dati: array e array associativi, visibilità dei nomi, metodi predefiniti
  • Stringhe: dichiarazione ed assegnazione, metodi predefiniti, principali sequenze di escape
  • Oggetti: proprietà e metodi

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

  • Introduzione al corso ed ai Sistemi Numerici
  • Algoritmi e Linguaggi di Programmazione
  • Elementi di Teoria degli Insiemi
  • Relazioni
  • Grafi
  • Alberi
  • Linguaggi Formali e Automi
  • Cenni alle Grammatiche Libere da Contesto

Bibliografia

Testi modulo A:  
Lucidi delle lezioni del docente, 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 del docente, pubblicati sulla pagina del corso
Per approfondimenti, si possono consultare i seguenti testi:
Hopcroft J. et al., Automi linguaggi e calcolabilità
T. Cormen et al. "Introduzione agli algoritmi", Jackson libri
R. Barbuti et al. Elementi di Sintassi dei Linguaggi di  Programmazione", pdf
M. Sipser, Introduzione alla teoria della computazione

Non frequentanti

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

Modalità di esame

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 è 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 ottenuto la sufficienza nella prima prova. Le prove in itinere superate con successo valgono l'ammissione alla seconda prova.

Iscrizione alle prove Sul "Valutami" di Ateneo vengono fissate le date delle prove scritte di ogni appello, a cui gli studenti devono iscriversi per poter sostenere la prova. Le date della prova orale, successive alla prova scritta, verranno comunicate agli studenti sulla pagina del corso.

Altri riferimenti web

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

Pegina del corso su Google Classroom: viene fornita agli studenti ad inizio semestre.

Fonte: ESSETRE e Portale esami