FONDAMENTI DI PROGRAMMAZIONE

Antonio DELLA CIOPPA FONDAMENTI DI PROGRAMMAZIONE

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

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
1FONDAMENTI (Modulo di FONDAMENTI DI PROGRAMMAZIONE)
432LEZIONE
216ESERCITAZIONE
2AMBIENTI E ALGORITMI (Modulo di FONDAMENTI DI PROGRAMMAZIONE)
18ESERCITAZIONE
216LABORATORIO


Obiettivi
IL CORSO FORNISCE GLI ELEMENTI DI BASE PER LA RISOLUZIONE DI PROBLEMI DI COMPLESSITÀ NON ELEVATA MEDIANTE L’USO DI SISTEMI DI ELABORAZIONE, SIA NELL’AMBITO DI APPLICAZIONI DI CARATTERE GENERALE, SIA PER APPLICAZIONI TIPICHE DELLO SPECIFICO SETTORE INGEGNERISTICO, USANDO IL LINGUAGGIO DI PROGRAMMAZIONE C. IL CORSO È STRUTTURATO IN MODO DA CONSENTIRE AGLI STUDENTI DI ACQUISIRE LE CONOSCENZE RELATIVE ALLE CARATTERISTICHE FONDAMENTALI DI UN SISTEMA DI ELABORAZIONE E DEI SUOI PRINCIPI DI FUNZIONAMENTO, AGLI ELEMENTI FONDAMENTALI DI UN LINGUAGGIO DI PROGRAMMAZIONE AD ALTO LIVELLO, UNITAMENTE ALLE TECNICHE FONDAMENTALI DI “PROBLEM SOLVING” MEDIANTE L’USO DI UN ELABORATORE. IL CORSO È AFFIANCATO DA UN AMPIO INSIEME DI ESERCITAZIONI PRATICHE AL CALCOLATORE, GUIDATE DAL DOCENTE, IN CUI GLI STUDENTI METTONO IN PRATICA LE CONOSCENZE ACQUISITE. QUESTE ATTIVITÀ SONO PROGRAMMATE IN MODO CHE ALL’INTERNO DI OGNI ESERCITAZIONE LO STUDENTE POSSA REALIZZARE PRATICAMENTE GLI ALGORITMI RISOLUTIVI DEI PROBLEMI DELINEATI DURANTE LE LEZIONI IN AULA.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
ALLA FINE DEL CORSO LO STUDENTE CONOSCE LA CODIFICA E LA RAPPRESENTAZIONE DELLE INFORMAZIONI, LA SINTASSI DEL LINGUAGGIO C, I COSTRUTTI FONDAMENTALI DEI LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELLO, LE STRUTTURE DATI FONDAMENTALI, LA RAPPRESENTAZIONE DEGLI ALGORITMI ATTRAVERSO DIAGRAMMI A BLOCCHI, LA CATENA DI PROGRAMMAZIONE.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE
ALLA FINE DEL CORSO LO STUDENTE È IN GRADO DI PROGETTARE UN ALGORITMO PER LA RISOLUZIONE DI PROBLEMI DI COMPLESSITÀ NON ELEVATA. LEGGERE E COMPRENDERE 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.

AUTONOMIA DI GIUDIZIO
LO STUDENTE SARÀ IN GRADO DI VALUTARE AUTONOMAMENTE IL CORRETTO IMPIEGO DEI COSTRUTTI BASE DI UN LINGUAGGIO DI PROGRAMMAZIONE DI ALTO LIVELLO PER LA CODIFICA DI ALGORITMI.

ABILITÀ COMUNICATIVE
LO STUDENTE SARÀ IN GRADO DI ESPORRE ORALMENTE SU TEMATICHE LEGATE AI FONDAMENTI DELLA PROGRAMMAZIONE FACENDO RICORSO AD UNA TERMINOLOGIA SCIENTIFICA ADEGUATA.

CAPACITÀ DI APPRENDERE
SAPER APPLICARE LE CONOSCENZE ACQUISITE A CONTESTI DIFFERENTI DA QUELLI PRESENTATI DURANTE IL CORSO, ED APPROFONDIRE GLI ARGOMENTI TRATTATI USANDO MATERIALI DIVERSI DA QUELLI PROPOSTI O FONTI DI INFORMAZIONE IN LINEA.

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 CONSISTE IN UN TEST A RISPOSTA MULTIPLA E DUE QUESITI A RISPOSTA APERTA DI CARATTERE TEORICO. LA PROVA PRATICA FINALE VIENE EFFETTUATA DALLO STUDENTE SUL SISTEMA DI ELABORAZIONE E CONSISTE NELLA SCRITTURA, COMPILAZIONE, ESECUZIONE E VERIFICA DI UN ESERCIZIO DI PROGRAMMAZIONE IN LINGUAGGIO C. LA PROVA PRATICA DI MEDIO TERMINE È ESONERATIVA PER LA PRIMA PARTE DEI CONTENUTI DEL CORSO. PARTENDO DAI CONTENUTI DELLA PROVA PRATICA FINALE, LA DISCUSSIONE ORALE VERTE SUGLI ARGOMENTI TRATTATI NELLA SECONDA PARTE DEL 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 DELLA PROVA DI MEDIO TERMINE PESERÀ PER IL 30%, LA PROVA FINALE PESERÀ PER IL 50% MENTRE IL COLLOQUIO ORALE PER IL 20%. SI È AMMESSI ALLE PROVE SOLO PREVIO SUPERAMENTO DELLE PROVE PRECEDENTI. 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.

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

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.

ALTRI TESTI SUGGERITI:

CERI, D. MANDRIOLI, L. SBATTELLA, P. CREMONESI, G. CUGOLA - INFORMATICA: ARTE E MESTIERE, TERZA EDIZIONE MCGRAW-HILL ITALIA.

B.W. KERNIGHAN, D. RITCHIE - C LANGUAGE, PEARSON-PRENTICE HALL, II EDIZIONE.
Altre Informazioni
L’INSEGNAMENTO È EROGATO IN PRESENZA CON FREQUENZA OBBLIGATORIA. LA LINGUA DI INSEGNAMENTO È L’ITALIANO.

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-10-21]