Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA MECCANICA E MECCATRONICA
Insegnamento
FONDAMENTI DI INFORMATICA (Ult. due numeri di matricola da 00 a 33)
IN18103361, A.A. 2015/16

Informazioni valide per gli studenti immatricolati nell'A.A. 2015/16

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
INGEGNERIA MECCANICA E MECCATRONICA
IN0516, ordinamento 2011/12, A.A. 2015/16
Penult1501
porta questa
pagina con te
Curriculum MECCATRONICA [001VI]
Crediti formativi 9.0
Tipo di valutazione Voto
Denominazione inglese INTRODUCTORY COMPUTER SCIENCE
Dipartimento di riferimento Dipartimento di Tecnica e Gestione dei Sistemi Industriali (DTG)
Sito E-Learning https://elearning.unipd.it/dtg/course/view.php?idnumber=2015-IN0516-001VI-2015-IN18103361-PENULT1501
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 ENRICO PAGELLO

Mutuante
Codice Insegnamento Responsabile Corso di studio
IN18103361 FONDAMENTI DI INFORMATICA (Ult. due numeri di matricola da 00 a 33) ENRICO PAGELLO IN0509

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
BASE Matematica, informatica e statistica ING-INF/05 9.0
BASE Matematica, informatica e statistica ING-INF/05 9.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 26/09/2016
Fine attività didattiche 28/01/2016
Visualizza il calendario delle lezioni Lezioni 2018/19 Ord.2011

Commissioni d'esame
Commissione Dal Al Membri
10 2016 canale 3 01/10/2016 15/03/2018 GIUNTA ANTONIO (Presidente)
GHIDONI STEFANO (Membro Effettivo)
SATTA GIORGIO (Supplente)
TINAZZI FABIO (Supplente)
9 2015 canale 3 01/10/2015 30/09/2016 PINI MARIA SILVIA (Presidente)
SATTA GIORGIO (Membro Effettivo)
REGGIANI MONICA (Supplente)

Syllabus
Prerequisiti: Formalmente nessuno, in quanto la struttura linguistica dei vari Modelli Computazionali man mano presentati (Iterativo, Ricorsivo, Logico, Message-passsing, Object-oriented, etc.), verrà introdotta da zero; ma dovrebbero essere familiari alcune nozioni della cultura matematica e informatica di base, quali :
– Ragionamento matematico
– Corretto utilizzo del Sistema Operativo, di un Editore di testi, e della gestione dei file di un personal computer
Conoscenze e abilita' da acquisire: Fondamenti di informatica: lo studente dovrà essere capace di distinguere le proprietà dei modelli computazionali basati sulla iterazione da quelli basati sulla ricorsione, e di individuare i relativi strumenti linguistici di rappresentazione per la loro successiva codifica nel linguaggio di programmazione Java.
Programmazione in Java: lo studente dovrà imparare a sviluppare delle semplici classi di definizione e di test per implementare gli algoritmi che verranno presentati durante il corso. Particolare attenzione dovrà essere dedicata alla capacità di distinguere l'uso delle variabili e dei metodi statici, rispetto all'uso dei metodi non-statici, ed alla comprensione del concetto di oggetto e di classe universale, al fine di comprendere a fondo la rivoluzione apportata nel mondo dei linguaggi di programmazione dalla programmazione orientata agli oggetti.
Il Sistema Operativo consigliato per l'apprendimento dell'uso di un computer è Linux, sia che si usino macchine con preinstallato un Sistema Operativo della Microsoft, o che si usino macchine Apple dotate del cosidetto core Terminal, ed in genere è consigliato l'apprendimento degli applicativi Open Source, come Open Office, e/o Microsoft Word, per la stesura delle relazioni di Laboratorio da presentare all'orale.
Modalita' di esame: • Laboratorio di Java Settimanale (4 ore in sede + almeno 4 ore a casa): Svolgimento di 10 Esercitazioni assegnate in aula (Programmi in Java) da portare all’Orale
Per ogni esercitazione dovrà essere portato all’Esame Orale il testo stampato su carta del codice Java, nonchè le stampe su carta delle uscite dei programmi
•Esame Scritto: Compito di 3 ore, in genere da 5 a 7 esercizi articolati su più domande o sottoproblemi, su tutta la materia del corso (problemi ed esercizi sulla parte teorica, e semplici programmi in Java per la parte di apprendimento di un linguaggio di programmazione)
•Esame Orale: Colloquio sullo svolgimento del compito e sulle Esercitazioni di laboratorio

Appelli d’esame previsti:
- due in Febbraio distanziati di 15 giorni;
- uno nel periodo dal 15 Giugno a fine Luglio;
- uno nel periodo dal 20 Agosto a fine Settembre.
Criteri di valutazione: Verranno valutate la comprensione dei concetti fondamentali dei fondamenti dell'informatica, così come la proprietà di linguaggio acquisita con riferimento alla disciplina informatica, e l'abilità alla codifica di semplici algoritmi mediante tecniche di programmazione in Java.
Contenuti: * 1. Architettura dell'elaboratore [Horstmann]. Il processo di compilazione e la Java Virtual Machine [Horstmann] [vedi http://java.com/it/download/index.jsp]. Gli ambienti Windows o Unix per Java e [vedi i file scaricabili dal sito WEB del corso] Rapresentazione dei numeri, aritmetica intera e aritmetica in virgola mobile [vedi il file sulla rappresentazione delle informazioni nei calcolatori elettronici scaricabile dal sito WEB del corso].
* 2. Definizione assiomatica dell'insieme dei Numeri Naturali N [Appunti].
* 3. Il Calcolo Proposizionale. Sistemi di Assiomi. Teoremi e Tautologie. Teorema di Completezza, Teorema di Deduzione. Il principio di Risoluzione di Robinson [Appunti].
* 4. Definizione assiomatica dei While Program. [Appunti Le strutture di controllo di base [Appunti]. Esempi di Programmi [Appunti]. Teorema di Bohm-Jacopini [Appunti]. Le funzioni effettivamente computabili, parziali e totali, su N [Appunti].
* 5. Le funzioni ricorsive primitive nel formalismo di Kleene: composizione di funzioni, schema di ricorsione primitiva, loro realizzazione mediante While Program [Appunti]. La funzione di Ackerman [Appunti]. Trasformazione di un While-program in una funzione ricorsiva [Appunti]. Il formalismo di McCarthy per le funzioni ricorsive [Appunti]
* 6. Le funzioni di base car, cdr, cons, atom, eq sulle sulle espressioni simboliche (S-Expr) [Appunti] e [vedi http://www.formal.stanford.edu/jmc/recursive/node3.html ].
* 7. Analisi della Complessità di Calcolo dei programmi. Notazione O Grande. Istruzioni dominanti. [Horstmann].
* 8. Algoritmi di ricerca lineare e binaria su array [Horstmann].
* 9. Algoritmi di ordinamento su array e valutazione della loro complessità. Ordinamento per Selezione diretta [Horstmann] e per Inserzione diretta [Horstmann]. [vedi anche Appunti]. Ordinamento per Fusione (MergeSort) [Horstmann].
* 10. Il linguaggio di programmazione Java. Principi generali della programmazione ad oggetti con particolare riferimento al suo sviluppo in ambiente Java. Classi, Oggetti, Variabili Istanza, Costruttori, Metodi, Parametri impliciti ed espliciti. Passaggio di Parametri. Metodi statici e non statici. Tipi di dati primitivi, Stringhe, Operatori ed espressioni, algebriche e booleane. Istruzioni di controllo, condizionali ed iterative, Ciclo FOR. Ricorsione. Array mono e multidimensionali. La Classe Object. Eccezioni controllate e non controllate [vedi il libro di testo di Cay Horstmann]
* 11. I Tipi di Dato Astratto: Insiemi, Pile, Code, Liste, Alberi, e loro realizzazione concreta mediante Array
* 12. Esercitazioni pratiche di laboratorio in Java: costruzione di programmi documentati con valutazione critica dei risultati [vedi “esercitazioni di laboratorio” scaricabile dal sito WEB del corso su Moodle].
Attivita' di apprendimento previste e metodologie di insegnamento: Per stimolare l'apprendimento, il corso si propone di:
• Presentare gli elementi principali dei Fondamenti della Computer Science (Informatica)
• Fornire una preparazione organica sulla struttura dei Linguaggi, e sui Principi e sulle Tecniche di Programmazione dei Calcolatori Elettronici con particolare riferimento alla Programmazione ad Oggetti (Java, come Caso di Studio)
• Seguire un approccio ingegneristico e progettuale, fornendo Modelli generali per la scomposizione e risoluzione dei problemi
La metodologia di insegnamento avverrà tramite la presentazione in aula alla lavagna degli argomenti concettuali di base dell'informatica, dei modelli computazionali e delle proprietà fondamentali dei linguaggi di programmazione. Durante queste lezioni non verranno proiettate slide con i contenuti illustrati, per indurre gli studenti a concentrarsi sulla spiegazione effettuata dal docente, ed al contempo imparare a sintetizzare mediante appunti personali la traccia fondamentale degli argomenti insegnati. Eventuali slide contenenti l'informazione di queste lezioni saranno rese disponibili successivamente alla lezione nel sito Moodle del corso. Viceversa, per quelle lezioni in aula, di illustrazione e documentazione di contenuti propriamente tecnici quali le istruzioni dettagliate dei sistemi operativi, dei linguaggi di programmazione usati, etc. verranno proiettate in aula le slide relative, rese poi disponibili sul sito Moodle.
Il corso sarà affiancato da un Laboratorio pratico di programmazione in Java nelle aule didattiche, con tutoraggio su turni di un periodo massimo di 4 ore settimanali. Durante il semestre verranno presentate da un minimo di 8 fino ad ad un massimo di 12 esercitazioni da svolgere in Java, che dovranno essere portate a termine prima della fine del corso, e presentate e discusse durante l'esame orale.
Eventuali indicazioni sui materiali di studio: - appunti dalle lezioni disponibili nel sito del Corso caricato sulla piattaforma Moodle

- dispensa con estratti da testi classici di base sui Fondamenti dell'Informatica
Testi di riferimento:
  • Cay Horstmann, Concetti di informatica e fondamenti di Java - V edizione. --: Apogeo, 2010. Cerca nel catalogo