Gli obiettivi specifici di questo corso sono:
Inoltre, in riferimento ai cosiddetti Descrittori di Dublino, questo corso contribuisce a acquisire le
seguenti competenze trasversali:
Conoscenza e capacità di comprensione (knowledge and understanding):
L'obiettivo primario del corso è individuato nell’acquisizione da parte degli studenti della “filosofia” della programmazione strutturata, oltre che nella conoscenza dettagliata della sintassi e della semantica del linguaggio di programmazione C. Il corso rivolge una particolare attenzione allo sviluppo di codice ben scritto e ben strutturato.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding),
Si intende fornire agli studenti le seguenti abilità:
Tradurre in codice problemi da risolvere o i fenomeni da simulare;
Progettare, descrivere ed implementare programmi in C;
Saper usare gli strumenti di base per la programmazione;
Comprendere ed analizzare codice C anche in termini di efficienza;
Autonomia di giudizio (making judgements).
Attraverso l'esame di numerosi esempi di codice e una consistente componente pratica che prevede lo svolgimento di esercizi all'elaboratore, il discente sarà in grado, sia in forma autonoma che in forma cooperativa, di analizzare problemi e progettare ed implementare le relative soluzioni software.
Abilità comunicative (communication skills).
lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio verbale tecnico nell'ambito della programmazione degli elaboratori.
Capacità di apprendimento (learning skills).
Il corso intende fornire al discente le necessarie metodologie teoriche e pratiche da mettere in campo in contesti di ricerca e professionali con particolare attenzione all'ambito fisico.
Lezioni Frontali ed esercitazioni pratiche.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato, al fine di rispettare il programma previsto e riportato nel syllabus.
Nessuno in particolare
Qualsiasi testo sul C
Argomenti | Riferimenti testi | |
---|---|---|
1 | Il concetto di algoritmo. Il concetto di programmazione. Cenni sui linguaggi di programmazione. Differenza tra interpreti e compilatori. L'organizzazione della memoria in un sistema di elaborazione. Panoramica sul linguaggio C | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
2 | Il concetto di variabile. L'operatore sizeof. | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
3 | Files di intestazione. Fasi della compilazione. Errori e warning | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
4 | Tipo di dati base del C e loro modificatori. Costanti. Enumerazioni. I/O di un programma. Introduzione al preprocessore C. | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
5 | Espressioni e funzioni matematiche. Conversioni di tipo Overflow e underflow. Operatori di assegnamento. Operatori unari funzioni matematiche. | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
6 | Valori casuali | |
7 | Esecuzione condizionale: IF Operatori logici. Esecuzione condizionale:SWITCH. Esecuzione iterativa: WHILE, FOR e DO-WHILE. Operatore virgola. Operatore ternario. | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
8 | Vettori e matrici. I caratteri e le stringhe. I puntatori. Distinzioni tra puntatori e vettori. Aritmetica dei puntatori. Funzioni sui blocchi di byte. Allocazione dinamica della memoria | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
9 | Discussione sull'endianess. La funzione system. Operatori bitwise. | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
10 | File di testo e file binari | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
11 | Le funzioni in C. Prototipo. Variabili locali. Parametri e valore restituito. Parametri attuali e formali. Passaggio dei parametri esplicito ed implicito | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
12 | La ricorsione. Strutture dati. L'operatore typedef | Qualsiasi testo in C come ad esempio Kernighan e Ritchie "Principi di programmazione e manuale di riferimento" e anche appunti di lezione |
Prova pratica in C.
Di norma la prova dura 2 ore e 30 minuti e prevede lo svolgimento di un programma in C. Tutte le parti del programma possono essere oggetto della prova.
I punteggi di ogni componente della prova appaiono nel testo dell'esercizio stesso. Il punteggio minimo per conseguire l'esame e' di 18. Non e' previsto alcun orale.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Informazioni per studenti con disabilità e/o DSA: a garanzia di pari opportunità e nel rispetto delle leggi vigenti, gli studenti interessati possono chiedere un colloquio personale in modo da programmare eventuali misure compensative e/o dispensative, in base agli obiettivi didattici ed alle specifiche esigenze. E' possibile rivolgersi anche al docente referente CInAP (Centro per l’integrazione Attiva e Partecipata - Servizi per le Disabilità e/o i DSA) del nostro Dipartimento.
Esempi sono presenti sia sull'apposito canale teams che su: http://superpippo.ct.infn.it/~marco/didattica.
Tali esempi prevedono anche una accurata descrizione della valutazione.