A good example of what I am talking about
So Dan Meyer (a favorite math blogger of mine) recently wrote a blog about “will the ball hit the can” and explained why he likes these types of questions better than what you find in standard textbooks.
I think Dan’s take on questions based in real world situations and media are a great way to foster 21st century skills. His original post on the subject here shows the image with no measurements added, and earlier in the series spoke about how framing the measurements required is an important part of understanding the situation and circumstances.
I think we are guilty in introductory computer science of doing what the textbook authors do. We try to scaffold our problems to provide students with all the information they need, and only the information they need in order to solve problems.
Just a few more cents..
March 31st, 2009 at 5:36 pm
I agree! I know these things have been discussed before, but since you’ve connected with one of my top feeds (dy/dan) from when I was a math teacher, now you’ve got me hooked in.
I was thinking about this problem the other day as I introduced recursion using the classic Fibonacci and factorial examples. These are actually terrible examples of recursion, but they have a very small set of required information. So I used them. How could I do that better? (And not how could I push further within the given example, such as by looking for more efficiencies, etc.)
I guess the general question is: Can we take Dan’s WCYDWT model and try to apply it to CS? Have students write small utility-type programs to solve open-ended problems that we prompt with a photo or some other piece of media?
March 31st, 2009 at 7:20 pm
Having students work on projects of their own choice helps with this, as they tend to “dream big” and then have to figure out just how to actually write the code.
I agree about problems in textbooks. When they occur at the end of a chapter on loops, for example, the problems are assumed to use loops, rather than having students start with just the problem and try to solve it in any way possible.
April 1st, 2009 at 9:02 am
at Ben…
What about messages/invites on facebook? Imagine a structure where you had a map of lists (or array of lists.. some structure) where the embedded list was the name of all your friends.
Lets say you wanted to send out a “join this group” or “join this cause” message. I hate when I get the same message from multiple people. Could you define a recursive procedure that would distribute the message through my entire network going N friends deep (for some integer N) but not sending duplicate messages to anyone?
What information would you need? What would you need to store? Whats the best way to represent that information and how do you retrieve it quickly?