CS 146 The Big Picture in Computer ScienceMain MessageComputational ThinkingComputational Thinking – for whom?Computational Thinking – about what?Computational Thinking – involves what?Computational Thinking – involves what?Computational Thinking – involves what? (2)Computational Thinking – involves what? (3)Computational Thinking – involves what? (4)Computational Thinking - SummaryWhat is Critical Thinking?What is Critical Thinking?Universal Intellectual StandardsClarityClarityAccuracyAccuracyPrecisionPrecisionRelevanceRelevanceDepthDepthBreadthBreadthLogicLogicFairnessFairnessUniversal Intellectual StandardsPracticePracticePracticePracticePracticePracticeBarriers to Critical ThinkingQuiz – Question 1Quiz – Question 2Quiz – Question 3Quiz – Question 4Slide 43QuestioningQuestioning - Five Ws and HQuestioning - Bloom’s TaxonomyQuestioning – UnderstandQuestioning – ApplyQuestioning – AnalyzeQuestioning – EvaluateQuestioning – SynthesizeQuestioning – CreateAsking the Right QuestionsP R O F. D A N I E L E R N S TF E B R UA RY 2 8T H, 2 0 1 1C O M P U TAT I O N A L A N D C R I T I C A L T H I N K I N GCS 146The Big Picture in Computer ScienceCritical Thinking slides mostly created by Dr. Michael Wick2“Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction.”- Dr. Jeannette WingMain Message3A relatively new ideaFirst put forth by Dr. Jeannette Wing, Carnegie Mellon University (CMU) in 2006Developed since then through presentations, workshops and other communicationComputational Thinking4Not just computer scientists!Dr. Wing sees this as important for children as well as university studentseveryone as well as computer scientistsImplication: we have to think about what CS material we teach K-12 as well as what is taught at the university levelComputational Thinking – for whom?5About people, not computersTrying to package what we, as humans, do based on what we’ve learned from 50+ years of computer science workSupplements other analytical forms of thinking (mathematical, engineering, scientific?)Computational Thinking – about what?6At a high level1. Problem solving2. Designing models, systems and solutions3. Critical thinking about computational issuesMore later about Critical Thinking4. Understanding human behavior in regard to computingAnother place where general education matters!Note that programming is part of this, but is certainly not the whole packageComputational Thinking – involves what?7At a detailed level◦Abstraction – different levels of organization of concepts Example: data type and instance variable◦Algorithms – Decomposing a problem into sequential (and parallel) stepsE.g. sequence for a basic web request through the HTTP protocol◦Modeling – related to abstraction, the ability to build a representative model for a system or situationE.g. a program to simulate the Davies Center food courtComputational Thinking – involves what?8More detailed level items:◦Recursion – a process can be defined in terms of or “call” (programmatically) itselfExample: factorial can be defined in terms of itself (how?)◦Data vs. Code issue – recognizing the blurred line (and advantages and disadvantages) between represented information and represented processingE.g. One byte can be a character, integer, part of a floating point number, or part of an instruction◦Planning, Searching, Scheduling, Learning, Dealing with UncertaintyE.g. Autonomous vehicle programmingComputational Thinking – involves what? (2)9More detailed level items:◦Evaluating and Accomplishing EfficiencyE.g. Linear vs. Exponential time algorithms◦Prevention/Detection/Recovery from worst-case scenariosE.g. Computer security◦Parallel Processing – activities that don’t rely on each other can be accomplished concurrentlyE.g. checking values in an array to find some value◦Planning For Failure – building fault tolerance into systemsE.g. use of exception handling in Java, C++ to catch incorrectly formatted inputComputational Thinking – involves what? (3)10More detailed level items:◦Heuristic Reasoning – developing approximation functions to represent best guess and move toward solutionE.g. evaluating the quality of a position in tic-tac-toe by counting pieces plus adding value for owning certain positions (e.g. center)◦Redefining Problems – e.g. re-structuring problems by use of “reduction, embedding, transformation, or simulation” (or emulation)E.g. modeling new hardware chips by building a software emulator of that chip before actually manufacturing itComputational Thinking – involves what? (4)11Computational thinking is more about:Developing conceptual skill than just programmingJudgment and analysis than rote application of rulesDeveloping ideas and concepts for problem solving than focusing on the artifacts that those processes createBuilding “virtual” systemsthan just physical ones – though physical systems are a part of an overall computational systemComputational Thinking - Summary12What is Critical Thinking?Critical Thinking is the general term given to a wide range of cognitive and intellectual skills needed to:Effectively identify, analyze, and evaluate arguments. Discover and overcome personal prejudices and biases.Formulate and present convincing and relevant reasons in support of conclusions.Make reasonable, intelligent decisions about what to believe and what to do.13What is Critical Thinking?CRITICAL THINKINGSKILLSAnalyzingReasoningEvaluatingDecision Making Problem Solving14The most significant critical (intellectual) thinking standards:ClarityAccuracy Precision Relevance Depth Breadth Logic FairnessUniversal Intellectual Standards15ClarityCould you elaborate further on that point?Could you express that point in another way?Could you give me an illustration?Could you give me an example?Source: http://www.fctl.ucf.edu/tresources/content/Ruland-CriticalThinkingStandards.pdf Clarity is the gateway standard Clarity is the gateway standard16ClarityGive several examples of places in the areas of computer science that we’ve discussed or that you know about where clarity could be an issue.17Accuracy Is that really true?How could we check
View Full Document