AVVISO 3

E' stata pubblicata la soluzione della prova.
Siete pregati di effettuare l'autocorrezione entro domani alle 23.59, al seguente server.
Il main contenente una terza parte addizionale lo trovate qui.
Si tratta del main usato sul server di autocorrezione per l'"esercizio 2".


AVVISO 2

A seguito delle numerose richieste abbiamo deciso di fornire
in forma scritta come si svolgerà la prova orale e di cosa
lo studente deve dotarsi in vista della stessa.
Tali indicazioni si trovano qui.


AVVISO 1

NUOVA MODALITA' D'ESAME, A SEGUITO dell'emergenza legata al SARS-CoV-2
Sia prova pratica che la prova orale si svolgeranno sulla piattaforma
Microsoft Teams, al seguente link

Durante l'emergenza SARS-CoV-2 pertanto l'esame si svolgera' da remoto.
Inoltre non ci sara' la pre-prova con le sei domande a risposta chiusa (Quiz).
Tutti i dettagli sono disponibili qui


Sito del corso di Fondamenti di Programmazione

Primo anno del Corso di Laurea Triennale in Ingegneria Informatica (9CFU)

Sito principale del corso (il sito secondario si trova qui)

DOCENTI

Prof. Marco Cococcioni     Ing. Pericle Perazzo     Ing. Giovanni Nardini

MATERIALE DIDATTICO

1) Andrea Domenici, Graziano Frosini, "Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++",
Milano: Franco Angeli (va bene dalla quinta edizione in poi)

2) Paolo Corsini e Graziano Frosini, "Note sull’organizzazione di un calcolatore e Rappresentazione dell’informazione", Edizioni ETS, Pisa, 2011

3) Slide del corso, in formato PDF:
Introduzione all'informatica e rappresentazione dei numeri
Programmazione in stile C, usando il linguaggio C++
Programmazione in C++ vera e propria (le Classi)

Le slide possono essere acquistate in formato cartaceo presso la copisteria One Cent

ARGOMENTI DEL CORSO

Concetti di base della programmazione
Rappresentazione dell'informazione
Programmare in C
Concetti di base della programmazione a oggetti
Programmare in C++
Progettare ed implementare tipi di dato astratti

LABORATORI DEL MERCOLEDI'

Lab01: Testo - 1.1, 1.2, 1.3, 1.4, 1.5
Lab02: Testo - 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8
Lab03: Testo - 3.1, 3.2, 3.3, 3.4, 3.5
Lab04: Testo - 4.1, 4.2, 4.3, 4.4
Lab05: Testo - 5.1, 5.2, 5.3, 5.4, 5.5, 5.6
Lab06: Testo - 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7
Lab07: Testo - 7.1, 7.2, 7.3, 7.4, 7.5
Lab08: Testo - 8.1, 8.2, 8.3, 8.4, 8.5
Lab09: Testo - 9.1 (iscrizione.h - iscrizione.cpp - main.cpp)
Lab10: Testo (classe Cinema) - 10.1 (compito.h - compito.cpp - main.cpp)
Lab11: Testo (classe Palazzo) - 11.1 (compito.h - compito.cpp - main.cpp)
Lab12: 12.1 Testo (esercizi sui file) - 12.2 Testo (classe VettoreSparso) (compito.h - compito.cpp - main.cpp)

MATERIALE DIDATTICO AGGIUNTIVO

  • Tabella ASCII in formato pdf  (il codice cpp utilizzato per generarla e' scaricabile  qui)
  • Esercizi Risolti sulla Rappresentazione dell'informazione
  • Vettore di Vettori allocato sullo heap
  • Ordinamento di un vettore (SelectionSort e BubbleSort) e ricerca di un elemento (completa e binaria)
  • ESERCIZI SU VETTORI/MATRICI E SULLE LISTE

    Esercizi aggiuntivi su vettori/matrici e liste si trovano a questo link.
    Occorre aprire i file pdf relativi alla prova scritta degli anni 2012-2015, esercizi 1 e 2.
    Per ciascuna prova scritta e' disponibile la soluzione.

    MODALITA' DI ESAME STANDARD, IN ASSENZA DI EMERGENZA SARS-CoV-2

    Passo 1) Ci si iscrive alla prova pratica entro 3 giorni prima della stessa
    Passo 2) Ci si presenta alle 9.00 davanti alla Si1.
    Passo 3) Ci si siede e si riceve un test con 6 domande a risposta chiusa, da completare in 30 minuti
    Passo 4) Se si pensa di non aver risposto correttamente ad almeno 4 domande, ci si puo' ritirare (cosi' non ci si brucia una delle 4 consegne)
    Passo 5) Se si pensa di aver risposto correttamente ad almeno 4 domande su 6 si consegna
    Passo 6) Avviene la correzione delle domande a risposta chiusa per i soli studenti che hanno consegnato
    Passo 7) Chi ha effettivamente risposto in maniera corretta al almeno 4 domande, viene ammesso alla prova pratica vera e propria al calcolatore
    Passo 8) Chi si ritira dalla prova pratica si brucia una delle 4 consegne per anno solare
    Passo 9) Chi consegna entro le due ore, ma non effettua l'autocorrezione entro le 24.00 del giorno successivo termina l'esame e si brucia una delle 4 consegne
    Passo 10) A chi consegna entro le due ore ed effettua l'autocorrezione entro le 24.00 del giorno successivo verra' dato un voto al pratico
    Passo 11) Chi avra' avuto un voto >=18 potra' presentarsi all'esame orale in una delle date stabilite da calendario,
    anche negli appelli successivi, purche' entro l'anno solare (ultimo appello utile: Settembre 2020)

    In un anno solare sono possibili solo 4 consegne.
    Esempi di domande a risposta chiusa: esempio1.pdf   esempio2.pdf   esempio3.pdf

    COMPILATORE E AMBIENTE INTEGRATO DI SVILUPPO

    Come ambiente di sviluppo C++ verra' utilizzato CLion (esiste sia per Windows, che per Linux che per MacOS)
    CLion necessita di CMAKE (per Windows, scaricare il file cmake-3.15.3-win64-x64.msi e poi fare doppio click)
    ed ovviamente di un compilatore C++ (CLion puo' essere visto una una interfaccia grafica per il compilatore).
    (Per Windows si consiglia MinGW, ma un qualunque altro compilatore C++ va bene (Visual C++, Intel Compiler, ecc...)
    I video tutorial su come procurarsi una licenza per CLion e su come installare CLion (con i relativi accessori, MingGW e CMAKE)
    si trovano anch'essi nel sito secondario del corso

    PROVE PRATICHE D'ESAME

    2020
    Appello 1: Quiz (con soluzione) - Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Quiz (con soluzione) - Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Quiz (con soluzione) - Testo - compito.h, compito.cpp, main.cpp
    Appello 4: ( no Quiz, causa Covid-19) - Testo - compito.h, compito.cpp, main.cpp
    Appello 5: ( no Quiz, causa Covid-19) - Testo - compito.h, compito.cpp, main.cpp
    Appello 6: ( no Quiz, causa Covid-19) - Testo - compito.h, compito.cpp, main.cpp

    2019
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp

    2018
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp

    2017
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp

    2016
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp

    2015
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp

    2014
    Appello 1: Testo - compito.h, compito.cpp, main.cpp
    Appello 2: Testo - compito.h, compito.cpp, main.cpp
    Appello 3: Testo - compito.h, compito.cpp, main.cpp
    Appello 4: Testo - compito.h, compito.cpp, main.cpp
    Appello 5: Testo - compito.h, compito.cpp, main.cpp
    Appello 6: Testo - compito.h, compito.cpp, main.cpp
    Appello 7: Testo - compito.h, compito.cpp, main.cpp