Definition and introduction to Abstract Data Type.
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
Smart buildings - architectures and technologiesFulvio Corno
Seminar given to the Ph.D. students of the Department of Computer Science and Automation of Politecnico di Torino to present the research activities of the e-Lite research group.
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Sets, maps and hash tables (Java Collections)Fulvio Corno
Sets, maps and hash tables in the Java Collections framework
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
spChains: A Declarative Framework for Data Stream Processing in Pervasive App...Fulvio Corno
Presentation given at the 3rd International Conference on Ambient Systems, Networks and Technologies
August 27-29, 2012, Niagara Falls, Ontario, Canada.
The paper is available on the PORTO open access repository: http://porto.polito.it/2496720/
Introduzione al Corso - Tecnologie per la Disabilità 2014/2015Fulvio Corno
Introduzione al Corso
Materiale relativo al corso di Tecnologie per la Disabilità tenuto al Politecnico di Torino nell'Anno Accademico 2014/2015.
Informazioni e materiale: http://bit.ly/tecndisab
Smart home e smart building nella Internet of ThingsFulvio Corno
Presentazione tenuta presso il seminario "Internet of Things - Tendenze e applicazioni" organizzato dalla Scuola Universitaria Professionale della Svizzera Italiana (SUPSI) e tenutosi a Lugano (CH) il 07/05/2014.
Per maggiori informazioni vedi http://elite.polito.it/news-mainmenu-107/1-latest/212-news-supsi-iot
Ambient Intelligence: Definitions and Application AreasFulvio Corno
Topics:
- Definition(s)
- Application areas
- Requested features
- Architectures
Slides for the course of "Ambient Intelligence: Technology and Design" given at Politecnico di Torino during year 2013/2014.
Course website: http://bit.ly/polito-ami
Nuove tecnologie per nuovi ausili: tendenze e prospettiveFulvio Corno
Intervento introduttivo presso il convegno "Le nuove tecnologie nella pratica riabilitativa in età evolutiva" tenutosi a Torino il 10-11/10/2014.
Nell'intervento di apertura del convegno, ho presentato una relazione dal titolo "Nuove tecnologie per nuovi ausili: tendenze e prospettive", nella quale si analizzano le potenzialità offerte dalle tecnologie emergenti utilizzabili come ausili tecnologici, e si analizzano le opportunità che potrebbero nascere da una più proficua collaborazione tra il mondo sanitario-assistenziale e quello tecnologico-ingegneristico. Si fa riferimento alle esperienze interdisciplinari maturate al Pollitecnico di Torino, ed particolare all'esperienza didattica del corso di "Tecnologie per la Disabilità".
Smart buildings - architectures and technologiesFulvio Corno
Seminar given to the Ph.D. students of the Department of Computer Science and Automation of Politecnico di Torino to present the research activities of the e-Lite research group.
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Sets, maps and hash tables (Java Collections)Fulvio Corno
Sets, maps and hash tables in the Java Collections framework
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
spChains: A Declarative Framework for Data Stream Processing in Pervasive App...Fulvio Corno
Presentation given at the 3rd International Conference on Ambient Systems, Networks and Technologies
August 27-29, 2012, Niagara Falls, Ontario, Canada.
The paper is available on the PORTO open access repository: http://porto.polito.it/2496720/
Introduzione al Corso - Tecnologie per la Disabilità 2014/2015Fulvio Corno
Introduzione al Corso
Materiale relativo al corso di Tecnologie per la Disabilità tenuto al Politecnico di Torino nell'Anno Accademico 2014/2015.
Informazioni e materiale: http://bit.ly/tecndisab
Smart home e smart building nella Internet of ThingsFulvio Corno
Presentazione tenuta presso il seminario "Internet of Things - Tendenze e applicazioni" organizzato dalla Scuola Universitaria Professionale della Svizzera Italiana (SUPSI) e tenutosi a Lugano (CH) il 07/05/2014.
Per maggiori informazioni vedi http://elite.polito.it/news-mainmenu-107/1-latest/212-news-supsi-iot
Ambient Intelligence: Definitions and Application AreasFulvio Corno
Topics:
- Definition(s)
- Application areas
- Requested features
- Architectures
Slides for the course of "Ambient Intelligence: Technology and Design" given at Politecnico di Torino during year 2013/2014.
Course website: http://bit.ly/polito-ami
Nuove tecnologie per nuovi ausili: tendenze e prospettiveFulvio Corno
Intervento introduttivo presso il convegno "Le nuove tecnologie nella pratica riabilitativa in età evolutiva" tenutosi a Torino il 10-11/10/2014.
Nell'intervento di apertura del convegno, ho presentato una relazione dal titolo "Nuove tecnologie per nuovi ausili: tendenze e prospettive", nella quale si analizzano le potenzialità offerte dalle tecnologie emergenti utilizzabili come ausili tecnologici, e si analizzano le opportunità che potrebbero nascere da una più proficua collaborazione tra il mondo sanitario-assistenziale e quello tecnologico-ingegneristico. Si fa riferimento alle esperienze interdisciplinari maturate al Pollitecnico di Torino, ed particolare all'esperienza didattica del corso di "Tecnologie per la Disabilità".
Research Activities in Ambient IntelligenceFulvio Corno
Short summary of research activities of the e-Lite research group (http://elite.polito.it) at Politecnico di Torino (Italy) on the topic of Smart Environments and the application of Ontologies and Semantic Computing to Ambient Intelligence.
Architetture aperte per raccolta, elaborazione e distribuzione di dati energe...Fulvio Corno
Lucidi della presentazione nell'ambito del seminario “SMART APPLIANCES E COMPORTAMENTO DELL’UTENTE IN AMBIENTE DOMESTICO: DAL MONITORAGGIO ALLA
CARATTERIZZAZIONE DEGLI USI ENERGETICI” organizzato dall'Indoor Environment & Energy Management Competence Centre (IEEM) del Politecnico di Torino e Telecom Italia e tenutosi il 25/09/2012
Topics:
- General design process
- Main steps of the process
- Step 1: Problem Statement
- Step 2: Requirements Elicitation
- Step 3: Requirements Identification
- Step 4: Architecture Definition
- Step 5: Component Selection
- Step 6: Design & Implementation
- Step 7: Test and Validation
- Simplified process adopted in the AmI course
Slides for the course of "Ambient Intelligence: Technology and Design" given at Politecnico di Torino during year 2013/2014.
Course website: http://bit.ly/polito-ami
Cosa è Gnu/Linux - Breve storia - Concetti fondamentaliFulvio Corno
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Ingegneri e disabilità: abbattere il muroFulvio Corno
Presentazione presso la tavola rotonda "Dalla accessibilità all'inclusione. Idee, percorsi, strategie e strumenti." presso il convegno Abilitando 2015, il 26/09/2015.
http://abilitando.it/
Lecture slides for the course "Semantic Web: Technologies, Tools, Applications" by Fulvio Corno and Laura Farinetti at Politecnico di Torino, year 2012.
Further information and material: http://elite.polito.it/teaching-mainmenu-69/master-a-phd-mainmenu-94/56-01lhviu-semweb
Presentazione tenuta allo Italian Scratch Festival 2013 (ITI Majorana, Collegno, 18 maggio 2013).
La presentazione presenta una metafora, basata su maghi e supereroi, del ruolo che le tecnologiche informatiche, e delle relative professionalità, possono avere nei confronti dei bisogni delle persone con disabilità.
L'approccio mira ad introdurre il tema delle tecnologie per la disabilità ad un pubblico di giovani adolescenti.
- Log
- Live log
- Attività del corso
- Partecipazione al corso
- Completamento attività
- Statistiche
Lezione presso il corso di Master in E-Learning per la Pubblica Amministrazione.
Si tratta di un Corso Universitario di Aggiornamento Professionale, finanziato da INPS/INPDAP e progettato in collaborazione con la Città di Torino e la Provincia di Torino, erogato tra maggio 2014 e settembre 2014.
Per maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/247-master-elpa
Bellman-Ford-Moore Algorithm and Dijkstra’s AlgorithmFulvio Corno
Bellman-Ford-Moore Algorithm and Dijkstra’s Algorithm
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
Prima lezione del corso android tenuto presso il TuLug (Tuscia Lug) A Viterbo. Le slides sono completamente in italiano (Slides are in italian! Sorry!)
Progettazione dell'interfaccia utente e sviluppo di mock-up legati agli Use Case specificati.
Materiale relativo al corso di Sistemi Informativi Aziendali al Politecnico di Torino, a.a. 2013/2014.
Maggiori informaizoni sul corso: http://bit.ly/sistinfo
Introduction to the List data structure and its implementation in the Java Collections Framework.
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
Scrivere Object Oriented è ora possibile anche in Javascript con Typescript. E in generale bisogna concentrarsi nello scrivere codice di valore e non "autogenerato" dallo scaffolding. Capiamo come si fa riscrivendo un vecchio gioco della Licasfilm!
In questa sessione vedremo come realizzare un Data Access Layer basato su una implementazione del Repository pattern ed in grado di essere interrogabile mediante query LINQ, eventualmente delegate ad O/RM quali Entity Framework e/o NHibernate. Vedremo inoltre come fare utilizzo dei Code Contracts del FX4 per specificare "una tantum" le regole comuni a tutti i repository di un Domain Model.
Research Activities in Ambient IntelligenceFulvio Corno
Short summary of research activities of the e-Lite research group (http://elite.polito.it) at Politecnico di Torino (Italy) on the topic of Smart Environments and the application of Ontologies and Semantic Computing to Ambient Intelligence.
Architetture aperte per raccolta, elaborazione e distribuzione di dati energe...Fulvio Corno
Lucidi della presentazione nell'ambito del seminario “SMART APPLIANCES E COMPORTAMENTO DELL’UTENTE IN AMBIENTE DOMESTICO: DAL MONITORAGGIO ALLA
CARATTERIZZAZIONE DEGLI USI ENERGETICI” organizzato dall'Indoor Environment & Energy Management Competence Centre (IEEM) del Politecnico di Torino e Telecom Italia e tenutosi il 25/09/2012
Topics:
- General design process
- Main steps of the process
- Step 1: Problem Statement
- Step 2: Requirements Elicitation
- Step 3: Requirements Identification
- Step 4: Architecture Definition
- Step 5: Component Selection
- Step 6: Design & Implementation
- Step 7: Test and Validation
- Simplified process adopted in the AmI course
Slides for the course of "Ambient Intelligence: Technology and Design" given at Politecnico di Torino during year 2013/2014.
Course website: http://bit.ly/polito-ami
Cosa è Gnu/Linux - Breve storia - Concetti fondamentaliFulvio Corno
Master: Amministratore Linux - Livello Base
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Ingegneri e disabilità: abbattere il muroFulvio Corno
Presentazione presso la tavola rotonda "Dalla accessibilità all'inclusione. Idee, percorsi, strategie e strumenti." presso il convegno Abilitando 2015, il 26/09/2015.
http://abilitando.it/
Lecture slides for the course "Semantic Web: Technologies, Tools, Applications" by Fulvio Corno and Laura Farinetti at Politecnico di Torino, year 2012.
Further information and material: http://elite.polito.it/teaching-mainmenu-69/master-a-phd-mainmenu-94/56-01lhviu-semweb
Presentazione tenuta allo Italian Scratch Festival 2013 (ITI Majorana, Collegno, 18 maggio 2013).
La presentazione presenta una metafora, basata su maghi e supereroi, del ruolo che le tecnologiche informatiche, e delle relative professionalità, possono avere nei confronti dei bisogni delle persone con disabilità.
L'approccio mira ad introdurre il tema delle tecnologie per la disabilità ad un pubblico di giovani adolescenti.
- Log
- Live log
- Attività del corso
- Partecipazione al corso
- Completamento attività
- Statistiche
Lezione presso il corso di Master in E-Learning per la Pubblica Amministrazione.
Si tratta di un Corso Universitario di Aggiornamento Professionale, finanziato da INPS/INPDAP e progettato in collaborazione con la Città di Torino e la Provincia di Torino, erogato tra maggio 2014 e settembre 2014.
Per maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/247-master-elpa
Bellman-Ford-Moore Algorithm and Dijkstra’s AlgorithmFulvio Corno
Bellman-Ford-Moore Algorithm and Dijkstra’s Algorithm
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
Prima lezione del corso android tenuto presso il TuLug (Tuscia Lug) A Viterbo. Le slides sono completamente in italiano (Slides are in italian! Sorry!)
Progettazione dell'interfaccia utente e sviluppo di mock-up legati agli Use Case specificati.
Materiale relativo al corso di Sistemi Informativi Aziendali al Politecnico di Torino, a.a. 2013/2014.
Maggiori informaizoni sul corso: http://bit.ly/sistinfo
Introduction to the List data structure and its implementation in the Java Collections Framework.
Teaching material for the course of "Tecniche di Programmazione" at Politecnico di Torino in year 2012/2013. More information: http://bit.ly/tecn-progr
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
Scrivere Object Oriented è ora possibile anche in Javascript con Typescript. E in generale bisogna concentrarsi nello scrivere codice di valore e non "autogenerato" dallo scaffolding. Capiamo come si fa riscrivendo un vecchio gioco della Licasfilm!
In questa sessione vedremo come realizzare un Data Access Layer basato su una implementazione del Repository pattern ed in grado di essere interrogabile mediante query LINQ, eventualmente delegate ad O/RM quali Entity Framework e/o NHibernate. Vedremo inoltre come fare utilizzo dei Code Contracts del FX4 per specificare "una tantum" le regole comuni a tutti i repository di un Domain Model.
In data Mercoledì 13 Giugno 2012 in aula 4, dalle 9:00 alle 10:30,il dott. Alessandro Forte della T.&C. Systems Group s.r.l. ha tenuto un seminario sull'Object-Relational Mapping.
Il dott. Forte è attualmente SW Architect per la T.&C. Systems Group s.r.l. e speaker certificato Microsoft Italia.
Si è trattato di un'importante occasione per affacciarsi a nuovi argomenti di interesse del mondo produttivo e allo stesso tempo entrare in contatto con una società attiva sul territorio. Si ringrazia il prof. Antonio Maratea per l'occasione concessa e la disponibilità dimostrata.
Code Generation con i templates T4 in visual studioMarco Parenzan
Uno degli strumenti meno pubblicizzati ma più utili in Visual Studio sono i templates T4. Strumenti come l'Entity Framework e ASP.NET MVC li hanno resi (forse) più diffusi. Come sono fatti? Come si usano? Cosa ci si può fare? Una carrellata di alcuni usi interessanti, dagli oggetti POCO a WPF, passando attraverso lo "scaffolding" e i Domain Specific Languages...
2. Abstract Data Type
A.A. 2012/2013Tecniche di programmazione2
ADTs store data and allow various operations on the
data to access and change it
ADTs are mathematical models
ADTs are extremely useful when designing a complex
algorithms
ADTs are not classes (well, not quite)
3. Abstract Data Type
A.A. 2012/2013Tecniche di programmazione3
ADTs are “abstract” because they specify the operations
of the data structure and leave implementation details to
later
More similar to “abstract classes” or “interfaces”
(whether the language supports them)
Note: Not all implementation
details can be deferred!
4. Why study ADTs?
A.A. 2012/2013Tecniche di programmazione4
How many of you will actually go out and create your own ADT
from scratch?
Different ADTs, each one with its own pros and cons
Picking the right one for the job is an important step in design!
Get your data structures correct first, and the rest of the
program will write itself
David S. Johnson
(winner of Knuth’s Prize in 2010)
5. Why study ADTs?
A.A. 2012/2013Tecniche di programmazione5
The goal is to learn
how to learn how to
use and create ADTs
6. Built-in ADT
A.A. 2012/2013Tecniche di programmazione6
High level languages often provide built in ADTs. E.g.:
StandardTemplate Library (C++)
Java Collections Framework (Java)
7. Common Ground
A.A. 2012/2013Tecniche di programmazione7
Almost every ADT provide a way to
add an item
remove an item
find, retrieve, or access an item
Most Collection ADTs provide more possibilities
check whether the collection is empty
make the collection empty
give me a subset of the collection
…
8. A very simple ADT: Santa’s Sack
A.A. 2012/2013Tecniche di programmazione8
9. Sack’s Operations
A.A. 2012/2013Tecniche di programmazione9
insertToy(toy)
Insert a toy in the sack
Duplicates are – obviously – allowed
extractToy(toy)
Remove the given toy from the sack
… and make a children happy
countToys()
Count how many toys actually are
stored in the sack
11. Santa’s Sack (more efficient)
A.A. 2012/2013Tecniche di programmazione11
insertToy( )
extractToy( )
countToys()
keep track of
the number of
objects
12. The lesson
A.A. 2012/2013Tecniche di programmazione12
ADTs do not specify the details of the implementation
BUT
Some information about the algorithms is essential to
choose the right ADT
Very high-level, qualitative information
Complexity
13. Licenza d’uso
A.A. 2012/2013Tecniche di programmazione13
Queste diapositive sono distribuite con licenza Creative Commons
“Attribuzione - Non commerciale - Condividi allo stesso modo (CC
BY-NC-SA)”
Sei libero:
di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera
di modificare quest'opera
Alle seguenti condizioni:
Attribuzione — Devi attribuire la paternità dell'opera agli autori
originali e in modo tale da non suggerire che essi avallino te o il modo in
cui tu usi l'opera.
Non commerciale — Non puoi usare quest'opera per fini
commerciali.
Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se
la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una
licenza identica o equivalente a questa.
http://creativecommons.org/licenses/by-nc-sa/3.0/