Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA DELL'INFORMAZIONE
Insegnamento
LABORATORIO DI INGEGNERIA INFORMATICA
INP5071698, A.A. 2018/19

Informazioni valide per gli studenti immatricolati nell'A.A. 2016/17

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
INGEGNERIA DELL'INFORMAZIONE
IN0513, ordinamento 2011/12, A.A. 2018/19
N0
porta questa
pagina con te
Crediti formativi 6.0
Tipo di valutazione Voto
Denominazione inglese COMPUTER ENGINEERING LABORATORY
Dipartimento di riferimento Dipartimento di Ingegneria dell'Informazione (DEI)
Sito E-Learning https://elearning.dei.unipd.it/course/view.php?idnumber=2018-IN0513-000ZZ-2016-INP5071698-N0
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile STEFANO GHIDONI ING-INF/05
Altri docenti SEBASTIAN DABERDAKU 000000000000
MAURO MIGLIARDI ING-INF/05

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Ingegneria informatica ING-INF/05 6.0

Organizzazione dell'insegnamento
Periodo di erogazione Secondo semestre
Anno di corso III Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 6.0 48 102.0

Calendario
Inizio attività didattiche 25/02/2019
Fine attività didattiche 14/06/2019
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2011

Commissioni d'esame
Commissione Dal Al Membri
5 A.A. 2019/2020 01/10/2019 15/03/2021 DABERDAKU SEBASTIAN (Presidente)
GHIDONI STEFANO (Membro Effettivo)
FERRARI CARLO (Supplente)
MORO MICHELE (Supplente)
4 A.A. 2018/2019 01/10/2018 15/03/2020 GHIDONI STEFANO (Presidente)
DABERDAKU SEBASTIAN (Membro Effettivo)
FANTOZZI CARLO (Supplente)
MIGLIARDI MAURO (Supplente)
MORO MICHELE (Supplente)
3 A.A. 2017/2018 01/10/2017 15/03/2019 GHIDONI STEFANO (Presidente)
COZZA VITTORIA (Membro Effettivo)
FANTOZZI CARLO (Supplente)
MORO MICHELE (Supplente)

Syllabus
Prerequisiti: Il corso si basa su conoscenze preliminari di programmazione (cicli, condizioni, variabili, funzioni), di architettura degli elaboratori, di algoritmica.
Conoscenze e abilita' da acquisire: L'obiettivo formativo del corso prevede l'acquisizione delle seguenti conoscenze e abilità:
- Conoscere cicli, condizioni e algoritmi di base nel linguaggio C
- Conoscere i costrutti avanzati del linguaggio C, approfondendo sia la parte sintattica che quella semantica.
- Essere in grado di utilizzare gli strumenti avanzati peculiari del linguaggio C, in particolare puntatori e gestione della memoria, e analisi delle differenze rispetto agli altri linguaggi di programmazione.
- Essere in grado di sviluppare in autonomia un progetto software seguendo le norme di buona programmazione, mantenendo un livello alto di leggibilità, di modularità e di manutenibilità del codice.
- Essere in grado di collegare i vari tool di gestione della memoria in C con il funzionamento di un calcolatore elettronico.
Modalita' di esame: La valutazione delle conoscenze e delle abilità acquisite è effettuata secondo il seguente schema:
- Una valutazione basata sull'analisi del software prodotto durante tre esperienze di laboratorio, guidate dal docente. Queste esperienze di laboratorio contribuiscono al voto finale per il 10%, con una valutazione di tipo on/off.
- Una valutazione della capacità di sviluppo e strutturazione del software, basata sull'analisi di un progetto software individuale, da sviluppare a cura dello studente, e da esporre durante la prova orale. Produzione software e orale concorreranno alla determinazione del 90% del voto finale.
Criteri di valutazione: I criteri di valutazione sono i seguenti:
- per la valutazione del software prodotto durante le esperienze di laboratorio: la capacità di gestione degli elementi fondamentali e avanzati del linguaggio C.
- Per la valutazione del progetto software e della prova orale: capacità di sviluppare un progetto software di medie dimensioni, qualità del codice prodotto ed efficienza delle tecniche risolutive proposte, profondità della conoscenza teorica e capacità di sfruttare al meglio gli strumenti del linguaggio per la risoluzione di problemi specifici.
Contenuti: 1. Introduzione al linguaggio di programmazione C
2. Sintassi del linguaggio e struttura di base di un programma
3. Compilazione, linking ed esecuzione (crezione di programmi e librerie)
4. Costrutti principali (cicli, istruzioni condizionali, variabili e scoping, funzioni)
5. Puntatori e loro utilizzo per la programmazione efficiente
6. La gestione avanzata della memoria in C mediante allocazione dinamica
7. Tipi di dato aggregati: vettori, struct e union
Attivita' di apprendimento previste e metodologie di insegnamento: L'insegnamento prevede lezioni frontali (sia alla lavagna che con slide a proiezione), e otto lezioni in laboratorio, in cui gli studenti sono guidati nei primi passi verso l'applicazione degli strumenti di sviluppo software visti a lezione. Si fa frequentemente uso di strumenti interattivi, quali il think-pair-share e le discussioni interattive di alcuni minuti su domande aperte, al fine di stimolare l'apprendimento attivo e il senso critico sui concetti esposti a lezione.
Eventuali indicazioni sui materiali di studio: Tutti gli argomenti del programma sono trattati a lezione; le slide presentate sono rese disponibili su Elearning, assieme ai testi dei laboratori e ad esempi di sviluppo software. Gli appunti presi a lezione possono essere integrati con il libro di testo e da ulteriore materiale proposto dal docente e messo a disposizione su Elearning.
Testi di riferimento:
  • King, Kimberly Nelson; Schaerf, Andrea, Programmazione in C. Milano: Apogeo, 2009. Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Lecturing
  • Laboratory
  • Problem based learning
  • Interactive lecturing
  • Problem solving

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

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Istruzione di qualita' Industria, innovazione e infrastrutture