Programmazione I (2016/2017)



Codice insegnamento
4S02723
Crediti
12
Coordinatore
Nicola Bombieri
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti Orario
Teoria 8 II sem., I sem. Nicola Bombieri
Laboratorio [II turno M-Z] 4 II sem., I sem. Maurizio Boscaini
Laboratorio [I turno A-L] 4 II sem., I sem. Vincenzo Bonnici

Orario lezioni

II sem.
Attività Giorno Ora Tipo Luogo Note
Teoria martedì 8.30 - 11.30 lezione Aula Gino Tessari  
Teoria venerdì 8.30 - 10.30 lezione Aula Gino Tessari  
Laboratorio [I turno A-L] venerdì 14.30 - 17.30 laboratorio Laboratorio didattico Delta  
Laboratorio [II turno M-Z] lunedì 13.30 - 16.30 laboratorio Laboratorio didattico Delta  
I sem.
Attività Giorno Ora Tipo Luogo Note
Teoria mercoledì 13.30 - 14.30 lezione Aula Gino Tessari  
Teoria venerdì 16.30 - 18.30 lezione Aula Gino Tessari  
Laboratorio [I turno A-L] martedì 16.30 - 18.30 laboratorio Laboratorio didattico Delta  
Laboratorio [II turno M-Z] lunedì 16.30 - 18.30 laboratorio Laboratorio didattico Delta  

Obiettivi formativi

Il corso fornisce le conoscenze base per la scrittura di programmi in linguaggio C. Particolare enfasi verrà data alla relazione tra programma e architettura dell'elaboratore che esegue il programma, al concetto di ricorsione e alla realizzazione di semplici strutture dati, ricorsive e non ricorsive.
A completamento del corso, gli studenti saranno in grado di sviluppare e organizzare programmi in linguaggio C e avranno le conoscenze necessarie per poter:
-) implementare algoritmi di media complessità;
-) analizzare e verificare codice tramite debugging.

Programma

Teoria:
-----------
• Introduzione al corso.
• Concetti fondamentali: programmazione, linguaggio di alto livello, sistemi operativi, compilazione dei programmi.
• Compilazione ed esecuzione del primo programma: compilazione del primo programma, esecuzione del primo programma, descrizione del primo programma, visualizzazione delle variabili, commenti.
• Variabili, tipi di dati ed espressioni aritmetiche: operare con le variabili, tipi di dati e costanti, operare con le espressioni aritmetiche, combinare le operazioni con l’assegnamento – gli operatori di assegnamento.
• Iterazione: l’istruzione for, l’istruzione while, l’istruzione do.
• Prendere decisioni: l’istruzione if, l’istruzione switch, variabili booleane, l’operatore condizionale.
• Operazioni con gli array: definire un array, inizializzare un array, array di caratteri, array multidimensionali.
• Le funzioni: definire una funzione, argomenti e variabili locali, restituire i risultati di una funzione, funzioni che chiamano funzioni, che chiamano.., programmazione top-down, funzioni e array, variabili globali, variabili automatiche e statiche, funzioni ricorsive.
• Le strutture: una struttura per memorizzare data, funzioni e strutture, inizializzare le strutture, array di strutture, strutture contenenti strutture, strutture contenenti array, varianti delle strutture.
• Stringhe di caratteri: array di caratteri, stringhe di caratteri di lunghezza variabile, sequenze di escape, altre informazioni sulle stringhe costanti, stringhe di caratteri, strutture e array, operazioni con i caratteri.
• Puntatori: definire un puntatore, utilizzare i puntatori nelle espressioni, puntatori e strutture, puntatori e funzioni, puntatori e array, operazioni sui puntatori, puntatori e indirizzi di memoria.
• Il preprocessore: la direttiva #define, la direttiva #include, compilazione condizionale.
• Operazioni di input/output: I/O di caratteri – getchar e putchar, I/O formattato – printf e scanf.
• Caratteristiche varie e avanzate: Istruzioni varie del linguaggio, operatore virgola, allocazione dinamica della memoria.

Laboratorio:
-------------------
• Introduzione al corso, file system, bash, editor
• Prova pratica in laboratorio di tutti gli argomenti presentati nella parte teorica: esempi, esercizi.
• Debugging di codice C: gdb, ddd e CodeBlocks.

Modalità d'esame

L'esame è unificato con la parte di Laboratorio. Esso consiste in due parziali. Il primo parziale si svolgerà indicativamente a Febbraio e il secondo parziale a Giugno. Il voto finale sarà ottenuto dalla media dei voti dei due esami parziali. Oltre ai parziali, gli studenti hanno a disposizione le normali 4 sessioni di esame totale annuali, a partire da quella di Giugno, in cui si svolgeranno esami sulla totalità del programma.
I compiti (parziali o totali) consistono nella scrittura di programmi al calcolatore, in laboratorio
Per superare l'esame gli studenti dovranno dimostrare di:
- aver compreso i principi alla base della programmazione in C
- essere in grado di sviluppare codice C a di analizzare la sua correttezza nonche' problemi tramite debuggin
- saper applicare le conoscenze acquisite per implementare algoritmi risolutivi partendo da specifiche date sottoforma di esercizi
Verrà valutata la capacità di organizzare l'algoritmo e le strutture dati e di tradurli in linguaggio C senza gravi errori di sintassi.

Testi di riferimento
Attività Autore Titolo Casa editrice Anno ISBN Note
Teoria Stephen G. Kochan Programmare in C (Edizione 3) Pearson 2011 9788871926605
Laboratorio Stephen G. Kochan Programmare in C (Edizione 3) Pearson 2011 9788871926605

Opinione studenti frequentanti - 2015/2016


Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

I dati relativi all'AA 2016/2017 non sono ancora disponibili