Salta al contenuto principale della pagina

FONDAMENTI DI INFORMATICA

CODICE 66054
ANNO ACCADEMICO 2020/2021
CFU
  • 9 cfu al 1° anno di 8719 INGEGNERIA INFORMATICA (L-8) - GENOVA
  • SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
    LINGUA Italiano
    SEDE
  • GENOVA
  • PERIODO Annuale
    MATERIALE DIDATTICO AULAWEB

    PRESENTAZIONE

    Fondamenti di Informatica è un insegnamento introduttivo che descrive i concetti base dell’informatica in modo semplice ed organico. Le lezioni si concentrano sulle conoscenze fondanti per lo sviluppo del software, affrontando argomenti teorici e aspetti pratici, questi ultimi legati allo sviluppo di programmi C++. Fondamenti di Informatica è il primo passo di un percorso triennale che condurrà lo studente a conoscere ed applicare le metodologie per la progettazione e lo sviluppo del software.

    OBIETTIVI E CONTENUTI

    OBIETTIVI FORMATIVI

    Obiettivi: fornire metodologie di progettazione software secondo il paradigma procedurale e il paradigma orientato agli oggetti. Contenuti. Architettura di un calcolatore, strutture dati, analisi di problemi, loro risoluzione algoritmica, prestazioni degli algoritmi, programmazione procedurale strutturata e orientata agli oggetti col C++.

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    L’insegnamento si propone di guidare gli studenti:

    1. Nella comprensione di aspetti di matematica discreta, legati all’informatica teorica di base.
    2. Nella concettualizzazione di aspetti legati ai principi fondamentali della programmazione.
    3. Nell’estensione di tali concetti al caso della programmazione modulare e a tipi di dato astratti.

    Al termine dell’insegnamento, lo studente sarà in grado di:

    1. Affrontare semplici problemi di matematica discreta, collegandoli agli aspetti dell’informatica nei quali i concetti matematici trovano applicazione.
    2. Descrivere ed applicare i principi fondamentali della programmazione procedurale.
    3. Descrivere ed applicare i principi fondamentali della programmazione modulare e dei tipi di dato astratti.
    4. Risolvere in modo automatico semplici problemi, attraverso programmi scritti in linguaggio C++.
    5. Tradurre specifiche in un programma scritto in linguaggio C++.

    PREREQUISITI

    Nessuno. Assumendo che i partecipanti non abbiano precedenti esperienze con l’informatica e con la programmazione, l’insegnamento li guida nella comprensione dei concetti fondamentali di tali discipline.

    MODALITA' DIDATTICHE

    L’insegnamento prevede lezioni teoriche e lezioni pratiche.

    Le lezioni teoriche consistono nella presentazione di lucidi e nello svolgimento di esempi e di semplici esercizi, dimostrativi dei concetti introdotti.

    Le lezioni pratiche implicano lo svolgimento di esercizi da parte dei docenti e una serie di esercitazioni che gli studenti svolgono in parte in aula e in parte in autonomia, con la possibilità di chiedere assistenza agli esercitatori, con cadenza settimanale.

    PROGRAMMA/CONTENUTO

    Il programma dell’insegnamento si articola in tre parti principali:

    1. Elementi di matematica discreta: teoria degli insiemi, relazioni e funzioni, strutture algebriche di base, introduzione al calcolo combinatorio.
    2. Fondamenti di programmazione: introduzione all’informatica (architettura dei calcolatori), introduzione alla programmazione (algoritmi, programmi e linguaggi di programmazione), programmazione strutturata in linguaggio C++ (variabili, costanti, tipi, operatori, espressioni, istruzioni condizionali, istruzioni iterative, funzioni, array mono-dimensionali, stringhe di caratteri, array multi-dimensionali, flussi e file, strutture, array di strutture), programmazione avanzata in linguaggio C++ (puntatori e riferimenti, allocazione dinamica della memoria, funzioni ricorsive, template di funzione).
    3. Programmazione modulare e tipi di dato astratti: classi e oggetti (metodi e attributi, controllo di accesso ai membri, tipologie di metodi: costruttori, distruttore, selettori, modificatori, operatori, e overload di operatori, template di classe), astrazione sui dati (information hiding, tipi di dato astratti, principio di indipendenza dalla rappresentazione), applicazione dei tipi di dato astratti per la realizzazione di strutture dati (liste, pile, code).

    TESTI/BIBLIOGRAFIA

    Il materiale didattico comprende:

    • I lucidi presentati a lezione, disponibili in tre diversi formati: 2 lucidi per pagina, 4 lucidi per pagina, 6 lucidi per pagina.
    • Il materiale relativo alle esercitazioni, che sarà reso disponibile contestualmente ad ogni esercitazione.

    Tale materiale sarà disponibile su AulaWeb. In generale, gli appunti presi durante le lezioni e il materiale fornito su AulaWeb sono sufficienti per la preparazione dell’esame.

    Per chi volesse seguire un libro di testo si consiglia:

    • Per la parte di matematica discreta: C. Delizia, P. Longobardi, M. Maj, C. Nicotera. Matematica Discreta, McGraw-Hill (qualunque edizione).
    • Per la parte di programmazione: L. J. Aguilar. Fondamenti di Programmazione in C++. McGraw-Hill (qualunque edizione). 

    DOCENTI E COMMISSIONI

    Commissione d'esame

    FULVIO MASTROGIOVANNI (Presidente)

    PIERPAOLO BAGLIETTO

    GUALTIERO VOLPE (Presidente Supplente)

    LEZIONI

    INIZIO LEZIONI

    L’insegnamento segue il calendario della Scuola Politecnica.

    Orari delle lezioni

    FONDAMENTI DI INFORMATICA

    ESAMI

    MODALITA' D'ESAME

    L’esame di compone di una prova pratica e di una prova orale.

    La prova pratica si può sostenere, a scelta dello studente, secondo due modalità diverse: un’unica prova pratica alla fine del secondo semestre oppure due prove intermedie, una dopo la fine del primo semestre e una dopo la fine del secondo semestre. Si tengono, di norma, due appelli per la prima prova intermedia (nei mesi di gennaio e febbraio) e due appelli per la seconda prova intermedia (nei mesi di giugno e luglio). Gli studenti che hanno sostenuto la prima prova intermedia devono completare la prova pratica nei due appelli previsti per la seconda prova intermedia. Successivamente, si potrà sostenere soltanto la prova pratica unica e gli eventuali punteggi ottenuti nella prima prova intermedia andranno perduti. Gli studenti che sostengono nuovamente la prova pratica e consegnano l’elaborato perdono il punteggio conseguito in precedenza. Per sostenere la prova pratica è obbligatorio iscriversi entro i due giorni lavorativi precedenti la data della prova pratica stessa. L’iscrizione avviene attraverso il portale di Ateneo per i servizi agli studenti.

    La prova pratica assegna un punteggio compreso tra 0 e 20 punti. Per chi sceglie le prove parziali, ogni prova attribuisce un punteggio compreso tra 0 e 10 punti e i punteggi delle prove parziali si sommano tra di loro per formare il punteggio complessivo della prova pratica. Sono ammessi alla prova orale soltanto gli studenti che superano la prova pratica (o le due prove parziali), ottenendo un punteggio complessivo di almeno 12 punti. Il punteggio ottenuto alla prova pratica resta valido fino al termine della sessione invernale successiva e lo studente può scegliere di sostenere la prova orale in un qualunque appello di esame finché il punteggio della prova pratica resta valido.

    Per ogni appello, la prova orale si tiene successivamente alla prova pratica, in data comunicata contestualmente alla pubblicazione dell’esito della prova pratica. E’ richiesto che gli studenti che desiderano sostenere la prova orale si iscrivano attraverso AulaWeb. La prova orale attribuisce un punteggio compreso tra 0 e 10 punti.

    Il punteggio finale è ottenuto sommando i punteggi della prova pratica e della prova orale. La commissione d’esame può inoltre attribuire la lode a studenti particolarmente meritevoli.

    MODALITA' DI ACCERTAMENTO

    La prova pratica consiste di un esame al calcolatore. Tale esame contiene di norma alcuni quesiti teorici volti ad accertare le conoscenze dello studente relativamente ai concetti di matematica discreta e ai principi della programmazione procedurale e modulare, nonché a valutare la capacità dello studente di affrontare e risolvere semplici problemi legati ai concetti presentati nel corso delle lezioni teoriche. I quesiti potranno essere di diverse tipologie, quali ad esempio domande a risposta aperta, domande a risposta multipla, comprensione e completamento di testi, individuazione e correzione di errori, analisi di semplici porzioni di codice. L’esame contiene inoltre quesiti pratici che richiedono lo sviluppo di codice in linguaggio C++ e sono volti ad accertare la capacità dello studente di risolvere in modo automatico semplici problemi e di tradurre specifiche in un programma. Sarà valutata la correttezza dell’implementazione e l’aderenza alle specifiche.

    La prova orale consiste nello sviluppo e nella discussione con il docente di brevi porzioni di codice e nell’esposizione di argomenti teorici presentati nel corso delle lezioni. Verrà valutata la padronanza degli argomenti, la profondità della trattazione e la capacità espositiva.

    Calendario appelli

    Data Ora Luogo Tipologia Note
    13/01/2021 09:00 GENOVA Prova pratica
    13/01/2021 09:00 GENOVA Compitino
    02/02/2021 09:00 GENOVA Prova pratica
    02/02/2021 09:00 GENOVA Compitino
    09/06/2021 09:00 GENOVA Prova pratica
    09/06/2021 09:00 GENOVA Compitino
    02/07/2021 09:00 GENOVA Prova pratica
    02/07/2021 09:00 GENOVA Compitino
    19/07/2021 09:00 GENOVA Prova pratica
    06/09/2021 09:00 GENOVA Prova pratica

    ALTRE INFORMAZIONI

    Nessuna