Skip to content

Latest commit

 

History

History
269 lines (201 loc) · 8.58 KB

File metadata and controls

269 lines (201 loc) · 8.58 KB

🐍 Corso Python - CINECA

Python License CINECA

Repository contenente materiali didattici, appunti ed esercizi del corso "Introduction to Python Programming" organizzato da CINECA.


📚 Contenuti del Corso

DAY 1 - Fondamenti di Python

DAY 2 - Strutture Dati e Libreria Standard

DAY 3 - Programmazione Avanzata

  • Argomenti: Decoratori, eccezioni, classi e OOP, iterables/iterators/generators
  • Materiali:
  • Esempi: decoratori.py, primo_esempio.py

🚀 Setup Ambiente di Sviluppo

Prerequisiti

  • Python 3.13 (o superiore)
  • pip

Installazione

  1. Clona la repository

    git clone <url-repository>
    cd <nome-repository>
  2. Crea un ambiente virtuale

    python -m venv corso-python
  3. Attiva l'ambiente virtuale

    • Linux/Mac:

      source corso-python/bin/activate
    • Windows:

      corso-python\Scripts\activate
  4. Installa le dipendenze

    pip install -r requirements.txt

Dipendenze principali

  • jupyter - Notebook interattivi
  • ipython - Shell interattiva avanzata
  • numpy - Calcolo numerico
  • matplotlib - Visualizzazione dati
  • Altre librerie specificate in requirements.txt

📂 Struttura della Repository

.
├── DAY 1/                          # Giorno 1: Fondamenti
│   ├── APPUNTI_MIGLIORATI.md      # Appunti completi e formattati
│   ├── RISORSE/                    # Notebook e materiali originali
│   └── hands_on_*.py               # Esercizi pratici
│
├── DAY 2/                          # Giorno 2: Strutture dati
│   ├── APPUNTI_MATTINA_MIGLIORATI.md
│   ├── APPUNTI_POMERIGGIO_MIGLIORATI.md
│   ├── RISORSE/                    # Esercizi e notebook
│   └── *.py                        # Script di esempio
│
├── DAY 3/                          # Giorno 3: OOP e avanzati
│   ├── APPUNTI.md
│   ├── RISORSE/                    # Materiali avanzati
│   └── esempio_*.py                # Esempi di codice
│
├── python-intro-2025/              # Repository originale del corso
├── back up/                        # Backup dei materiali
├── corso-python/                   # Ambiente virtuale
├── requirements.txt                # Dipendenze Python
├── to_do_exercises.txt             # Lista esercizi da completare
└── README.md                       # Questo file

🔗 Link Utili

Risorse del Corso

Corsi Avanzati

Documentazione Python


📝 Esercizi e Hands-On

Esercizi Completati

  • ✅ Triangle Wave (DAY 2/RISORSE/05_exercise_triangle_wave.ipynb)
  • ✅ Caesar Cipher (DAY 2/RISORSE/06_exercise_caesar_cipher.ipynb)
  • ✅ Statistiche 100m (DAY 2/times_100m.dat)

Esercizi da Completare

Consulta il file to_do_exercises.txt per la lista aggiornata degli esercizi da svolgere.


🛠️ Strumenti Utilizzati

  • IDE/Editor: VSCode, PyCharm, Jupyter Lab
  • Versione Python: 3.13
  • Gestione Pacchetti: pip, venv
  • Notebook: Jupyter Notebook/Lab
  • Version Control: Git/GitHub

📊 Argomenti Trattati

Fondamenti (DAY 1)
  • Introduzione a Python e storia del linguaggio
  • Installazione e configurazione ambiente
  • Ambienti virtuali (venv)
  • Tipi di dati base (int, float, str, bool)
  • Operatori e espressioni
  • Strutture di controllo (if, for, while)
  • Funzioni e scope delle variabili
  • Liste, tuple e operazioni base
Strutture Dati Avanzate (DAY 2)
  • Dizionari e operazioni avanzate
  • Set e operazioni insiemistiche
  • List/Dict comprehensions
  • Funzione zip() e unpacking
  • Parametri funzioni: *args e **kwargs
  • Introspezione (type, isinstance, hasattr, callable)
  • Moduli libreria standard:
    • os - Interazione con il sistema operativo
    • shutil - Operazioni su file
    • pathlib - Path object-oriented
    • logging - Sistema di logging
    • argparse - Parser argomenti CLI
    • subprocess - Esecuzione processi esterni
    • datetime - Gestione date e orari
Programmazione Avanzata (DAY 3)
  • Decoratori (function decorators)
  • Gestione eccezioni (try, except, finally)
  • Classi e Object-Oriented Programming
    • Attributi e metodi
    • Ereditarietà e polimorfismo
    • Metodi speciali (__init__, __str__, ecc.)
  • Iterables, Iterators e Generators
  • Context managers (with statement)

🎯 Obiettivi di Apprendimento

Al termine del corso sarai in grado di:

  • ✨ Scrivere programmi Python efficienti e leggibili
  • 🔧 Utilizzare le strutture dati appropriate per ogni situazione
  • 📦 Gestire progetti Python con ambienti virtuali e dipendenze
  • 🐛 Debuggare e gestire errori in modo professionale
  • 📝 Documentare il codice seguendo le best practices
  • 🚀 Applicare principi di programmazione Object-Oriented
  • 🔍 Utilizzare i moduli della libreria standard Python

💡 Best Practices Imparate

  1. Naming Conventions: Seguire PEP 8 per nomi di variabili, funzioni e classi
  2. Docstrings: Documentare funzioni e classi con docstring descrittive
  3. Type Hints: Utilizzare annotazioni di tipo per migliorare la leggibilità
  4. List Comprehensions: Preferire comprehensions ai loop quando appropriato
  5. Context Managers: Usare with per gestire risorse (file, connessioni)
  6. Logging: Implementare logging invece di print() per debugging
  7. Virtual Environments: Sempre usare ambienti virtuali per progetti
  8. Error Handling: Gestire eccezioni in modo specifico, evitare except: generico

📌 Note

  • Gli appunti con suffisso _MIGLIORATI.md sono versioni estese e formattate degli appunti originali
  • La cartella RISORSE/ in ogni DAY contiene i notebook Jupyter originali del corso
  • La cartella back up/ contiene una copia di sicurezza di tutti i materiali
  • L'ambiente virtuale corso-python/ non è tracciato da Git

📧 Contatti e Supporto

Per domande o chiarimenti sul corso:

  • CINECA Support: Consulta la piattaforma learn.cineca.it
  • Repository Issues: Apri una issue su GitHub per problemi con il codice

📜 Licenza

Materiali didattici forniti da CINECA per scopi educativi.


🙏 Ringraziamenti

Un ringraziamento speciale a:

  • CINECA per l'organizzazione del corso
  • Gli istruttori per i materiali didattici di qualità
  • La community Python per la documentazione eccellente

Happy Coding! 🚀

Ultimo aggiornamento: Novembre 2025