Scheda Insegnamento: INFORMATICA A.A. 2017/2018
  • Corso di Laurea: INGEGNERIA INDUSTRIALE (L-9)
  • Codice: 15672
  • Crediti: 9
  • Anno Off. Formativa: 2017/2018
  • Anno di Corso: 1
  • Erogazione: I semestre
  • Docente: PAOLA VOCCA

Programma

Nozioni di base: Struttura di un elaboratore, modelli di calcolo, complessità concreta, analisi asintotica, macchina a registri, pseudo Assembler. Codifica digitale delle informazioni. Algebra di Boole.

Algoritmi e strutture dati: problemi ed algoritmi. Complessità asintotica degli algoritmi. Dall’algoritmo all’implementazione. Pseudocodice
Programmazione Strutturata: Linguaggi di Programmazione, (linguaggio macchina, Assembler, linguaggi ad alto livello). Compilatori ed interpreti. Passi di compilazione di un programma. Programmi strutturati: Sequenza, selezione e iterazione. Blocchi di istruzioni: Approccio top-down, bottom-up, misto. Programmazione modulare, Programmazione orientata agli oggetti.
Linguaggio C
• Sequenza: Struttura di un programma in C. Variabili e assegnamenti. Tipi di dati. Costanti. Input e output. Funzioni.
• Selezione: Istruzioni di selezione (if, if else, operatore ?, switch… case). Istruzioni composte, if annidati, caratteri.
• Operatori: Dichiarazione di variabili numeriche. Operatori matematici, operatori relazionali, operatori logici. Espressioni logiche.
• Iterazione: for, while, do… while, operatore virgola, cicli annidati
• Array: Dichiarazioni, inizializzazioni e utilizzo di vettori. Matrici. prodotto fra matrici.
• Stringhe: Tipo carattere e stringa.
• Funzioni: Il concetto di sottoprogramma. La direttiva #include. Definizione di funzione. Il tipo void. Prototipo di funzione. Regole di visibilità. Chiamata di una funzione. Passaggio di parametri. Scomposizione funzionale.
• Puntatori: dichiarazione, inizializzazione e utilizzo di puntatori. Array e puntatori. Passaggio di parametri per indirizzo. Oggetti dinamici. Indirizzamento assoluto della memoria. Passaggio di puntatori alle funzioni. Le funzioni malloc, sizeof, free. Il tipo void*. La relazione tra puntatori e vettori. L’aritmetica dei puntatori. I vettori di puntatori.
• Ricorsione: Iterazione e ricorsione, permutazione e diposizione. Combinazioni La successione di Fibonacci. Le torri di Hanoi.
• Tipi di dato: tipi semplici e tipi strutturati, tipo carattere e stringa. La direttiva #define. Dichiarazione, inizializzazione e utilizzo di strutture. La parola chiave typedef.
• Strutture dati dinamiche: introduzione alle strutture di dati dinamiche. Allocazione dinamica della memoria. Le strutture ricorsive. Operazioni elementari su liste concatenate.
• I file su disco: lettura e scrittura di file ad accesso sequenziale. Input e output formattato con fprintf e fscanf. Le funzioni fopen, fclose,fflush, rewind.



Laboratorio:
- esercitazioni di scrittura di programmi in linguaggio C

Testi consigliati

1) A. Bellini & A. Guidi: Linguaggio C: Guida alla programmazione. McGraw-Hill
2) Crescenzi - Gambosi - Grossi - Rossi - STRUTTURE DI DATI E ALGORITMI (Progettazione, analisi e programmazione ) -PEARSON EDUCATION ITALIA -2012
3) Dispense e lucidi

Propedeuticità

Nessuna

Frequenza

Facoltativa

Metodologia didattica

Ore lezione: 72

Valutazione del profitto

Prova scritta, prova orale, prova pratica

Descrizione dei metodi di accertamento

L'Esame del corso di PROGRAMMAZIONE è composto dalle seguenti parti:
• Progetto: Assegnato un mese prima. Il progetto va sviluppato secondo le specifiche fornite dal docente. Consiste nello sviluppo di un insieme di algoritmi che dovranno essere consegnati obbligatoriamente prima della prova scritta che si intende sostenere. Il progetto dovrà essere consegnato prima della prova orale all'ing. Piergentili (faberk@inwind.it) per la valutazione. Rappresenta il 10% del voto finale
• Prova scritta: L'esame scritto è composto di vari esercizi che richiedono la stesura delle funzioni necessarie ad implementare gli algoritmi risolutivi dei quesiti proposti, utilizzando la sintassi del Linguaggio C. Concorre al 60% del voto finale.
• Prova orale: valutazione delle conoscenze relative a tutto il programma con particolare riferimento alla parte iniziale. Concorre al 30% del voto finale.
Si potrà accedere all'orale solo se il progetto e la prova scritta saranno ritenute sufficienti. Si potrà sostenere la prova orale solo se si sarà superata la prova scritta e valutato sufficiente il progetto.

L'esame si riterrà superato se e solo se tutte le prove saranno ritenute sufficienti.
La valutazione delle singole prove avverrà nelle forme stabilite dall'art. 23 del Regolamento Didattico di Ateneo. Nella valutazione della prova e nell'attribuzione del voto finale si terrà conto: del livello di conoscenza dei contenuti dimostrato (superficiale, appropriato, preciso e completo, completo e approfondito), della capacità di applicare i concetti teorici (errori nell'applicare i concetti, discreta, buona, ben consolidata), della capacità di analisi, di sintesi e di collegamenti interdisciplinari (sufficiente, buona, ottima), della capacità di senso critico e di formulazione di giudizi (sufficiente, buona, ottima), della padronanza di espressione (esposizione carente, semplice, chiara e corretta, sicura e corretta).

Luogo lezioni

Via S. Camillo De Lellis Blocco E, Piano T Aula Magna/Aula Informatica

Orario lezioni

Mercoledì ore 14.00-18.00 Aula magna/Aula informatica
Giovedì ore 11.00-13.00 Aula 4/Aula informatica

Comunicazioni

Il ricevimento è previsto a valle delle lezioni oppure su previo appuntamento concordato via mail all'indirizzo (vocca@unitus.it).