Comunicazioni esame

ISTRUZIONI DA LEGGERE ATTENTAMENTE: il voto della prova scritta (se superata), rimane valido fino all'ultimo appello della sessione corrente d'esame (inverno / estate / settembre e novembre). Presentarsi ad una prova scritta della stessa sessione annulla il risultato della prova scritta precedente. Alla prova scritta è possibile utilizzare solo penna/matita/gomma (no calcolatrice, per esempio). È possibile sostenere la prova orale in uno degli appelli successivi della stessa sessione. Il progetto assegnato a casa deve essere sottomesso attraverso il link GitHub Classroom relativo alla prova orale a cui si ci presenta (ATTENZIONE: il link cambia a tutti gli appelli). È possibile modificare il progetto di volta in volta, risottomettendolo con modifiche, se non ci si presenta ad una prova orale. Il progetto viene valutato il giorno dopo della scadenza (annunciata sotto): deve essere quindi sottomesso entro la scadenza, altrimenti non è possibile sostenere la prova orale. Per iscriversi alla prova orale, utilizzare il link Doodle pubblicato sotto (ATTENZIONE: il link cambia a tutti gli appelli). Alla prova orale sarà chiesto di modificare il progetto assegnato a casa con una nuova funzione, più una o più domande su quanto fatto a lezione. È possibile consultare slide, libri e Internet durante la prova orale. È possibile sostenere la prova orale con il proprio portatile, oppure con un PC del laboratorio in cui verrà svolta.


Risultati della prova scritta del 9 Luglio pdf

Prova orale/laboratorio venerdì 13 Luglio alle ore 15 in laboratorio verde

Scadenza sottomissione progetto per il settimo appello 11 Luglio alle ore 23:59

Link al repository per la sottomissione del progetto tramite GitHub: link

Testo e correzione appello scritto 9 Luglio fila unica

Testo e correzione appello scritto 25 Giugno FILA A e FILA B

Testo e correzione appello scritto 11 Giugno FILA A e FILA B

Testo e correzione appello scritto 18 Aprile FILA A e FILA B

Testo e correzione appello scritto 23 Febbraio FILA A e FILA B

Testo e correzione appello scritto 9 Febbraio FILA A e FILA B

Testo e correzione appello scritto 18 Gennaio FILA A e FILA B

Risultati Esercizio triangoli (Novembre 2017) pdf




Progetto Esame Programmazione I 2017/2018

Testo dell'esame: pdf




GitHub

Cos'è GitHub link

Slide presentate a lezione dal Dr. Francesco Faloci online e pdf

HelloWorld Tutorial su GitHub link1 link2

GitHub Desktop link

GitHub per Ubuntu link

Manuale GitHub link




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

  • 25 September 2016.
    • Introduction slides
    • Programming environment pdf
    • Introduction to gcc link
    • Tasse universitarie pdf
  • 26 September 2017.
    • Exercises: Flowcharts pdf
  • 28 September 2017 (14-16).
    • Language basics pdf
  • 2 October 2017.
    • Language basics (see slides from 2 October)
    • Programming environment: help in classroom
  • 3 October 2017.
    • C basics, Identifiers, Scope and Bindings pdf
  • 5 October 2017.
    • C basics, Identifiers, Scope and Bindings (see slides from 3 October)
  • 9 October 2017.
  • 10 October 2017.
    • Types (see slides from 9 October)
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 11 October 2017.
    • Literals pdf
    • Type conversions pdf
  • 16 October 2017.
    • Type conversions (see slides from 11 October)
    • Type Checking slides
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 17 October 2017.
    • Type checking (see slides from 16 October)
    • Class assignment (see assignment from 16 October)
  • 18 October 2017.
    • Expressions pdf
  • 23 October 2017.
    • Expressions (see slides from 18 October)
  • 24 October 2017.
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 25 October 2017.
    • Statements pdf
  • 30 October 2017.
    • Statements (see slides from 25 October)
    • Functions pdf pptx
  • 31 October 2017.
    • Functions (see slides from 30 October)
    • Arrays pdf
  • 2 November 2017.
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 6 November 2017.
  • 7 November 2017.
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 8 November 2017.
    • Class assignment pdf
    • Class assignment (solution) pdf
    • GitHub exercise (solution) pdf
  • 20 November 2017.
  • 21 November 2017.
  • 22 November 2017.
    • Loops/Jumps/Functions pdf
  • 27 November 2017.
    • Dynamic Memory pdf pptx
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 28 November 2017.
    • Storage and recursive functions pdf pptx
  • 29 November 2017.
    • Union and Struct pdf
  • 4 December 2017.
    • Linked Lists pdf pptx
    • Recursive functions (see slides from 28 November)
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 6 December 2017.
    • Home assignment (exam) 2017/2018 presentation pdf
    • Exam exercises
  • 7 December 2017.
    • Union (see slides from 19 November)
    • Exam exercises
  • 11 December 2017.
    • Preprocessor and Debugger pdf
    • C hints and Arduino pdf
    • Evaluation day: Course assessment (bring your laptop/mobile) / Evaluation day: Valutazione corso (valutazione online)
  • 12 December 2017.
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 13 December 2017.
    • Linkage pdf
    • Lab activities presentation
  • 18 December 2017.
    • Linkage (see slides from 13 November)
    • Class assignment pdf
    • Class assignment (solution) pdf
  • 19 December 2017.
    • Input/output pdf
  • 20 December 2017.
    • Ripasso/Rehearsal
  • 11 January 2018 14-16 (room A2).
    • RICEVIMENTO COLLETTIVO PRE-ESAME
  • 15 January 2018 14-16 (room A0).
    • RICEVIMENTO COLLETTIVO PRE-ESAME


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.

C. Didattica e programmazione 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 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:
  • C in a nutshell, Peter Prinz (Autore), Tony Crawford (Autore), ISBN-10: 1491904755, O'Reilly, 2016.
  • Il linguaggio C. Principi di programmazione e manuale di riferimento, Brian W. Kernighan (Autore), Dennis M. Ritchie (Autore), ISBN-10: 887192200X, 2004.
  • Programmazione in C, Kim N. King (Autore), ISBN-10: 8838785821, 2013.


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

  • 18 Gennaio 2018
  • 9 Febbraio 2018
  • 23 Febbraio 2018
  • 18 Aprile 2018
  • 11 Giugno 2018
  • 25 Giugno 2018
  • 9 Luglio 2018
  • 17 Settembre 2018
  • 12 Novembre 2018


Esami scritti / Written exams 2015-2016

Testi/Exams: zip

Soluzioni/Solutions: zip

Esami scritti / Written exams 2016-2017

Testi/Exams: zip

Soluzioni/Solutions: zip

Progetto / Project

2015-2016: pdf possibile soluzione

2016-2017: pdf possibile soluzione

2017-2018: pdf



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