Progetto di Programmazione Informatica

Dall’anno scolastico 2016/2017, per il biennio liceale ha preso il via il progetto di Programmazione informatica affidato al Docente specialista, Dott. Walter Vannini. Tale progetto della durata di 30 ore (dal mese di Ottobre fino alla fine dell'anno), che consiste nell'implementazione di un'ora rispetto al piano orario istituzionale, attraverso l'attività di programmazione mira all'affinamento e all'esercitazione della logica e vedrà dei momenti di collegamento con altre discipline di studio, quali Matematica, Fisica e Grammatica. Si riportano nel dettaglio i contenuti dei programmi presentati alle due classi del Biennio.

Dopo una introduzione iniziale al concetto di problema e di algoritmo, con l'ausilio di metodologie unplugged che hanno garantito una immediata riferibilità ad esperienze quotidiane, sono stati presentati i cardini logici della programmazione, gli elementi costitutivi di qualsiasi programma, come enunciati nel Teorema di Böhm-Jacopini: sequenza, decisione, iterazione.

Le classi sono state introdotte ai fondamenti della programmazione tramite la produzione di semplici programmi imperativi (creazione di spirali geometriche di passo variabile). Nell'ambiente grafico Snap! (programmazione grafica a blocchi, fruita in cloud attraverso il browser), hanno potuto esplorare concetti cardine come variabile, ciclo, procedura, funzione.

Una volta acquisita familiarità con questi concetti di base, si è passati alla scoperta di un ambiente professionale di programmazione quale il linguaggio Python, anch'esso fruito in cloud tramite browser. Ciascuna coppia ha creato un proprio account sulla piattaforma pythonanywhere.com, in modo da poter idealmente disporre dello stesso ambiente anche da casa.

Il passaggio da un ambiente grafico a uno testuale e il primo incontro con una shell sono stati un salutare esame di realtà per una generazione cresciuta nel mito dell'hacker mediatico.

Pur in modo iniziale, come atteso, le classi hanno acquisito familiarità con il concetto di sintassi formale, progettazione, struttura dati, esecuzione mentale, codice sorgente, esecuzione, debugging.

I progetti Python principali svolti nel corso dell'annualità, e i concetti di programmazione che hanno veicolato sono stati:

  • generazione di numeri di Fibonacci (procedure, funzioni e uso di liste)
  • alfabeto farfallino (manipolazione di stringhe)
  • "gioco delle coppie" (uso di array, manipolazione avanzata di stringhe)
  • gioco della battaglia navale contro il computer (uso di dizionari di array, interazione con l'utente).

Un progetto iniziale per creare un "generatore di frasi" a partire dalla definizione di una grammatica formale per la classe I e per creare un chatbot per il social network Telegram per la classe II, si sono rivelati interessanti per le classi ma superiori alle loro capacità di formalizzazione. Lo sforzo è però servito a collegare lo studio delle grammatiche alle sue applicazioni pratiche (e desiderate).