Post on 14-Apr-2017
transcript
LearningbyDoing:ilpensierocomputazionale
VittorioScaranoDipartimentodiInformatica– UniversitàdiSalerno
vitsca@unisa.it
"Learningbydoing"- V.Scarano 1
Obiettivi
"Learningbydoing"- V.Scarano 2
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 3
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 4
Alcunecompetenzedelnostrosecolo- 1• CriticalThinking andSystemsThinking– Coordinarelarealizzazionediartefattichehannounfunzionamentocomplesso,basatisullamessa“asistema”dicomponentidibase
• Problem solving– Crearesistemisoftwarechedevonorisolvereunproblema,aiutaaidentificareipassinecessari
• Curiosità– Progettazioneesplorativa:“chesuccedese?”
"Learningbydoing"- V.Scarano 5
Alcunecompetenzedelnostrosecolo- 2
• Apprendimentocollaborativo– Lafacilitàdilavorareinsiemeaprogetticondivisiaumental’effettodell’apprendimento
• Responsabilizzazioneecuriosità– Scegliereladirezionedelprogettoconlasperimentazioneinterattiva
"Learningbydoing"- V.Scarano 6
Competenzedel21-mosecolo• Pensareinmanieracreativa• Comunicareinmanierachiara• Essereingradodianalizzarecon
sistematicità• Collaborazione• Progettareinmanieraciclica• ApprendereconcontinuitàPeresserefluentiinunalingua,nonsideveessereingradosolodileggere,maanchediscrivereedesprimersicorrentemente• ..cosìperletecnologiedigitali
"Learningbydoing"- V.Scarano 7
I“natividigitali”
• UnaindovinatadefinizionediPaoloAttivissimo:– “personacheènataquandoletecnologiedigitaligiàerano
capillarmentediffuse…– manonperquestocicapisceautomaticamentequalcosa”
• Esempio:Snapchat..unaapp chemandafotochescompaionodaltelefoninoentrouncertonumerodisecondisenzapoterlesalvare– i“natividigitali”sibevonolapromessadella“intimità”
• Mentretutti(gliinformatici)sannoche“cancellare”unfilenonbastaperevitarneilrecuperotramitetecnichepiùomenocomplesse– avoltebastascaricareunasemplicissimaapp!
"Learningbydoing"- V.Scarano 8
Lalimitazionedei“natividigitali”
• Abituatiausaredispositivi“connessi”,ignoranolebasidiquellocheutilizzano..
• ..esonoallamercédiqualsiasifenomeno“dimoda”• Alcuniesempi?
– Facebook elaprivacy– Wikipediaelaqualitàdelleinformazionisullarete– Lasicurezzadelleidentitàelaanonimia– Ilcontrollodapartedellemultinazionaliedeigrandiprovider(Apple,
Google,Samsung,Amazon)tramiteilmeccanismodelleapp• Oggigiornoglismartphone sonoLAmanierapernavigare
– nelprimotrimestredel2013,80milionidiPCvenduticontro250milionidismartphone
"Learningbydoing"- V.Scarano 9
Alcuniesempiinquestadirezione• IlmessaggiodiObamanella“ComputerScienceEducation
Week”,moltopubblicizzatosuimediadituttoilmondo:– “Nongiocatesolosulvostrotelefonino,programmatevoiun
gioco!”– “Impararequestecompetenzenonèsoloimportanteperilvostro
futuro– èimportanteperilfuturodell’America”• Lacapacitàdiinteragireinmanieraconsapevoleconla
tecnologiadigitaleèunpuntochiavedellaeducazionedeigiovani– “Computerliteracy”
• USA,UK,Cina,…tuttevannoindirezionediformarenuovelevecheabbianounapproccioattivoefattivoconletecnologiedell’informazioneedellacomunicazione
"Learningbydoing"- V.Scarano 10
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 11
Pensierocomputazionale
• Computational thinking• Processocheappartienealdominiodelproblem solving echene
offreunarappresentazione• Fasiprincipali
– formulazionedelproblemaalfinediconsentirel’impiegodiunostrumentoautomaticoperlarisoluzione
– Acquisizione,analisieorganizzazionelogicadeidatiprovenientidalcampo– Rappresentazionedeidati,fondatisumodelliesimulazioni– Realizzazionidisoluzioniautomatiche,ripetibiliesostenibili,attraversolo
sviluppodelpensieroalgoritmico– Sviluppodidiversesoluzionipossibili(conobiettivodiselezionarela
combinazionemigliore)– Generalizzazioneetrasferimentodellasoluzione
"Learningbydoing"- V.Scarano 12
Nonsoloprogrammazione..
• Ilpensierocomputazionalesifondasullacapacitàdiastrazione
• Modalitàconcuiunessereumanosiesprime– descrivendoilproblema– tracciandolasoluzione
• Il“pensierocomputazionale”puòesserevistocomeunachiaveinterpretativarilevantedell’informatica– pereducatori,formatori,ricercatorieprofessionisti
• Messaggi:– l’informaticaè“scienzagiovane”:moltorestadascoprire– l’informaticaètrans-disciplinare(applicazioniintuttelearee)
"Learningbydoing"- V.Scarano 13
Pensierocomputazionale:inpratica?
• “Ilprocessomentalecoinvoltonelformulareproblemielesoluzioniinmodocheessesianorappresentateinmanieradapoteressereeseguiteautomaticamente”
• Esempidi“Computational thinking”conScratch– Fireflies:progettodiScratchcreatodaTim,di8anni.Haselezionatolasuacanzonepreferitae,asecondadeltestodellacanzone,hacreatounasequenzatemporizzata(videoclip)cherappresentalacanzone
– Countries:simulazionecreatadaShannon 14anni.SimileaSimCity,èunasimulazionedipaesivirtuali,doveognigiocatoredecidecomereagireacrisieconomiche,agricoleepolitiche
"Learningbydoing"- V.Scarano 14
Programmazioneinterattiva
• Laprogrammazioneinterattivaevisualeaiutaasviluppareilpensierocomputazionale
• EsperienzeconutentidiScratchevidenzianoquestoprocesso
• Passi:– Creating– Personalizing– Sharing andcollaborating– Reflecting
"Learningbydoing"- V.Scarano 15
"Learningbydoing"- V.Scarano 16
ConcettibasedelPensieroComputazionale
• Utilizzandoambientidiprogrammazioneinterattivadimultimedia(comeScratch)gliutenti(progettistidiapplicazioni)“incontrano”:– sequenze– cicli– eventi– parallelismo– condizioni– operatori– dati
"Learningbydoing"- V.Scarano 17
ConcettibasedelP.C.:sequenze
• Unaattivitàvieneespressacomesequenzadi– step elementari– cheèpossibileeseguiredapartediuncomputer
• Classicoesempiodella“ricetta”dicucina– specificailcomportamentoperprodurreunrisultato
"Learningbydoing"- V.Scarano 18
ConcettibasedelP.C.:cicli
• Dallaesecuzionedialcunipassi,specificatisingolarmente..• ..allaspecificadisequenzechepossonoessereeseguiteinun
ciclo• Perfarfarealgatto4voltelasequenzadispostamentoe
attesa…
"Learningbydoing"- V.Scarano 19
ConcettibasedelP.C.:eventi
• Uneventoèunavvenimentochecausaunaltroavvenimento• Essenzialipermediainterattivi
– bottonestartdiunvideo– collisionedidueoggetticheaumentailpunteggio
• Alcuniesempi:
"Learningbydoing"- V.Scarano 20
ConcettibasedelP.C.:parallelismo
• Tuttiicomputermodernisupportanoilparallelismo– esecuzionesimultaneadiistruzioninellostessotempo
• Processorimulti-core,hyperthreading,processorigrafici,etc.
• Possiamofareprodurreunsuono,ballareeparlareallosprite,contemporaneamente
"Learningbydoing"- V.Scarano 21
ConcettibasedelP.C.:condizioni
• Lacapacitàdiprenderedecisionibasatesucondizioni,inmodochelaesecuzionedelprogrammaprevedadiversestradedapoteressereprese
• Necessitàdioperatoribooleaniedi“sensori”– chepermettonodiverificarealcunecondizionirelativeallosprite
"Learningbydoing"- V.Scarano 22
ConcettidelP.C.:operatori
• Supportoperoperazioni– matematiche– logiche– sustringhe
• Supportoevoluto,madibasecisonodiversedisponibilità
"Learningbydoing"- V.Scarano 23
ConcettibasedelP.C.:dati
• Gestiredatisignificachequestistrumentidevonopermetteredidefiniredellevariabiliedipoterne– assegnareunvalore– leggereunvalore– aggiornareilvalore
"Learningbydoing"- V.Scarano 24
• Tipicamente,neigiochi,necessariopermantenereilpunteggioolavelocità
BuonePrassidelPensieroComputazionale
• “Progettazioneincrementaleeiterativa”– processocontinuo,chereagisceafeedbackdaesperienze– metodologie“agili”insvilupposoftware
• “Testing edebugging”– verificareilfunzionamentoecorreggerlo,senecessario
• “Riutilizzoere-mixdiprogettiesistenti”– condivisionedicodice,buonepratichenelloscriverecodice
• documentazionedelcodice(commenti)– opensource
• “Astrazioneemodularizzazione”– ottimizzazionedelproprioprogetto(persprite,perevento,…)
• Teamworknellaprogettazione– pair programming
"Learningbydoing"- V.Scarano 25
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 26
Scratch(unapreview!)
• Scratchèunlinguaggiodiprogrammazioneeunacomunitàonlinedovepuoicrearestorieinterattive,giochieanimazioni– puoicondividereletuecreazioniconaltrepersoneintuttoilmondo.
• UsandoScratch,iragazziimparanoapensarecreativamente,aragionaresistematicamenteealavorareinmodocollaborativo.
• ScratchèunprogettodelLifelong Kindergartengroup deiMediaLabdelMIT.
• E'disponibilegratuitamentesulsito– http://scratch.mit.edu– Sipuòanchescaricareinlocale
"Learningbydoing"- V.Scarano 27
CaratteristichediScratch
• Ambientediprogrammazione– Visuale– Interattivo– Basatosulweb
• Scratchaiutaadimparareapensareinmodocreativo,aragionareinmanierasistematicaeacollaborare
• Scratchèprogettatoinmanieraspecificaperlafasciadietà8-16,– maèusatodapersoneditutteleetà,incontestieducatividiversi
• MilionidipersonestannocreandoprogetticonScratchacasa,ascuola– maancheinmusei,bibliotecheecentriricreativi.
"Learningbydoing"- V.Scarano 28
DoveèusatoScratch?• Scratchèstatoprogettatoavendocomeobiettivo
l'apprendimentoeladidattica– atuttiilivelliscolastici(dallescuoleelementarifinoall'università)
• Scratchvieneusatoperunavarietàdidiscipline– matematica,informatica,arte,studisociali
• Offresitidicollaborazioneconaltrieducatorichelousano(ScratchEd)
• MoltissimieducatorihannosupportatoicreatoridiScratchgiàdal2007,– siainambientidiapprendimentoformalecheinformale– insegnamentiatuttiilivelliK-12,– ricercatoridididatticaediinformatica,bibliotecari,educatoridi
musei,genitori."Learningbydoing"- V.Scarano 29
"Learningbydoing"- V.Scarano 30
QuantoèdiffusoScratch?
• Oltre4milionidiutentiregistratiintotale• 150nazioni• Oltre40traduzioniinlinguaggidiversi– Si,c’èanchel’italiano!J
"Learningbydoing"- V.Scarano 31
Utentiattivipermese
"Learningbydoing"- V.Scarano 32
Distribuzioneutentinelmondo
"Learningbydoing"- V.Scarano 33
Progetticondivisimensilmente
"Learningbydoing"- V.Scarano 34
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 35
Scratchcome“fattoreabilitante”
• Mediainterattiviesistono..benfatti..esonoutilizzatidanoiedaglistudenti
• Spesso,sono,solamentestrumentiperfruire dicontenuti– seguireunpercorsosceltodaaltri
• Nonèpossibilecreare,inventare,scoprire• Scratchpermettedicrearedeiprogrammiinterattivi
– combinandografica,foto,musicainsieme
• L’utentenonèpiùsolounutentemauncreatore– conlaresponsabilitàelagioiadiesserearteficediunpiccolo“mondo”
artificialeinminiatura– lecuileggi,elacuistruttura,sonofruttodellasuacreatività
"Learningbydoing"- V.Scarano 36
CaratteristichediScratch
• Tecnicadelloscratching usatadaidiscjockeydimusicahip-hop
• Consisteneltrascinaredischiinvinileconlemani,fondendobraniesistentiinmanieracreativa
• Scratchseguelostessoapproccio– mescolandodiversitipidimedia(grafica,foto,musica,suoni)– remixandoprogettidialtri– avendoancheunaaudiencecheinteragisceconl’autore
• Possibileinfatticondividere ilprogettosulsitodiScratch– cosìcomesicondividefoto,filmatisuYoutube,Facebook,Flickr,etc.
• La“socialità”elacollaborazionecomestrumentodisviluppo– enonsolocome“pericoli”daevitare
"Learningbydoing"- V.Scarano 37
LacollaborazionesuScratch
• Unprogettopuòesserevisibileatuttalacomunità• Glialtriutentipossono– vederequellochehofatto– commentare– riutilizzare(remix)partiotuttoilmioprogetto
• Strumento“social”– leamiciziesicreanosu“artefatti”digitali– lacomunitàdiScratchècontrollatadaigestoridelsito
• Cooperare(davicinoodaremoto)èbello
"Learningbydoing"- V.Scarano 38
ImparareconScratch
• Ideeeconcettidiinformaticamaanchedimatematica,fisicaetc.– coordinate– variabili– numericasuali– iterazione– condizioni
• Contestosignificativo,motivante– interattivoechefavoriscelasperimentazione
• unavariabileinalgebravienevissutacome“viva”all’internodiunesempioconScratch
• inquantoservepercontrollarelavelocitàdimovimento,ilpunteggio,etc.
• Ciclodellaprogettazione– progetta,realizza,controlla,correggierealizzalemodificheopportune
"Learningbydoing"- V.Scarano 39
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 40
UnosguardoaScratch- 1
"Learningbydoing"- V.Scarano 41
IngredientidibasedeiprogettidiScratch
• Iprogettisicompongonodioggettichiamatisprite– Ognispritehadiversicostumi,chepuòindossareinognimomento
• Unospriteèun’immagine– puoi,adesempio,costruiredeglispritepersonalizzati– disegnandoconunprogrammaapposito– usandoun’immaginepre-esistente– scattandounafoto
"Learningbydoing"- V.Scarano 42
Cosafannoglisprite?
• Possiamofornireistruzioniadognisprite• Possiamoindicargli– cosafare,dovemuoversiocosasuonare– comereagireadaltrieventi
• interazioneconaltrisprite• interazioneconl’utente(click,etc.)
• Perindicareadunospritecosafaresidevecostruireunoscript– bloccograficodiistruzioni
"Learningbydoing"- V.Scarano 43
"Learningbydoing"- V.Scarano 44
Il“palcoscenico”(stage) L’areadeglisprite
"Learningbydoing"- V.Scarano 45
L’areadeiblocchidausarepercrearegliscript Areadegliscript
Ilpalcoscenicodeglisprite:lostage- 1
"Learningbydoing"- V.Scarano 46
• Dovesimuoveilnostrosprite
• Inbassovieneindicatodovestapuntandolafrecciadelmouse
• Inalto,nomedelprogetto• Bandierinaverdeperfar
partireilprogramma• Pulsanterossoper
bloccarlo
Ilpalcoscenicodeglisprite:lostage- 2
"Learningbydoing"- V.Scarano 47
• Grandezza:– 480puntiinorizzontale– 360inverticale
• Ilcentrohacoordinate(0,0)
• Lecoordinateorizzontalivannoda-240a+240
• Lecoordinateverticalivannoda-180a+180
(240,180)
(240,-180)
(-240,180)
(-240,-180)
(0,0)
Laposizionedellosprite…
"Learningbydoing"- V.Scarano 48
• Nell’areadegliscript• Inaltoadestraèindicatalaposizionecorrentedellosprite
• cheall’iniziositrovasempreinposizione(0,0)
Lostage:unpalcoscenico…
"Learningbydoing"- V.Scarano 49
• Ilpalcoscenicodeglisprite– chenormalmenteè
mostratoinsiemeallealtrecomponentinellamodalitàdi“progettazione”
– lasalaprove?J• Puòandareinprimo
piano– sivainscena
• Modalitàpresentazione– usandoilpulsante
Questopulsanteriportaallamodalitàdiprogettazione
"Learningbydoing"- V.Scarano 50
"Learningbydoing"- V.Scarano 51
Areadeisuggerimenti:• siaprefacendoclicksul?• suggerisceun“primo”esempio,
passo,passo
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 52
"Learningbydoing"- V.Scarano 53
• siprendeunbloccodall’areadeiblocchiesiportanell’areadegliscript
• sicliccasulblocco(osull’insiemediblocchi)• lospriteesegueicomandi
ComesiusaScratch?3semplicipassi!
Unsempliceesempio
• Cosafaremo• Sequenzadipassi:
– portiamounbloccodall’areablocchiall’areadelloscript
• Nemodifichiamoilnumerodipassi,portandoloa100– sifaclicksu10,vieneevidenziato,scriviamo100
• Aquestopuntofacciamoclicksulblocconellaareadegliscriptelospritesimuoveràdi100passinelladirezioneincuista“guardando”
"Learningbydoing"- V.Scarano 54
Esempio:comefarmuoverelosprite
"Learningbydoing"- V.Scarano 55
"Learningbydoing"- V.Scarano 56
Primadifareclicksulblocconell’areadegliscript…
Dopo… laposizioneècambiata
"Learningbydoing"- V.Scarano 57
Cosasonoiblocchidiprogrammazione?
"Learningbydoing"- V.Scarano58
• Cisonodiversecategoriediblocchi– Movimento– Aspettofisicodellosprite– Suono– etc.etc.
• L’ideaèchediversiblocchipossonoesserecombinati
• …attaccandoliunosotto/dentrol’altro…
• …percrearecomportamentianchecomplessi
Unaltroesempio:facciamoballareilgatto• Ipassichevogliamofareseguiresono:
– muovitidi10passi– emettiunsuonoconiltamburo– muovitiindietrodi10passi(quindidi-10passi)– emettiunsuonoconipiatti
• percambiaretamburofacciamoclicksullasceltadeltipo,siapreunafinestraescegliamo(4)Piatto
• Dobbiamoportareiblocchiunosull’altronell’areadegliscript,facendoli“combaciare”(comepezzidiunpuzzle)
• Poi,vogliamofarripeterequestoballettoper10volte– utilizzandounnuovoblocco
"Learningbydoing"- V.Scarano 59
Esempio:comefarballarelosprite
"Learningbydoing"- V.Scarano 60
Unpassodidanza…
"Learningbydoing"- V.Scarano 61
Perripeterlo,andiamosuiblocchidi“controllo”eportiamo“ripeti”sulleistruzioniperilsingolopasso
"Learningbydoing"- V.Scarano 62
Facendoclick,ilnostrogattoripete10volteilballo!
"Learningbydoing"- V.Scarano 63
Comesiusanoiblocchi- 1• Ognibloccohaunasuaforma,cheindicainchemanierapuò
esserecombinato• Blocchi“impilabili”:
– hannounpuntosulfondochefuoriesceeincimacherientra– questiblocchipossonoformaredellesequenze– alcuniblocchihannounaareadiinput chepermettediinserireun
valore
– oppurediselezionareunvalore
– alcuniblocchihannounaboccapercontenerealtriblocchi(sequenze)
"Learningbydoing"- V.Scarano 64
Comesiusanoiblocchi- 2
• Blocchi“acappello”– possonostaresoloall’iniziodiunoscript– attendonocheavvengauneventoefannopartireloscript– importanteparadigmadiprogrammazioneeventiedi
programmazioneconcorrente– fondamentalepergestirelainterazioneconl’utente
• Usareiblocchi“acappello”permettedipoterscriverepiùscriptcontemporaneamente,eseguitiquandoserve– quandol’utentepremefrecciaasinistra..equandol’utente
premefrecciaadestra
"Learningbydoing"- V.Scarano 65
Esempio:facciamomuoverelospriteasecondadellafrecciachepremel’utente
"Learningbydoing"- V.Scarano 66
Comesiusanoiblocchi- 3
• Blocchi“sensori”• Rappresentanounvalore,presodall’ambientediScratch• ..chepuòessereutilizzatoall’internodiblocchiche
hannoareediinputarrotondate• Adesempio,ilsensore
– puòessereinseritocomestringain
– eripetutopersempre
"Learningbydoing"- V.Scarano 67
Esempio:Chiediamoallospritequantoèlontanodalmouse
"Learningbydoing"- V.Scarano 68
Comesiusanoiblocchi- 4
• Blocchi“didecisione”• Rappresentanounasceltachevieneeffettuatadalloscript,asecondadelvalorediveritàdiunaespressione
• Laespressionecontrollatadeveessereunrombo
• Oppureunaespressionediunoperatorecome:
"Learningbydoing"- V.Scarano 69
L’interazione
• Storieinterattiveconiblocchidisceltadall’utente• Inserimentodidati:
• Utilizzodellarispostainunoperatoreditestall’internodiunbloccodidecisione
"Learningbydoing"- V.Scarano 70
Esempio:Chiediamoilnomedell’utente.Giovannièunnostroamicoelosalutiamocalorosamente,altrimenticimanteniamosulformale!
"Learningbydoing"- V.Scarano 71
Esempio:Chiediamoilnomeel’età.Sehapiùdi18annisalutacon“Buongiorno!”con“Ciao”
"Learningbydoing"- V.Scarano 72
Agenda
• Competenzedelnostrosecolo• Pensierocomputazionale• Scratch:unaintroduzione• CreareeimparareconScratch• Unapresentazione• ComeprogrammareconScratch• Conclusioni
"Learningbydoing"- V.Scarano 73
Conclusioni• EdgarDale (?...MoltodibattutoJ )“Ilconodell’apprendimento”
"Learningbydoing"- V.Scarano 74
Contatti
• Coderdojo Salerno:https://coderdojosalerno.wordpress.com
"Learningbydoing"- V.Scarano 75