8–12 Apr 2019
INFN Sezione di Roma
Europe/Rome timezone

Scientific Programme

Programma del corso

  • Storia di Python
  • Struttura astratta di Python
  • Python interattivo
  • Controllo di flusso e blocchi di codice
  • Interludio: si, ma come lo stampo?
  • Controllo di flusso visuale ed indentazione
  • Iterabili
  • Il paradigma di programmazione Object Oriented
  • Organizzazione logica di Python
  • Gestione della memoria e lifetime
  • Tipi base
  • Aiuto ed introspezione
  • Namespace
  • Funzioni
  • Invocazione usando args e *kwds
  • Funzioni anonime
  • Il C Memory Model: stack ed heap
  • Strutture dati: code e cataste
  • Scope
  • Controllo di flusso: eccezioni ed errori
  • with statement
  • pass statement
  • import, moduli e packages
  • Strutturare un programma: il main ed i suoi fratelli e sorelle: le classi, le funzioni ed i moduli
  • import e namespace pollution
  • scrittura di librerie e moduli - moduli e package [init]
  • debugging via ambiente python + reload modulo
  • Tipi di dato fondamentali: le tuple
  • Tipi di dato fondamentali: le liste
  • Tipi di dato fondamentali: i dizionari
  • Tipi di dato fondamentali: le stringhe
  • Metatipi ed astrazioni: le slice
  • Funzioni standard: len, hash, operatori aritmetici/comparazione, iter, str
  • Namespaces, scopes, aliasing e shadowing
  • OOP in Python: come si definisce una classe
  • inheritance: super e lookup rule (mro)
  • metodi e self
  • come si invoca un metodo?
  • polimorfismo "ad hoc": funzioni proxy e metodi magici
  • Python Avanzato: comprensioni
  • Python Avanzato: FunPy e lambda
  • Python Avanzato: chiusure, funtori e funzioni di ordine superiore
  • Python Avanzato: lazy vs eager e differenze tra py2 e py3
  • Python Avanzato: lazy programming: generatori
  • Python Avanzato: decoratori
  • Python Avanzato: Duck typing: cos'è un iterabile?
  • Python Avanzato: Interfacce astratte in Python @abstractmetod
  • un esempio completo di implementazione di un framework di test
  • PyPI / Python Package Index - package handling: pip, easy_install, ...
  • virtualenv
  • docstrings ed help system / rst?
  • il modulo atexit
  • il modulo os
  • il modulo sys
  • gestione di file testo e binari, lettura/scrittura/append...
  • filesystem navigation: il modulo os.path
  • path ed astrazioni relative
  • il modulo fnmatch
  • il modulo glob
  • command line argument parsing: i moduli getopt, argparse, dopcopt
  • implementazione di applicazioni
  • uso degli standard streams ed implementazione di filtri
  • output formattato
  • gestione del tempo e delle date
  • modulo logging
  • parsing: RE ed FSM
  • modulo ConfigParser
  • fork-ing ed exec-ing
  • IPC locale e non
  • modulo signal
  • multithreading e GIL
  • multiprocessing
  • subprocess: gestione di sottoprocessi
  • Unicode ed encodings (UTF-8 in particolare)
  • networking: socket clients
  • networking: socket servers
  • select e selectors
  • socket SSL
  • pyzmq (0mq)
  • esecuzione di comandi remoti (ssh, ...?)
  • overview di IDE ed editor disponibili
  • python: testi suggeriti
  • python: siti suggeriti