Title: A Puzzle to Entertain You
1A Puzzle to Entertain You
- I have a bag that holds one marble, with equal
probability that it is white or black. - I add a second marble to the bag, that is white.
I then shake the bag, and take one marble out.
It is white. - What is the probability that the remaining marble
is black?
2A Puzzle to Entertain You
- I have three cards. The first card is blue on
both sides. The second card is red on one side
and blue on the other. The third card is red on
both sides. - Now, I show you one side of a card, and it is
red. What is the probability that the color on
the other side is red?
3How Can We TeachProblem Solving?
- Clifford A. Shaffer
- Department of Computer Science
- Virginia Tech
- shaffer_at_cs.vt.edu
4Talk Overview
- Problem Solving
- What it means to teach PS
- How I teach PS, and variants
- Computational Thinking and the CS Principles
initiative
5NOT Problem-Based Learning
- PBL is about a way to present content
- Students learn content in the context of
addressing real-world (or at least bigger)
problems. - By Problem Solving I mean fundamental
skills/strategies that people apply to solve
problems of any type.
6Motivation Why We Care
- Many students are not good at debugging
- Deduction vs. Random Walk
- Many students are not good at design
- Many students are not good at analysis
- Algorithm Analysis, systems analysis
- These deficiencies motivated the course, and
overcoming them is therefore the goal.
7How CAN we teach PS?
- An old problem for teachers.
- Polya 1940s
- Heuristics
8What Does It Mean to Teach Problem Solving?
- Fundamental Hypothesis
- Problem Solving is a skill, not an ability.
- Otherwise, we cannot do anything.
- Secondary Hypothesis
- Being good at problem solving correlates to being
good at Computer Science. - Skill(PS) Skill(CS)
- Otherwise, why bother?
9A Student Comment
- We are already good at this.
- Implied hypothesis
- If you are good at Computer Science, you are good
at PS. - Skill(PS) gt Skill(CS)
- There does appear to be a lot of truth to this.
- Correlated? PS is a prereq for CS capability?
10Fundamental Challenge
- We want to improve the capability of the weaker
students to do CS - The hypothesis
- We can do that by improving their PS skills
- Increased Skill(PS) gt Increased Capability (CS)
11Observation
- Many people enjoy doing puzzles.
- Maybe an interest in puzzles correlates to an
interest in CS? - Irony When a student tunes out my lecture on PS
because they are working on a Sodoku!
12History of our PS Course
- 2006, our Undergraduate Program Committee
developed major changes in undergraduate
curriculum - Teaching PS not my idea, but I ended up
developing the course - I found textbooks to make a course
13Pedagogical Approach
- Weekly homeworks
- Wide variety including self assessment tests,
problem sets (individual or in pairs) - Key Pedagogical Technique
- Many classes involve students working problems
(come to board and demonstrate) - Goal is to make visible the problem-solving
process - Failure illustrates more than success
14What I Actually Teach (1)
- PS diagnostic, self understanding tests
- Myers-Briggs, Learning Styles Inventory, Conflict
resolution - Technique Thinking aloud, working in pairs,
engaging a problem - Verbal reasoning/logic, Analogy problems
- Jack is slower than Phil but faster than Val.
Val is slower than Jack but faster than Pete.
Write the names in order of speed.
15What I Actually Teach (2)
- Heuristics (about 1/3 of the course)
- Externalize
- Visualize
- Special Features
- Look at Extremes
- Simplify
- Sleep on It
- Penultimate Step
- Symmetry
- Invariants
16What I Actually Teach (3)
- Lateral Thinking
- Deductive and Hypothetical Reasoning
- Today is Saturday. What is the day after 4 days
before tomorrow? These are hard! - Making an argument proof styles
- Problem Solving and Programming
- Succeeding as a student
17What I Actually Teach (4)
- Problem Solving in-the-large
- Problem Definition
- Generating Potential Solutions
- Deciding Course of Action
- Implementing Solution
- Evaluation
- Computational Thinking
- Simulation, Optimization, and Statistics
- Interpersonal Problem Solving
18Sources
- Effective Problem Solving, Second Edition, Marvin
Levine Heuristics - Problem Solving Comprehension, Sixth Edition,
Whimbey and Lochhead careful deductive
reasoning - The Art and Craft of Problem Solving, Paul Zeitz
Proofs, Math problems (sparingly) - Strategies for Creative Problem Solving, Second
Edition, Fogler and LeBlanc PS in-the-large - I also actively collect sample problems
- Michalewicz Puzzle Based Learning
19Variant Math Olympiad Approach
- Could make the class more math oriented
- I don't want to make my class too math heavy.
- Exactly the people that I want to reach (weaker
CS students) have less capability at math (or are
even math-phobic) - I dont need math to find hard problems!
20Other Variants
- CS topics vs. CS relevant examples
- Finite state and other machines
- Algorithms
- Big project for group to work on (or PBL)
- Computational Thinking
- Puzzle-based Learning
21Challenges
- Student reaction is not strongly positive
- Our students tend to focus on programming and
obvious CS content - CS Programming
- Can mitigate by tying more closely to CS content.
Debugging? - Need to maintain faculty support
- If viewed as non-critical, lower division
courses get pushed out.
22Major Positive (to Students)
- Gives students a framework and a terminology for
discussing the process of problem solving.
23The state of Computer Science Education in the US
- Boom and Bust cycle (15-year cycle)
- We are coming out of a bust
- NSF reports 70 reduction in CS majors (80 drop
among women) - We are starting to recover numbers
- Predictions are for a huge deficit in CS-related
workers - Claims of all the new jobs related to CS
24Computation Thinking
- Proposed Solution Teach CS in K12!
- NSF
- Jeanette Wing
- CE21 program
- CS Principles initiative
- Google
- Alice, Scratch, etc.
- Universities giving summer workshops for
middle/high school teachers
25Harsh Realities in US K12 Education
- CS is not part of the core
- Few K12 teachers trained to teach CS
- Lowered interest among students for taking high
school CS - Recently lost our advanced AP exam
26NSFs CE21 Program
- Goals
- Train more teachers to teach CS (10,000?)
- Teach K12 students to think computationally
- (We already teach computer literacy in primary
school) - Includes a push to teach CS topics in middle
schools (6-8) - This is where most kids decide their career
27CS Principles (csprinciples.org)
- NSF Funded Project College Board
- PI Owen Astrachan at Duke
- Goal Define a new AP course
- Teach it at High School and College Intro
28CS Principles (csprinciples.org)
- NSF Funded Project College Board
- PI Owen Astrachan at Duke
- Goal Define a new AP course
- Teach it at High School and College Intro
- Not a classic programming course
- Teach a broader introduction to the concepts of CS
29CS Principles (csprinciples.org)
- NSF Funded Project College Board
- PI Owen Astrachan at Duke
- Goal Define a new AP course
- Teach it at High School and College Intro
- Not a classic programming course
- Teach a broader introduction to the concepts of
CS - Computational Thinking!
30CS Principles (csprinciples.org)
- NSF Funded Project College Board
- PI Owen Astrachan at Duke
- Goal Define a new AP course
- Teach it at High School and College Intro
- Not a classic programming course
- Teach a broader introduction to the concepts of
CS - Computational Thinking!
- Pilot Sites
31CS Principles Big Ideas
- Computing is a creative human activity that
engenders innovation and promotes exploration - Abstraction reduces information detail to focus
on concepts relevant to understanding and solving
problems - Data and information facilitate the creation of
knowledge - Algorithms are tools for developing and
expressing solutions to computational problems - Programming is a creative process that produces
computational artifacts - Digital devices, systems, networks enable and
foster computational approaches to solving
problems - Computing enables innovation in other fields
32Computational Thinking Practices
- Analyzing effects of computation
- Creating computational artifacts
- Using abstractions and models
- Analyzing problems and artifacts
- Communicating processes and results
- Working effectively in teams
33(Almost) The End
- Thank you for listening!
- What are your experiences with teaching
- Problem Solving?
- Computational Thinking?
34A Closing Puzzle
- A man is driving his car on a shopping trip
around town. Shortly after he starts out, he
notices that his odometer (which has six digits)
is showing a palindrome. An hour or so later, as
he is nearly finished with his shopping trip, he
looks at his odometer again. He notices that it
is showing a different palindrome. - How far did he drive?
35A Closing Puzzle
- On 24 January 1993, Ms. Green celebrated her
birthday. This was a special day because the
number of years she had now completed was equal
to the sum of the digits for the year when she
was born. How old was Mrs. Green that day?