PROGRAMMAZIONE PROCEDURALE CON LABORATORIO






Esercizio

Svolgere il seguente esercizio come da testo presente al seguente link. La scadenza per la sottomissione è Lunedì 25 Novembre alle ore 23:59.

Linee guida per l'esame

DA LEGGERE ATTENTAMENTE: L'esame si suddivide in 1) una prova scritta, 2) un progetto di programmazione individuale (assegnato a Dicembre 2023), 3) ed infine una prova orale. Alla prova scritta è possibile utilizzare penna/matita/gomma e calcolatrice NON scientifica. Esempi di prove degli anni passati (con relativa correzione) sono presenti in fondo a questa pagina. Se si supera la prova scritta, si può sostenere la prova orale relativa allo stesso appello della prova scritta superata; il voto della prova scritta superata NON sarà conservato per appelli successivi. Per partecipare alla prova scritta è NECESSARIO aver sottomesso il progetto. Il progetto dovrà essere sottomesso (via GitHub) tramite l'apposito link che verrà pubblicato (qui e su Unistudium) per ogni appello: sarà pubblicato un link diverso per ogni appello d'esame. La scadenza per la consegna del progetto sarà due giorni circa prima della data dello scritto. La prova orale avverrà solitamente la settimana successiva alla prova scritta. Senza progetto non si potrà sostenere la prova scritta. È NECESSARIO quindi completare il progetto PRIMA dello scritto. Se non si supera la prova scritta o orale, si dovrà risottomettere il progetto al link GitHub dell'appello al quale si parteciperà in futuro (si potrà anche modificare il progetto, se desiderato). In sede di prova orale, sarà richiesta una modifica al progetto sottomesso, più alcune domande sul programama svolto a lezione.

Quindi in ordine, nello stesso appello si dovrà
consegnare il progetto -> passare la prova scritta -> passare la prova orale

FAQ:
-Ho sostenuto lo scritto al primo appello di Gennaio, posso portare il progetto e sostenere l'orale al secondo appello di Gennaio o successivamente? No, il voto dello scritto è inoltre perso per sempre.
-Se ho passato lo scritto, ma poi mi sono presentato all'orale e non l'ho superato, devo superare di nuovo anche lo scritto? Sì.
-Avevo giò sottomesso il progetto a Gennaio, ma poi non ho sostenuto la prova orale. Mi sento preparato per l'orale di Febbraio, devo risottomettere anche il progetto? Sì, il progetto deve essere sottomesso al link corrispondente per l'appello di esame in cui ci si vuole presentare.
-Se non ho passato l'esame, mi posso presentare subito all'appello successivo? Sì, ci si può presentare a tutti gli appelli disponibili (sono 8 nel corso dell'anno).
-Come viene calcolato il voto complessivo? Voto dello scritto, più 1-4 punti per il progetto, più 2 punti per le domande orali (INDICATIVAMENTE). Se la prova orale non sarà però convincente, potranno essere però sottratti un numero imprecisato di punti.
-Se il progetto non compila, oppure è incompleto (manca per esempio una funzione richiesta), va bene lo stesso? No, l'esame si ritiene immediatamente non superato.
-Cosa succede se non so modificare il progetto finale, che ho programmato a casa, in sede di orale? La modifica è requisito necessario per il passaggio dell'esame, che quindi automaticamente non viene superato.
-Posso copiare tutto o in parte il progetto di un collega? No, i progetti saranno automaticamente controllati con un software antiplagio: se la somiglianza rilevata oltrepasserà una certa soglia, tutti e due i progetti saranno annullati.



Lezioni (Lunedì 8:30-10:30 - A2; Martedì 8:30-10:30 - A0; Mercoledì 10:30-12:30 - A2; Giovedì 11:30-13:30) - A0 / Lectures (Monday 8:30-10:30; Tuesday 8:30-10:30; Wednesday 10:30-12:30; Thursday 11:30-13:30

Materiale disponibile anche su Unistudium alla pagina del corso

  • 23 September 2024 (8:30-10:30).
    • Introduction pdf
    • Exercises: Flowcharts pdf
  • 24 September 2024 (8:30-10:30).
    • Programming environment pdf
  • 25 September 2024 (10:30-12:30).
    • Programming environment
  • 26 September 2024 (11:30-13:30).
    • Language basics pdf
  • 30 September 2024 (8:30-10:30).
  • 1 October 2024 (8:30-10:30).
    • C basics
    • Types in C pdf
  • 2 October 2024 (10:30-12:30).
    • Types in C
  • 3 October 2024 (11:30-13:30).
    • Types in C
  • 4 October 2024 (11:30-13:30).
    • Types in C
    • Exercises: Types and binary pdf
  • 7 October 2024 (8:30-10:30).
    • Types in C
    • Literals pdf
  • 8 October 2024 (8:30-10:30).
    • Type conversions pdf
  • 9 October 2024 (10:30-12:30).
    • Type conversions
    • Exercises: Type conversions pdf
  • 10 October 2024 (11:30-13:30).
    • Exercises
    • Exercises: Programming pdf
  • 14 October 2024 (8:30-10:30).
    • Operators and expressions pdf
  • 15 October 2024 (8:30-10:30).
    • Operators and expressions
  • 16 October 2024 (10:30-12:30).
    • Operators and expressions
  • 17 October 2024 (11:30-13:30).
    • Operators and expressions
    • Exercises: operators and expressions pdf
  • 21 October 2024 (8:30-10:30).
    • Statements: loops, selectio statements, unconditional jumps pdf
  • 22 October 2024 (8:30-10:30).
    • Statements: loops, selectio statements, unconditional jumps
  • 23 October 2024 (10:30-12:30).
    • Statements: loops, selectio statements, unconditional jumps
  • 24 October 2024 (11:30-13:30).
    • Arrays pdf
    • Exercises: statements pdf
  • 28 October 2024 (8:30-10:30).
    • Exercises
  • 30 October 2024 (10:30-12:30).
    • Exercises
  • 31 October 2024 (11:30-13:30).
    • Exercises
  • 4 November 2024 (8:30-10:30).
    • Arrays
  • 5 November 2024 (8:30-10:30).
  • 6 November 2024 (10:30-12:30).
    • Examples of loops and conditional statementspdf
  • 11 November 2024 (8:30-10:30).
  • 12 November 2024 (8:30-10:30).
    • Pointers
    • Exercises: pointers pdf
  • 13 November 2024 (10:30-12:30).
    • Call by reference / call by value pptx
  • 14 November 2024 (11:30-13:30).
    • Hello World
    • Call by reference / call by value
  • 18 November 2024 (8:30-10:30).
    • Dynamic memory pptx
  • 20 November 2024 (10:30-12:30).
    • Dynamic memory
  • 21 November 2024 (11:30-13:30).
    • Dynamic memory
    • Exercises


Link utili / Useful Links





Libri di riferimento / Reference Books

In ordine di importanza dal primo all'ultimo. Il libro di testo consigliato è il PRIMO dei tre.

In order of importance, from top to bottom. The reference book for this course is the FIRST one.

Il Linguaggio C Il linguaggio C. Fondamenti e tecniche di programmazione. Ediz. Mylab. Con espansione online, Paul J. Deitel and Harvey M. Deitel (Authors), Publisher: Pearson; 9 edizione, ISBN-10: 8891906239, Pages: 736, 2022.



Altri testi consultabili secondariamente al precedente testo principale

C. Didattica e programmazione C didattica e programmazione. Ediz. mylab. Con espansione online, Al Kelley and Ira Pohl (Authors), Publisher: Pearson; 2 edizione, ISBN: 9788891908216, Pages: 670+, 2018.

C pocket reference C Pocket Reference, Peter Prinz, Ulla Kirch-Prinz, Publisher: O'Reilly Media, ISBN-10: 0596004362, Pages: 144, 2002.

C in a Nutshell (book cover)C in a Nutshell: The Definitive Reference, Peter Prinz, Tony Crawford, Publisher: O'Reilly Media, ISBN-10: 1491904755, 824 pages, 2015.



Altri libri / More books

Altri libri sul linguaggio C:
  • Il linguaggio C. Principi di programmazione e manuale di riferimento, Brian W. Kernighan (Autore), Dennis M. Ritchie (Autore), ISBN-10: 887192200X, 2004 (Pearson).


Programma corso / Course program

  • Introduction to programming languages
  • Interpreted and compiled languages
  • Names, scope, binding
  • Memory (static, stack, heap)
  • GitHub
  • C language:
    • Language Basics
    • Types
    • Literals
    • Type conversions
    • Expressions and operators
    • Statements
    • Loops
    • Conditional statements
    • Functions
    • Arrays
    • Pointers
    • Structures and Unions
    • Dynamic Memory Management
    • Input and Output
    • Pre-processing directives
    • Compiling with GCC
    • Using make to build C Programs
    • Debugging C Programs with GDB
  • Linked lists


Date appelli esame 2023/2024 / Exam dates 2023/2024

  • 13 Gennaio 2024 / 13 January 2024
  • 27 Gennaio 2024 / 27 January 2024
  • 10 Febbraio 2024 / 10 February 2024
  • 14 Aprile 2024 / 14 April 2024
  • X Giugno 2024 / X June 2024
  • X Giugno 2024 / X June 2024
  • X Settembre 2024 / X September 2024
  • X Novembre 2024 / X Nomvember 2024


  • Esami scritti / Written exams

    Soluzioni/Solutions 2023-2024: zip

    Soluzioni/Solutions 2022-2023: zip

    Soluzioni/Solutions 2021-2022: zip

    Soluzioni/Solutions 2019-2020: zip

    Soluzioni/Solutions 2018-2019: zip

    Soluzioni/Solutions 2018-2019: zip

    Soluzioni/Solutions 2017-2018: zip

    Soluzioni/Solutions 2016-2017: zip

    Soluzioni/Solutions 2015-2016: zip

    Progetto / Project

    2023-2024: pdf possibile soluzione

    2022-2023: pdf possibile soluzione

    2021-2022: pdf possibile soluzione

    2020-2021: pdf possibile soluzione

    2019-2020: pdf possibile soluzione

    2018-2019: pdf possibile soluzione

    2017-2018: pdf possibile soluzione

    2016-2017: pdf possibile soluzione



    More slides / Slides aggiuntive

    • From C to C++ (first part) slides
    • From C to C++ (second part) slides


    Contatti / Contacts

    Ricevimento studenti su appuntamento, si prega contattare il docente per mail o Telegram (vedere sotto)

    Posso essere contattato direttamente e più velocemente tramite Telegram.

    Iscrivetevi al canale Telegram del corso Programmazione Procedurale con laboratorio per avere velocemente comunicazioni generali (per esempio i risultati degli esami).


    Please contact me for hoffice hours by email or Telegram (see my contacts below)

    I can be directly and more easily contacted via Telegram.

    Please subscribe to the Telegram channel of the course Programmazione Procedurale con laboratorio in order to quickly receive general communications (e.g., exam results).



Francesco Santini