Vai al contenuto principale
Oggetto:
Oggetto:

PROGRAMMAZIONE AVANZATA: PYTHON E ARDUINO

Oggetto:

ADVANCED PROGRAMMING: PYTHON AND ARDUINO

Oggetto:

Anno accademico 2020/2021

Codice dell'attività didattica
CPS0554
Docenti
Prof. Luca Console (Titolare dell'insegnamento)
Marino Segnan (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:

  1. padroneggera' i concetti fondamentali  dei vari paradigmi della programmazione (a oggetti, strutturata, funzionale).
  2. Conoscerà in maniera approfondita le caratteristiche ed i costrutti del linguaggio Python.

Le abilità che saranno acquisite riguardano:

  1. la capacità di modellare un problema tramite i costrutti e le librerie del linguaggio;
  2. 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 :

  1. master the fundamental concepts of the various programming paradigms (object-based, structured, functional).
  2. know in depth the features and constructs of the Python language.

The skills that will be acquired concern:

  1. the ability to model a problem through constructs and libraries of language;
  2. 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=1512

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:

  1. Il programma e' efficace, realizza l'intento dichiarato
  2. Il programma utilizza funzionalita' e costrutti avanzati del linguaggio
  3. 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:
  1. The program is effective, it fulfills the stated intent
  2. The program uses advanced features and constructs of the language
  3. 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:

https://stackoverflow.com/

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:

https://stackoverflow.com/

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 time
 
Arduino kits will be provided (in alternative the online Tinkercad simulator will be used)
 
Oggetto:
Ultimo aggiornamento: 23/02/2021 11:27
Location: https://www.didattica-cps.unito.it/robots.html
Non cliccare qui!