1 of 19

Seminario

Algoritmi Python

Relatore: David Leoni david.leoni@unitn.it

Assistente: Massimiliano Luca massimiliano.luca@unitn.it

Docente proponente: Ivano Bison

Anno 2018 - ediz Maggio

Queste slide : davidleoni.it/ap18

2 of 19

Obiettivi

  • Proseguire il precedente seminario Fondamenti Python
  • Basi di algoritmi in Python

3 of 19

Programma Google Calendar

Vedere slide successiva per appelli

Data

Argomento

Orario

Aula

03/05/2018

Ricerca su liste, ordinamenti

16.00 - 19.00

Lab 3

10/05/2018

Dizionari, liste di liste, intro matrici

16.00 - 19.00

Lab 3

17/05/2018

Matrici

16.00 - 19.00

Lab 3

24/05/2018

Strutture ad albero, formati json, xml

16.00 - 19.00

Lab 3

25/05/2018

Operazioni su sequenze, list comprehension

9.00 - 12.00

Lab 3

31/05/2018

Introduzione ai database

16.00 - 19.00

Lab 3

4 of 19

Appelli per modalità d’esame, vedere slide seguente

  • E’ ammesso all’esame chi abbia partecipato al seminario per almeno il 75% delle ore di lezione (non 80% come era indicato sul bando), Tradotto: al massimo sono consentite 2 assenze
  • Esame finale (+ eventuale recupero). Voto: passato / non passato. Crediti: 3 CFU
  • Sarà possibile partecipare a max due appelli.

Mandate una mail a david.leoni@unitn.it per farmi sapere a quali date intendete iscrivervi (se non rispondo consideratevi iscritti). Chi avesse problemi a partecipare agli appelli, faccia sapere che troviamo una qualche soluzione.

14/06/2018

Appello 1

Lab 3

17.00

19.00

21/06/2018

Appello 2

Lab 3

17.00

19.00

28/06/2018

Appello 3

Lab 3

17.00

19.00

5 of 19

Modalità d’esame

Editor: usaremo Spyder, perchè Jupyter ogni tanto inchioda Windows quando si fanno while infiniti. Quindi esercitatevi prima con Spyder

Materiale: L'esame sarà open book, se volete potete portarvi stampe di

- Pensare in Python�- i tutorial di Nicola Cassetta�- la documentazione ufficiale di Python 3�- slide del corso (anche fondamenti)

Questo materiale sarà comunque anche disponibile nei computer del laboratorio.

Molto probabilmente gli esercizi dell'esame saranno versioni leggermente modificate di esempi presi dal libro Pensare in Python e dai tutorial di Nicola Cassetta, quindi se vi fate tutte la parti indicate nelle slide avrete ottime probabilità di passare l'esame.

6 of 19

Materiale del corso

Libro Pensare in Python seconda edizione (Think Python)

  • Passo passo, adatto a principianti
  • versione online
  • zip offline
  • PDF

Sito Tutorial Python di Nicola Cassetta

(+ qualche riferimento occasionale da sito SoftPython di David Leoni)

7 of 19

Google Colab

  • Permette di lavorare in modo collaborativo online a fogli Jupyter (l’interfaccia è molto simile)
  • I fogli .ipynb sono salvati sul Google Drive

Per ciascuna lezione ci sarà un foglio condiviso su cui potrete temporaneamente editare per la durata della lezione (non vandalizzateli, grazie).

8 of 19

Software usati in laboratorio:

Python 3

Sistema operativo: Windows

Distribuzione: Anaconda

Editor durante il corso: Jupyter

Editor durante l’esame: Spyder

il TRE ! NON il due !

Spyder è un IDE, Integrated Development Editor.

Per eseguire il codice: F5

Per eseguire una sola riga o testo selezionato: F9

Ma va anche su Mac, Linux, dappertutto !

Distribuzione = Python + pacchetti python + librerie native

Jupyter è un notebook, cioè permette di inserire comandi Python in celle e vedere subito il risultato nella cella successiva

9 of 19

Se volete provare a casa

andate a guida all’installazione

Python 3

Sistema operativo: Windows, Mac, Linux, ...

Distribuzione: Windows: Anaconda

Mac: Homebrew

Linux: librerie di sistema

Editor: Jupyter, Spyder

il TRE ! NON il due !

Distribuzione =

Python + pacchetti python + librerie native

Fatelo, perchè….

se non scrivete codice Python,

non imparate Python!

10 of 19

Python Tutor 1/4 pythontutor.com

Ottimo sistema per visualizzare online l’esecuzione di codice Python

Sfruttatelo più che potete

Dovrebbe funzionare con la maggior parte degli esempi che tratteremo a lezione

11 of 19

Python Tutor 2/4

12 of 19

Python Tutor 3/4

Provate a inserire:

x = 5

y = 7

z = x + y

13 of 19

Python Tutor 4/4

Cliccando su Forward visualizzerete i cambiamenti nella memoria di Python

14 of 19

Lezione 1 - liste avanzate

Foglio Colab lez 1

15 of 19

Lezione 2 - Dizionari, liste di liste, intro matrici

Google Colab 2: link

16 of 19

Lezione 3 - Matrici

Google Colab 3: link

17 of 19

Lezione 4 - Strutture ad albero, formati JSON e XML

Google Colab 4: link

Per avere un idea del formato JSON:

  • yourinspirationweb (saltare jquery, ajax, attenzione ai comandi che sono in Javascript e non Python !)
  • Sintassi JSON

18 of 19

Lezione 5 - Operazioni su sequenze, list comprehension

Google Colab 5: link

19 of 19

Lezione 6 - Database

Seguiremo il tutorial dal corso softpython

Google colab: link