Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA DELL'INNOVAZIONE DEL PRODOTTO
Insegnamento
FONDAMENTI DI INFORMATICA
IN18103361, A.A. 2018/19

Informazioni valide per gli studenti immatricolati nell'A.A. 2018/19

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
INGEGNERIA DELL'INNOVAZIONE DEL PRODOTTO
IN2375, ordinamento 2017/18, A.A. 2018/19
N0
porta questa
pagina con te
Crediti formativi 9.0
Tipo di valutazione Voto
Denominazione inglese INTRODUCTORY COMPUTER SCIENCE
Sito della struttura didattica http://www.gest.unipd.it/it/corsi/corsi-di-studio/corsi-di-laurea-triennale/ingegneria-dellinnovazione-del-prodotto
Dipartimento di riferimento Dipartimento di Tecnica e Gestione dei Sistemi Industriali (DTG)
Sito E-Learning https://elearning.unipd.it/dtg/course/view.php?idnumber=2018-IN2375-000ZZ-2018-IN18103361-N0
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede VICENZA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile FEDERICO TRAMARIN ING-INF/05

Mutuazioni
Codice Insegnamento Responsabile Corso di studio
IN18103361 FONDAMENTI DI INFORMATICA FEDERICO TRAMARIN IN2376

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
ALTRO Abilità informatiche e telematiche -- 3.0
BASE Matematica, informatica e statistica ING-INF/05 6.0

Organizzazione dell'insegnamento
Periodo di erogazione Primo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 9.0 72 153.0

Calendario
Inizio attività didattiche 24/09/2018
Fine attività didattiche 18/01/2019
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2017

Commissioni d'esame
Commissione Dal Al Membri
3 2018 01/10/2018 15/03/2020 TRAMARIN FEDERICO (Presidente)
REGGIANI MONICA (Membro Effettivo)
2 2017 - mod gennaio 2018 17/01/2018 15/03/2019 CONGIU SERGIO (Presidente)
FANTOZZI CARLO (Membro Effettivo)
PINI MARIA SILVIA (Supplente)
REGGIANI MONICA (Supplente)
SATTA GIORGIO (Supplente)
1 2017 01/10/2017 15/03/2019 CONGIU SERGIO (Presidente)
SATTA GIORGIO (Membro Effettivo)
PINI MARIA SILVIA (Supplente)

Syllabus
Prerequisiti: Non si richiedono prerequisiti specifici. Nello svolgimento del programma si assume comunque che gli studenti abbiano nozioni di matematica di base e conoscenze pratiche sull’uso del computer pari a quanto certificato da ECDL (scompattare file, installare programmi, usare la posta elettronica, accedere a internet, ecc.).
Conoscenze e abilita' da acquisire: Il corso offre l’opportunità di raggiungere le conoscenze di base dei concetti di computazione, di programmazione imperativa, strutturata e di strutture dati e loro algoritmi.

Al superamento con successo del corso, gli studenti avranno conseguito le seguenti abilità:
- Conoscenza del linguaggio C e padronanza di una terminologia corretta e dei concetti di base dell’informatica
- Capacità di progettazione e sviluppo in linguaggio C di strutture dati e algoritmi
- Comprensione dei metodi generali di studio di un linguaggio di programmazione
- Comprensione dei metodi generali di ragionamento nella progettazione di strutture dati e algoritmi.
- Comprensione della struttura e dei principi di funzionamento di un calcolatore, del rapporto tra il linguaggio C e il suo ambiente di esecuzione, e del processo di compilazione, assemblaggio e collegamento.
Modalita' di esame: Esame scritto
Criteri di valutazione: L'esame di compone di una singola prova scritta volta ad accertare le competenze teoriche e pratiche acquisite sugli argomenti del corso. La verifica della conoscenza della teoria sarà effettuata mediante una serie di domande a risposta aperta su tutti gli argomenti trattati durante il corso. La parte di programmazione consiste nello sviluppo di alcuni semplici programmi in linguaggio C secondo le specifiche assegnate dal docente.
Contenuti: Parte Generale: 
Rappresentazione dei dati e dell'informazione. Architettura del  calcolatore. Linguaggio macchina. Introduzione ai sistemi operativi ed  alla gestione dei processi. Algoritmi e loro rappresentazione.  Ordinamento per selezione, inserimento, merge e quicksort. Ricerca  lineare e binaria. Prestazioni e notazione O-grande. Programmazione  procedurale e programmazione orientata agli oggetti. Astrazioni sui  dati. Strutture dati: liste, pile, code, alberi e loro implementazione. 

Il linguaggio C: 
Tipi di dati fondamentali, nozioni di variabile e assegnazione. Tipi numerici base e operatori relativi. Parentesi e regole di precedenza, operatori di incremento e decremento. Operatori logici. Conversioni di  tipo, compatibilità di assegnamento, costanti. I/O formattato: printf  e scanf. Espressioni logiche. Condizioni: istruzioni if, if-else,  if-else annidati, if-else multi-ramo e switch. Istruzioni di iterazione: while, for, do-while. Cicli annidati e valori sentinella. 
Vettori, indicizzazione, operatore sizeof. Vettori di lunghezza  variabile. Semplici algoritmi per la gestione dei vettori (contare, trova valore e massimo/minimo). Copiare array. 
Definire e invocare funzioni, dichiarazione di funzioni, argomenti. Istruzione return. Record di attivazione, stack, variabili statiche. Blocchi, ambito di visibilità (scope) e durata della memorizzazione delle variabili. Suddivisione del software in più file e include guards. Variabili puntatore, operatore indirizzo e dereference. Puntatori usati come argomenti e come valori restituiti.  Nome di un vettore usato come puntatore [eventualmente: aritmetica dei puntatori.] Variabili struttura, tipi di struttura. Annidamento tra  strutture e vettori. Information hiding, tipi di dato astratti, incapsulamento. Concetto di heap e allocazione dinamica della memoria: 
funzioni alloc, realloc, free. Dangling pointer, riferimento NULL. 
Operatore "->". Liste concatenate. Stringhe letterali, variabili stringhe, leggere e scrivere stringhe.
Attivita' di apprendimento previste e metodologie di insegnamento: Una serie di lezioni frontali presenta concetti, metodi, problemi e soluzioni. Diversi esercizi di base vengono proposti al calcolatore sotto la supervisione diretta del docente. Attività di laboratorio settimanali permettono allo studente di formulare soluzioni personali a problemi proposti.
Eventuali indicazioni sui materiali di studio: Le lezioni frontali si basano sui testi di riferimento indicati. Tutto il materiale di ogni lezione viene reso disponibile agli studenti nella piattaforma moodle.
Testi di riferimento:
  • King, Kimberly Nelson; Schaerf, Andrea, Programmazione in C. Milano: Apogeo, 2009. Cerca nel catalogo
  • Brookshear, J. Glenn; Brylow, Dennis, Informatica: una panoramica generale. Milano: Pearson, 2016. Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Laboratory
  • Files e pagine caricati online (pagine web, Moodle, ...)

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)