Salta al contenuto principale
CODICE 52473
ANNO ACCADEMICO 2023/2024
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. Sara' presentato un sottoinsieme del linguaggio C++.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Introduzione ai linguaggi di programmazione, in particolare al paradigma imperativo, attraverso i linguaggi C++ e MatLab. Dopo avere frequentato l'insegnamento, lo studente sara' in grado di costruire semplici programmi nei due linguaggi in esame, e conoscera' modelli e costrutti, utili anche per l'apprendimento futuro di altri linguaggi di programmazione di tipo imperativo.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

L'insegmanento fornira' alcune necessarie nozioni di base sull'architettura del calcolatore, la rappresentazione dei dati, il sistema operativo.
Introdurra' le nozioni di algoritmo e di programma, i linguaggi di programmazione ad alto livello e le modalita' per l'esecuzione del codice (linguaggio compilato o interpretato).
Presentera' i concetti e i costrutti di base della programmazione imperativa di alto livello (variabili, istruzioni, costrutti per il controllo del flusso d'esecuzione).
Fornira' linee guida per la progettazione di piccoli programmi che risolvono un semplice problema e per il testing degli stessi.

Come esempi di linguaggi ad alto livello verra' utilizzato il (sottoinsieme imperativo del) linguaggio di programmazione C++.

Dopo avere seguito l'insegnamento l'utente:

  • conoscera' le caratteristiche di un linguaggio di programmazione imperativo di alto livello. 
  • sapra' delineare un algoritmo e sapra' tradurlo in un programma C++ (per semplici algoritmi / piccoli programmi). 
  • sara' in grado di riconoscere i concetti e costrutti tipici dei linguaggi imperativi in altri linguaggi simili al C++, e sara' pertanto in grado di imparare nuovi linguaggi della stessa famiglia.

PREREQUISITI

Nessuno.

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.

Come esempio di linguaggio ad alto livello sara' trattato il sottoinsieme imperativo del linguaggio C++.

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.
Che C serve? Per iniziare a programmare -- Burattini, Chianese, Picariello, Moscato, Sansone; Maggioli editore 2016.

DOCENTI E COMMISSIONI

Commissione d'esame

PAOLA MAGILLO (Presidente)

NICOLETTA NOCETI

MATTEO DELL'AMICO (Presidente Supplente)

LEZIONI

INIZIO LEZIONI

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

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'esame si compone di:

  • prova a quiz sugli argomenti visti a lezione
  • prova di laboratorio consistente nella stesura di un programma C++

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

L'esame è superato se si superano quiz (con voto >=18) e laboratorio (con voto >=18). Il voto finale sarà la media dei due voti. 

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

 

MODALITA' DI ACCERTAMENTO

  • La prova a quiz 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.  La valutazione terra'  conto dei seguenti aspetti in ordine decrescente di importanza:
    • Produrre un codice funzionante con risultati corretti (requisito minimo)
    • Stile e leggibilità del codice
    • Efficienza di calcolo

Calendario appelli

Dati Ora Luogo Tipologia Note
17/01/2024 09:00 GENOVA Scritto riservata agli studenti iscritti a.a.2022/23 e aa.aa. precedenti
18/01/2024 09:00 GENOVA Laboratorio riservata agli studenti iscritti a.a.2022/23 e aa.aa. precedenti
08/02/2024 09:00 GENOVA Scritto riservata agli studenti iscritti a.a.2022/23 e aa.aa. precedenti
09/02/2024 09:00 GENOVA Laboratorio riservata agli studenti iscritti a.a.2022/23 e aa.aa. precedenti
10/06/2024 09:00 GENOVA Scritto
12/06/2024 09:00 GENOVA Laboratorio
01/07/2024 09:00 GENOVA Scritto
03/07/2024 09:00 GENOVA Laboratorio
06/09/2024 09:00 GENOVA Scritto
09/09/2024 09:00 GENOVA Laboratorio

ALTRE INFORMAZIONI

L'insegnamento non ha prerequisiti.

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

Agenda 2030

Agenda 2030
Istruzione di qualità
Istruzione di qualità
Parità di genere
Parità di genere