Estratto del documento

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 risorse informatiche che vengono rilasciate con codice sorgente aperto, accompagnate da un copyright che ne sancisce la proprietà intellettuale e con licenza GPL (GNU General Public License) o derivata, in modo da renderle liberamente 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 riduttivamente, 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 internazionale 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 risorse 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 dinamica. L’ambiente in cui si opera, rappresentato dal software libero Dr. Geo, offre una potente integrazione tra motore di manipolazione dinamica 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 confinato 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 pedagogico.

Oltre a questo osserviamo che il lettore, che al termine di questo percorso 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 espressamente per la didattica della programmazione Scheme.

http://www.plt-scheme.org

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 nella 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 geometria euclidea piana e per un primo approccio ai fondamenti della programmazione in linguaggio Scheme. Nessuno di questi due aspetti, preso singolarmente, rappresenta una novità nel campo del software per l’educazione: gli ambienti per lo studio interattivo della geometria (Kig, Kseg, Cabri, Sketchpad ...), così come i linguaggi di programmazione orientati alla 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 coordinate), 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 aumentare il numero degli oggetti per stimolare l’utente a fare questo autonomamente. Trattandosi di un software libero si hanno due strade per raggiungere questo risultato: utilizzare gli strumenti avanzati messi a disposizione 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 di 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 costruzione 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 manuale 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 Intersezione i due punti di 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 utile per ampliare l’insieme dei suoi oggetti di base. Attraverso una macro-costruzione puoi aggiungere a Dr. Geo una nuova costruzione che per qualche ragione ti interessa. Come in ogni costruzione geometrica si definiscono un certo numero di oggetti geometrici in ingresso e si ottengono alcuni oggetti 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 sequenza 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 (postulati). 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 MO hanno la stessa lunghezza;
  2. I segmenti LN e MO sono perpendicolari.

Dal momento che Dr. Geo non implementa la costruzione di un quadrato 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

MO = 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 = MO.
  • LN ⟂ MO che si legge ”LN è perpendicolare a MO”.

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 strumento 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 movimento, per analizzarne efficacemente diversi casi particolari.

Utilizzando righello e goniometro di Dr. Geo misuriamo le lunghezze dei segmenti LN e MO e l’angolo che essi formano. Deformando dinamicamente 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 programmi 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 linguaggi 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 interprete legge il programma e lo esegue trasformando ogni riga di istruzioni in una azione. L’interprete elabora il programma un po’ alla volta, alternando 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’utilizzatore di Dr. Geo può quindi eseguire degli script in linguaggio Scheme che hanno in ingresso (input) un sottoinsieme (anche vuoto) di oggetti geometrici 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 permettano di disporre in Dr. Geo di una calcolatrice. In generale i simboli speciali che rappresentano elaborazioni di tipo matematico vengono chiamati 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 sostituisce con l’espressione Scheme (* 20 32);
  • Finalmente si clicca su Applica o su Ok e si ottiene il risultato 640.00.

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 abbondantemente 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 rappresentato in forma decimale con un’approssimazione di due cifre dopo la virgola. Il numero di cifre dell’approssimazione può essere controllato modificando 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’importanza 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

Anteprima
Vedrai una selezione di 22 pagine su 101
Scheme per Dr. Geo Pag. 1 Scheme per Dr. Geo Pag. 2
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 6
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 11
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 16
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 21
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 26
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 31
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 36
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 41
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 46
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 51
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 56
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 61
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 66
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 71
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 76
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 81
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 86
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 91
Anteprima di 22 pagg. su 101.
Scarica il documento per vederlo tutto.
Scheme per Dr. Geo Pag. 96
1 su 101
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi