Salta al contenuto principale della pagina

INTRODUZIONE ALLA PROGRAMMAZIONE

CODICE 80299
ANNO ACCADEMICO 2022/2023
CFU
  • 12 cfu al 1° anno di 8759 INFORMATICA (L-31) - GENOVA
  • SETTORE SCIENTIFICO DISCIPLINARE INF/01
    LINGUA Italiano
    SEDE
  • GENOVA
  • PERIODO 1° Semestre
    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

    - Fornire la conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici: macchina virtuale; codifica dei dati e delle istruzioni; modello Von Neumann; linguaggio formale, analisi lessicale, sintattica e semantica; algoritmo; tipo di dato; asserzione invariante; complessità di calcolo. - Imparare ad usare un linguaggio di programmazione imperativo e un ambiente testuale di sviluppo di programmi, come per esempio il linguaggio C oppure C++ (limitato alla parte non object-oriented), con un editor di testi, il compilatore GCC e GNU Make. - Imparare a progettare, realizzare e far funzionare un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente.

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    • Principi del pensiero computazionale
    • La conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici 
    • Introduzione ad un linguaggio di programmazione imperativo e un ambiente testuale di sviluppo di programmi, come per esempio il linguaggio C oppure C++ (limitato alla parte non object-oriented), con un editor di testi, compilazione ed esecuzione da linea di comando.
    • 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

    l 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. 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 istruzioni; assegnazione; input/output; condizionale; cicli; tipi base; tipi di dato strutturato: array/vettori/tabelle,  stringhe, struct; funzioni e  meccanismi di passaggio dei parametri; puntatori; allocazione dinamica sullo heap; vettori dinamici;  liste semplici e operazioni su liste semplici; ricorsione.

    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

    FRANCESCA ODONE (Presidente)

    MAURIZIO LEOTTA

    STEFANO ROVETTA (Presidente Supplente)

    EUGENIO MOGGI (Supplente)

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

    ESAMI

    MODALITA' D'ESAME

    L'esame si compone di due parti

    1. prova scritta
    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

    Calendario appelli

    Data Ora Luogo Tipologia Note
    10/01/2023 09:00 GENOVA Scritto
    13/01/2023 09:00 GENOVA Laboratorio
    13/02/2023 09:00 GENOVA Scritto
    17/02/2023 09:00 GENOVA Laboratorio
    12/06/2023 09:00 GENOVA Scritto
    16/06/2023 09:00 GENOVA Laboratorio
    04/07/2023 09:00 GENOVA Scritto
    07/07/2023 09:00 GENOVA Laboratorio
    11/09/2023 09:00 GENOVA Scritto
    14/09/2023 09:00 GENOVA Laboratorio