ENZO VELTRI | PROGR. PROC. - MOD. COMPLEMENTI DI PROGRAMMAZIONE PROCEDURALE

PROGR. PROC. - MOD. COMPLEMENTI DI PROGRAMMAZIONE PROCEDURALE
DIPARTIMENTO di MATEMATICA,INFORMATICA ed ECONOMIA
Laurea
SCIENZE E TECNOLOGIE INFORMATICHE
6
Lingua insegnamento
 

Italiano

Obiettivi formativi e risultati di apprendimento
 

Il corso rappresenta il primo insegnamento di programmazione del corso di studi ed esamina gli elementi di base della programmazione procedurale, trattando diversi linguaggi di programmazione (C++, JavaScript, Java e C#).

L'obiettivo principale del corso consiste nel fornire agli studenti le basi per approcciarsi al problem solving.

Le principali conoscenze fornite saranno:

  • concetti introduttivi sull’architettura dei sistemi informativi;
  • introduzione alla programmazione;
  • caratteristiche fondamentali della programmazione procedurale (C++) e ad oggetti (Java);
  • conoscenze di base per affrontare lo studio della programmazione modulare;
  • conoscenze delle tecniche algoritmiche di base sulle collezioni (somma, conteggio, massimi e minimi, verifica di condizioni, scambio e loro varianti)
  • tecniche algoritmiche di base sulle matrici matematiche
  • tecniche di programmazione modulare, progettazione e sviluppo dei sottoprogrammi e passaggio dei parametri, modello di esecuzione a pila, utilizzo di librerie

Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:

  • capacità di progettare e sviluppare soluzioni algoritmiche;
  • capacità di programmare in più linguaggi di programmazione;
  • capacità di applicare tecniche di programmazione modulare, progettazione e sviluppo dei sottoprogrammi e passaggio dei parametri, modello di esecuzione a pila, utilizzo di librerie

Il conseguimento degli obiettivi didattici completi per questo corso prevede che lo studente acquisisca in teoria e in pratica, conoscenza di tutti gli argomenti trattati nel corso. Tra questi, oltre agli argomenti previsti dallo standard intermedio:

  • capacità di progettare e sviluppare soluzioni algoritmiche di complessità medio/alta

conoscenza delle tecniche di test e verifica del codice; utilizzo dei test di regressione.

Prerequisiti
 

Per questo corso non ci sono vincoli legati a corsi propedeutici

Contenuti del corso
 
  • Concetti Introduttivi
    Architettura dei Sistemi Informatici: architettura dell’elaboratore; cenni alla rappresentazione binaria delle informazioni.
  • Introduzione alla programmazione
    Ciclo di vita di un programma. Problema, algoritmo, programma. Storia dei linguaggi di programmazione. Il Compilatore: funzione e processo di compilazione; Il collegatore: processo di collegamento. Esempi di compilatori e collegatori. 
  • Programmazione Procedurale in Linguaggio C++
    Introduzione
    alla programmazione imperativa in C++: elementi di base; variabili; assegnazioni ed espressioni; tipi di dato semplici; strutture di controllo; operazioni di ingresso e uscita; gestione dei files.
  • Programmazione Modulare in Linguaggio C++  e  Java
    Sottoprogrammi: procedure e funzioni; passaggio dei parametri. Metodologie di programmazione modulare. Qualità del codice. Tecniche iterative per il progetto di algoritmi. Tecniche di verifica dei programmi.
  • Strutture di Dati
    Tipi di dato strutturati: array monodimensionali e bidimensionali, strutture. Strutture di dati: liste, pile (cenni) e code (cenni). Soluzioni algoritmiche di base.
Metodi didattici
 

Il corso prevede 128 ore di didattica tra lezioni ed esercitazioni. Le lezioni sono tenute in modo alternato e continuativo dai due docenti del corso. L’esercitazione prevede lo svolgimento di uno o più esercizi in aula attraverso l’utilizzo dei calcolatori. Sulla base del numero dei partecipanti, gli studenti sono divisi in gruppi.

Modalità di verifica dell'apprendimento
 

MODALITÀ DI VERIFICA DELL’APPRENDIMENTO

Le prove finali d’esame saranno organizzate a strati sulla base di due livelli (base/intermedio, avanzato). Per ciascuna prova d'esame è prevista:   

  • una prova scritta, basata sulla compilazione di un questionario con domande a risposta multipla
  • una prova pratica al calcolatore
  • una eventuale prova orale

Nel corso della prova pratica, allo studente vengono proposte due tracce.

  • una traccia denominata "prova base/intermedio", organizzata in due parti, da svolgere in un 2 ore e 15 min;
  • una traccia denominata "prova avanzata", da svolgere nell'arco di 2 ore e mezza.

Lo studente può scegliere liberamente quale delle due prove sostenere. È possibile cominciare lo svolgimento della prova di livello avanzato, e poi decidere entro lo scadere della prima ora di cambiare traccia e svolgere la prova di livello base/intermedio.

PROVE INTERCORSO

Durante lo svolgimento del corso saranno inoltre previste quattro prove di verifica intercorso.

Per ciascuna verifica intercorso può essere prevista una prova scritta con domande a risposta multipla, e una prova pratica al calcolatore. Complessivamente, le prove scritte sono due, le prove al calcolatore sono 4.

In occasione di ciascuna prova, gli studenti che non hanno superato la prova precedente possono risostenerla (prova di recupero). È però possibile recuperare solo la prova immediatamente precedente a quella in corso (es: uno studente che sostiene la prima prova scritta e riporta una valutazione insufficiente, può sostenere la seconda prova pratica e in quell'occasione risostenere la prima prova scritta). La quarta prova intercorso viene recuperata in occasione del I appello.

La valutazione avverrà su scala: gravemente insufficiente, insufficiente, sufficiente, buono, ottimo.

Al termine delle prove, gli studenti che hanno superato le prove intercorso hanno conseguito integralmente i crediti dell'insegnamento. Sulla base delle valutazioni riportate nelle prove intercorso, gli verrà attribuita una valutazione in 30mi, a cui verranno aggiunti due punti di bonus sul voto finale. A quel punto potranno verbalizzare il voto.

Chi non sostiene o non supera le verifiche intermedie dovrà sostenere l’esame finale in maniera tradizionale cioè con una prova scritta ed una prova pratica al calcolatore. Gli studenti che superano solo le prove scritte, sono esonerati per i successivi tre appelli (luglio-settembre) dalla prova scritta, e quindi possono sostenere direttamente la prova pratica.

Gli studenti che superano l'esame e conseguono un voto relativo alla prova di base/intermedia possono ripetere l'esame sostenendo la prova di livello avanzato per migliorare li voto, ma hanno a disposizione solo una sessione per farlo (la sessione successiva a quella in cui è stato superato l'esame). Le sessioni previste sono le seguenti: luglio (2 appelli), settembre (1 appello), dicembre (1 appello), febbraio (1 appello), maggio (1 appello). Successivamente, per migliorare il voto dovranno ripetere l'intero esame da zero.

Testi di riferimento e di approfondimento, materiale didattico Online
 

John R. Hubbard – Programmare in C++ (II Edizione, 2001) – McGraw Hill Libri italia - Milano

Materiale didattico (dispense) fornito sul sito del corso.

Metodi e modalità di gestione dei rapporti con gli studenti
 

All’inizio del corso, dopo aver descritto obiettivi, programma e metodi di verifica, i docenti mettono a disposizione degli studenti il materiale didattico (sito web, etc). Inizialmente, gli allievi si iscrivono alla piattaforma web per reperire il materiale didattico aggiornato contestualmente alle lezioni tenute in aula, poi si iscrivono all’esercitazioni per poter organizzare i turni.
Gli orari di ricevimento sono riportati nella sezione dedicata ai docenti sulla pagina dell’insegnamento di Programmazione Procedurale. Oltre all’orario di ricevimento settimanale, i docenti sono disponibili in ogni momento per un contatto con gli studenti, attraverso la propria e-mail.
?

Date di esame previste
 

Prove intercorso
Consultare il sito del corso

Appelli
Consultare il sito del corso

Seminari di esperti esterni
 

no

 
Fonte dati UGOV