Skip to content

simo-hue/CINECA-Course-Introduction-To-Python-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐍 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

About

Corso CINECA di introduzione al python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors