Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
<div>
Scarica il
</div>Scheme per Dr. Geo
Andrea Centomo
Hilaire Fernandes
Edizioni Ofset 2005
2
Introduzione
Con il termine software libero si identificano, a grandi linee, tutte le risor-
se informatiche che vengono rilasciate con codice sorgente aperto, accompa-
gnate da un copyright che ne sancisce la proprietà intellettuale e con licenza
GPL (GNU General Public License) o derivata, in modo da renderle libera-
mente copiabili, utilizzabili e modificabili da parte di tutti, impedendo allo
stesso tempo che su di esse vengano aggiunte restrizioni che ne limitino l’uso
libero. Alla luce di questa definizione si comprende come il termine libero
non possa in alcun modo essere assimilato, come spesso accade riduttiva-
mente, a gratuito. Limitarsi al solo aspetto della gratuità, che in alcuni casi
riguarda anche altro tipo di software, tralasciando aspetti cruciali come la
disponibilità del codice sorgente e la natura della licenza GPL, non permette
di cogliere pienamente quel modo originale di pensare l’informatica, tipico
dell’approccio libero, che fa della collaborazione e della cooperazione inter-
nazionale il perno essenziale del suo stesso sviluppo.
La condivisione della conoscenza, principalmente attraverso l’apertura del
codice sorgente, e la collaborazione internazionale attraverso infrastrutture
digitali individuano due condizioni imprescindibili per l’esistenza delle risor-
se libere. Allo stesso tempo tuttavia esse rappresentano obiettivi centrali
anche per un’istituzione di carattere culturale ed educativo come la scuola.
Il percorso didattico che proponiamo in questo libro ha come oggetto la
programmazione contestualizzata in un ambiente di geometria di-
namica. L’ambiente in cui si opera, rappresentato dal software libero Dr.
Geo, offre una potente integrazione tra motore di manipolazione dinami-
ca degli oggetti geometrici e linguaggio di programmazione di alto livello
Scheme. Ambienti in cui geometria e programmazione trovano un punto di
incontro non sono una novità nell’esperienza didattica. Si pensi all’esempio
del Logo il cui uso, per motivi che ci sfuggono, è rimasto tristemente confi-
nato all’ambito del ciclo primario. Tuttavia il fatto che si possa disporre di
un ambiente di programmazione in un ambiente di manipolazione dinamica
degli oggetti geometrici rappresenta un aspetto di sicuro interesse pedago-
gico.
Oltre a questo osserviamo che il lettore, che al termine di questo percor-
so fosse desideroso di approfondire la conoscenza del linguaggio Scheme e
volesse dedicarsi solo alla programmazione, può fruttuosamente utilizzare
3
4
l’ambiente Dr. Scheme concepito espressa-
http://www.plt-scheme.org
mente per la didattica della programmazione Scheme.
Questo libro è stato scritto sulla spinta di diverse motivazioni. La prima è
di mostrare che il software libero offre strumenti eccellenti per lo studio della
geometria e dell’informatica, alternativi a quelli attualmente più diffusi nel-
la scuola. Il secondo, consequenziale al primo, è di incoraggiare le persone
all’uso di risorse libere. Ciò non solo per banali ragioni di abbattimento
dei costi ma per favorire la condivisione della conoscenza e la crescita di
un’informatica collaborativa. Un’ultima importante ragione alla base della
realizzazione di questo libro è legata al piacere, che speriamo investa anche
il lettore, di esplorare argomenti di matematica affascinanti come, per citare
qualche esempio, quello delle tassellazioni, degli insiemi autosimili e della
botanica algoritmica.
Capitolo 1
Geometria interattiva
Dr. Geo è un software libero progettato per lo studio interattivo della geo-
metria euclidea piana e per un primo approccio ai fondamenti della pro-
grammazione in linguaggio Scheme. Nessuno di questi due aspetti, preso
singolarmente, rappresenta una novità nel campo del software per l’edu-
cazione: gli ambienti per lo studio interattivo della geometria (Kig, Kseg,
Cabri, Sketchpad ...), cosı̀ come i linguaggi di programmazione orientati al-
la geometria (Logo), hanno già una tradizione abbastanza consolidata nella
didattica della scuola italiana. Tuttavia, con l’eccezione dell’ambiente di
programmazione Python per Kig, non ci sono noti esempi di software in cui
l’integrazione tra ambiente di programmazione e motore geometrico sia cosı̀
efficace e profonda come in Dr. Geo.
1.1 Funzionalità base
Le funzionalità base di Dr. Geo possono essere presentate nella seguente
articolazione:
Oggetti di Dr. Geo
punto e numero;
• retta, semiretta, segmento, circonferenza, arco, punto (date le coordi-
• nate), coordinate di un punto;
punto medio, vettore, retta parallela, retta perpendicolare, punti di
• intersezione.
In fase di progettazione del software si è volutamente scelto di non au-
mentare il numero degli oggetti per stimolare l’utente a fare questo au-
tonomamente. Trattandosi di un software libero si hanno due strade per
raggiungere questo risultato: utilizzare gli strumenti avanzati messi a dispo-
sizione dal programma, che analizzeremo nel seguito, o modificare il codice
sorgente. In Dr. Geo sono disponibili altri due oggetti speciali:
5
6 CAPITOLO 1. GEOMETRIA INTERATTIVA
il luogo: per lo studio di luoghi geometrici;
• il poligono: per disegnare poligoni di cui sono assegnati i vertici.
•
La particolarità di questi oggetti risiede nel fatto che su essi non sono
eseguibili alcune operazioni normalmente eseguibili sugli altri oggetti. Ad
esempio non è possibile intersecare due poligoni.
Strumenti
strumenti di misura: righello e goniometro;
• strumenti di trasformazione: isometrie e omotetie;
• strumento di movimento: deformazione dinamica degli oggetti;
• strumenti di visualizzazione: gomma, stile oggetti, zoom;
• strumenti di editing: foglio di testo
•
Gli strumenti di trasformazione permettono un approccio moderno allo
studio della geometria ossia per trasformazioni. Lo strumento di movimento
è ciò che caratterizza invece l’aspetto dinamico del software e che permette
all’utilizzatore di deformare la figura geometrica mantenendo inalterate le
sue caratteristiche geometriche. Gli strumenti di visualizzazione permettono
poi di modificare l’aspetto dei diversi oggetti rispetto al comportamento
predefinito nella configurazione delle di Dr. Geo [2]. Dr. Geo
Preferenze
mette a disposizione anche un ambiente per editare semplici testi. Il testo
viene scritto su un foglio di lavoro, analogo nell’aspetto al foglio su cui si
eseguono le costruzioni, e l’utilizzatore può passare da foglio di testo a foglio
di costruzione cliccando con il mouse su una linguetta.
1.2 La mia prima figura
La prima figura che costruirai con Dr. Geo è l’asse di un segmento AB; per
fare questo ricordati che l’asse di un segmento è la retta perpendicolare al
segmento che passa per il suo punto medio. Prima di passare alla costruzio-
ne ti ricordiamo che:
Dr. Geo ha un che ti può essere utile per molti motivi.
manuale in linea
Il manuale si attiva cliccando sull’icona che rappresenta un salvagente: è
buona norma quando si incontra un problema abituarsi a consultare il ma-
nuale per risolverlo autonomamente; solo dopo aver consultato il manuale,
se il problema persiste, puoi chiedere aiuto al prossimo. Ricorda anche che
il Manuale di Dr. Geo è scaricabile in diversi formati dal sito ufficiale del
progetto Dr. Geo e che molti materiali e
http://www.ofset.org/drgeo
articoli su questo software sono disponibili in Internet.
Per costruire l’asse puoi procedere come segue: 7
1.3. MACRO-COSTRUZIONI
A B
Figura 1.1: Costruzione dell’asse del segmento AB
1. apri Dr. Geo
2. apri una nuova figura File → Nuovo → Figura
3. disegna due punti sul foglio e assegna ad essi i nomi A e B
4. congiungi i due punti con un segmento
5. disegna la circonferenza di centro A passante per B
6. disegna la circonferenza di centro B passante per A
7. determina con il comando i due punti di intersezione
Intersezione
tra le due circonferenze
8. traccia la retta passante per questi due punti.
Se ora provi a deformare dinamicamente la figura 1.1, spostando ad
esempio il punto A, noterai che nonostante gli oggetti geometrici cambino la
loro forma, le relazioni geometriche che intercorrono tra loro si mantengono
invariate. In altri termini noterai che mentre il segmento AB cambia la
costruzione restituisce sempre il suo asse.
Esercizio 1 Costruisci con Dr. Geo baricentro e ortocentro di un triangolo
qualsiasi.
1.3 Macro-costruzioni
Le macro-costruzioni rappresentano uno strumento interno a Dr. Geo uti-
le per ampliare l’insieme dei suoi oggetti di base. Attraverso una macro-
8 CAPITOLO 1. GEOMETRIA INTERATTIVA
costruzione puoi aggiungere a Dr. Geo una nuova costruzione che per qual-
che ragione ti interessa. Come in ogni costruzione geometrica si definiscono
un certo numero di oggetti geometrici in ingresso e si ottengono alcuni og-
getti geometrici in uscita. L’utilizzatore di Dr. Geo stabilisce gli oggetti
iniziali e finali della macro-costruzione, che poi verrà salvata in un file con
estensione .mgeo.
La costruzione di una macro deve essere logicamente coerente: gli oggetti
finali della macro devono dipendere in modo esclusivo dagli oggetti iniziali in
modo che il software possa ricostruire, senza ambiguità, l’intera costruzione.
Da questo punto di vista Dr. Geo è in grado di memorizzare la sequen-
za della costruzione e di riprodurla ogni volta che l’utilizzatore, dopo aver
azionato il comando di esecuzione di una macro, andrà a cliccare su oggetti
geometrici che coincidono con gli oggetti in ingresso della macro stessa.
Esercizio 2 Dopo aver studiato il paragrafo dedicato alle macro, che trovi
nel capitolo Funzioni Avanzate del manuale in linea di Dr. Geo [2], scrivi
una macro che costruisce un triangolo equilatero di lato dato e salvala nella
tua cartella personale Macro con nome triangoloequilatero.mgeo.
1.4 Teorema di Aubel
In Matematica si incontrano spesso delle proposizioni che prendono il nome
di teoremi. Un teorema è una proposizione che è conseguenza logica di
altre proposizioni precedentemente dimostrate o assunte come vere (postu-
lati). All’interno di un teorema si riconoscono ipotesi e tesi. Le ipotesi
sono le assunzioni di partenza, la tesi è ciò che si vuole dimostrare essere
conseguenza logica delle ipotesi e dei postulati. L’insieme dei ragionamenti
logici che dalle ipotesi permettono di giungere alla tesi prende il nome di
dimostrazione del teorema.
Come esempio completo di utilizzo di Dr. Geo e per chiarire i concetti
appena introdotti analizziamo un curioso teorema dovuto ad Aubel.
Teorema 1 Sia ABCD un quadrilatero convesso e i punti L, M , N e O
siano i centri dei quadrati costruiti sui lati del quadrilatero come in figura
1.2. Allora:
1. i segmenti LN e M O hanno la stessa lunghezza;
2. i segmenti LN e M O sono perpendicolari.
Dal momento che Dr. Geo non implementa la costruzione di un qua-
drato realizziamo innanzitutto una macro-costruzione che dati gli estremi
di un segmento AB permetta di disegnare il quadrato di lato AB e il suo
centro. Salviamo questa macro e ricorrendo ad essa
quadratocentro.mgeo
riproduciamo la figura relativa al teorema di Aubel.
Le ipotesi del teorema sono: 9
1.4. TEOREMA DI AUBEL
N
C
D M
O
A B
LN = 4.595770
L
M O = 4.595770
Figura 1.2: Teorema di Aubel
ABCD è un quadrilatero convesso
• L, M , N , O sono i centri dei quadrati costruiti sui lati del quadrilatero.
•
La tesi del teorema è che:
LN = M O
• LN M O che si legge ”LN è perpendicolare a M O”.
• ⊥
In questo contesto non siamo interessati alla dimostrazione (non immediata)
del teorema ma a comprendere il significato geometrico del suo enunciato.
Osserviamo subito, anche se su questo aspetto torneremo nel seguito, che
con Dr. Geo non si possono dimostrare teoremi in quanto lo strumen-
to informatico non è in grado di effettuare dei ragionamenti. L’ambiente
di geometria dinamica ci è tuttavia utile per penetrare più in profondità
il significato dell’enunciato del teorema e, attraverso lo strumento di movi-
mento, per analizzarne efficacemente diversi casi particolari.
Utilizzando righello e goniometro di Dr. Geo misuriamo le lunghezze dei
segmenti LN e M O e l’angolo che essi formano. Deformando dinamicamen-
te il quadrilatero noteremo che in effetti quanto previsto dal teorema trova
sempre perfetta corrispondenza.
Esercizio 3 Cosa accade se il quadrilatero non è più convesso?
10 CAPITOLO 1. GEOMETRIA INTERATTIVA
Capitolo 2
Script Guile per Dr. Geo
Il linguaggio di programmazione di cui imparerai i fondamenti è Scheme.
Scheme è un linguaggio di alto livello. Altri linguaggi di alto livello di
cui forse hai sentito parlare sono il Pascal, il C e Java.
Come avrai intuito sentendo l’espressione linguaggio di alto livello esistono
anche linguaggi di basso livello, talvolta chiamati linguaggi macchina.
In modo non completamente corretto possiamo dire che i computer possono
eseguire solamente programmi scritti in linguaggio di basso livello: i pro-
grammi scritti con linguaggi di alto livello devono necessariamente essere
elaborati prima di essere eseguiti.
I programmi scritti in linguaggio di alto livello sono generalmente più facili
da scrivere rispetto a quelli in linguaggio di basso livello, in quanto i lin-
guaggi di alto livello sono stati progettati con lo scopo esplicito di risultare
facilmente leggibili e utilizzabili dagli esseri umani.
Uno dei modi con cui i programmi di alto livello vengono trasformati in
programmi di basso livello prende il nome di interpretazione. Un inter-
prete legge il programma e lo esegue trasformando ogni riga di istruzioni
in una azione. L’interprete elabora il programma un po’ alla volta, alter-
nando la lettura delle istruzioni all’esecuzione dei comandi che le istruzioni
descrivono: Codice Interprete Risultato
Sorgente
In Dr. Geo è disponibile l’interprete Guile del linguaggio Scheme. L’uti-
lizzatore di Dr. Geo può quindi eseguire degli script in linguaggio Scheme
che hanno in ingresso (input) un sottoinsieme (anche vuoto) di oggetti geo-
metrici e che restituiscono in uscita (output) un numero o una stringa. Gli
esempi che seguono hanno lo scopo di chiarire il modo peculiare in cui Guile
viene utilizzato in Dr. Geo. 11
12 CAPITOLO 2. SCRIPT GUILE PER DR. GEO
2.1 Aritmetica Scheme
Il primo gruppo di esempi che analizziamo mostra come gli script Guile per-
mettano di disporre in Dr. Geo di una calcolatrice. In generale i simboli
speciali che rappresentano elaborazioni di tipo matematico vengono chiama-
ti in programmazione operatori. I valori che l’operatore usa nei calcoli sono
detti operandi. Le operazioni fondamentali che consideriamo inizialmente
sono l’addizione la sottrazione la moltiplicazione e la divisione
+, -, * /.
Il primo esempio che consideriamo consiste nell’eseguire in Dr. Geo il
prodotto tra numeri naturali: 20 32
·
Il procedimento per effettuare il calcolo è il seguente:
si seleziona il comando di Dr. Geo che attiva uno script Guile;
• si clicca con il mouse direttamente sullo sfondo del foglio di lavoro nel
• punto in cui si desidera che compaia il valore di uscita dello script (nel
nostro caso il risultato dell’operazione). Una volta collocato lo script
apparirà la scritta celeste Dr. Genius;
si clicca sul comando per modificare le proprietà di un oggetto (icona
• a chiave inglese) e cliccando successivamente sulla scritta Dr. Genius
si aprirà una finestra di dialogo;
a questo punto si cancella tutto il contenuto dello script e lo si sosti-
• tuisce con l’espressione Scheme (* 20 32)
finalmente si clicca su o su e si ottiene il risultato 640.00.
• Applica Ok
L’esempio precedente è istruttivo sotto diversi punti di vista:
1. l’implementazione delle operazioni in Scheme, diversamente da come
siamo abituati, avviene scrivendo prima l’operatore e successivamente
gli operandi su cui l’operatore agisce. Nell’esempio precedente prima
viene posto l’operatore di moltiplicazione cui seguono i due operandi
20 e 32;
2. il linguaggio Scheme, come vedremo anche nel seguito, utilizza abbon-
dantemente le parentesi. Nell’esempio precedente l’espressione Scheme
che implementa il calcolo del prodotto è stata racchiusa tra parentesi
tonde.
Oltre a questo, osserviamo che il risultato dell’operazione viene rap-
presentato in forma decimale con un’approssimazione di due cifre dopo la
virgola. Il numero di cifre dell’approssimazione può essere controllato mo-
dificando le di Dr. Geo [2].
Preferenze 13
2.2. FUNZIONI MATEMATICHE
Un secondo esempio di script, leggermente più complesso del precedente,
permette di calcolare il risultato dell’espressione aritmetica:
(20 (32 + 2) 15) : 2
· −
Tecnicamente la procedura da seguire per ottenere il risultato in Dr. Geo
è la stessa vista nell’esempio precedente. L’unica differenza è rappresentata
dall’espressione Scheme che serve per implementare l’espressione aritmetica:
( / ( - (* 20 (+ 32 2)) 15) 2 )
In questa espressione compaiono più operatori e quindi assume un’impor-
tanza cruciale l’ordine in cui le diverse espressioni vengono valutate. Le
regole di precedenza vengono gestite in Scheme attraverso l’annidamento
di parentesi, in modo del tutto simile a quanto accade in matematica.
Esercizio 4 Calcola con Dr. Geo il risultato di 2 : (3 12.5) + 3.4 e
−
confrontalo con quello di una calcolatrice tascabile.
2.2 Funzioni matematiche
Un ulteriore esempio di implementazione di un calcolo matematico consiste
nel valutare la seguente espressione:
p 2
11 + 23
Lo script che permette di eseguire il calcolo è<