INTRODUZIONE ALLA PROGRAMMAZIONE-1

Anno accademico
2018/2019 Programmi anni precedenti
Titolo corso in inglese
INTRODUCTION TO PROGRAMMING-1
Codice insegnamento
CT0441 (AF:297187 AR:163586)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
I Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
Il corso si propone di introdurre gli elementi base della programmazione funzionale e imperativa.
Alla fine del corso lo studente dovrà essere in grado di realizzare soluzioni algoritmiche che risolvano problemi di complessità limitata.
Il corso fornirà agli studenti conoscenza e comprensione dei principi fondamentali dell'informatica, relativamente ai linguaggi funzionali e imperativi.
Al termine del corso lo studente dovrà essere in grado di utilizzare un ambiente di programmazione di tipo professionale, di editare, compilare ed eseguire programmi su piattaforma Unix-like e Windows. In particolare dovrà saper:
1. formalizzare un problema di limitata complessità (fornendone la specifica);
2. progettare una o più soluzioni ad esso (sviluppando algoritmi corrispondenti);
3. implementare tali soluzioni utilizzando linguaggi di programmazione di tipo funzionale o imperativo;
4. verificare l'esecuzione dei programmi proposti con opportuni casi di test.
Non è richiesto alcun prerequisito
Programmazione funzionale:
- Espressioni e valori
- Tipi
- Funzioni e Passaggio di parametri
- Problem solving: decomposizione dei problemi, metodologie di soluzione top-down e bottom-up
- Ricorsione e induzione
- Iterazione e invarianti
- Liste

Programmazione imperativa:
- Variabili
- Tipi
- Assegnamento
- Iterazione e invarianti
- Problem solving: decomposizione dei problemi, metodologie di soluzione top-down e bottom-up
- Strutture iterative
- M. Hailperin, B. Kaiser, K. Knight : Concrete Abstractions, Brooks/Cole Publishing Company, 1999 http://gustavus.edu/+max/concrete-abstractions-pdfs/index.html
- Dispense a cura del docente.
Il superamento dell'esame si distingue a seconda della tipologia di studente:

STUDENTE FULL-TIME:
E' obbligatorio consegnare le esercitazioni di laboratorio che verranno assegnate durante il corso e il progetto di fine semestre. La parte laboratoriale risulta sufficiente se almeno il 60% delle esercitazioni sono sufficienti e se la valutazione del progetto è sufficiente.
Progetti particolarmente ben fatti verranno considerati nella valutazione finale del corso.

La parte teorica potrà essere superata in due modi:
1) mediante due prove intermedie che verranno svolte durante il corso
2) mediante un esame scritto
Le prove scritte mirano a verificare sia la preparazione teorica dello studente che l'abilità di problem solving.

Per superare l'esame lo studente deve essere sufficiente sia nella parte di laboratorio che nella parte teorica. Attenzione, in caso di insufficienza nella parte laboratoriale lo studente potrà comunque sostenere gli esami scritti ma dovrà attendere l'anno successivo per ripetere le esercitazioni di laboratorio e il progetto.

STUDENTE PART-TIME:
Lo studente part-time può scegliere se svolgere l'esame con le modalità dello studente full-time oppure se sostituire la parte laboratoriale con una prova orale.

STUDENTI CON PROBLEMI DI SALUTE CERTIFICATI O CHE STANNO SVOLGENDO UN PERIODO FUORI SEDE
In casi particolari comprovati per i quali lo studente non sia in grado di svolgere le esercitazioni con regolarità, si prevederà una prova alternativa per coprire parzialmente o integralmente le prove di laboratorio.
Lezioni frontali in aula ed esercitazioni in laboratorio.
Scritto
Programma definitivo.