05-04-2012, 11:13 AM
Computational Thinking
Computational Thinking.ppt (Size: 5.55 MB / Downloads: 30)
Outline
Computational Thinking
A Vision for our Field
The Two A’s to CT
Research and Education Implications
Two and a Half Years Later…
External Response and Impact
Reality Check
My Grand Vision for the Field
Computational thinking will be a fundamental skill used by everyone in the world by the middle of the 21st Century.
Just like reading, writing, and arithmetic.
Imagine every child knowing how to think like a computer scientist!
Incestuous: Computing and computers will enable the spread of computational thinking.
In research: scientists, engineers, …, historians, artists
In education: K-12 students and teachers, undergrads, …
Examples of Computational Thinking
How difficult is this problem and how best can I solve it?
Theoretical computer science gives precise meaning to these and related questions and their answers.
C.T. is thinking recursively.
C.T. is reformulating a seemingly difficult problem into one which we know how to solve.
Reduction, embedding, transformation, simulation
C.T. is choosing an appropriate representation or modeling the relevant aspects of a problem to make it tractable.
C.T. is interpreting code as data and data as code.
C.T. is using abstraction and decomposition in tackling a large complex task.
C.T. is judging a system’s design for its simplicity and elegance.
C.T. is type checking, as a generalization of dimensional analysis.
C.T. is prevention, detection, and recovery from worst-case scenarios through redundancy, damage containment, and error correction.
C.T. is modularizing something in anticipation of multiple users and prefetching and caching in anticipation of future use.
C.T. is calling gridlock deadlock and avoiding race conditions when synchronizing meetings.
C.T. is using the difficulty of solving hard AI problems to foil computing agents.
C.T. is taking an approach to solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science.
The First A to Computational Thinking
Abstractions are our “mental” tools
The abstraction process includes
Choosing the right abstractions
Operating simultaneously at multiple layers of abstraction
Defining the relationships the between layers
The Second A to Computational Thinking
The power of our “mental” tools is amplified by our “metal” tools.
Automation is mechanizing our abstractions, abstraction layers, and their relationships
Mechanization is possible due to precise and exacting notations and models
There is some “computer” below (human or machine, virtual or physical)
Two A’s to C.T. Combined
Computing is the automation of our abstractions
They give us the audacity and ability to scale.
Computational thinking
choosing the right abstractions, etc.
choosing the right “computer” for the task
Research Implications
Pre-K to Grey
K-6, 7-9, 10-12
Undergraduate courses
Freshmen year
“Ways to Think Like a Computer Scientist” aka Principles of Computing
Upper-level courses
Graduate-level courses
Computational arts and sciences
E.g., entertainment technology, computational linguistics, …, computational finance, …, computational biology, computational astrophysics
Post-graduate
Executive and continuing education, senior citizens
Teachers, not just students
Simple Daily Examples
Looking up a name in an alphabetically sorted list
Linear: start at the top
Binary search: start in the middle
Standing in line at a bank, supermarket, customs & immigration
Performance analysis of task scheduling
Putting things in your child’s knapsack for the day
Pre-fetching and caching
Taking your kids to soccer, gymnastics, and swim practice
Traveling salesman (with more constraints)
Cooking a gourmet meal
Parallel processing: You don’t want the meat to get cold while you’re cooking the vegetables.
Cleaning out your garage
Keeping only what you need vs. throwing out stuff when you run out of space.
Storing away your child’s Lego pieces scattered on the LR floor
Using hashing (e.g., by shape, by color)
Doing laundry, getting food at a buffet
Pipelining the wash, dry, and iron stages; plates, salad, entrée, dessert stations
Even in grade school, we learn algorithms (long division, factoring, GCD, …) and abstract data types (sets, tables, …).
CDI: Cyber-Enabled Discovery and Innovation
Paradigm shift
Not just our metal tools (transistors and wires) but also our mental tools (abstractions and methods)
It’s about partnerships and transformative research.
To innovate in/innovatively use computational thinking; and
To advance more than one science/engineering discipline.
Fortuitous timing for me …
Range of Disciplines in CDI Awards
Aerospace engineering
Atmospheric sciences
Biochemistry
Biophysics
Chemical engineering
Communications science and engineering
Computer science
Geosciences
Linguistics
Materials engineering
Mathematics
Mechanical engineering
Molecular biology
Nanocomputing
Neuroscience
Robotics
Social sciences
Statistical physics