100 likes | 234 Vues
What Everyone Needs to Know About Computation. Steve Cooper ( coopersc@purdue.edu ) . How to Think Computationally. Jeannette Wing’s CACM article, 3/2006. Jeannette’s Grand Vision.
E N D
What Everyone Needs to Know About Computation Steve Cooper (coopersc@purdue.edu)
How to Think Computationally • Jeannette Wing’s CACM article, 3/2006
Jeannette’s Grand Vision • 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. • 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, …
Abstractions Automation Computing is the Automation of Abstractions 1. Machine 2. Human 3. Human + Machine 4. Networks of 1, 2, or 3 Computational Thinking is the process of abstraction - choosing the right abstractions - operating in terms of multiple layers of abstraction simultaneously - defining the relationships the between layers as in Mathematics guided by the following concerns… Jeannette M. Wing
Measures of a “Good” Abstraction in C.T. as in Engineering NEW • Efficiency • How fast? • How much space? • How much power? • Correctness • Does it do the right thing? • Does the program compute the right answer? • Does it do anything? • Does the program eventually produce an answer? [Halting Problem] • -ilities • Simplicity and elegance • Usability • Modifiability • Maintainability • Cost • … Jeannette M. Wing
What does CT mean for everyone? - 1 • Identifying meaningful contexts for students • Media • Alice • Media Computation • Scratch • Robots • Web Programming/Services • Graphics
A pitch for contexts • Birds of a Feather • Teaching your computer science course in context • Leader: Steves (Cunningham and Cooper) • 102C • 5:15 – 6:00 PM tonight
What does CT mean for everyone? - 2 And, identifying and sharing appropriate abstractions to help students to develop the ability to abstract
Challenges - 1 • Convincing CS faculty/departments of the importance of teaching CS courses for non-majors • Creating several such courses for students with different needs/interests • Convincing other departments as to the importance of CT, and helping them to incorporate CT into others of their courses
Challenges - 2 We have lots of courses that have shown to be successful individually, but how do we scale them? “Letting one hundred flowers blossom…” Chairman Mao