computational thinking, computer science, and...
TRANSCRIPT
ComputationalThinking,ComputerScience,andCoding
http://img2.wikia.nocookie.net/__cb20130510160248/despicableme/images/e/e9/Despicable-Me-Minions_thumb10.jpg
ProfessorLeen-Kiat SohDepartmentofComputerScienceandEngineeringUniversityofNebraska,Lincoln,NEE-mail:[email protected]
Hmm….
Whatiscomputational
thinking?
http://www.picturescraze.com/movies/1528/despicable+me+minion.html
WhatisComputationalThinking?
• A wayofthinkingforlogically andmethodicallysolvingproblems– E.g.,purposeful,describable,replicable
• Includesskills suchas– Decomposition– PatternRecognition– Abstraction– Generalization– AlgorithmDesign– Evaluation
Decomposition
• Breakingdownaprocessintoasetofsmallersub-processestoallowustodescribe,understand,orexecutetheprocessbetter– Dividingataskintoasequenceofsubtasks– Identifyingelementsorpartsofacomplexsystem
Decomposition
ExamplesofDecomposition
• Whenwetasteanunfamiliardishandidentifyseveralingredientsbasedontheflavor,wearedecomposingthatdishintoitsindividualingredients
• Whenwegivesomeonedirectionstoourhouse,wearedecomposing theprocessofgettingfromoneplacetoanother(e.g.,city,interstate,etc.)
• Whenwebreakacourseprojectintoseveralsteps,wearedecomposingthetaskintosmaller,moremanageablesubtasks
• Inmathematics,wecandecompose anumbersuchas256.37 asfollows:2*102+5*101+6*100+3*10-1+7*10-2
PatternRecognition
• Noticingoridentifyingsimilaritiesorcommondifferencesthatwillhelpusmakepredictionsorleadustoshortcuts–Welookforpatterns whenweplaygamestodecidewhentodocertainthings
– Basedonexperience,wedevelopshortcutsmappingproblemcharacteristicstosolution
PatternRecognition
ExamplesofPatternRecognition
• Welookforpatternswhenchoosingaregistrarwhenwecheckout
• Driverslookforpatternsintraffictodecidewhetherandwhentoswitchlanes
• Peoplelookforpatternsinstockpricestodecidewhentobuyandsell
• Scientistslookforpatternsindatatoderivetheoriesandmodels
• Welookforpatternsandlearnfromthemtoavoidrepeatingthesamemistake– “Lasttimewedidthis,itwas…let’strysomethingdifferent…”
Abstraction
• Preservinginformationthatisrelevantinacontext,andforgettingorsuppressinginformationthatisirrelevantinthatcontexttosolveaproblem–Weuseabstractiontoorganize things:• Ahumanisamammal,amammalisananimal,andsoon
– A “bigpicture”sowecanreasonwithoutthinkingaboutthedetails
– Transferlearningorlearningbyanalogy
Guttag,JohnV.(2013-01-18).IntroductiontoComputationandProgrammingUsingPython(Spring2013editioned.).Cambridge,Massachusetts:TheMITPress.ISBN9780262519632.
Abstraction
ExamplesofAbstraction
• Aworldmapisanabstraction oftheearthintermsoflongitudeandlatitude,helpingusdescribethelocationandgeographyofaplace
• Asignofanaisleinastore—e.g.,Walmart—isanabstraction oftheitemsavailableinthataisle
• Whenwewriteabookreport,wesummarizeanddiscussonlythethemeorkeyaspectsofthebook,itisabstraction
• Whenwetellastoryordescribeamovietoourfriends,whydon’twedescribeeverysingledetailofthestoryormovie?
Generalization
• Identifyingcommonorsharedcharacteristicsbetweentwodomainsorproblemssuchthatmodelsorsolutionsofonecouldbeadaptedorappliedtotheother– Mammalsarewarmblooded,givelivebirth,havehair,andsoon.Anelephantisamammal.Therefore,itiswarmblooded,givelivebirth,havehair…
– GroupprojectAsuccessfulbecauseofgoodteamworkstrategy.ApplysamegoodteamworkstrategytogroupprojectBshouldworktoo.
– Dealswithtrends,norms,outliers,scalability
Generalization
ExamplesofGeneralization
• Facebooktriestorecommendadstousersbasedonwhattheygeneralizefromwhatourfriendslike
• Googlesearchidentifiespopularkeywordsindifferentregionsatdifferenttimesandsuggeststhosekeywords(inautocompleteandalsocorrection)usingageneralization-likeprocess
• Amazon.com andNetflixmodelandcategorizetheircustomers,usegeneralization—inferencing—topredictwhattheircustomersareinterestedin,andmakerecommendationsaccordingly
• Whenwedon’thavecompleteinformation,weresorttogeneralizationtomakedecisions(sometimesincorrectly)– Thinkabout:biases,stereotypes,superstitions
AlgorithmDesign
• Developingastep-by-stepstrategyforsolvingaproblem– Analgorithmisasequenceofstepsthatsolvesaproblem• Inputà output• Effective
– Algorithmicthinkinginvolvesbothcreation andexecution ofanalgorithm
AlgorithmDesign
ExamplesofAlgorithmDesign
• Whenacookwritesarecipeforadish,heorsheiscreatinganalgorithmthatotherscanfollowtoreplicatethedish
• Whenyourfriendwritesdowntheinstructiontogettoherhouse,heorsheisspecifyingasequenceofsteps—thatis,analgorithm—foryoutofollow(SeeGooglemaps!)
• Whenateachergivesasetofinstructionstocarryoutanexperiment,heorsheisspecifyinganalgorithmforyoutofollowtocollectandanalyzedata
• Whenyoufollowaninstallationmanualtoassembleabookshelf,youareexecutinganalgorithm
Evaluation
• Checkingtoseewhetherasolutionisgood– Algorithmcorrectness– Requirements(meetingconstraints,designprinciples,etc.)
– Performance(usability,efficiency,speed,complexity,reliability,etc.)
Evaluation
https://medium.com/@FreeCodeCamp/coding-explained-in-25-profound-comics-8847ea03819c
ExamplesofEvaluation
• Whenwecook,wetasteourdishesandthenadjustflavoringaccordingly
• Whenwefoldapaperairplane,wetestitsflight,andthenreviseeitherthedesignorthe“execution”tomakeitflybetter
• Whenwejogorbike,wekeeptrackofourbreathing,joints,etc.,anddecidewhethertostop,goslower,orgofaster
• Whenwecarryoutaphysicsexperiment,say,tofindtherelationshipbetweentemperatureandpressure,wecheckourdata,investigatewhyitdoesnotmatchthetheory,redoourexperimentalsetup,andrecollectdatapoints…
So,ComputationalThinkingis…
• Decomposition• PatternRecognition
• Abstraction• Generalization• AlgorithmDesign
• Evaluation
Waitaminute…Thesearethings
thatwealreadyarecapableofdoing!!!
http://www.wallpapersax.com/wallpaper/cartoons-despicable-me-minion.html
WhatisComputerScience?
• Therearemanydefinitions.ComputerSciencehelpsuspracticeourcomputationalthinkingbetter,faster,withlargerandmorecomplexproblems… …
WhatisComputerScience?
Science:Welearn,model,anddescribehowhumansthink,makedecisions,andsolveproblems……
http://www.zastavki.com/eng/Cartoons/wallpaper-51616.htmhttps://www.pinterest.com/pin/357332551655575856/
Engineering:Webuildcomputersolutionstosupportandautomate
humanthinking,decisionmaking,problemsolving
...
WhatisComputerProgramming?
• Aprocessthatleadsfromanoriginalformulationofacomputingproblemtoexecutableprograms
CODE…
http://en.wikipedia.org/wiki/Computer_programminghttp://www.beyondhollywood.com/despicable-me-2-teaser-trailer-now-with-more-minion-abuse/
CODE…CODE…
Code.orghttp://code.org
GotoVideoFromcode.org
Resources• ManyCS&ComputationalThinkingeducation/outreachresourcesavailableonline• NationalCenterforWomen&InformationTechnology(NCWIT)“in-a-box”kitshttp://ncwit.org
• Ensemble,aPortalforComputingEducatorshttp://www.computingportal.org
• CSEducationWeekhttp://www.csedweek.org• Google’sComputerScienceforHighSchool(CS4HS)
http://cs4hs.com
• Google’sExploringComputationalThinkinghttps://edu.google.com/resources/programs/exploring-computational-thinking/
• Code.orghttp://code.org• …
• “CSUnpluggedisacollectionoffreelearningactivitiesthatteachComputerSciencethroughengaginggamesandpuzzlesthatusecards,string,crayonsandlotsofrunningaround.”
30
“Theactivitiesintroducestudentstounderlyingconceptssuchasbinarynumbers,algorithmsanddatacompression,separatedfromthedistractionsandtechnicaldetailsweusuallyseewithcomputers.”
“CSUnpluggedissuitableforpeopleofallages,fromelementaryschooltoseniors,andfrommanycountriesandbackgrounds.Unpluggedhasbeenusedaroundtheworldforoverfifteenyears,inclassrooms,sciencecenters,homes,andevenforholidayeventsinapark!”
CSUnpluggedhttp://csunplugged.org
31
go
CSUnpluggedhttp://csunplugged.org
CreatedbyTimBell,IanH.Witten,andMikeFellows,andillustratedbyMattPowell
32
CSUnpluggedAsNCWIT’sComputerScience-in-a-Box:UnplugYourCurriculum
(http://www.ncwit.org/resources/computer-science-box-unplug-your-curriculum)
• Examples– Magiccardshow– errordetection– Treasureisland– finitestatemachines– Sortinggame– sortingnetworks
Finally…
“Computationalthinkingisafundamentalskillforeveryone,notjustforcomputer
scientists.Toreading,writing,andarithmetic,weshouldaddcomputational
thinkingtoeverychild’sanalyticalability.”–JeannetteWing,CACM 2006
34
Finally…ComputationalThinkingis…
• Conceptualizing,notprogramming– ComputerScienceisnot just computerprogramming
• Fundamental,notroteskill– Askillneededbyeveryonetofunction
• Awaythathumans,notcomputers,think– Humansarecleverandcreative;computerstakeinstructionsfromhumans
• Ideas,notartifacts– Ideasgivebirthtoartifacts
• It’sforeveryone– Notjustforcomputerscientist;butforeveryone
35
SpecialBond:ComputationalThinkingandCS
• Articulationofcomputationalthinkingskillsandprocessesintoreusablecomputerprograms(e.g.,instructingmachinestodopatternrecognition)viacodingmakesusmoreawareandattentiveofcomputationalthinking
• … andmore efficientandeffectiveinpracticingcomputationalthinkinginlearning,problemsolving,etc.
36
Flavorsof ComputationalThinking…
Denning,P.(2017).RemainingTroubleSpotswithComputationalThinking,CommunicationsoftheACM,60(6):33-39.
References
• http://www.google.com/edu/computational-thinking• PaulCurzon’s“SoWhatisComputationalThinking”• JeannetteM.Wing’s“ComputationalThinking”,CommunicationsoftheACM,March2006,pp.33-35
• https://en.wikipedia.org/wiki/Computer_science
“It'sanenergyfieldcreatedby all livingthings.Itsurrounds us and
penetrates us;itbindsthe galaxytogether.”
Obi-WanKenobiintroducedLukeSkywalkerandmostof us to theForce for the firsttimeinStarWars:ANewHope
“It'saskill practiced by all livingthings.Itsurrounds us and
penetrates us;itbindsproblemsolving(andlearning,discovery,…)
together.”
Leen-Kiat Soh onthefundamentalityofComputationalThinking.
“Maycomputationalthinkingbewithyou.”
https://images-na.ssl-images-amazon.com/images/G/01/aplusautomation/vendorimages/65fa961e-8f22-4fe6-a420-3c3c26dd2953.jpg._CB289161999__SL300__.jpg