FONDAMENTI DI PROGRAMMAZIONE

Luca GRECO FONDAMENTI DI PROGRAMMAZIONE

0612700106
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA
INGEGNERIA INFORMATICA
2016/2017

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2016
PRIMO SEMESTRE
CFUOREATTIVITÀ
1FONDAMENTI DI PROGRAMMAZIONE
324LEZIONE
2FONDAMENTI DI PROGRAMMAZIONE
648LEZIONE


Obiettivi
L’INSEGNAMENTO FORNISCE GLI ELEMENTI DI BASE PER LA RISOLUZIONE DI PROBLEMI DI COMPLESSITÀ NON ELEVATA MEDIANTE L’USO DI SISTEMI DI ELABORAZIONE USANDO GLI ELEMENTI FONDAMENTALI DI UN LINGUAGGIO DI PROGRAMMAZIONE AD ALTO LIVELLO. IL CORSO È STRUTTURATO IN MODO DA CONSENTIRE AGLI STUDENTI DI ACQUISIRE LE CONOSCENZE RELATIVE AGLI ELEMENTI FONDAMENTALI DELLA PROGRAMMAZIONE STRUTTURATA E DEL LINGUAGGIO C, UNITAMENTE ALLE TECNICHE FONDAMENTALI DI “PROBLEM SOLVING” MEDIANTE L’USO DI UN ELABORATORE.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
SINTASSI DEL LINGUAGGIO C, CODIFICA E RAPPRESENTAZIONE DELLE INFORMAZIONI, COSTRUTTI FONDAMENTALI DEI LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELLO, STRUTTURE DATI FONDAMENTALI, RAPPRESENTAZIONE DEGLI ALGORITMI ATTRAVERSO DIAGRAMMI A BLOCCHI, CATENA DI PROGRAMMAZIONE.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE
PROGETTARE UN ALGORITMO PER LA RISOLUZIONE DI PROBLEMI DI COMPLESSITÀ NON ELEVATA. LEGGERE E COMPREDERE PROGRAMMI C. TRADURRE UN ALGORITMO IN UN PROGRAMMA IN LINGUAGGIO C USANDO UN AMBIENTE DI SVILUPPO. COMPILARE UN PROGRAMMA SCRITTO IN C. IDENTIFICARE E RISOLVERE ERRORI COMUNI.
Prerequisiti
NESSUNO
Contenuti
CONCETTI DI BASE (4H LEZIONE, 2H ESERCITAZIONE)

INTRODUZIONE. I CONCETTI DI INFORMAZIONE, ALGORITMO, ESECUTORE, PROGRAMMA E PROCESSO. ELEMENTI DI ALGEBRA DI BOOLE. RAPPRESENTAZIONE E CODIFICA DELL’INFORMAZIONE. (M. VENTO: CAP. 1)
FONDAMENTI DI PROGRAMMAZIONE (16H LEZIONE, 8H ESERCITAZIONE AL CALCOLATORE)

INTRODUZIONE. I LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELLO E LORO DESCRIZIONE. PROBLEM SOLVING: RAPPRESENTAZIONE E SIMULAZIONE DELL’ESECUZIONE DI ALGORITMI MEDIANTE FLOWCHART. INTRODUZIONE AL LINGUAGGIO C.
I CONCETTI DI AGGREGAZIONE E ASTRAZIONE. TIPI E VARIABILI. TIPI SEMPLICI: INTERO, FLOAT, CHAR, TIPI ENUMERATIVI. VARIABILI AUTOMATICHE, ESTERNE E STATICHE. INPUT/OUTPUT FORMATTATO. LIBRERIE STANDARD. OPERATORI ARITMETICI, RELAZIONALI E LOGICI. L’ISTRUZIONE DI ASSEGNAZIONE E SUA SEMANTICA. ESPRESSIONI. ISTRUZIONI SEMPLICI. BLOCCHI DI ISTRUZIONI. STRUTTURE DI CONTROLLO SELETTIVE. STRUTTURE DI CONTROLLO ITERATIVE PREDETERMINATE E NON. AMBIENTI DI SVILUPPO: IDE (INTEGRATED DEVELOPMENT ENVIRONMENT) PER LO SVILUPPO DI PROGRAMMI STRUTTURATI. COMPILATORI ED INTERPRETI. STRUMENTI PER LA PRODUZIONE DI PROGRAMMI. EDITING DI UN PROGRAMMA. COMPILAZIONE, COLLEGAMENTO ED ESECUZIONE. DEBUGGING.(P.J. DEITEL – H.M. DEITEL: CAP. 1, 2, 3, 4 E 9; M. VENTO: CAP. 2 E 3)
PROGRAMMAZIONE STRUTTURATA (8H LEZIONE, 4H ESERCITAZIONE AL CALCOLATORE)

TIPI DI DATI STRUTTURATI. ARRAY E MATRICI: USO, INIZIALIZZAZIONE E RAPPRESENTAZIONE IN MEMORIA. IL CONCETTO DI PUNTATORE: DICHIARAZIONE E USO. PUNTATORI E STRINGHE. FUNZIONI DELLA LIBRERIA STANDARD.(P.J. DEITEL – H.M. DEITEL: CAP. 6, 7 E 8; M. VENTO: CAP 6 E 8).
DECOMPOSIZIONE FUNZIONALE E PROGETTO DI PROGRAMMI (10H LEZIONE, 4H ESERCITAZIONE AL CALCOLATORE)
PROGRAMMAZIONE MODULARE: IL CONCETTO DI FUNZIONE. DEFINIZIONE, CHIAMATA, PROTOTIPO. PASSAGGIO DEI PARAMETRI PER VALORE E PER RIFERIMENTO. EFFETTI COLLATERALI E PROCEDURE. GRAFO DI FLUSSO. SEQUENZA STATICA E SEQUENZA DINAMICA. VISIBILITÀ E DURATA DELLE VARIABILI. PUNTATORI E GESTIONE DINAMICA DELLA MEMORIA. OPERATORE SIZEOF E LE FUNZIONI MALLOC(), FREE() E REALLOC(). SVILUPPO DI ALGORITMI NOTEVOLI SU SEQUENZE, VETTORI CON ALLOCAZIONE DINAMICA. FUNZIONI PREDEFINITE DELLA LIBRERIA STANDARD. ((P.J. DEITEL – H.M. DEITEL: CAP. 5; M. VENTO: CAP. 5)

I FILE (2H LEZIONE, 2H ESERCITAZIONE AL CALCOLATORE)
IL CONCETTO DI FILE. FILE AD ACCESSO SEQUENZIALE E DIRETTO. FILE DI TESTO. APERTURA ED OPERAZIONI DI LETTURA E SCRITTURA SU FILE. LETTURA A CARATTERE E FORMATTATA. (P.J. DEITEL – H.M. DEITEL: CAP. 11; M. VENTO: CAP. 7)

SVILUPPO DI ALGORITMI (8H LEZIONE, 2H ESERCITAZIONE AL CALCOLATORE)

SVILUPPO DI ALGORITMI NOTEVOLI SU SEQUENZE, VETTORI E MATRICI: CALCOLO DEL MINIMO E DEL MASSIMO, PRODOTTO SCALARE, PRODOTTO MATRICIALE, CALCOLO DELLA TRASPOSTA E DELLA TRACCIA DI UNA MATRICE. SVILUPPO DI PROGRAMMI CON I/O SU FILE. ALGORITMI NOTEVOLI DI RICERCA ED ORDINAMENTO: RICERCA LINEARE, RICERCA DICOTOMICA, SELECTION SORT, BUBBLE SORT. DERIVAZIONE ED INTEGRAZIONE NUMERICA DI UNA FUNZIONE. (P.J. DEITEL – H.M. DEITEL: CAP. 6 E 7; M. VENTO: CAP. 9)
Metodi Didattici
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE (48H) ED ESERCITAZIONI PRATICHE AL CALCOLATORE (24H). NELLE ESERCITAZIONI VENGONO PROPOSTI E COMMENTATI SPECIFICI ALGORITMI PER LA RISOLUZIONE DI PROBLEMI E LA RELATIVA CODIFICA IN LINGUAGGIO C; GLI STUDENTI, GUIDATI DAL DOCENTE, IMPLEMENTANO, ESEGUONO E VERIFICANO GLI ALGORITMI DELINEATI DURANTE LE LEZIONI. PER POTER SOSTENERE LA VERIFICA FINALE DEL PROFITTO E CONSEGUIRE I CFU RELATIVI ALL’ATTIVITÀ FORMATIVA, LO STUDENTE DOVRÀ AVERE FREQUENTATO ALMENO IL 70% DELLE ORE PREVISTE DI ATTIVITÀ DIDATTICA ASSISTITA.
Verifica dell'apprendimento
LA VALUTAZIONE DEL RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI AVVIENE MEDIANTE UNA PROVA PRATICA DI MEDIO TERMINE, UNA PROVA PRATICA FINALE ED UN COLLOQUIO ORALE. LA PROVA PRATICA DI MEDIO TERMINE VIENE EFFETTUATA DALLO STUDENTE SULLA PRIMA PARTE DEL CORSO SUL SISTEMA DI ELABORAZIONE E CONSISTE NELLA SCRITTURA, COMPILAZIONE, ESECUZIONE E VERIFICA DI UN ESERCIZIO DI PROGRAMMAZIONE IN LINGUAGGIO C. LA PROVA PRATICA FINALE CONSISTE NELLA REALIZZAZIONE DI UN PROGRAMMA CHE RISOLVE UN PROBLEMA SPECIFICO DANDO LA POSSIBILITÀ ALLO STUDENTE DI ESPRIMERE CREATIVAMENTE UNA SOLUZIONE AL PROBLEMA PROPOSTO. PARTENDO DAI CONTENUTI DELLA PROVE PRATICHE, LA DISCUSSIONE ORALE VERTE SU TUTTI GLI ARGOMENTI TRATTATI NEL CORSO ALLO SCOPO DI VALUTARE SIA IL GRADO DI CONOSCENZE ACQUISITE SIA LE CAPACITÀ DI SINTESI E DI ESPOSIZIONE.
NELLA VALUTAZIONE FINALE, ESPRESSA IN TRENTESIMI, LA VALUTAZIONE DELLE PROVA INTERMEDIA E PRATICA PESERÀ PER IL 70% MENTRE IL COLLOQUIO ORALE PER IL 30%. SI È AMMESSI ALLA PROVA ORALE SOLO PREVIO SUPERAMENTO DELLA PROVA PRATICA. LA LODE POTRÀ ESSERE ATTRIBUITA AGLI STUDENTI CHE DIMOSTRINO UNA PIENA CONOSCENZA DI TUTTE LE PRINCIPALI TEMATICHE AFFRONTATE NEL CORSO E CHE ABBIANO DIMOSTRATO UNA OTTIMA CAPACITÀ DI PROGRAMMAZIONE.
ESEMPI DI PROVE PRATICHE SI POSSONO TROVARE NELLA PAGINE DEL CORSO AL SITO WWW.ESSE3WEB.UNISA.IT.
Testi
M. VENTO, FONDAMENTI DI INFORMATICA, APPUNTI DELLE LEZIONI, EDIZIONE 2015. QUESTO TESTO È ADOTTATO PER LA TRATTAZIONE DEGLI ASPETTI INERENTI ALLA PROGRAMMAZIONE.

PAUL J. DEITEL - HARVEY M. DEITEL, “IL LINGUAGGIO C - FONDAMENTI E TECNICHE DI PROGRAMMAZIONE”, PEARSON.

IN ALTERNATIVA:
AL KELLEY, IRA POHL "C DIDATTICA E PROGRAMMAZIONE”, PEARSON.

NELLA PAGINA DEL SITO DELL’INSEGNAMENTO WWW.ESSE3WEB.UNISA.IT È RESO DISPONIBILE AGLI STUDENTI MATERIALE AGGIUNTIVO, COME TRACCE DI ESERCIZI DI ESEMPIO E RELATIVO SVOLGIMENTO, ULTERIORI PROPOSTE DI ESERCIZIO.
Altre Informazioni
L’INSEGNAMENTO È EROGATO IN PRESENZA CON FREQUENZA OBBLIGATORIA. LA LINGUA DI INSEGNAMENTO È L’ITALIANO.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-03-11]