Computational Thinking is Informational Thinking

Download Computational Thinking  is  Informational Thinking

Post on 10-Feb-2016




0 download

Embed Size (px)


Computational Thinking is Informational Thinking. Greg Michaelson School of Mathematical & Computer Sciences H eriot-Watt University Models. we make models of the world to: understand it change it in predictable ways. - PowerPoint PPT Presentation


<p>(problem solving &amp;&amp; programming) || (problem solving || programming)?</p> <p>Computational Thinking is Informational ThinkingGreg MichaelsonSchool of Mathematical &amp; Computer SciencesHeriot-Watt</p> <p>1Computational Thinking is Informational Thinking21/11/2012Modelswe make models of the world to:understand itchange it in predictable ways</p> <p>Columbus Globes Thinking is Informational Thinking21/11/2012Programs and modelsa program:maps the abstractions of a conceptual model </p> <p>modelworldbrain3Computational Thinking is Informational Thinking21/11/2012Programs and modelsa program:maps the abstractions of a conceptual model onto the concrete behaviours of a physical computer</p> <p>modelprogramworldbraincomputer4Computational Thinking is Informational Thinking21/11/2012Programs and modelsa program:maps the abstractions of a conceptual model onto the concrete behaviours of a physical computerso the behaviour of the program on the computer tells us about the worldcomputing</p> <p>modelprogrampredictionworldbraincomputer5Computational Thinking is Informational Thinking21/11/2012How do we...?make models?solve problemsrealise models as programs?write programsprogramming</p> <p>Then a miracle occurs... Thinking is Informational Thinking21/11/2012Discourse &amp; methodshould we separate out:problem solvingmodel makingprogramming?are they inextricably linked?7Computational Thinking is Informational Thinking21/11/2012Discourse &amp; methodwe need languages/notations to:solve problemsmake modelswrite programsshould these be the same or different?8Computational Thinking is Informational Thinking21/11/2012Computing Science?academic disciplineunderpins all ICTmodel makingtool buildingtheory &amp; practice of computationmaking models of reality from information structures &amp; algorithmsanimating models on computersprogramming bridges models and computersComputational Thinking is Informational Thinking9</p> <p>21/11/2012Computing Science?is programming the new Latin?should we teach all students to program?Computational Thinking is Informational Thinking10</p> <p>Observer 1/4/1221/11/2012Computing Science?NO!we need to teach all students to think:first characterise problem then choose technologyhow to characterise problems?</p> <p>Computational Thinking is Informational Thinking11</p> <p>THINK!21/11/2012Computational thinkingmodern approach to problem solvingdraws heavily on insights from Computing Sciencevery widely applicablenot about programmingComputational Thinking is Informational Thinking1221/11/2012</p> <p> triangleComputational Thinking is Informational Thinking13ICTComputing ScienceComputational Thinkingsocial needstoolsproblemssolutionspraxisconcepts21/11/2012Computational thinkinghomage to:N. Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, 1973 information + computations = solutionshow do we know when the problem is solved?what information is relevant to solving the problem?how must the information change for the problem to be solved?what computation(s) should we perform on the information to reach the solution?</p> <p>Computational Thinking is Informational Thinking1421/11/2012Computational thinkinghardest part is characterising the problemtwo standard approaches:ask someone else...look for a similar problem you already know how to solvewhat makes problems similar?similar information + computationsComputational Thinking is Informational Thinking1521/11/2012Computational thinkingfour core techniques;decompositionpattern recognitionpattern generalisation/abstractionalgorithm designComputational Thinking is Informational Thinking1621/11/2012Decompositionidentify the information needed to solve problembreak the problem up into smaller sub-problemsidentify the sub-information needed to solve sub-problemsComputational Thinking is Informational Thinking17</p> <p> recognitionlook for patterns amongst problemshave I seen a problem like this before?how is this problem different? look for patterns in the informationhow is the information structured?are there useful relationships within the information?have I seem information organised like this before?how is this information different?</p> <p>Computational Thinking is Informational Thinking18</p> <p></p> <p> generalisation/abstractionwhat is the general case for my problem?what doesnt change in how sub-problems are organised?what does change?what is the general organisation of the information?what doesnt change in structure?what information does change?Computational Thinking is Informational Thinking19</p> <p></p> <p> designwhat is the sequence of steps from the initial information to the problem being solved?how are sub-problems connected?how does the information change between steps?Computational Thinking is Informational Thinking20</p> <p>Mug design Le Chat Noir Boutique computational thinkingwhat does this mean for practical teaching?where to begin?are familiar approaches useful?can we retrofit computational thinking to what we do already...?Computational Thinking is Informational Thinking21</p> <p>An armillary sphere and discussion by R. W. Seale, in A New Geographical Dictionary," published by J. Coote, London, 1760 * approachesprogramming language orientedfull strength languagepedagogic or full strength subsetfunctional/logic object orientedpseudo code language independentsimple to complexstepwise refinementstructured programmingiterative prototypingComputational Thinking is Informational Thinking2221/11/2012Current approachescomponentsmodular programmingalgorithmsdata structurestypesclasseslibraries</p> <p>designflowcharts data flowentity relationship UMLuse caseclass diagramsstructure diagramssequence diagramsstate machines</p> <p>Computational Thinking is Informational Thinking2321/11/2012Current approachesfashions changetoo many possibilitiesnone work easily beyond simple casesall have a strong focus on the final programprogramming not hard when you know how to solve the problem......except for vagaries of specific language syntax &amp; semantics &amp; toolsget in the way of problem solving &amp; model makingComputational Thinking is Informational Thinking2421/11/2012Forget the past...!familiar approaches useful at end of problem solving to realise solutionwith more advanced classes when basic computational concepts understoodneed to focus on problem without worrying about how to implement solutionkey is to characterise information &amp; computationsstart with information, not computations</p> <p>Computational Thinking is Informational Thinking2521/11/2012Characterising informationinformation = base/atomic elements + structureNB not type, class etc programming conceptsused to represent/implement problem information</p> <p>21/11/2012Computational Thinking is Informational Thinking26Characterising informationbase/atomic elementsthings!at simplest, represented as symbolssequences of charactersunitary entities that are meaningfule.g. words, numberselements may be compositemade up of sub-elementsstructured</p> <p>Computational Thinking is Informational Thinking2721/11/2012Characterising informationinformation structuressequences: before/after, unordered/orderedtables: rows &amp; columns of contentsarrays: index &amp; contentsrecord: fields &amp; contentslists: head &amp; tail values trees: value &amp; branches graphs: nodes &amp; arcsNB not data structures: programming conceptComputational Thinking is Informational Thinking2821/11/2012Characterising informationstructures have equivalencestable == array of records of row/column contentsarray == list of index/value recordslist == array of records of head &amp; tailfor some problems, base elements in structures are themselves structureswhere to begin...?back to Computing Science...?Computational Thinking is Informational Thinking2921/11/2012Thinking about informationstart in real world!look at lots of concrete examples:parked carsnumbered housessupermarket queueEnglish v Scottish bank queueshopping list</p> <p>receiptbillaccount statementitinerarydiarycalendarinvitation listaddress bookseating diagram</p> <p>Computational Thinking is Informational Thinking3021/11/2012Thinking about informationshop cataloguelibrary cataloguefamily treecladistic treedecision treeunderground maproad maplottery ticketbetting slip</p> <p>sports league tablemobile contactsbrowser favouritessocial media friendseBook downloadsdigital photo albumdigital music librarymusic play list</p> <p>Computational Thinking is Informational Thinking3121/11/2012Thinking about informationuse concrete problem scenarios:typically, how to find specific information in structurestart from scratchtry to characterise scenarios:elementsstructuresdont yet introduce named structuresdo this intuitively</p> <p>Computational Thinking is Informational Thinking3221/11/2012Thinking about informationask if information is:simple or compositelinear or grid or branching or cyclicalunordered or orderedfixed or changeable:contentsizeshape</p> <p>Computational Thinking is Informational Thinking3321/11/2012Thinking about informationask how to access elementswhy do you want to access elementswhich elements do you want to accesshow does why/which affect accesswhere to start accesshow to continue accesshow to know if successful/unsuccessfulwhat to do if unsuccessfulthen ask how to add/delete/modify elements</p> <p>Computational Thinking is Informational Thinking3421/11/2012Thinking about informationnext, compare apparently disparate structuresask what:changesstays the samelook for similarities in: concrete detailgross structure, ignoring elementsaccess/update/add/deleteuse comparisons to draw out named structures </p> <p>Computational Thinking is Informational Thinking3521/11/2012Thinking about informationfinally develop notion of abstract data type (ADT)operations to:construct new, empty structureadd to structurefind in structurechange contentsdelete from structure</p> <p>Computational Thinking is Informational Thinking3621/11/2012From information to computationabstract data type defines base operationslike the verbs of a languagecomputations structure these operations into algorithmstry to make structure of computation follow structure of informationnot yet programming...Computational Thinking is Informational Thinking3721/11/2012From information to computationgo back to scenarioscomputation solves problems by changing old information into new informationin the scenario, explore sequences of information changeComputational Thinking is Informational Thinking3821/11/2012From information to computationtypically want to: traverse structurevisit each element oncecontinue visit until some condition is metdo something to each elementaccumulate intermediate information</p> <p>Computational Thinking is Informational Thinking3921/11/2012Structure traversalbounded iterationfrom first to last elementnotion of next elementunbounded iterationcontinues while some condition holdshow to start/continue/end iteration...?</p> <p>Computational Thinking is Informational Thinking4021/11/2012Structure traversalbounded recursionbase caseat end of structure so return final valuerecursion casedo something with current element recurse on rest of structurehow to start/end/continue recursion...?Computational Thinking is Informational Thinking4121/11/2012Accumulate informationneed to keep track of intermediate stages in computationdifferent positions in structurepartial results from computationsvariablegeneral name/value associationchange association with new value from computation, often using old valueuse variable to manage stages of traversal...Computational Thinking is Informational Thinking4221/11/2012Do something to elementchange elementhow to identify element?position in structure associated with a valueposition often found via structure nameposition is like a compound variableComputational Thinking is Informational Thinking4321/11/2012How to decide what to dooften want to change element regardless of its propertiesmay only want to change element if it satisfies certain criteriachoice/conditionmay want to change what to do next depending on element propertiesuse choice to manage stages of traversal...Computational Thinking is Informational Thinking4421/11/2012Characterising the computationfinally explore if computation is necessarily:iterative, or could it be recursive?sequential, or could it be concurrent?linear, or could it be backtracking?deterministic, could it be non-deterministic?bounded, or could it be unbounded?Computational Thinking is Informational Thinking4521/11/2012But...need to describe information and computation in a consistent mannerso why not just use a programming language?programming is motivatingseeing things work early on is motivatingComputational Thinking is Informational Thinking4621/11/, use practical programming alongside problem solving!but...choice of language affects what can be describedprogramming language fine detail gets in way of fundamental conceptssimple small scale intuitive techniques dont scale to realistic problemsfor problem solving, use a neutral notatione.g. pseudo codeComputational Thinking is Informational Thinking4721/11/2012Conclusionsfocus on problem solving not programmingCT = decomposition + abstraction + patterns + algorithmssolution = information + computationlet information structure the computationstart with concrete instancesuse CT to:ask good questionsfind well kent information structuresguide computation designComputational Thinking is Informational Thinking4821/11/2012ConclusionsCT is a framework not a recipeCT components overlap and interactmaybe classic CT over-emphasises computation at expense of information?21/11/2012Computational Thinking is Informational Thinking49</p> <p>Activitychoose two very different scenarios from the following list:parked carsnumbered housessupermarket queueEnglish v Scottish bank queueshopping listreceipt</p> <p>billaccount statementitinerarydiarycalendarinvitation listaddress bookseating diagramshop catalogue21/11/2012Computational Thinking is Informational Thinking50Activitylibrary cataloguefamily treecladistic treedecision treeunderground maproad maplottery ticketbetting slipsports league tablemobile contactsbrowser favouritessocial media...</p>