FONDAMENTI DI INFORMATICA

Antonio DELLA CIOPPA FONDAMENTI DI INFORMATICA

0612700005
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA
INGEGNERIA INFORMATICA
2014/2015

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2012
PRIMO SEMESTRE
CFUOREATTIVITÀ
990LEZIONE
Obiettivi
RISULTATI DI APPRENDIMENTO PREVISTI E COMPETENZE DA ACQUISIRE
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 UTILIZZANDO 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, OLTRE CHE DEL MODO IN CUI LE INFORMAZIONI VENGONO CODIFICATE E
RAPPRESENTATE ALL’INTERNO DEL SISTEMA. IL CORSO È AFFIANCATO DA UN AMPIO INSIEME DI ESERCITAZIONI PRATICHE IN AULA E
IN LABORATORIO, GUIDATE DAL DOCENTE, IN CUI GLI STUDENTI ACQUISISCONO LE CONOSCENZE RELATIVE AGLI ELEMENTI FONDAMENTALI
DI UN LINGUAGGIO DI PROGRAMMAZIONE AD ALTO LIVELLO, UNITAMENTE ALLE TECNICHE FONDAMENTALI DI “PROBLEM SOLVING” MEDIANTE
L’USO DI UN ELABORATORE. QUESTE ATTIVITÀ SONO PROGRAMMATE IN MODO CHE ALL''''INTERNO DI OGNI ESERCITAZIONE LO STUDENTE
POSSA REALIZZARE PRATICAMENTE LE SOLUZIONI DEI PROBLEMI DELINEATI DURANTE LE LEZIONI IN AULA.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
CONOSCENZE SULL’ARCHITETTURA DEI SISTEMI DI ELABORAZIONE E COMPRENSIONE DELLE LORO MODALITÀ (LOGICA) DI FUNZIONAMENTO,
DELLA CODIFICA E RELATIVA RAPPRESENTAZIONE DELLE INFORMAZIONI, DEI COSTRUTTI FONDAMENTALI DEI LINGUAGGI DI
PROGRAMMAZIONE AD ALTO LIVELLO, DELLE STRUTTURE DATI FONDAMENTALI, DELLA RAPPRESENTAZIONE DEGLI ALGORITMI ATTRAVERSO
DIAGRAMMI A BLOCCHI, DELLA SINTASSI DEL LINGUAGGIO C. CONOSCENZE BASILARI SULLA STRUTTURA DI UN SISTEMA OPERATIVO E
COMPRENSIONE DELLA CATENA DI PROGRAMMAZIONE.

KNOWLEDGE AND UNDERSTANDING
BASIC MODERN COMPUTER SYSTEMS ARCHITECTURE, INFORMATION REPRESENTATION, PROGRAMMING FUNDAMENTALS OF THE C HIGH-LEVEL
LANGUAGE. FUNDAMENTALS OF OPERATIVE SYSTEMS. PROGRAM DESIGN AND DEVELOPMENT.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE
CONOSCENZA DEI PRINCIPI, DELLE METODOLOGIE E DEGLI STRUMENTI PER LO SVILUPPO DI ALGORITMI E PROGRAMMI CHE RISOLVANO
PROBLEMI DI COMPLESSITÀ NON ELEVATA. CAPACITÀ DI APPLICARE TALI CONOSCENZE NEL PROGETTO DI ALGORITMI E NELLO SVILUPPO
DI PROGRAMMI CHE TRADUCONO GLI ALGORITMI RISOLUTIVI IN MODO CORRETTO, EFFICIENTE, LEGGIBILE E MODULARE MEDIANTE IL
LINGUAGGIO DI PROGRAMMAZIONE C.

AUTONOMIA DI GIUDIZIO
SAPER VALUTARE AUTONOMAMENTE IL CORRETTO IMPIEGO DEI COSTRUTTI BASE UN LINGUAGGIO DI PROGRAMMAZIONE DI ALTO LIVELLO
PER LA CODIFICA DI ALGORITMI.

ABILITÀ COMUNICATIVE
SAPER COMUNICARE IN MODO CORRETTO ED EFFICACE NELL’AMBITO DELLA PROGRAMMAZIONE IN C.

CAPACITÀ DI APPRENDERE
SAPER APPLICARE LE CONOSCENZE ACQUISITE A CONTESTI DIFFERENTI DA QUELLI PRESENTATI DURANTE IL CORSO, ED APPROFONDIRE
GLI ARGOMENTI TRATTATI USANDO LIBRI DI TESTO DIVERSI DA QUELLI PROPOSTI O FONTI DI INFORMAZIONE IN LINEA.
Prerequisiti
NESSUNO.
Contenuti
CONCETTI DI BASE (12H LEZIONE, 4H ESERCITAZIONE IN AULA)
INTRODUZIONE. I CONCETTI DI INFORMAZIONE, ALGORITMO, ESECUTORE E PROCESSO.
ARCHITETTURE DI SISTEMI DI ELABORAZIONE: ELEMENTI DI BASE SUI SISTEMI DI ELABORAZIONE.
IL MODELLO DI VON NEUMANN: MEMORIA CENTRALE, BUS, UNITÀ CENTRALE, INTERFACCE DI INGRESSO/USCITA.
ELEMENTI DI ALGEBRA DI BOOLE.
RAPPRESENTAZIONE E CODIFICA DELL’INFORMAZIONE. IL CONCETTO DI CODIFICA, RAPPRESENTAZIONE POSIZIONALE,
NUMERI INTERI, CONCETTO DI INTERVALLO DI RAPPRESENTAZIONE, OPERAZIONI IN BINARIO PURO (SOMMA, SOTTRAZIONE, OVERFLOW),
RAPPRESENTAZIONE IN MODULO E SEGNO E IN COMPLEMENTO DI NUMERI INTERI RELATIVI (SOMMA, SOTTRAZIONE, OVERFLOW, SHIFT),
CODIFICA DELL’INFORMAZIONE NON NUMERICA.

FONDAMENTI DI PROGRAMMAZIONE (20H LEZIONE, 6H ESERCITAZIONE IN AULA, 9H ESERCITAZIONE IN LABORATORIO)
INTRODUZIONE. I LINGUAGGI DI PROGRAMMAZIONE DI BASSO E DI ALTO LIVELLO. I LINGUAGGI DI PROGRAMMAZIONE AD ALTO LIVELLO
E LORO DESCRIZIONE.  
LINGUAGGIO C. 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. OPERATORI.
ESPRESSIONI. L’ISTRUZIONE DI ASSEGNAZIONE E SUA SEMANTICA. ISTRUZIONI SEMPLICI. BLOCCHI DI ISTRUZIONI.
STRUTTURE DI CONTROLLO SELETTIVE. STRUTTURE DI CONTROLLO ITERATIVE PREDETERMINATE E NON. CARTE SINTATTICHE DEI
PRINCIPALI COSTRUTTI DI PROGRAMMAZIONE. TIPI STRUTTURATI: ARRAY E MATRICI. IL CONCETTO DI PUNTATORE.
GESTIONE DELLE STRINGHE.

DECOMPOSIZIONE FUNZIONALE E ELEMENTI DI PROGETTO DI PROGRAMMI (8H LEZIONE, 6H ESERCITAZIONE IN AULA)
CONCETTI DI 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. LE FUNZIONI PREDEFINITE DELLA STANDARD LIBRARY.

I FILE (2H LEZIONE, 4H ESERCITAZIONE IN LABORATORIO)
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.

AMBIENTI DI SVILUPPO 2H LEZIONE, 3H ESERCITAZIONE IN LABORATORIO)
AMBIENTI DI PROGRAMMAZIONE. COMPILATORI ED INTERPRETI. STRUMENTI PER LA PRODUZIONE DI PROGRAMMI.
EDITING DI UN PROGRAMMA. COMPILAZIONE, COLLEGAMENTO ED ESECUZIONE. SVILUPPO DI ALGORITMI DI BASE.

SVILUPPO DI ALGORITMI (4H LEZIONE + 8H ESERCITAZIONE IN LABORATORIO)
SVILUPPO DI ALGORITMI NOTEVOLI SU 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, BUBBLE SORT, SELECTION SORT.
DERIVAZIONE ED INTEGRAZIONE NUMERICA DI UNA FUNZIONE.
Metodi Didattici
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO. NELLE ESERCITAZIONI IN AULA VENGONO PROPOSTI E COMMENTATI ALGORITMI E LA RELATIVA CODIFICA IN LINGUAGGIO C. NELLE ESERCITAZIONI IN LABORATORIO GLI STUDENTI, GUIDATI DAL DOCENTE, IMPLEMENTANO SPECIFICI ALGORITMI PER LA RISOLUZIONE DI PROBLEMI DELINEATI DURANTE LE LEZIONI E LE ESERCITAZIONI IN AULA.
Verifica dell'apprendimento
L'APPRENDIMENTO VIENE VERIFICATO MEDIANTE ESERCIZI PROPOSTI DURANTE LE LEZIONI, LE ESERCITAZIONI PRATICHE IN AULA ED
IN LABORATORIO, GUIDATE DAL DOCENTE. LA VALUTAZIONE DEL RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI AVVIENE MEDIANTE UNA
PROVA SCRITTA ED UN COLLOQUIO ORALE, ENTRAMBE OBBLIGATORIE. LA PROVA SCRITTA VIENE EFFETTUATA DALLO STUDENTE SUL SISTEMA
DI ELABORAZIONE E CONSISTE NELLA SCRITTURA, COMPILAZIONE, ESECUZIONE E VERIFICA DI UN ESERCIZIO DI PROGRAMMAZIONE IN
LINGUAGGIO C DA REALIZZARSI DIRETTAMENTE IN LABORATORIO. PARTENDO DAI CONTENUTI DELLA PROVA SCRITTA, LA DISCUSSIONE
ORALE VERTE SU TUTTI GLI ARGOMENTI TRATTATI NEL CORSO ALLO SCOPO DA VALUTARE SIA IL GRADO DI CONOSCENZE ACQUISITE SIA
LE CAPACITÀ DI SINTESI E DI ESPOSIZIONE.
Testi
D. SCIUTO, G. BUONANNO E L. MARI, INTRODUZIONE AI SISTEMI INFORMATICI, MACGRAW HILL, 5/ED, 2014

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

MATERIALE FORNITO NEL SITO WEB DEL CORSO.

TESTI CONSIGLIATI:

D. MANDRIOLI, S. CERI, L. SBATTELLA, P. CREMONESI E G. CUGOLA, INFORMATICA: ARTE E MESTIERE, 4/ED, 2014

PER APPROFONDIRE ALCUNI ASPETTI RELATIVI AL C:

B.W. KERNIGHAN, D. RITCHIE, LINGUAGGIO C, 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: 2016-09-30]