Salta al contenuto principale
CODICE 66052
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 2° Semestre
PROPEDEUTICITA
Propedeuticità in uscita
Questo insegnamento è propedeutico per gli insegnamenti:
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

L'insegnamento ha l'obiettivo di fornire le conoscenze di base della programmazione. Si forniranno gli elementi per analizzare semplici problemi, risolverli mediante algoritmi procedurali, utilizzando un linguaggio di programmazione imperativo. Verranno fornite inoltre le basi per la risoluzione di semplici problemi di analisi dei dati e per l'implementazione di semplici algoritmi.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

L'insegnamento si propone di fornire gli strumenti di base per lo sviluppo delle capacità di problem solving e  l'utilizzo di linguaggi di programmazione per la soluzione di problemi e l'elaborazione di dati biomedici.

In particolare saranno introdotti: l'architettura dei sistemi informatici,  linguaggi di programmazione di alto livello e la  progettazione di programmi sequenziali di dimensione contenuta

Alla fine del corso gli studenti saranno in grado di risolvere semplici  problemi di programmazione anche con l'utilizzo di librerie e soprattuto saranno in grado di sviluppare, comprendere e modificare programmi in linguaggio C++.

 

PREREQUISITI

nessuno

MODALITA' DIDATTICHE

Durante il semestre verranno svolte lezioni teoriche ed esercitazioni pratiche, durante le quali lo studente dovrà affrontare esercizi di problem solving e programmazione.

PROGRAMMA/CONTENUTO

Verranno afrontati 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.

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

TESTI/BIBLIOGRAFIA

Testi consigliati: Appunti del corso su Aulaweb

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

 

DOCENTI E COMMISSIONI

Commissione d'esame

MANUELA CHESSA (Presidente)

FABIO SOLARI

ENRICO PUPPO (Presidente Supplente)

LEZIONI

Orari delle lezioni

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

ESAMI

MODALITA' D'ESAME

La prova di esame consiste in 2 prove consecutive (nella stessa giornata):

  • 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). L'accesso alla prova di laboratorio e' subordinato al superamento della prova scritta con voto >=16

L'esame è superato se si superano scritto (con voto >=16) e laboratorio (con voto >=16) e la media e' >=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 massimo 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. Le consegne verranno valutate tenendo conto dei seguenti aspetti:
    • Produrre un codice funzionante con risultati numerici corretti (requisito minimo)
    • Stile e leggibilità del codice
    • Efficienza di calcolo

Calendario appelli

Data appello Orario Luogo Tipologia Note
12/01/2024 14:00 GENOVA Laboratorio
06/02/2024 14:00 GENOVA Laboratorio
10/06/2024 09:30 GENOVA Laboratorio
02/07/2024 09:30 GENOVA Laboratorio
29/07/2024 09:30 GENOVA Laboratorio
29/07/2024 09:30 GENOVA Scritto
10/09/2024 09:30 GENOVA Laboratorio