So this post comes about after reading this great blog post over at Computing Education Blog. The author, Mark Guzdial at Georgia Tech, poses some great questions about methodology in CS education, namely the ever present battle between the discovery/constructivist camp and the direct instruction camp.
Personally, I think they both have their place, as typically direct instruction is needed early on to help steer students through challenging material that is brand new, but as students get some foothold with their understanding, it is important to gradually shift them into models that are more discovery/constructivist oriented in order to hold their interest, and, for lack of a better phrase, "keep it real." The big challenge is the HOW and WHEN to make that shift, and of course it will not be the same for every student, which then brings up how to differentiate instruction without driving ourselves as teachers absolutely mad with behind the scenes work.
This pedagogical query also raises something in my mind that I need to explore in another blog post, that of what we would consider the "core" of what students need to know and understand in CS, and at the different levels. Yes, there is a new framework that has been released, found at k12cs.org, but I find many times that these types of works are so broad that it leaves me worth more questions than answers. I thought about this today as I read another blog post by Alfred Thompson at his Computer Science Teacher blog. He posed a question about the importance of number bases in pre-university CS classes. More to come on my next post!