Marletta-Massimo Piegatura della carta dragoni tartarughe ... · informatica finalizzato alla...
Transcript of Marletta-Massimo Piegatura della carta dragoni tartarughe ... · informatica finalizzato alla...
MARLETTAMassimo
http://learningdesigner.org/viewer.php?uri=/shared/fid/1cc3b4e97b6d2034b68eaf90fdb5784c3e2f15cd3fb22e525628e722bb3263cc
urlaccorciato:https://v.gd/p4A0wb
Elencoallegati:
• 01–SchedaMERLO1-Ricorsione
• 02–SchedaMERLO2-Autosimilarità
• Autosimilarità1
• Autosimilarità2
• piegaturadellacarta
• schedegenerazioneRPS
• schedaproprietadellaRPS
• AlberoStringRewriting
• schedastringrewriting
• DragonCurveconPythoneOpenGL
• DragonCurveconPythoneTurtle
• DragonCurveconScratch
• EsempidipianteconStringRewriting
• StringRewriting-Pianta
• trenini
• pista
• Verificafinale
• Rubricadivalutazione
• buildup.py
• generate1.py
• string_rewriting_2.py
LearningDesignfor:Piegaturadellacarta,dragoni,tartarugheetrenini
ContextTopic:Ricorsione,sequenzenumeriche,autosimilarità,curvefrattaliTotallearningtime:
Numberofstudents:22
Description:
CONTESTOLa classe è una seconda del Liceo Scientifico delle Scienze Applicate. In aggiunta
all’attività curriculare di Informatica (curata da un docente diverso da quello di
Matematica), alcuni alunni della classe (insieme ad altri alunni di varie classi dellascuola) svolgono come attività extra curriculare un corso di approfondimento di
informatica finalizzato alla partecipazione alle gare delle Olimpiadi Italiane di
Informatica; tale attività aggiuntiva è curata dallo stesso docente di Matematica
(responsabile d’Istituto per le Olimpiadi Italiane di Informatica). Nell’ambito di tale
attivitàvengonoapprofonditiiconcettidistrutturedati(array,alberi,grafi)edeimetodi
perlalorocostruzioneelaloronavigazione.Inoltre,tuttalaclassesvolge–comeattivitàdipotenziamento–un’orasettimanalediCAD(ComputerAidedDrafting),curatadallo
stessodocentediMatematica(accreditatopressoAICAcomeEsaminatoreECDL-CAD).
Tale attività fornisce agli alunni le abilità necessarie a realizzare disegni tecnici conl’ausiliodelcomputerutilizzandosoftwarespecifici(p.es.AutoCAD).
PREREQUISITIGli alunni conoscono il concetto di grafo e di albero, che hanno approfondito ed
utilizzato lo scorso anno per rappresentare relazioni, analizzandone le principaliproprietà. Gli alunni conoscono il concetto di vettore e di componenti di un vettore,
affrontato sia in geometria che – lo scorso anno – in Fisica (con lo stesso docente diMatematica). Hanno anche una conoscenza (sia pure ancora non completa) delle
funzioni goniometriche seno e coseno e di come queste possono essere utilizzate per
determinare le componenti di un vettore di angolo assegnato. Gli alunni inoltreconoscono le basi della programmazione informatica e in particolare hanno una
conoscenzadibasedellinguaggiodiprogrammazionePython,utilizzatofindalloscorso
annodaldocentediMatematicaperesemplificareprocedimentiesemplicialgoritmi(siaperlaMatematicacheperlaFisica).Taleconoscenzaèmaggiormenteapprofonditaper
queglialunnichepartecipanoall’approfondimentoextracurriculareper leOlimpiadidi
Informatica.GlialunnihannoinoltresvoltoqualcheesperienzadicodingconScratch.
LUOGHIEMODALITÀOPERATIVEGlialunnilavorerannoinpiccoligruppiformatidall’insegnante,avendocuradiinserire
inciascungruppiunalunno“esperto”diinformaticasceltofraquellichefrequentanoil
potenziamento per le Olimpiadi di Informatica. Le attività si svolgeranno in aula
informaticaconLIMeunapostazionecomputerperognigruppo.
DESCRIZIONEGENERALEDELMODULOIlmoduloproponeunpercorso che esplora le sequenzenumeriche evidenziandone le
proprietà, quale adesempio l'auto-similarità eporta gli alunni alla scopertadidiversialgoritmi di generazione. In particolare viene approfondita la sequenza "Regular
Paperfolding", ovvero la sequenza dei versi delle piegature ottenute ripiegando su sestesso ripetutamenteun fogliodi carta. Ilmodulohaunapprocciobasato sull'inquiry,
sulteam-workesulleattivitàlaboratorialichetendonoasvilupparelecapacitàlogiche,
matematicheealgoritmichedeglialunni.Leattivitàdelmodulanopuntanoasvilupparecompetenzeedabilitàlogiche,matematiche,algoritmiche,oltreadabilitàpratichequali
l'implementazionediuncodice/algoritmo, ildisegnotecnicoalcomputer.Spuntiverso
ulteriori discipline sono possibili (p.es. le ScienzeNaturali a proposito della strutturadelle piante o a proposito della trasmissione genetica richiamata dal procedimento di
StringRewriting).
I passi logici fondamentali per il raggiungimento degli obiettivi cognitivi nonché le
traccedeglisviluppiedeglialgoritmivengonofornitidaldocentesottoformadischede
perillavorodigruppo.TalischedesarannoinalcunicasifornitidaldocenteprimadellalezioneutilizzandolapiattaformaeducativaFidenia,checonsente–senzacheglialunni
debbanoinseriredatipersonalisensibili–dicreareunaclassevirtuale.
AimsIlmoduloprendespuntodall'indaginesuunaparticolaresequenzanumerica(laRegular
Paperfolding Sequence) per condurre gli allievi alla scoperta dell'autosimilarità sotto
varieformemaanchediprocessilogicigeneralizzabiliadaltresequenze.L'attivitàtendeasvilupparelecompetenzediproduzioneeimplementazionedialgoritmieametterein
praticaalcuneabilitàdidisegnoalcalcolatore(CAD)sviluppatedaglialunninelrelativo
corsodipotenziamento.
OutcomesIdentify(Knowledge):IdentificaresequenzenumericheeproprietàApply(Application):Applicarealgoritmiperlacostruzionedisequenzenumericheeperlalororappresentazionesottodiverseforme.
Construct(Application):Generaresequenzenumeriche.Analyse(Analysis):Analizzaresequenzenumericheeloroproprietà.Generalise(Synthesis):Generalizzareproprietà.Showawarenessof(Affectivelearningoutcomes):Essereconsapevolidellavorosvoltodalgruppo.
Appreciate(Affectivelearningoutcomes):Apprezzareilcontributodeglialtri.Beresponsiveto(Affectivelearningoutcomes):Essereresponsabiledellapropriapartedellavorocomplessivo.
Teaching-LearningactivitiesWarming-up&brainstorming.ReadWatchListen 10minutes 22students TutorisavailablePer sollecitare il recupero delle conoscenze pregresse e stimolare l’interesse perl’argomentodaproporre,l’insegnantevisualizzasullaLIMunaprimaschedaMERLO(la
schedaMERLO 1 allegata), nella quale il Target Statement (TS) è la Ricorsione. Nella
schedailnodoconcettualevienepresentatosottotreformediverse:ilTSèl’espressionericorsivadel fattoriale.Lostessoconcettovienepresentatosotto le forme(Q2)diuna
vignettaediunalberobinarioincuiogninodo(X)hacomefiglisestesso(X)eunaltro
elemento (Y) e così via ricorsivamente. Gli altri riquadri della scheda mostrano un
concetto diverso presentato nella stessa forma del TS (Q3), nel caso specifico le
espressioniperilcalcolodellepotenzedelbinomio,eunconcettodiversopresentatoinformadiversa(Q4),ovveroquellodifunzione.
ReadWatchListen 10minutes 22students TutorisavailableDopoladiscussioneguidatal’insegnanteproponeunasecondaschedaMERLO(lascheda
MERLO 2 allegata), nella quale il TS è l’autosimilarità. Tale nodo concettuale viene
rappresentatosottodifferentiforme:ungraficodelsetdiMandelbrot(TS),unospartitomusicale incuiscegliendosoloalcunenotesecondounintervalloregolaresiottienela
stessa melodia (Q2) e una sequenza numerica che ripropone gli stessi valori sia che
vengaselettatutta,siachevengalettaprendendosologlielementidipostopari,sologli
elementidipostimultiplidi4,di8,ecc. (Q2). Glialtririquadridellaschedamostrano
concettidiversiche inuncasocondividono lastessa formadelTS(Q3)e inuncasosipresentanosottounaformadifferente(Q4).
Discuss 10minutes 22students TutorisavailableDurante ladiscussionee l’avanzamentodi congetturedapartedegli alunni, il docente
introduceilconcettodiautosimilaritàenechiariscealcuniaspetti,sottolineandocome
questapossa trovarsi inalcunestrutture innaturache “si ripetonoallo stessomodosuscale diverse”. Ciò accade per esempio nelle piante, nei frutti. La stessa proprietà puòtrovarsi,oltrechenelle formeenellesequenzedinumeri,ancheinaltrestrutture,peresempio inmelodiemusicali.A taleproposito l’insegnantemostraalcune immaginied
invitaglialunniaricercarealtriesempisulweb.
Piegaturedellacarta.ReadWatchListen 10minutes 22students TutorisavailableProseguendo la discussione avviata con le due schedeMERLO, l’insegnante compie la
seguentedimostrazione:-prendeunastrisciadicartaelaripiegasusestessadiversevolte(semprenellostesso
verso);
- apre delicatamente la striscia di carta, senza annullare le pieghe effettuate, ma
lasciandochequestesidisponganoadangolorettomantenendoilversoimpostoconla
piegatura.
Lastrisciadicartaadessorappresentaunpercorsocheèpossibileschematizzarecome
una sequenzadi istruzioni. Inquesto casoogni istruzionedeve servire a chiarire se è
necessariosvoltaredi90°versodestraoversosinistra.E’pertantosufficienteassociare
unsimboloconvenzionaleadognunaditalidueistruzioni(peresempio0perlasvoltaa
sinistrae1perlasvoltaadestraoviceversa).Osservandolastrisciapiegataèpossibiledeterminarepertantounasequenzadi0e1.Laproceduraeseguitaperlapiegaturadella
striscia di carta è riportata, ad esempio, sul sito: http://www.cutoutfoldup.com/216-
dragon-curve.phpdacuiètrattal'immagineallegata.
Practice 15minutes 22students TutorisavailableL’insegnanteinvitaglialunniaripeterel’esperimentoeadannotarelasequenzadi0e1
derivantedallepiegheottenute.Tuttiglialunniotterranno(amenodiunoscambiofra0
e1)unaporzionedellasequenzaseguente:
1101100111001001110110001100100…Qualcuno probabilmente riconoscerà la sequenza numerica della scheda MERLO
precedente.
Investigate 10minutes 22students TutorisavailableL’insegnante spiega che la sequenza ottenuta si chiama Regular PaperfoldingSequence (RPS), proprio perché corrisponde alla sequenza di angoli nei due versiottenuti dalla piegatura “regolare” (ovvero sempre nello stesso verso) di un foglio di
cartaenepreannunciagli elementi allo scopodi indagarne leproprietà (imetodipergenerare la sequenza e quindimettere in grado gli alunni di ricavare gli elementi nel
numerovolutosarannointrodottisubitodopo).L’insegnantefanotarecheconsiderando
solo gli elementi di postopari si ottienedi nuovo la stessa sequenza e argomenta sulfattocheciòimplichi(ricorsivamente)cheancheglielementidipostoparinellanuova
sequenza ottenuta (che sono gli elementi di posto multiplo di 2 al quadrato nellasequenza originaria) devono rappresentare la stessa sequenza, e così via per tutte le
potenze di due. L'insegnante può anche fare riferimento al sito The On-Line
EncyclopediaofIntegerSequences(https://oeis.org)checatalogaedescrivediversele
sequenze numeriche intere. In particolare la sequenza proposta si trova in:
https://oeis.org/A014577.
CostruiamolaRegularPaperfoldingSequence.Investigate 15minutes 22students TutorisavailableL’insegnante, sollecitando la riflessione sulle operazioni di piegatura prima realizzate,
guidaladiscussioneversolaformulazionedialcunimetodiiterativipergenerarelaRPS
che, fra l’altro, consentono di formulare diverse congetture sulle sue proprietà.
L’insegnante fornisce gli studenti le schede allegate in cui sono riepilogati i passaggifondamentali dei metodi proposti. Le dette schede serviranno per la successiva fase
pratica incollaborazione.Leschedesonostatemesseadisposizionedelgruppo-classe
sulla piattaforma Fidenia affinché gli alunni possano affrontare individualmente iproblemitrattatiprimadelladiscussione–investigazioneinclasse.
Collaborate 35minutes 22students TutorisavailableDopo l’esposizione dei metodi e la discussione, l’insegnante forma dei piccoli gruppi,
avendocuradiinserireinciascungruppounalunno“esperto”diinformaticasceltofra
quellichefrequentanoilpotenziamentoperleOlimpiadidiInformatica.L’insegnantefa
scegliereadognigruppounodeimetodidigenerazionedellasequenzachiedendoloro
implementarloinPythonoinScratch,conl'aiutodelleschede.Inquestafaseglialunni
del corso di preparazione alle Olimpiadi di Informatica operano come tutor. Alcuni
esempidirisultatiattesisonoallegati.
Discuss 15minutes 22students TutorisavailableUnelementodiognigrupporiassumeillavorosvoltoallaclasse.Unelementodiciascun
grupporiassumeillavorosvoltoallaclasse.L'insegnantepromuoveunadiscussionesui
risultatiottenutidaciascungruppo.
AnalizziamoleproprietàdellaRegularPaperfoldingSequence.Investigate 10minutes 22students TutorisavailableUnavolta forniti agli alunnigli strumentipergenerare la sequenza, l’insegnanteavvia
unadiscussioneguidataperlaricercadelleproprietàdellasequenza.Unatracciaperla
discussione si trova nel documento allegato, nel quale – fra l’altro – a partire dalle
proprietà della sequenza viene formulato un ulteriore metodo iterativo per la sua
generazione.
Collaborate 25minutes 22students TutorisavailableL’insegnanteinvitaigruppiadimplementaretalealgoritmodigenerazione.Unelementodi ogni gruppo riassume il lavoro svolto alla classe.Unapossibile implementazione in
linguaggioPythonèallegata.
Discuss 15minutes students TutorisavailableUn elemento di ciascun gruppo riassume il lavoro svolto alla classe. L'insegnante
promuoveunadiscussionesuirisultatiottenutidaciascungruppo.
CostruiamolaRegularPaperfoldingSequenceconRicercaeSostituisci.Investigate 15minutes 22students TutorisavailableL’insegnante conduceunadiscussioneper riflettere suimetodi iteratividi costruzionedellasequenzavistifinora.L’insegnanteguidaglialunniallacomprensionedelfattoche
la sequenza può essere ottenuta anche con un procedimento ricorsivo utilizzando la
tecnicadiStringRewriting. I dettagli della tecnica si trovanonella schedaallegata. Intale attività possono essere fatti riferimenti ad argomenti di Scienze Naturali (p.es.
Genetica).
Practice 15minutes 22students TutorisavailableDopo l’esposizione e la discussione, l’insegnante invita gli alunni (in piccoli gruppi) a
rappresentare inGeoGebrauna struttura ad albero che esemplifica taleprocedimentoricorsivo (gli alunni possono ispirarsi alla struttura ad albero presente nella scheda
MERLO1).Unesempiodirisultatoattesoèallegato.
ReadWatchListen 10minutes 22students TutorisavailableL’insegnantemostraaltriesempidi frattaligeneratiperStringRewriting(vediesempi
allegati) e introduceuna implementazionedi tale procedura ricorsiva inPython (vediallegato)emostrailrisultatoottenuto.
Collaborate 10minutes students TutorisavailableL'insegnante invita i gruppi (con il supporto della scheda allegata e l’assistenza degli
alunni“esperti”)ariprodurrel'algoritmoproposto.
Disegniamoildrago.Practice 20minutes 22students TutorisavailableL’insegnanteeglialunni“esperti”assistonoisingoligruppinellacodificadelleistruzioni
per rappresentare graficamente la sequenza generata. Ciò può essere fatto in Python
(per esempio utilizzando la libreria matplotlib che fornisce funzioni per larappresentazionegraficadi listenumericheanalogheaquellediMATLAB,o la libreriagraficaOpenGL,o–inmanierapiùsempliceedefficace–lalibreriaTurtlechefornisceleistruzioni per la cosiddetta turtle graphic o grafica della tartaruga) oppure in Scratch,utilizzando la programmazione a blocchi. Nel caso della Turtle Graphic
l’implementazione può essere realizzata leggendo un elemento alla volta la sequenzanumerica e impartendo alla tartaruga i comandiLeft(90) eRight(90) a seconda delvalore letto, seguiti da un comando Forward(). Nel caso di altre librerie grafiche piùgenerali,occorrememorizzare laposizionecorrentedelpenninomedianteuna listadidueelementi(coordinataxecoordinatay)eilsuoorientamentoinun'altralistadidue
elementi (componente x e componente y). Alcuni esempi dei risultati attesi sono
allegati.Alfinedirenderemaggiormenteevidenteilfattochelacurvanonintersecasestessa,èconvenientedisegnarlacongliangoliarrotondatiosmussati.
Discuss 10minutes 22students TutorisavailableL’insegnantespiegachelalineaottenutaprendeilnomediDragonCurvee,insiemeaglialunni,neanalizzalecaratteristiche.Unacaratteristicainteressanteèquellachelacurvanon interseca mai se stessa. L’insegnante invita gli alunni a ricercare sul web
informazionisutalecurva.
Curveetrenini.ReadWatchListen 5minutes 22students TutorisavailableL’insegnantemostraunaimmagineincuisonoraffiguratiibinaricomponibiliutilizzati
peritreninielettricioppureipezzicomponibilidellapistaperautoelettricheediscute
sulfattochelaRegularPaperfoldingSequencepuòrappresentareunpercorsocostituitodaunasequenzaditalipezziincuiiduesimboli0e1rappresentanolecurvea90°inun
senso e nell’altro. La caratteristica della Dragon Curve di non intersecare se stessaassicuracheipezzinonsidebbanomaisovrapporre.
Produce 25minutes 22students TutorisavailableL’insegnanteinvitaglialunniarealizzareundisegnoCADsecondoleseguentiistruzionioperative:-Disegnareilpezzo“curva90°versosinistra”,scrivereuno“0”vicinoalpezzo
edefinireunbloccoconilnome“Curva0”-Disegnareilpezzo“curva90°versodestra”,
scrivere “1” vicino al pezzo e definireunblocco con il nome “Curva1” -Realizzareun
percorsoseguendolaRPSinserendoripetutamenteilblocco“Curva0”incorrispondenza
diun“0”dellasequenzaeilblocco“Curva1”incorrispondenzadiun“1”dellasequenza.
L’insegnainvitaglialunniaverificareapartiredaldisegnoleproprietàdellasequenza.
UnesempiodirisultatoattesoèildisegnoallegatorealizzatoinAutoCAD.Neldisegnoè
rappresentatalaDragonCurve(realizzataconiblocchi"curva90°versodestra"e"curva
90°versosinistra")ottenutaperalcunipassidellaproceduraiterativa.Adognipassoil
pezzo centrale è rappresentato in rosso; si osservi come gli altri pezzi sono dispostiintornoaquellocentralesecondoleregoleprecedentementeindividuate.
Discuss 5minutes 22students TutorisavailableL'insegnanteincoraggialadiscussionesuilavorisvolti.
Dallestringheallepiante.ReadWatchListen 10minutes 22students TutorisavailableL’insegnante, riprendendo i discorsi su come è possibile generare la Regalar
Paperfolding Sequence mediante String Rewriting, con l’aiuto del web, mostra altriesempidifrattaligeneraticontaletecnica(allegati).Inparticolareillustral’algoritmoin
Python allegato per la generazione di una pianta, descrivendone schematicamente la
legge.IntaleattivitàpossonoesserefattiriferimentiadargomentidiScienzeNaturali.
Il programma verrà messo a disposizione degli alunni sul gruppo-classe della
piattaforma Fidenia affinché gli alunni possano sperimentare liberamente, a casa,ulterioricasidiStringRewriting.
Practice 10minutes 22students TutorisavailableAttraversoricerchesulwebglialunnipotrannoindividuarealtreleggidisostituzioneeprovare a modificare il programma per visualizzarle. Alcuni esempi tratti da
http://www.cs.unh.edu/~charpov/programming-lsystems.htmlsonoallegati.
Verificafinaleevalutazione.Produce 45minutes 22students TutorisavailableLe verifica a conclusione dell’attività consiste nel proporre agli alunni altre sequenze(nel caso specifico la “One’s Counting Sequence” e l’AlternatePaperfolding Sequence),
chiedendo loro di indagane alcune proprietà, di scrivere algoritmi per generarle e di
rappresentaleriproducendoquindi,inmanieraoriginale,quantosvoltoinmodoguidato
duranteilmodulo.
Discuss 10minutes 22students TutorisavailableL'insegnantepromuoveladiscussionesuglielaboratisvolti.
Valutazione: l'insegnanteosserveràtutto il lavorosvoltodaigruppidurante ilmodulo,annotando interazioni e comportamenti. Il lavoro di gruppo, i prodotti, nonché
l'elaborato finale saranno valutati con riferimento alla rubrica allegata. Gli indicatori
presiinconsiderazionecomprendonolacapacitàdischematizzareerisolvereproblemi,
la capacità di esporre i processi logici seguiti e i risultati ottenuti, la capacità di
relazionarsi all'interno del gruppo e di contribuire al raggiungimento di un risultato
comune.
MASSIMOMARLETTASOLUZIONE:TS=RICORSIONE1.Contrassegnaleaffermazioni(almenodue)checondividonolostessosignificatomatematico.2.Indicaleragionichetihannoguidatonellascelta
rATS
1! = 1
$! = $ ⋅ $ − 1 !
rBQ2
rCQ2
rDQ3
' + ) * = '* + 2 ∙ ' ∙ ) + )*
' + ) - = '- + 3 ∙ '* ∙ ) ++3 ∙ ' ∙ )* + )-
' + ) / = '/ + 01 ∙ '/21 ∙ ) + ⋯
+0/21 ∙ ' ∙ )/21 + )/
rEQ4
1
42
39
1
f(x)
MASSIMOMARLETTASOLUZIONE:TS=AUTOSIMILARITA’1.Contrassegnaleaffermazioni(almenodue)checondividonolostessosignificatomatematico.2.Indicaleragionichetihannoguidatonellascelta.
rAQ2
rBQ2
rCQ3
rDQ4AxB a b c d1 (a,1) (b,1) (c,1) (d,1)2 (a,2) (b,2) (c,2) (d,2)3 (a,3) (b,3) (c,3) (d,3)4 (a,4) (b,4) (c,4) (d,4)
rETS
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
MetodiperlacostruzionedellaRegularPaperfoldingSequence
SCHEDA1:Costruzioneperinterposizionedielementi
Analizzandoilprocedimentoseguitoperlapiegaturadellastrisciadicarta,sipuòosservarequantosegue:-Laprimapiegaformataametàdellastrisciarappresentaun�.-Unasuccessivapiegaturainserisceun�primaeuno�dopol’elementogiàpresente.-Ogniulteriorepiegaturainseriscenellasequenza�e�alternatifraglielementiesistenti.Lasequenzapuòquindiesseregeneratasecondoloschemaseguente:1)Inizialmentehosolol’elemento�:�2)Inseriscoallasuasinistra�eallasuadestra�:
���3)Dispongofraglielementiesistentiunasequenzaalternatadi�e�:
�������4)Ripetoilpasso3.
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
MetodiperlacostruzionedellaRegularPaperfoldingSequence
SCHEDA2:Costruzioneperaggiuntadielementiincoda(anti-simmetria)
Analizzandoilprocedimentoseguitoperlapiegaturadellastrisciadicarta,sipuòosservarequantosegue:-Laprimapiegaformataametàdellastrisciarappresentaun�.- Immaginiamooradi piegare ripetutamente il foglioedi riaprirlo. Troveremo l’elemento� alcentrodellasequenzaeunostessonumerodielementi(pieghe)primaedopodiquesto.Ciòperchéognivoltacheabbiamopiegatoilfoglio(dopolaprimavolta)abbiamocreatounnumeroparidipiegheequamentedistribuiteprimaedopol’elemento�centrale.Osserviamocheognicoppiadipieghe(inposizionisimmetricherispettoall’elemento�centrale)èformatadaduepiegheaventiversoopposto,datochevengonocreatesuunfogliocheègiàripiegatosusestesso.Allora, se immaginiamodi conoscere solo laprimametàdella sequenza,possiamo ricostruire lasecondametàcomesegue:-Accodoun�checostituiràl’elementocentraledellasequenzacompleta.-Accodoglielementiprecedenti l’� invertendo l’ordine (per lasimmetriadelleposizionidellepieghe)efacendoilcomplementare(perchélepieghecorrispondentisonoopposte)Lasequenzaottenutapuòessereampliataripetutamenteiterandoilprocedimentodescritto.1)Inizialmentehosolol’elemento�:�2) Accodo un altro elemento � (che diventa elemento centrale) e il complementaredell’elemento�,lo�,chesitroveràinposizionesimmetricarispettoall’�:
���3) Accodo un altro elemento� (che diventa elemento centrale) e i complementari dei treelementiprecedentiinposizionisimmetricherispettoaquesti:
���� accodo������ scrivol’elementosimmetricodi�,cambiatoin������� scrivol’elementosimmetricodi�,cambiatoin�������� scrivol’elementosimmetricodi�,cambiatoin�4)Ripetoilpasso3.
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
MetodiperlacostruzionedellaRegularPaperfoldingSequence
Costruzioneperaggiuntadielementiincoda(complementaredelvalorecentrale)
Analizzandoilprocedimentoseguitoperlapiegaturadellastrisciadicarta,sipuòosservarequantosegue:-Laprimapiegaformataametàdellastrisciarappresentaun�.- Immaginiamooradi piegare ripetutamente il foglioedi riaprirlo. Troveremo l’elemento� alcentrodellasequenzaeunostessonumerodielementi(pieghe)primaedopodiquesto.Ciòperchéognivoltacheabbiamopiegatoilfoglio(dopolaprimavolta)abbiamocreatounnumeroparidipiegheequamentedistribuiteprimaedopol’elemento�centrale.Osserviamochelepieghedellasecondametàdelfogliosonolaripetizionediquelladellaprimametà,eccettoquellacentralecheèopposta.Allora, se immaginiamodi conoscere solo laprimametàdella sequenza,possiamo ricostruire lasecondametàcomesegue:-Accodoun�checostituiràl’elementocentraledellasequenzacompleta.- Accodo gli elementi precedenti tale� per ottenere gli elementi della seconda metà dellasequenza,modificandosoloilloroelementocentrale.1)Inizialmentehosolol’elemento�:�2) Accodo un altro elemento� (che diventa elemento centrale) e il ricopio l’elemento�precedente,modificandoloperòin�:
���3) Accodo un altro elemento� (che diventa elemento centrale) e ricopio i tre elementiprecedenti
���� accodo������ ricopio������� ricopio�modificandoloin�������� ricopio�4)Ripetoilpasso3.
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
Scheda:InvestigazionedelleproprietàdellaRegularPaperfoldingSequence
NumerodielementinellagenerazioneiterativaImetodiiterativiperlagenerazionedellasequenzaprevedonocheadognipassovengaaggiuntounnuovoelementopiùtantielementiquantisonogiàpresentinellasequenza:
¡¡¡¡¡ sequenzaalpasson-1¡¡¡¡¡�¡¡¡¡¡ sequenzaalpassonIlnumerodielementialpassonsipuòpertantoesprimerericorsivamentecome:
!" = 2 ⋅ !"&' + 1conlacondizioneinziale(passobase):
!' = 1datochealpasso1abbiamounsoloelemento.Lasuccessionedelnumerodielementiadognipassoèquindi:
!" = 1, 3, 7, 15, 31, …Ilterminegeneraleditalesuccessioneèstatoda:
!" = 2" − 1Ciòpuòesseredimostratofacilmentesesiriscrivelarelazionericorsivaaggiungendo1alprimoealsecondomembro:
!" + 1 = 2 ⋅ !"&' + 1 + 1dacui
!" + 1 = 2 ⋅ !"&' + 2
(!" + 1) = 2 ⋅ (!"&' + 1)E’quindievidentecheiterminidellasuccessione(!" + 1)raddoppianoadognipasso.Pertanto:
!" + 1 = 2"dacuilarelazionecercata.
Estrazionedisotto-sequenzeInvestighiamolecaratteristichedialcunesotto-sequenzedellaRegularPaperfoldingSequence:
���������������������…Seconsideriamosologlielementidipostodispari,otteniamounasequenzaalternatadi�e�:���������������������…Seinvececonsideriamosologlielementidipostopari,otteniamolaRegularPaperfoldSequence!
���������������������…informula:
234 = 24∀7 ∈ ℕOvviamenteseconsideroglielementidipostoparinellasotto-sequenzaottenuta(chesonoglielementidipostomultiplodi4nellasequenzadipartenza),ottengodinuovolaRegularPaperfoldSequence:
���������������������…informula:
2:4 = 24∀7 ∈ ℕNaturalmente, proseguendo il ragionamento possiamo concludere che otterremo la RegularPaperfoldSequencecomesotto-sequenzadeglielementidipostomultiplodiqualsiasipotenzadi2:
23;⋅4 = 24∀7 ∈ ℕ, ∀ℎ ∈ ℕQuindi:laRegularPaperfoldSequencequindicontienesestessa(comesotto-sequenza)infinitevolte!PerrendereciòpiùevidenteprovaascriverelaRPSincolonna,poiscrivilaandandoacapoognidueelementi,poiscrivilaandandoacapoogniquattroelementi.OsservacheglielementisegnatiinrossorappresentanotuttilaRPS:
������
������������
��������������������
…
����…
��������…
Ilfattochequalunquesotto-sequenzadielementi23;⋅4 coincidaconlaRPS,implicaanchecheglielementidipostodispariinognunaditalisotto-sequenzesianoalternativamente1e0.Riepilogando,considerandoglielementidellasotto-sequenzaavremo:
23;⋅4 = 2=, 1, 23, 0, 2:, 1, 2?, 0, …equindi:
23;⋅4 =24se7%2 = 01se7%4 = 10se7%4 = 3
Avendoindicatocon%l’operazionedimodulo(restodelladivisioneintera).Taleproprietàpuòessereutilizzatacomeulterioremetodopercostruirelasequenza.Glielementidellasequenzapossonoinfattiesseregenerati(inordine)conlaregola:
!D =!D/3 seF%2 = 01 seF%4 = 10 seF%4 = 3
perF > 0
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
MetodiperlacostruzionedellaRegularPaperfoldingSequence
SCHEDA4:CostruzionemedianteStringRewriting
Inparticolare,unaanalisideimetodiprecedenticonducealleseguenticonsiderazioni:Lasequenzacompletaècostituitadatreporzioni:
RPS=(X)�(Y)incuilaporzione(X)haasuavoltalaforma:
(X)=(X)�(Y)mentrelaporzione(Y)halaforma:
(Y)=(X)�(Y)E’pertantopossibilegenerarelasequenzaeffettuandoricorsivamentelesostituzioni:
(X)�(Y)[(X)�(Y)]�[(X)�(Y)]
{[(X)�(Y)]�[(X)�(Y)]}�{[(X)�(Y)]�[(X)�(Y)]}Volendotroncarelasequenzaadunalunghezzafinita,dopounnumerosufficientedipassisisostituiscecomesegue:
(X)=�mentrelaporzione{Y}halaforma:
(Y)=�Eciòterminalaproceduraricorsiva,dallaqualesiottienelasequenza:
{[���]�[���]}�{[���]�[���]}
Tracciaperl’implementazione:-DefinireduefunzioniX()eY(),ognunadellequalirestituiscecomerisultatol’espressionechedeveesseresostituita:
X()restituiscelalista:X()+1+Y() Y()restituiscelalista:X()+0+Y()
(in queste espressioni l’operatore “+” ha il significato di concatenare liste di valori, come inlinguaggioPython).LasequenzasiottienecomerisultatodellachiamatadellafunzioneX().Taleproceduracondurrebbeadunnumero infinitodipassi,datocheognunadelledue funzionichiamerebbe se stessa all’infinito. E’ pertantonecessario troncare la serie di chiamatedopounnumeroprefissatodipassi,alloscopodiottenerelasequenzatroncata.CiòpuòesserefattoprevedendonelleduefunzioniX()eY()unparametro(count)chevienedecrementatoadognichiamataefacendosìcheognunadiessesirisolvaadunrisultato(1perX()e0perX())quandotaleparametroarrivaa0.Loschemadellaproceduraèpertanto:
! "#$%& = ! "#$%& − 1 + 1 + ,("#$%& − 1) /0"#$%& > 01 /0"#$%& = 0
, "#$%& = ! "#$%& − 1 + 0 + ,("#$%& − 1) /0"#$%& > 0
0 /0"#$%& = 0LasequenzasiottienecomerisultatodiX(N)doveNvienesceltoparialnumerodipassidopoiqualitroncareilprocedimento.
“Piegaturadellacarta,dragoni,tartarugheetrenini”VERIFICAFINALE
1 LaOne’sCountingSequencepuòesserecostruitaconiseguentipassi:-ilprimoelementoè0-adognipassoaccodatantielementiquantisonoquelliesistenti,incrementandolidi1.Iprimipassidellaproceduraforniscono:00,10,1,1,20,1,1,2,1,2,2,3…Il significato di tale sequenza è quello di indicare quante cifre “1” si trovano nellarappresentazioneinbase2deinumericorrispondenti.Scriviunalgoritmoperlagenerazioneditalesequenza.Stampaglielementidipostopari.Cosaosservi?Stampaglielementidipostomultiplodi4.Cosaosservi?Provaageneralizzaretaleproprietà.
2 LaAlternatePaperfoldingSequence(APS)èlasequenzanumericageneratadallapiegaturainduediunastrisciadicartama,adifferenzadellaRegularPaperfoldingSequence(RPS),inquestocasoilfogliononvienepiegatosemprenellostessoversomaalternativamenteneidueversi.Utilizzandounastrisciadicartapersperimentare l’operazione,scrivialcuni terminidellasequenza.Congettura e verifica un algoritmo per la generazione della APS (assumi che il primoelementosia1).(Suggerimento:unalgoritmosemplicepotrebbeessereunavariantedelmetododell’anti-simmetriapropostoalezione)
3 OsservalaAPSgeneratadaltuoalgoritmoecompletaleseguentiaffermazioni:
a) Glielementichesitrovanoinpostimultiplidi4sonotutti_____.b) Glielementichesitrovano___postidopoquestisonotutti0.
Modificailtuoalgoritmopervisualizzarelesotto-sequenzedell’APSconisolielementidipostoparieconisoloelementidipostodispari.Cosaosservineiduecasi?FormulaunmetodoperottenerelaAPScomesotto-sequenzadellasotto-sequenzadeglielementidipostodispari.
4 RappresentainAutoCADunpercorsosecondolaAPS.Modificailtuoalgoritmoperrappresentaregraficamentel’APS(p.es.conlaturtlegraphic)econfrontailgraficoottenutoconiltuodisegnoinAutoCAD.
“Piegaturadellacarta,dragoni,tartarugheetrenini”
prof.MassimoMarletta
RUBRICADIVALUTAZIONE
LivelloCriterio
Basso Medio Alto
Capacità di Problem Solving
Il problema non viene compreso correttamente. Le informazioni chiave mancano o non sono interpretate correttamente. Non riesce ad impiegare le conoscenze pregresse. Non giustifica le conclusioni. I risultati non hanno una coerenza interna.
L’analisi del problema è limitata e/o ambigua. Applica poco le conoscenze pregresse. Non sempre giustifica i passaggi logici.
Comprende e verbalizza in modo chiaro ed efficace gli obiettivi ed i termini del problema. Applica in maniera efficace le conoscenze pregresse, riuscendo a generalizzare e ad astrarre. Integra tali conoscenze con le nuove informazioni per giungere alla risoluzione del problema.
Capacità di comunicazione
La descrizione dei procedimenti seguiti e dei risultanti ottenuti è nulla o incoerente
Giunge a conclusioni sostanzialmente corrette ma non è in grado di esporle.
Descrive in maniera chiara, precisa e sintetica i processi logici e le conclusioni.
Lavoro di gruppo
Non produce scambi di informazioni e di conoscenza all’interno del gruppo. Non ascolta gli altri.
Scambia alcune informazioni con gli altri membri del gruppo.
Lavora insieme agli altri membri del gruppo per ricavare conoscenze, applicarle e giungere ai risultati desiderati. Ascolta gli altri e rispetta i loro punti di vista. Contribuisce a rendere il gruppo un ambiente positivo e stimolante per l’apprendimento.
Page 1 of 1
buildup.py 27/07/17, 18:05
## COSTRUZIONE DELLA REGULAR PAPERFOLDING SEQUENCE## Massimo Marletta## numero di elementi della sequenza da generareN = 500
# genera i primi N valori della sequenzadef buildup(N): seq = [] for i in range(0, N): expand(seq) return seq
# aggiunge un valore alla sequenzadef expand(seq): i = len(seq)+1 # indice dell'elemento da aggiungere in base 1 if i % 2 == 0: seq.append(seq[i // 2 - 1]) # -1 perché gli indici in Python
iniziano da 0 elif i % 4 == 1: seq.append(1) elif i % 4 == 3: seq.append(0) # restituisce il valore aggiunto return seq[-1]# scrive la sotto-sequenza dei valori di posto multiplo di kdef printsub(seq, k): for i in range(1, N//k): print("{}{}".format(" "*(k-1), seq[k*i-1]), end="") print()
# genera la sequenzasequence = buildup(N)# visualizza le sottosequenze degli elementi di posto k*2**ifor i in range(0, 6): printsub(sequence, 2**i)
Page 1 of 1
generate1.py 27/07/17, 18:06
## PAPER FOLDING SEQUENCE## metodi iterativi per generare la sequenza## Massimo Marletta## aggiunge elementi alla sequenza Regular Paperfold Sequence# sfuttando la proprietà anti-simmetricadef expand1(seq): if seq: # aggiunge alla sequenza l'elemento centrale 1 # e i complementari degli elementi precedenti in ordine invertito return seq + [1] + [1-x for x in seq[::-1]] return [1]
# aggiunge elementi alla sequenza Regular Paperfold Sequence# facendo il complementare dell'elemento centraledef expand2(seq): if seq: # elementi presenti nella sequenza b = seq[:] # modifica l'elemento centrale b[int(len(b) / 2)] = 1 - b[int(len(b) / 2)] # aggiunge alla sequenza l'elemento centrale 1 # e i complementari degli elementi precedenti in ordine invertito return seq + [1] + b return [1]
seq = [1]seq = expand1(seq)seq = expand1(seq)seq = expand1(seq)print(seq)
seq = [1]seq = expand2(seq)seq = expand2(seq)seq = expand2(seq)print(seq)
Page 1 of 1
string_rewriting_2.py 27/07/17, 18:06
## DRAGON CURVE (PAPERFOLDING SEQUENCE)## genera la sequenza mediante string rewriting## Massimo Marletta
def X(count): if count: return X(count-1) + [1] + Y(count-1) else: return [1]def Y(count): if count: return X(count - 1) + [0] + Y(count - 1) else: return [0]
sequence = X(6)print(sequence)