A puzzle to entertain you
1 / 30

A Puzzle to Entertain You - PowerPoint PPT Presentation

  • Uploaded on

A 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?.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'A Puzzle to Entertain You' - terence-shirley

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
A puzzle to entertain you
A 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?

How can we teach problem solving

How Can We TeachProblem Solving?

Clifford A. Shaffer

Department of Computer Science

Virginia Tech


Talk overview
Talk Overview

  • Background: What it means to teach PS

  • How I teach PS, and variants

  • Computational Thinking and the CS Principles initiative

Not problem based learning
NOT 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.

Motivation why we care
Motivation: 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.

How can we teach ps
How CAN we teach PS?

  • An old problem for teachers.

  • Polya: 1940s

    • Heuristics

What does it mean to teach problem solving
What 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?

A student comment
A Student Comment

  • “We are already good at this.”

  • Implied hypothesis:

    • If you are good at Computer Science, you are good at PS.

    • Skill(CS) => Skill(PS)

    • There does appear to be a lot of truth to this.

    • Correlated? PS is a prereq for CS capability?

Fundamental challenge
Fundamental 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) => Increased Capability (CS)


  • 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!

History of our ps course
History 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

Course process
Course Process

  • Weekly homeworks

    • Wide variety including self assessment tests, problem sets (individual or in pairs)

  • Many classes involve students working problems (come to board and demonstrate)

    • Goal is to “make visible” the problem-solving process

What i actually teach 1
What I Actually Teach (1)

  • PS diagnostic, self understanding tests

    • MB

    • Learning Styles Inventory

    • Conflict resolution

  • Thinking aloud, working in pairs, engaging a problem

  • Verbal reasoning, Analogy problems

What i actually teach 2
What 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

What i actually teach 3
What I Actually Teach (3)

  • Lateral Thinking

  • Deductive and Hypothetical Reasoning

  • Making an argument: proof styles

  • Problem Solving and Programming

  • Succeeding as a student

What i actually teach 4
What 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


  • 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

Variant math olympiad approach
Variant: 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 don’t need math to find hard problems!

Other variants
Other 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


  • Student reaction is not strong

    • 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.

Major positive to students
Major Positive (to Students)

  • Gives students a framework and a terminology for discussing the process of problem solving.

The state of computer science education in the us
The 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

Computation thinking
Computation Thinking

Proposed Solution: Teach CS in K12!

  • NSF

    • Jeanette Wing

    • CE21 program

  • CS Principles initiative

  • Google

  • Alice, Scratch, etc.

Harsh realities in us k12 education
Harsh Realities in US K12 Education

  • CS is not part of the core

  • Few K12 teachers trained to teach CS

  • Lowered interest taking high school CS

  • Recently lost our advanced AP exam

Nsf s ce21 program
NSF’s 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

Cs principles csprinciples org
CS 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

Cs principles big ideas
CS 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

Computational thinking practices
Computational 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

Almost the end
(Almost) The End

  • Thank you for listening!

  • What are your experiences with teaching

    • Problem Solving?

    • Computational Thinking?

A closing puzzle
A 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?