Obiettivi e Contenuti del Corso Base e Intermedio di Python
Corso Python Base
Modulo 1: Introduzione alla Programmazione
- Introduzione ai linguaggi di programmazione e all’uso di Python
- Primi passi: installazione, ambiente di sviluppo e scrittura del primo programma.
- Gestione delle funzioni base come
print
e introduzione alle stringhe.
Modulo 2: Tipi di Dati e Variabili
- Rappresentazione e manipolazione di numeri, stringhe, e booleani.
- Uso delle variabili, convenzioni di nome, e gestione degli input utente.
- Introduzione agli operatori e alle espressioni aritmetiche.
Modulo 3: Strutture di Controllo e Liste
- Condizioni logiche con
if
, elif
, e else
.
- Uso dei cicli
while
e for
, inclusa la gestione di liste e matrici multidimensionali.
- Comprensione delle tabelle verità e gestione di operatori logici e bitwise.
Modulo 4: Funzioni e Tipi di Dati Complessi
- Creazione e utilizzo di funzioni personalizzate.
- Introduzione a tuple, dizionari, e loro manipolazione.
- Gestione di dati complessi e tecniche avanzate per liste e dizionari.
Corso Python Intermedio Certificato
Modulo 1: Moduli e Pacchetti
- Utilizzo di moduli standard (Math, Random, Platform).
- Creazione e gestione di moduli e pacchetti personalizzati.
- Uso di repository esterne come PYPI e gestione con PIP.
Modulo 2: Stringhe e Gestione delle Eccezioni
- Operazioni avanzate su stringhe: metodi, comparazioni e manipolazioni.
- Gestione delle eccezioni con
try
, except
, e raise
.
- Approfondimenti sulla codifica dei caratteri e Unicode.
Modulo 3: Programmazione a Oggetti
- Creazione e gestione di classi, metodi e proprietà.
- Ereditarietà, polimorfismo, e gestione di eccezioni personalizzate.
- Differenze tra programmazione procedurale e orientata agli oggetti.
Modulo 4: Generatori e Approfondimenti
- Introduzione ai generatori e alla dichiarazione
yield
.
- Uso avanzato delle list comprehension e gestione efficiente dei dati.
- Similitudini e differenze tra generatori e altre strutture iterative.
Corso di Python Avanzato
Modulo 1 – Object Oriented Programming
- Basi di OOP: classi, oggetti, attributi, metodi, instance vs class variables, superclasses vs subclasses. Costruttori specifici e di default.
- Magic methods: eq, abs, str, getattr, getitem
- iteratori e generatori.
- Metodi statici e di classe, decoratori @classmethod e @staticmethod.
- Classi astratte e metodi astratti, override di metodi astratti.
- Attribute encapsulation: Metodi getter, setter e deleter.
- Ereditarietà, ereditarietà multipla, polimorfismo.
- Subclassing di classi built-in.
- Metaclassi: la metaclasse type e la funzione type(), gli attributi speciali __name__, __class__, __bases__ e __dict__.
Modulo 2 – Advanced Programming Concepts
- Funzioni: packing e unpacking di argomenti posizionali e keyword (*args e **kwargs), first class objects, decoratori di funzioni e di classi, decoratori con argomenti.
- Gestione degli errori e delle eccezioni: eccezioni come oggetti.
- Shallow e deep copy: la funzione id, metodi copy e deepcopy.
- Serialization of Python objects: modulo pickle e oggetti serializzati in singolo byte stream, funzioni dumps() e loads()
Modulo 3 – Coding Conventions
- Filosofia del Python: indentazione, continuation lines, maximum line length, line breaks, blank lines, l’istruzione import this, importare moduli, whitespaces, commenti, docstrings, naming conventions, type hints.
Modulo 4 – GUI Programming
- Il modulo tkinter e gli elementi grafici: finestra, titolo, bottoni, icone, label.
- Event-driven programming, Tk(), mainloop() e title
- aggiungere widgets alla finestra: bottoni, label, frames, location e coordinate, size, il metodo place()
- Canvas e suoi metodi, widget Entry, Radiobutton e Button, grid e place managers, binding events con bind().
- Colorare widget e color modes (RGB e HEX).
- Clickable e non clickable widgets
Modulo 5 – Network Programming
- Protocollo REST, network sockets, dominio, indirizzo, porta, protocollo e servizio.
- Comunicazione connection-oriented e connectionless, client e server.
- Il modulo socket per importare e creare socket, connettere socket a server http e chiudere la connessione, inviare richieste ai server con il metodo send(), ricevere risposte con il metodo recv(), gestione delle eccezioni e tipi di eccezione.
- JSON: sintassi, tipi di dati (numerici, strings, booleani, null), dati strutturati (array e oggetti). Serializzare dati Python e deserializzare JSON (i metodi dumps() e load() ).
- XML: sintassi, struttura, processare file xml.
- Il modulo request: metodi http (GET, POST, PUT, DELETE), CRUD, aggiungere e aggiornare dati, data fetching e rimuovere dati da server, response status codes.
- Database programming in Python: il modulo sqlite, creare e chiudere connessioni con i metodi connect e close, creare tabelle, inserire, leggere, aggiornare e eliminare dati, metodi del cursore (execute, executemany, fechone, fetchall), creare statement SQL di base (SELECT, INSERT, INTO, UPDATE, DELETE). Parsare documenti XML, cercare dati in documenti XML usando i metodi find e findall, costruire documenti XML usando la classe Element e la funzione SubElement.
- Leggere e scrivere da/su CSV con reader, writer, DictReader, DictWriter.
- Logging nelle applicazioni e differenti livelli di logging, usare gli attributi di LogRecord per creare formati di log.
- Creare e parsare configuration files usando l’oggetto ConfigParser.
- File .ini e interpolare valori in file .ini
- Object Oriented Programming
- Advanced Programming Concepts
- Coding Conventions
- Gui Programming
- Network Programming