Salta al contenuto principale
CODICE 52473
ANNO ACCADEMICO 2018/2019
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 2° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

Lo scopo dell'insegnamento e' quello di fornire gli strumenti per la programmazione imperativa attraverso l'introduzione di linguaggi ad alto livello.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Introduzione ai linguaggi di programmazione attraverso la costruzione di semplici algoritmi in C++ (imperativo).

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

In particolare verranno affrontati i seguenti argomenti:

  • Nozioni base sui calcolatori: rappresentazione dei dati e aritmetica degli elaboratori; cenni sull'architettura del calcolatore e sui sistemi operativi finalizzati alla comprensione base dell'esecuzione di programmi.
  • Introduzione alla programmazione: i linguaggi di programmazione di alto livello; stato e cambiamento di stato; dichiarazioni e istruzioni base; linguaggi tipati: tipi base e strutturati; algoritmi semplici e loro implementazione; programmazione strutturata e modularità.
  • Programmazione in piccolo: progettazione di programmi sequenziali di dimensione contenuta a partire dalla specifica informale del problema; compilazione/interpretazione di programmi; esecuzione del codice; idee base di testing.

Nella prima parte del corso (prime due settimane) si introdurrà  MATLAB, un ambiente per il  calcolo numerico e l'analisi statistica.

Le parti di programmazione utilizzeranno un sottoinseime del  linguaggio C++ come esempio di linguaggio ad alto livello in cui realizzare i programmi.

MODALITA' DIDATTICHE

L'insegnamento, erogato al secondo semestre, prevede 3 ore di lezione in aula e 4 ore di laboratorio alla settimana.

PROGRAMMA/CONTENUTO

  • Nozioni base sui calcolatori: rappresentazione dei dati e aritmetica degli elaboratori; cenni sull'architettura del calcolatore di Von Neumann e sui sistemi operativi finalizzati alla comprensione base dell'esecuzione di programmi.
  • Introduzione alla programmazione: i linguaggi di programmazione di alto livello; stato e cambiamento di stato; dichiarazioni e istruzioni base; linguaggi tipati: tipi base e strutturati; algoritmi semplici e loro implementazione; programmazione strutturata e modularità.
  • Programmazione in piccolo: progettazione di programmi sequenziali di dimensione contenuta a partire dalla specifica informale del problema; compilazione/interpretazione di programmi; esecuzione del codice; idee base di testing.

Le parti di programmazione utilizzeranno il frammento imperativo del linguaggio C++ come esempio di linguaggio ad alto livello in cui realizzare i programmi.

TESTI/BIBLIOGRAFIA

Appunti del corso

Altri testi:
Programming Principles and Practice using C++, Addison-Wesley Professional, 2008
C++. Fondamenti di programmazione -- H. M. Deitel, P. J. Deitel; Editore: Apogeo 2009

DOCENTI E COMMISSIONI

Commissione d'esame

PATRIZIA BOCCACCI (Presidente)

GIANNA REGGIO (Presidente)

FRANCESCO MASULLI

LEZIONI

INIZIO LEZIONI

In accordo con il calendario accademico approvato dal Consiglio di Corsi di Studi.

Orari delle lezioni

L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy.

ESAMI

MODALITA' D'ESAME

La prova di esame consiste in:

  • uno scritto consistente in una serie di domande su Aulaweb (voto massimo 31) 
  • prova di laboratorio consistente nella stesura di un programma C++ (voto massimo 31).

Non è necessario che le due prove vengano superate nello stesso appello.

L'esame è superato se si superano scritto (con voto >=18) e laboratorio (con voto >=18). Il voto finale sarà la media dei due voti. Si attribuirà la lode a chi abbia ottenuto un voto finale >=31.

E' previsto un bonus di 2 punti per le consegne delle esercitazioni di laboratorio entro i termini indicati.

 

MODALITA' DI ACCERTAMENTO

  • La prova scritta vuole valutare l'acquisizione dei concetti fondamentali presentati durante il corso.
  • La prova in laboratorio vuole valutare la capacità di produrre del codice c++ funzionante per risolvere piccoli problemi, e consiste nel completare un programma schematico che vi verrà fornito come file con estensione .cpp. Nel file saranno incluse indicazioni su cosa occorre inserire e come, e sulla valutazione in punti delle varie parti. Verrà anche fornito un input per testarlo con i risultati attesi per ogni parte. Le consegne verranno valutate tenendo conto dei seguenti aspetti in ordine decrescente di importanza
    • Produrre un codice funzionante con risultati numerici corretti (requisito minimo)
    • Stile e leggibilità del codice
    • Efficienza di calcolo

Calendario appelli

Dati Ora Luogo Tipologia Note
24/01/2019 09:00 GENOVA Laboratorio riservato agli studenti iscritti a.a.2017/18 e anni prec.
24/01/2019 14:00 GENOVA Scritto riservato agli studenti iscritti a.a.2017/18 e anni prec.
11/02/2019 09:00 GENOVA Laboratorio riservato agli studenti iscritti a.a.2017/18 e anni prec.
11/02/2019 14:00 GENOVA Scritto riservato agli studenti iscritti a.a.2017/18 e anni prec.
10/06/2019 09:00 GENOVA Laboratorio
11/06/2019 09:00 GENOVA Scritto
01/07/2019 09:00 GENOVA Laboratorio
02/07/2019 09:00 GENOVA Scritto
09/09/2019 09:00 GENOVA Laboratorio
10/09/2019 09:00 GENOVA Scritto

ALTRE INFORMAZIONI

Prerequisiti:
Nessuno. Sono comunque utili le nozioni di base di logica e matematica normalmente fornite dalla scuola media superiore.