Lezioni (Martedì 14-17; Mercoledì 9-11; Giovedì 11-13) / Lectures (Monday 10-13; Tuesday 14-16; Wednesday 9-11)

  • 25 September 2018.
    • Introduction pdf
    • Programming environment pdf
  • 26 September 2018.
    • Exercises: Flowcharts pdf
  • 27 September 2018.
    • Language Basics: Program structure, GCC, Interpreted and compiled languages pdf
  • 2 October 2018.
    • C basics: Comments, Identifiers, Scope pdf
  • 4 October 2018.
    • Binary, Octal, Hexadecimal bases, Representation, Types pdf
  • 5 October 2018.
    • Binary, Octal, Hexadecimal bases, Representation, Types
  • 9 October 2018.
    • Binary, Octal, Hexadecimal bases, Representation, Types
    • Exercises pdf
  • 10 October 2018.
  • 11 October 2018.
    • Type conversions, integer promotion pdf
    • Correction exercises 9 October
  • 16 October 2018.
    • Type conversions, all other rules
    • Type checking, statically/dynamically types and strongly/weakly typed languages pdf
  • 17 October 2018.
    • Exercises pdf
  • 18 October 2018.
    • Expressions and operators pdf


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; 8 edizione, ISBN-10: 8891901652, Pages: 637, 2016.

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).


Modalità d'esame / Assessment method

Italiano: Prova scritta che consiste in 9-10 esercizi basati sulla comprensione di alcune porzioni di codice C, e su scrittura di codice su carta (durata 2 ore e 15 minuti). Il superamento della prova scritta consente l'accesso ad una prova di laboratorio (durata 1 ora e 15 minuti) in cui verrà richiesto di modificare un progetto di programmazione assegnato a casa (da consegnare il giorno della prova pratica alla quale ci si sottopone). In base alle due prove, possono essere poste alcune domande di teoria, alla fine della prova pratica.

English: Written exam with 9-10 exercises based on understanding and writing pieces of code in C language (duration: 2 hours 15 minutes). If the marks of the written exam are good enough, the student is required to give a Lab exam where she will be asked to modify some parts of a project developed at home (duration: 1 hour fifteen minutes. Some further questions can asked at the end of the Lab exam, depending on the marks of the two previous tests.



Programma corso / Course program

  • Introduction to programming languages
  • Interpreted and compiled languages
  • Names, scope, binding
  • Memory (static, stack, heap)
  • Introduction to syntax
  • 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 scritto 2017/2018 / Written exam dates 2016/2017

  • 14 Gennaio 2019
  • 28 Gennaio 2019
  • 11 Febbraio 2019
  • ...


Esami scritti / Written exams 2015-2016

Testi/Exams: zip

Soluzioni/Solutions: zip

Esami scritti / Written exams 2016-2017

Testi/Exams: zip

Soluzioni/Solutions: zip

Esami scritti / Written exams 2017-2018

Testi/Exams: zip

Soluzioni/Solutions: zip

Progetto / Project

2015-2016: pdf possibile soluzione

2016-2017: pdf possibile soluzione

2017-2018: 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 tutti i Mercoledì dalle 14 alle 17. Si prega contattare il docente preventivamente per conferma. Altrimenti, è possibile anche in altro orario previo appuntamento via email.

Posso essere contattato direttamente e più velocemente tramite Telegram.

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


To see me without appointment, try my office hours Wednesdays, 14-17. Please contact me before in order to confirm. At other times, the quickest way is by email.

I can be directly and more easily contacted via Telegram.

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



Francesco Santini