<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" width="40px" />
Indice generale
</aside>
In questo sito sono raccolte le dispense delle lezioni di teoria di Informatica sulla programmazione in Python tenute dal prof. Marco Farina. Prese nel loro insieme forniscono una solida base di studio, che può essere usata in sostituzione del libro di testo.
Programmazione ad oggetti, per le classi quarte e i corsi avanzati di programmazione.
<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" width="40px" />
Incapsulamento e visibilità: proteggere i dati
Usare le Eccezioni per gestire gli errori
Design patter: Model-View-Controller
</aside>
Il percorso di studio mette in pratica la teoria in un articolato progetto di programmazione suddiviso in tante “parti”. Ad ogni lezione teorica corrisponde un esercizio di coding in cui si mettono in pratica i concetti appena appresi (spesso facendo il refactoring del codice precedente) e a volte si introducono nuove classi o nuove funzionalità. Il tema del progetto è la simulazione di gioco di ruolo con ambientazione fantasy.
<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" width="40px" />
Parte 1: creare classi e istanziare oggetti
Parte 2: incapsulamento e visibilità
Parte 3: @property, metodi privati e duck typing
Parte 4: validazione e gestione errori
</aside>
Questa sezione raccoglie una serie di esercizi pensati come complemento al corso. A prima vista, alcuni potrebbero apparire complessi, ma non preoccuparti: per ciascuno sono indicati chiaramente i diversi livelli di competenza raggiungibili. Non è necessario implementare tutto immediatamente. Puoi iniziare concentrandoti sulle competenze di base e, quando ti sentirai pronto, tornare sugli esercizi per affrontare i livelli più avanzati.
<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" width="40px" />
Blackjack e squillo… di Classe
</aside>
Nel testo sono presenti diversi box che vanno interpretati in questo modo:
<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/2cbaa73c-260f-806c-8a84-007a504c3d79" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/2cbaa73c-260f-806c-8a84-007a504c3d79" width="40px" />
Definizioni
Qui troverai le (poche) definizioni di teoria.
</aside>
<aside> 💻
Programmazione
Questi sono dettagli aggiuntivi sulla sintassi nel linguaggio di programmazione.
</aside>
<aside> 💡
Informazioni utili
Queste sono generiche informazioni utili sulla programmazione o sull’informatica in generale.
</aside>
<aside> 🔥
Attenzione
Queste sono avvertenze su qualcosa in cui bisogna fare molta attenzione per evitare di commettere errori.
</aside>
<aside> ✨
Clean code
Questi sono consigli su come scrivere e organizzare in modo efficace il codice.
</aside>
Oltre ai callout della sezione di teoria, nel progetto del corso e negli esercizi possono essercene alcuni specifici in più: