- Oggetto:
- Oggetto:
PROGRAMMAZIONE AVANZATA: PYTHON E ARDUINO
- Oggetto:
ADVANCED PROGRAMMING: PYTHON AND ARDUINO
- Oggetto:
Anno accademico 2021/2022
- Codice dell'attività didattica
- CPS0554
- Docenti
- Marino Segnan (Titolare dell'insegnamento)
Prof. Luca Console (Titolare dell'insegnamento) - Corso di studi
- Corso di laurea magistrale in Comunicazione, ICT e media (Classe LM-59)
- Anno
- 2° anno
- Periodo didattico
- Secondo semestre
- Tipologia
- Affine/Integrativa
- Crediti/Valenza
- 6
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Scritto ed orale
- Prerequisiti
- Competenze di programmazione di base in linguaggi imperativi o object oriented (C, java, ...)
- Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
L' insegnamento e' divisto in due parti: Python (3CFU), Arduino (3CFU)
I parte Python (Prof. Segnan):
L' insegnamento usa il linguaggio Python per introdurre principi e tecniche basilari di programmazione avanzati. I paradigmi prescelti sono: la Programmazione strutturata, funzionale, orientata agli oggetti. L’obiettivo principale e' di rendere in grado l' allievo, dato un problema risolubile tramite una soluzione software di realizzarla tramite i seguenti passi: analisi del problema, progettazione di un algoritmo che risolva il problema, implementazione dell' algoritmo in Python. Sara' privilegiata la ricerca di una una soluzione efficace anziche' una efficiente.
II parte: Arduino (Prof. Console)
L' insegnamento introdurra' i concetti di Internet and Web of things e di smart object. Verra' quindi intrdotta la piattaforma Arduino per la prototipazione veloce di smart objects e verranno realizzati semplici oggetti interattivi.
The course is made of two module: Python (3CFU) and Arduino (3CFU)
I part: Python (Prof. Segnan)
The course uses the Python language to introduce basic principles and advanced programming techniques. The chosen paradigms are: structured, functional, object-oriented programming. The main objective is to enable the student, given a problem that can be solved by a software solution to implement it through the following steps: problem analysis, design of an algorithm that solves the problem, implementation of the algorithm in Python. The search for an effective solution rather than an efficient one will be privileged.
II part: Arduino (Prof. Console)
This module will introduce the notions of Internet and Web of things and of smart object. The Arduino platform will be introdced and used for teh rapid prototyping of smart interactive objects
- Oggetto:
Risultati dell'apprendimento attesi
I parte (Python)
Al termine dell' insegnamento , lo studente:
- padroneggera' i concetti fondamentali dei vari paradigmi della programmazione (a oggetti, strutturata, funzionale).
- Conoscerà in maniera approfondita le caratteristiche ed i costrutti del linguaggio Python.
Le abilità che saranno acquisite riguardano:
- la capacità di modellare un problema tramite i costrutti e le librerie del linguaggio;
- la capacità di implementare e collaudare il progetto risultante mediante un ambiente di sviluppo integrato.
II parte (Arduino)
Al termine del corsi si avranno gli strumenti per prototipare oggetti smart interattivi.
I part (Python)
At the end of the teaching the student will :
- master the fundamental concepts of the various programming paradigms (object-based, structured, functional).
- know in depth the features and constructs of the Python language.
The skills that will be acquired concern:
- the ability to model a problem through constructs and libraries of language;
- the ability to implement and test the resulting project through an integrated development environment.
II part (Arduino)
At teh end of teh course students will be able to prototype smart interactive objects.
- Oggetto:
Modalità di insegnamento
il corso e' diviso in due parti di 18 ore, per un totale di 36 ore.
Prima parte (Python)
Lezioni frontali alternate ad attivita' di esercitazione.
Il materiale didattico e' disponibile su un sito Moodle al seguente indirizzo web:
https://elearning.unito.it/scuolacle/course/view.php?id=2403
Il materiale consiste di libri in formato elettronico, cartelle contenenti progetti Software di esempio, presentazioni in formato "Google Slides". Queste ultime contengono, oltre al testo, commenti in formato audio e video illustrativi.
L' alunno segue le lezioni e svolge esercitazioni sul proprio Personal Computer. Il contenuto del materiale sul sito Moodle e' molto simile a quello che viene esposto durante la lezione. Data la complessita' dei concetti esposti, le parti teoriche si alternano piu' volte in una singola lezione alle esercitazioni.
Compatibilmente con le limitazioni in vigore per la prevenzione dei contagi, le lezioni si svolgono in presenza altimenti tramite strumenti di Web Conference.
In entrambi i casi la lezione viene registrata e resa disponibile sul sito Moodle.
Le pratiche sopra descritte mirano a ridurre il divario fra le opportunita' messe a disposizione fra studenti frequentanti e non frequentanti.
II parte (arduino)
Lezioni in laboratorio con attivita' pratica
The course is split in 2 parts of 18 hours, for a total of 36 hours.
I part (python)
The teaching material is available on a Moodle website at the following web address
https://elearning.unito.it/scuolacle/course/view.php?id=1511
The material consists of books in electronic format, folders containing sample Software projects, presentations in "Google Slides" format. The latter contain, in addition to the text, explanatory comments in audio and video format.
The student follows the lessons and carries out exercises on his Personal Computer. The content of the material on the Moodle site is very similar to what is presented during the lesson. Given the complexity of the concepts exposed, the theoretical parts alternate several times in a single lesson with exercises.
Compatibly with the limitations in force for the prevention of infections, the lessons are held in the presence of others through Web Conference tools
In both cases the lesson is recorded and made available on the Moodle website.The practices described above aim to reduce the gap between the opportunities made available between attending and non-attending students.
II part (arduino)
Lectures and practical activity
- Oggetto:
Modalità di verifica dell'apprendimento
Il voto finale e' la media aritmetica dei voti ottenuti nei due progetti.
I parte (python)
L' alunno implementera' il progetto di una semplice programma Python su tema a scelta dello studente, seguendo le linee guida illustrate durante le esercitazioni. La valutazione avverra' in base ai seguenti criteri, elencati in ordine di importanza decrescente:
- Il programma e' efficace, realizza l'intento dichiarato
- Il programma utilizza funzionalita' e costrutti avanzati del linguaggio
- Il programma utilizza un algoritmo efficiente,
E possibile realizzare il progetto in gruppi al massimo di 3 persone, ma si richiede una qualita' del programma proporzionalmente maggiore
II parte (arduino)
Prototipazione di un semplice smart object (a scelta, anche in gruppi di 2 persone)
The final grade is the arithmetic mean of the 2 grades obtained in the two projects.
I part (python)
The student will implement the project of a simple Python program on a topic chosen by the student, following the guidelines illustrated during the exercises. The evaluation will be based on the following criteria, listed in order of decreasing importance:
- The program is effective, it fulfills the stated intent
- The program uses advanced features and constructs of the language
- The program uses an efficient algorithm
It is possible to carry out the project in groups of up to 3 people, but a proportionately higher quality of the program is required
II part (arduino)
Prototype of a simple smart object (proposed by the students, possibly in group od 2 people)
- Oggetto:
Attività di supporto
- Oggetto:
Programma
I parte (Python)
- Storia e motivazione del linguaggio
- Installazione dell'ambiente PyCharm
- Le funzioni print e input
- Indentazione
- Variabili e tipi di dati
- Variabili e commenti
- Numeri e operatori logici
- Stringhe
- Tuple
- Liste
- Dizionari
- Set e frozenset
- Istruzioni Condizionali
- Cicli: for e while
- Iteratori
- Le "Comprehension"
- Funzioni e parametri
- Gestione delle eccezioni
- Gestione elementare dei file
- Moduli
- La programmazione a oggetti con Python
- Classi in Python
- Ereditarietà
- Metodi speciali
- Overloading degli operatori
II parte (arduino)
- Introduzione a Internet of Things (IOT) e Web of things (WOT)
- La piattaforma Arduino
- il linguaggi di programmazione di Arduino
- Prototipazione HW e SW con Arduino
I part (Python)
- History and motivation of language
- Installation of the PyCharm environment
- The print and input functions
- Indentation
- Variables and data types
- Variables and comments
- Logical numbers and operators
- Strings
- Tuples
- Lists
- Dictionaries
- Set and frozenset
- Conditional Instructions
- Cycles: for and while iterators
- The "Comprehension"
- Functions and parameters
- Exception handling
- Elementary file management
- Modules
- Object-oriented programming with Python
- Python classes
- Inheritance
- Special methods
- Operator overloading
II part (Arduino)
II parte (arduino)
- Introduction to Internet of Things (IOT) and Web of things (WOT)
- Arduino platform
- Arduino programming language
- HW and SW prototyping with Arduino
Testi consigliati e bibliografia
- Oggetto:
I parte (python)
Il materiale didattico e' identico per alunni frequentanti e non frequentanti.
libro gratuito scaricabile:
https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf
sito di domande e risposte per aiuto su problemi specifici:
II parte (arduino)
materiale in rete su www.arduino.cc
I part (python)
The teaching material is identical for attending and non-attending students.
Downloadable free book
https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf
Q&A website on specific issues:
II part (arduino)
online doscumentation on www.arduino.cc
- Oggetto:
Note
Lo studente deve essere munito di un proprio PC,
per poter sviluppare il progetto ed esercitarsi fuori dall'orario di laboratorio.
Arduino kit verranno forniti in laboratorio (oppure sara' [possibile usare il simulatore Tinkercad
The students must have a personal computer, in order to practice and develop the project out of the lesson's timeArduino kits will be provided (in alternative the online Tinkercad simulator will be used)- Oggetto: