<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>

Il libro di testo, reinventato

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.

Manuale del Dungeon Master

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" />

Indice delle lezioni

La programmazione ad oggetti

Incapsulamento e visibilità: proteggere i dati

I diagrammi UML

Properties e duck typing

Usare le Eccezioni per gestire gli errori

Design patter: Model-View-Controller

Ereditarietà

</aside>

Progetto del corso: Code Combat

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" />

Indice di Code Combat

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

Parte 5: implementare l’MVC

Parte 6: un team di sviluppo

</aside>

Esercizi

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" />

Indice degli esercizi

Blackjack e squillo… di Classe

Ereditarietà Spaziali

</aside>

Note sull’interpretazione dei callout

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ù: