Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computational Thinking is Informational Thinking Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University

Similar presentations


Presentation on theme: "Computational Thinking is Informational Thinking Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University"— Presentation transcript:

1 Computational Thinking is Informational Thinking Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University 1 Computational Thinking is Informational Thinking 21/11/2012

2 Models we make models of the world to: – understand it – change it in predictable ways Columbus Globes 2 Computational Thinking is Informational Thinking 21/11/2012

3 Programs and models a program: – maps the abstractions of a conceptual model model worldbrain 3 Computational Thinking is Informational Thinking 21/11/2012

4 Programs and models a program: – maps the abstractions of a conceptual model – onto the concrete behaviours of a physical computer model program worldbrain computer 4 Computational Thinking is Informational Thinking 21/11/2012

5 Programs and models a program: – maps the abstractions of a conceptual model – onto the concrete behaviours of a physical computer – so the behaviour of the program on the computer tells us about the world computing model program prediction worldbrain computer 5 Computational Thinking is Informational Thinking 21/11/2012

6 How do we...? make models? – solve problems realise models as programs? – write programs – programming Then a miracle occurs Computational Thinking is Informational Thinking 21/11/2012

7 Discourse & method should we separate out: – problem solving – model making – programming? are they inextricably linked? 7 Computational Thinking is Informational Thinking 21/11/2012

8 Discourse & method we need languages/notations to: – solve problems – make models – write programs should these be the same or different? 8 Computational Thinking is Informational Thinking 21/11/2012

9 Computing Science? academic discipline underpins all ICT – model making – tool building theory & practice of computation – making models of reality from information structures & algorithms – animating models on computers programming bridges models and computers Computational Thinking is Informational Thinking 921/11/2012

10 Computing Science? is programming the “new Latin”? should we teach all students to program? Computational Thinking is Informational Thinking 10 Observer 1/4/12 21/11/2012

11 Computing Science? NO! we need to teach all students to think: – first characterise problem – then choose technology how to characterise problems? Computational Thinking is Informational Thinking 11 THINK! 21/11/2012

12 Computational thinking modern approach to problem solving draws heavily on insights from Computing Science very widely applicable not about programming Computational Thinking is Informational Thinking 1221/11/2012 uk/2009/09/chinese-room.html

13 Computing triangle Computational Thinking is Informational Thinking 13 ICT Computing Science Computational Thinking social needs tools problems solutions praxis concepts 21/11/2012

14 Computational thinking homage to: – N. Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, 1973 information + computations = solutions – how 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 Thinking 1421/11/2012

15 Computational thinking hardest part is characterising the problem two standard approaches: – ask someone else... – look for a similar problem you already know how to solve what makes problems similar? – similar information + computations Computational Thinking is Informational Thinking 1521/11/2012

16 Computational thinking four core techniques; – decomposition – pattern recognition – pattern generalisation/abstraction – algorithm design Computational Thinking is Informational Thinking 1621/11/2012

17 Decomposition identify the information needed to solve problem break the problem up into smaller sub- problems identify the sub- information needed to solve sub-problems Computational Thinking is Informational Thinking 17 instructions/ 21/11/2012

18 Pattern recognition look for patterns amongst problems – have I seen a problem like this before? – how is this problem different? look for patterns in the information – how 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 Thinking 18 workshops/writingcheque.htm 21/11/2012

19 Pattern generalisation/abstraction what is the general case for my problem? – what doesn’t change in how sub-problems are organised? – what does change? what is the general organisation of the information? – what doesn’t change in structure? – what information does change? Computational Thinking is Informational Thinking 19 learning/managing-money/understanding-bank-statement/ 21/11/2012

20 Algorithm design what 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 Thinking 20 Mug design – Le Chat Noir Boutique 21/11/2012

21 Applying computational thinking what 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 Thinking 21 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/17 00_1799/compendia/coote/sphere.jpg 21/11/2012

22 Current approaches programming language oriented – full strength language – pedagogic or full strength subset – functional/logic – object oriented – pseudo code – language independent simple to complex – stepwise refinement – structured programming – iterative prototyping Computational Thinking is Informational Thinking 2221/11/2012

23 Current approaches components – modular programming – algorithms – data structures – types – classes – libraries design – flowcharts – data flow – entity relationship – UML use case class diagrams structure diagrams sequence diagrams state machines Computational Thinking is Informational Thinking 2321/11/2012

24 Current approaches fashions change too many possibilities none work easily beyond simple cases all have a strong focus on the final program programming not hard when you know how to solve the problem......except for vagaries of specific language syntax & semantics & tools – get in the way of problem solving & model making Computational Thinking is Informational Thinking 2421/11/2012

25 Forget the past...! familiar approaches useful – at end of problem solving to realise solution – with more advanced classes when basic computational concepts understood need to focus on problem without worrying about how to implement solution key is to characterise information & computations start with information, not computations Computational Thinking is Informational Thinking 2521/11/2012

26 Characterising information information = base/atomic elements + structure NB not type, class etc – programming concepts – used to represent/implement problem information 21/11/2012 Computational Thinking is Informational Thinking 26

27 Characterising information base/atomic elements – things! at simplest, represented as symbols – sequences of characters – unitary entities that are meaningful – e.g. words, numbers elements may be composite – made up of sub-elements – structured Computational Thinking is Informational Thinking 2721/11/2012

28 Characterising information information structures – sequences: before/after, unordered/ordered – tables: rows & columns of contents – arrays: index & contents – record: fields & contents – lists: head & tail values – trees: value & branches – graphs: nodes & arcs NB not data structures: programming concept Computational Thinking is Informational Thinking 2821/11/2012

29 Characterising information structures have equivalences – table == array of records of row/column contents – array == list of index/value records – list == array of records of head & tail for some problems, base elements in structures are themselves structures where to begin...? back to Computing Science...? Computational Thinking is Informational Thinking 2921/11/2012

30 Thinking about information start in real world! look at lots of concrete examples: – parked cars – numbered houses – supermarket queue – English v Scottish bank queue – shopping list – receipt – bill – account statement – itinerary – diary – calendar – invitation list – address book – seating diagram Computational Thinking is Informational Thinking 30 21/11/2012

31 Thinking about information – shop catalogue – library catalogue – family tree – cladistic tree – decision tree – underground map – road map – lottery ticket – betting slip – sports league table – mobile contacts – browser favourites – social media friends – eBook downloads – digital photo album – digital music library – music play list Computational Thinking is Informational Thinking 3121/11/2012

32 Thinking about information use concrete problem scenarios: typically, how to find specific information in structure start from scratch try to characterise scenario’s: – elements – structures don’t yet introduce named structures do this intuitively Computational Thinking is Informational Thinking 3221/11/2012

33 Thinking about information ask if information is: – simple or composite – linear or grid or branching or cyclical – unordered or ordered – fixed or changeable: content size shape Computational Thinking is Informational Thinking 3321/11/2012

34 Thinking about information ask how to access elements – why do you want to access elements – which elements do you want to access – how does why/which affect access – where to start access – how to continue access – how to know if successful/unsuccessful – what to do if unsuccessful then ask how to add/delete/modify elements Computational Thinking is Informational Thinking 3421/11/2012

35 Thinking about information next, compare apparently disparate structures ask what: – changes – stays the same look for similarities in: – concrete detail – gross structure, ignoring elements – access/update/add/delete use comparisons to draw out named structures Computational Thinking is Informational Thinking 3521/11/2012

36 Thinking about information finally develop notion of abstract data type (ADT) operations to: – construct new, empty structure – add to structure – find in structure – change contents – delete from structure Computational Thinking is Informational Thinking 3621/11/2012

37 From information to computation abstract data type defines base operations – like the verbs of a language computations structure these operations into algorithms try to make structure of computation follow structure of information not yet programming... Computational Thinking is Informational Thinking 3721/11/2012

38 From information to computation go back to scenarios computation solves problems by changing old information into new information in the scenario, explore sequences of information change Computational Thinking is Informational Thinking 3821/11/2012

39 From information to computation typically want to: – traverse structure visit each element once continue visit until some condition is met – do something to each element – accumulate intermediate information Computational Thinking is Informational Thinking 3921/11/2012

40 Structure traversal bounded iteration – from first to last element – notion of next element unbounded iteration – continues while some condition holds how to start/continue/end iteration...? Computational Thinking is Informational Thinking 4021/11/2012

41 Structure traversal bounded recursion – base case at end of structure so return final value – recursion case do something with current element recurse on rest of structure how to start/end/continue recursion...? Computational Thinking is Informational Thinking 4121/11/2012

42 Accumulate information need to keep track of intermediate stages in computation – different positions in structure – partial results from computations variable – general name/value association – change association with new value from computation, often using old value use variable to manage stages of traversal... Computational Thinking is Informational Thinking 4221/11/2012

43 Do something to element change element how to identify element? – position in structure associated with a value – position often found via structure name – position is like a compound variable Computational Thinking is Informational Thinking 4321/11/2012

44 How to decide what to do often want to change element regardless of its properties may only want to change element if it satisfies certain criteria – choice/condition may want to change what to do next depending on element properties use choice to manage stages of traversal... Computational Thinking is Informational Thinking 4421/11/2012

45 Characterising the computation finally 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 Thinking 4521/11/2012

46 But... need to describe information and computation in a consistent manner so why not just use a programming language? – programming is motivating – seeing things work early on is motivating Computational Thinking is Informational Thinking 4621/11/2012

47 But... so, use practical programming alongside problem solving! but... – choice of language affects what can be described – programming language fine detail gets in way of fundamental concepts – simple small scale intuitive techniques don’t scale to realistic problems for problem solving, use a neutral notation – e.g. pseudo code Computational Thinking is Informational Thinking 4721/11/2012

48 Conclusions focus on problem solving not programming CT = decomposition + abstraction + patterns + algorithms solution = information + computation let information structure the computation start with concrete instances use CT to: – ask good questions – find well kent information structures – guide computation design Computational Thinking is Informational Thinking 4821/11/2012

49 Conclusions CT is a framework not a recipe CT components overlap and interact maybe classic CT over- emphasises computation at expense of information? 21/11/2012 Computational Thinking is Informational Thinking 49

50 Activity 1.choose two very different scenarios from the following list: – parked cars – numbered houses – supermarket queue – English v Scottish bank queue – shopping list – receipt – bill – account statement – itinerary – diary – calendar – invitation list – address book – seating diagram – shop catalogue 21/11/2012 Computational Thinking is Informational Thinking 50

51 Activity – library catalogue – family tree – cladistic tree – decision tree – underground map – road map – lottery ticket – betting slip – sports league table – mobile contacts – browser favourites – social media friends – eBook downloads – digital photo album – digital music library – music play list 21/11/2012 Computational Thinking is Informational Thinking 51

52 Activity 2. choose one information structure from the following list: sequence: before/after, unordered/ordered table: rows & columns of contents array: index & contents record: fields & contents list: head & tail values tree: value & branches graph: nodes & arcs 3. explain how to represent both scenarios from 1. using the information structure from 2. This is well suited for use as an activity for a pair of people. 21/11/2012 Computational Thinking is Informational Thinking 52

53 Resources Jeanette Wing, `Computational Thinking’, Communications of the ACM, Vol 49, No. 3, pp 33-35, March Google, `Exploring Computational Thinking’ Pat Phillips, `Computational Thinking: A Problem Solving Tool for Every Classroom’, CSTA/Microsoft Computational Thinking is Informational Thinking 5321/11/2012


Download ppt "Computational Thinking is Informational Thinking Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University"

Similar presentations


Ads by Google