# computational thinking is informational thinking

Post on 10-Feb-2016

26 views

Embed Size (px)

DESCRIPTION

Computational Thinking is Informational Thinking. Greg Michaelson School of Mathematical & Computer Sciences H eriot-Watt University G.Michaelson@hw.ac.uk http://www.macs.hw.ac.uk/~greg. Models. we make models of the world to: understand it change it in predictable ways. - PowerPoint PPT PresentationTRANSCRIPT

(problem solving && programming) || (problem solving || programming)?

Computational Thinking is Informational ThinkingGreg MichaelsonSchool of Mathematical & Computer SciencesHeriot-Watt UniversityG.Michaelson@hw.ac.ukhttp://www.macs.hw.ac.uk/~greg

1Computational Thinking is Informational Thinking21/11/2012Modelswe make models of the world to:understand itchange it in predictable ways

Columbus Globeshttp://www.maps2anywhere.com/Globes/columbus_world_globes_01.htm2Computational Thinking is Informational Thinking21/11/2012Programs and modelsa program:maps the abstractions of a conceptual model

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

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

modelprogrampredictionworldbraincomputer5Computational Thinking is Informational Thinking21/11/2012How do we...?make models?solve problemsrealise models as programs?write programsprogramming

Then a miracle occurs...http://www.sciencecartoonsplus.com/pages/gallery.php6Computational Thinking is Informational Thinking21/11/2012Discourse & methodshould we separate out:problem solvingmodel makingprogramming?are they inextricably linked?7Computational Thinking is Informational Thinking21/11/2012Discourse & 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 & practice of computationmaking models of reality from information structures & algorithmsanimating models on computersprogramming bridges models and computersComputational Thinking is Informational Thinking9

21/11/2012Computing Science?is programming the new Latin?should we teach all students to program?Computational Thinking is Informational Thinking10

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?

Computational Thinking is Informational Thinking11

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

http://chomskyscolorlessgreenideas.blogspot.co.uk/2009/09/chinese-room.htmlComputing 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?

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

http://www.lostateminor.com/2012/03/14/if-stonehenge-came-with-ikea-instructions/21/11/2012Pattern 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?

Computational Thinking is Informational Thinking18

http://www.moneymatterstome.co.uk/interactive-workshops/writingcheque.htm

http://en.wikipedia.org/wiki/Bank_statement21/11/2012Pattern 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

http://www.learndirect.co.uk/campaigns/worth-learning/managing-money/understanding-bank-statement/

http://en.wikipedia.org/wiki/Bank_statement21/11/2012Algorithm 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

Mug design Le Chat Noir Boutiquehttp://www.lechatnoirboutique.com/proddetail.php?prod=FSFPTS21/11/2012Applying 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

An armillary sphere and discussion by R. W. Seale, in A New Geographical Dictionary," published by J. Coote, London, 1760 *http://www.columbia.edu/itc/mealac/pritchett/00routesdata/1700_1799/compendia/coote/sphere.jpg21/11/2012Current 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

designflowcharts data flowentity relationship UMLuse caseclass diagramsstructure diagramssequence diagramsstate machines

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 & semantics & toolsget in the way of problem solving & 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 & computationsstart with information, not computations

Computational Thinking is Informational Thinking2521/11/2012Characterising informationinformation = base/atomic elements + structureNB not type, class etc programming conceptsused to represent/implement problem information

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

Computational Thinking is Informational Thinking2721/11/2012Characterising informationinformation structuressequences: before/after, unordered/orderedtables: rows & columns of contentsarrays: index & contentsrecord: fields & contentslists: head & tail values trees: value & branches graphs: nodes & 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 & 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

receiptbillaccount statementitinerarydiarycalendarinvitation listaddress bookseating diagram

Computational Thinking is Informational Thinking3021/11/2012Thinking about informationshop cataloguelibrary cataloguefamily treecladistic treedecision treeunderground maproad maplottery ticketbetting slip

sports league tablemobile contactsbrowser favouritessocial media friendseBook downloadsdigital photo albumdigital music librarymusic play list

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

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

Computational Thinking is Informational Thinking3321/11/2012Thinking about informat

Recommended