Salta al contenuto principale
CODICE 80299
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
SEDE
  • GENOVA
PERIODO 1° Semestre
FRAZIONAMENTI Questo insegnamento è diviso nelle seguenti frazioni:
  • A
  • B
  • MATERIALE DIDATTICO AULAWEB

    PRESENTAZIONE

    Il corso di Introduzione alla Programmazione ha l'obiettivo di fornire le prime basi di programmazione, dando una particolare enfasi agli aspetti di ragionamento scientifico e pensiero computazionale. Il corso prevede attività di didattica frontale affiancate a laboratori guidati che servono per approfondire e consolidare gli argomenti visti in classe.

    Il corso ha un forte connotato applicativo, lo studente è incoraggiato ad affrontare problemi di complessità crescente in autonomia.

    OBIETTIVI E CONTENUTI

    OBIETTIVI FORMATIVI

    Acquisire familiarità con i concetti fondamentali della programmazione imperativa utilizzando il C++, limitato alla parte non object-oriented, imparando a progettare, realizzare e validare codice di piccole dimensioni e facile da comprendere partendo dalle specifiche informali fornite dall'utente.

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    • Comprensione dei principi del pensiero computazionale
    • Acquisizione di conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici 
    • Acquisizione delle basi di programmazione imperativa e di utilizzo di ambiente testuale di sviluppo di programmi (realizzati in linguaggio  C++ limitato alla parte non object-oriented), con un editor di testi, compilazione ed esecuzione da linea di comando.
    • Acquisizione dei principi di progettazione, realizzazione e validazione di un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente. 
    • Capacità di produrre codice corretto e comprensibile; capacità di comprendere, utilizzare, modificare codice prodotto da altri.

    MODALITA' DIDATTICHE

    • Lezioni frontali "teoriche" (in aula)
    • Laboratori guidati 
    • Esercizi erogati tramite aulaweb

     Vista l'importanza culturale di questo insegnamento (alla base di tutti gli insegnamenti di informatica del corso di laurea) la frequenza assidua è particolarmente consigliata e incoraggiata. 

    PROGRAMMA/CONTENUTO

    Il corso è formato da una parte di lezioni teoriche che si svolgono in aula e da una consistente parte pratica di programmazione che si svolge in laboratorio e con compiti a casa. La data di inizio del laboratorio verrà comunicata in aula. 

    Argomenti trattati in aula

    • Introduzione al corso, al pensiero computazionale e alla programmazione.
    • Ambienti di programmazione e linguaggi formali.
    • Programmazione imperativa: variabili e costanti; assegnazione; input/output; costrutti di selezione; costrutti di iterazione; tipi base; tipi di dato strutturato: sequenze e struct; funzioni e  meccanismi di passaggio dei parametri; puntatori; allocazione dinamica sullo heap; vettori dinamici;  liste semplici e operazioni su liste semplici; ricorsione semplice.

       

    TESTI/BIBLIOGRAFIA

    Le lezioni saranno in gran parte svolte con l'ausilio di slide. Le slide possono essere utilizzate come traccia ma *non* sono sufficienti per la preparazione dell'esame.

    • Durante le lezioni si farà in gran parte riferimento al libro: D.S. Malik Programmazione in C++ Apogeo, 2011, ISBN 978-88-503-2967-0
    • Va benissimo anche (ed e' consigliato come testo di riferimento): B. Stroustrup, Programming: Principles and Practice Using C++, Addison-Westley, 2009, ISBN 978-0321543721. 1272 pagine (disponibile solo in inglese - ce ne sono alcune copie in biblioteca)
      Quest'ultimo libro tratta però un programma molto più ampio di quello coperto dal corso.

    DOCENTI E COMMISSIONI

    Commissione d'esame

    MAURIZIO LEOTTA (Presidente)

    FRANCESCA ODONE (Presidente)

    STEFANO ROVETTA (Presidente)

    EUGENIO MOGGI

    ARNAUD HENRI PAUL SANGNIER

    LEZIONI

    INIZIO LEZIONI

    In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica

    Orari delle lezioni

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

    ESAMI

    MODALITA' D'ESAME

    L'esame si compone di due parti

    1. prova scritta (con quiz di ammissione online)
    2. prova di laboratorio, alla quale si puo` accedere dopo aver superato lo scritto

    Dettagli sulle tipologie di prova e sul meccanismo di valutazione verranno forniti sul modulo aulaweb del corso

    MODALITA' DI ACCERTAMENTO

    La prova di teoria permetterà di verificare l'avvenuta acquisizione di:

    • principi del pensiero computazionale e concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici 
    • basi di programmazione imperativa e di utilizzo di ambiente testuale di sviluppo di programmi (realizzati in linguaggio  C++ limitato alla parte non object-oriented), con un editor di testi, compilazione ed esecuzione da linea di comando.

    La prova di laboratorio permetterà di verificare:

    • Acquisizione dei principi di progettazione, realizzazione e validazione di un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente. 
    • Capacità di produrre codice corretto e comprensibile; capacità di comprendere, utilizzare, modificare codice prodotto da altri

    Calendario appelli

    Data appello Orario Luogo Tipologia Note
    09/01/2024 09:00 GENOVA Scritto
    18/01/2024 09:00 GENOVA Laboratorio
    07/02/2024 09:00 GENOVA Scritto
    19/02/2024 09:00 GENOVA Laboratorio
    04/06/2024 09:00 GENOVA Scritto
    13/06/2024 09:00 GENOVA Laboratorio
    02/07/2024 09:00 GENOVA Scritto
    11/07/2024 09:00 GENOVA Laboratorio
    02/09/2024 09:00 GENOVA Scritto
    18/09/2024 09:00 GENOVA Laboratorio