FONDAMENTI DI PROGRAMMAZIONE

Francesco TORTORELLA FONDAMENTI DI PROGRAMMAZIONE

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



OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
2FONDAMENTI - MOD.2
324ESERCITAZIONE
1AMBIENTI E ALGORITMI - MOD.1
324LABORATORIO
324LEZIONE


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 (ARRAY E MATRICI), RAPPRESENTAZIONE DEGLI ALGORITMI ATTRAVERSO DIAGRAMMI A BLOCCHI, FASI DELLA TRADUZIONE DI UN PROGRAMMA.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE
PROGETTARE UN ALGORITMO PER LA RISOLUZIONE DI PROBLEMI DI COMPLESSITÀ NON ELEVATA. LEGGERE E PROGRAMMARE IN LINGUAGGIO C. CODIFICARE UN ALGORITMO IN UN PROGRAMMA IN LINGUAGGIO C USANDO UN AMBIENTE DI SVILUPPO INTEGRATO. COMPILARE UN PROGRAMMA SCRITTO IN C. IDENTIFICARE E RISOLVERE ERRORI COMUNI.
Prerequisiti
NESSUNO

Contenuti
CONCETTI DI BASE (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)
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 (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 16/0/8)
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.
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 (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/0/4)
TIPI DI DATI STRUTTURATI. ARRAY E MATRICI: USO, INIZIALIZZAZIONE E RAPPRESENTAZIONE IN MEMORIA. IL CONCETTO DI PUNTATORE: DICHIARAZIONE E USO. 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 (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/0/4)
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. FUNZIONI PREDEFINITE DELLA LIBRERIA STANDARD. (P.J. DEITEL – H.M. DEITEL: CAP. 5; M. VENTO: CAP. 5)

I FILE (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/0/2)
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 (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/0/4)
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. (P.J. DEITEL – H.M. DEITEL: CAP. 6 E 7; M. VENTO: CAP. 9)

TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 48/2/22
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.
Testi
PAUL J. DEITEL - HARVEY M. DEITEL, IL LINGUAGGIO C - FONDAMENTI E TECNICHE DI PROGRAMMAZIONE, PEARSON.

M. VENTO, FONDAMENTI DI INFORMATICA, APPUNTI DELLE LEZIONI, EDIZIONE 2015. QUESTO TESTO È ADOTTATO PER LA TRATTAZIONE DEGLI ASPETTI INERENTI ALLA PROGRAMMAZIONE.

IN ALTERNATIVA:
KIM N. KING PROGRAMMAZIONE IN C, APOGEO

MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO.
Altre Informazioni
IL CORSO È EROGATO IN ITALIANO
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2021-12-09]