Archive for December 27, 2010

Teaching Computer Science through Inquiry

The second page of the National Science Education Standards highlights the importance of inquiry.

Inquiry is central to science learning. When engaging in inquiry, students describe objects and events, ask questions, construct explanations, test those explanations against current scientific knowledge, and communicate their ideas to others. They identify their assumptions, use critical and logical thinking, and consider alternative explanations. In this way, students actively develop their understanding of science by combining scientific knowledge with reasoning and thinking skills.

via National Science Education Standards.

Do a Google or Bing search on “inquiry in science education” and you’ll get some 9 million hits, from NIH to the National Academies, to scholarly articles and textbooks.  Inquiry is the best way we know to teach science.

Now, do a similar search on “inquiry in computer science education.” You’ll get a few thousand hits, but most of them seem to be on “computer science education” without “inquiry.”  The Exploring Computer Science curriculum claims to be inquiry-based, but their description of inquiry (“inquiry focused instruction is modeled through role playing, jig sawing activities, pair and small-group collaboration, structured tinkering, promoting multiple solutions, and engaging in simulations”) doesn’t obviously mesh with the definition above from the National Academies.

Next, let’s visit the ACM Digital Library and search for papers sponsored by SIGCSE on “inquiry.” I found four papers. Two were on using computing to do mathematics inquiry. One was a single page poster. The fourth was on using the Web for inquiry.

We generally teach computer science as engineering, but we do argue that computer science is both science and engineering.  Wouldn’t it be worthwhile to explore teaching CS as science, too?  Inquiry-based learning is about using students’ questions to drive the learning. We do try to answer students’ questions in our CS courses, but the questions tend to be of the form, “How do we make X?”  If we were to teach computer science as inquiry-based science education, we would be answering questions of the form, “How does X work?

Teaching computer science as inquiry might be a great way to teach debugging skills.  We would think about each run of a program as an experiment, and we would explicitly “identify assumptions,” “construct explanations,” and “consider alternative explanations” (from the NAP definition above).  Teaching CS as inquiry would be about encouraging students to explore “how things work” and what their models of computation are and what they should be.  Our first step towards building an inquiry-based CS education would be to identify what questions students have and what their existing models of computing are.

When Barb and I were trying to argue that AP CS should count as a science in Georgia, we made this argument explicitly that CS could be taught as science.  The reasonable response was, “Yes, it could, but APCS doesn’t teach CS as science.”  The evidence for inquiry-based science education is strong, and successful curricular models exist. Teaching CS as inquiry may be a way to teach CS better and may be a path towards getting CS more easily recognized as part of STEM education

December 27, 2010 at 11:41 am 21 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,309 hits
December 2010

CS Teaching Tips