Introduzione

Scopo di questo manuale

Che senso ha insegnare un linguaggio di programmazione nella scuola? Non certo quello di preparare futuri informatici, dato che:

  • man mano che la tecnologia matura richiede sempre meno tecnici e tecnici sempre più specializzati;
  • è molto difficile pensare di formare, con anni di anticipo, tecnici competenti per una tecnologia ancora così in evoluzione.

L’introduzione di ogni nuovo strumento tecnico-tecnologico modifica il modo di affrontare i problemi di una società e modifica anche i problemi che la società ritiene importante risolvere. Uno strumento così potente e multiforme come l’elaboratore elettronico ha un forte impatto nella cultura e può essere un forte stimolo per esplorare e capire il mondo che ci circonda.

Qui l’informatica, non tanto l’uso del computer, è vista come uno strumento ricco di stimoli per esplorare, imparare, crescere. Già, l’informatica... ma cos’è l’informatica?

‘’L’informatica è la scienza che studia come risolvere problemi usando il linguaggio’’ (Lucio Varagnolo anni ‘80).

Il linguaggio è il più potente (l’unico?) strumento di conoscenza umano. I linguaggi di programmazione, sono linguaggi formali, certo non paragonabili, in espressività, con il linguaggio naturale. Affrontare problemi, riprodurre e descrivere situazioni, confrontare l’effetto di diverse definizioni o algoritmi usando un linguaggio di programmazione, può comunque essere un potente stimolo ad una più profonda e personale conoscenza.

Il linguaggio di programmazione può dunque avere un senso nella scuola: non come fine dell’insegnamento, ma come mezzo per apprendere. Il linguaggio deve quindi risultare più “trasparente” possibile: non deve tediare e confondere, con una sintassi complicata, deve possedere delle strutture di alto livello in modo da permettere di affrontare problemi significativi molto presto, deve avere un rigoroso impianto logico in modo da risultare formativo.

Queste caratteristiche le ho trovate in Python che è anche un linguaggio multipiattaforma (funziona sotto Windows, Mac, Linux e molti altri sistemi operativi), ha una grande quantità di librerie che lo rendono adatto a risolvere problemi in ambiti molto diversi, ha una notevole documentazione, in parte tradotta anche in italiano da volontari.

Inoltre Python fa parte della grande famiglia di software libero, cioè: #. può essere usato senza restrizioni, #. può essere studiato e adattato alle proprie esigenze, #. può essere copiato liberamente e distribuito, #. può essere modificato, ma deve restare libero.

Insomma, attualmente, Python è un ottimo candidato come linguaggio di programmazione per la scuola secondaria.

Installazione

Per installare un qualunque software bisogna essere un po’ pratici di computer. Conviene eventualmente farsi aiutare. L’autore non può essere ritenuto responsabile della perdita di informazioni conseguenti ad errori di installazione.

  1. Installare Python

    1. Python è un software libero ed è distribuito sotto una licenza compatibile con la licenza GPL quindi è possibile usarlo, copiarlo e distribuirlo senza restrizioni.
    2. GNU/Linux: il programma deve essere installato dall’amministratore del sistema, lui sa come fare. Se si utilizza una distribuzione la cosa più semplice è installare Python dai repository della distribuzione stessa. Noi utilizzeremo per gli esempi l’ambiente di sviluppo IDLE (non è l’unica scelta possibile). In molte distribuzioni GNU/Linux IDLE è un pacchetto separato da Python, se lo vogliamo usare dobbiamo installarlo a parte.
    3. Windows: scaricare la versione più aggiornata di Python da www.python.org quindi doppio clic sul pacchetto da installare.
  2. Installare pygraph:

    1. Copiare il file pygraph_x.xx” (nel mondo reale al posto di “x” ci saranno dei numeri che indicano la versione) all’interno di una propria cartella (il file può essere prelevato da Internet dalla pagina: https://www.verona.linux.it/index.php?title=Download) TODO

    2. Scompattare il file “pygraph_x.xx” all’interno di una directory di lavoro.

    3. La directory pygraph contiene le directory seguenti: * doc, la documentazione varia * examples, esempi d’uso * pygraph, le librerie del progetto:

      • pycart.py un piano cartesiano
      • pyplot.py grafico di funzioni nel piano, cartesiane e polari
      • pyturtle.py la grafica della tartaruga
      • pyig geometria interattiva
    4. Spostare le directory doc e examples in una propria cartella facilmente raggiungibile ( emailad esempio: .../mieidocumenti/python/pygraph)

    5. Spostare la directory pygraph e il file pigraph.pth all’interno di: .../pythonx.x/site-packages/ (osservazioni: 1: per fare questo in Linux bisogna avere i privilegi di amministratore; 2: a seconda della versione di Python installata, pythonx.x potrebbe essere python2.4, python2.5 o python3.0...)

  3. Trovare documentazione su Python:

    1. Documentazione in inglese: www.python.org
    2. Documentazione in italiano: www.python.it
    3. Un’ottima introduzione all’informatica usando questo linguaggio di programmazione è il testo: “How to think like a computer scientist: learning with Python” di Downey, Allen tradotto magnificamente in italiano (si trova su Internet partendo dai link precedenti).

Impostazione

In questo testo sono presentati vari strumenti che il linguaggio mette a disposizione del programmatore. Per ogni argomento vengono date succinte informazioni, viene indicata la sintassi delle nuove istruzioni, vengono proposti degli esempi e degli esercizi. Non mi sono posto l’obiettivo di trattare in modo completo le caratteristiche del linguaggio Python, ma scrivere solo dei cenni che ne permettano l’uso. Su ogni argomento si possono trovare informazioni più complete in internet e in particolare nei vari testi (anche tradotti in italiano) presenti nel sito italiano di Python: www.python.it.

Feedback

Spero che qualcuno trovi interessante questo lavoro e lo usi per imparare o per insegnare l’informatica e la geometria con Python. Utilizzandolo, senz’altro verranno alla luce molti errori, difetti o carenze sia nel software sia nella documentazione; chiedo a chi troverà qualche motivo di interesse in questo lavoro di inviarmi:

  1. Commenti,
  2. Critiche,
  3. Suggerimenti,
  4. ...e magari anche altri materiali di lavoro per accrescere la documentazione

Ringrazio fin d’ora chiunque perda del tempo a leggere questo testo, lo utilizzi nell’insegnamento o si prenda la briga di mandarmi qualche riscontro.

Licenza

Copyright (c) 2012-2013-2014 Daniele Zambelli

Il manuale è rilasciato sotto i temini della licenza Cretive Commons:

By-Sa

Vedi:

http://creativecommons.org/licenses/by-sa/3.0/it/legalcode

Daniele Zambelli: daniele.zambelli at inwind.it