Saturday, September 10, 2016

Fai—Computational thinking in different disciplines


What does computational thinking mean?

From Wing (2006), it seems that the following are important.

  • Computational thinking involves problem solving. 
  • Computational thinking uses abstraction and decomposition to attack large complex systems. 
  • Computational thinking is about conceptualizing, not only about programming; it’s about the ideas, not just rote skills.


What are the different characterizations of relationships between disciplinary content/practices and computational thinking?

I have been trying to work this out in the past couple of weeks, and this week’s readings helped with this question, so I’m going to try to summarize my current understanding here. I also think whether particular disciplinary content supports or does not support computational thinking depends how one conceptualizes the relationship between the two.

Here’s what I’ve catalogued so far.
  • Computational thinking facilitates content learning. For example, students writing out codes for different theories of how an object fall helps them better visualize differences between theories. 
  • Content facilitates learning to program. For example, students who know something about a complex system can investigate a model in NetLogo, and leverage their understanding about the system to understand the programming.
  • Computational thinking becomes an integral part of learning in that discipline. This means that it’s not just a tool to help students better understand the content, but computational thinking has a role in doing that discipline.

I’m still trying to be more clear about this, so that when I read other people’s work, I can quickly grasp what they are doing, and also so that when I design for learning, I can be clear about what I’m doing, while keeping other goals in mind.

Literacy

Burke (2012) pointed out that in the storytelling format, students engaged with only a subset of programming concepts coordination and synchronization, parallel execution, loops and event handling, and rarely engaged with Boolean logic, conditional statements and variables.

A few months ago, I did a small investigation for another class. (Doing an investigation is a little bit an overstatement; I just took a glance.) I was wondering whether different kinds of project Scratch users chose to do afford different kinds of opportunities to engage with programming. I went to the “Explore” page on Scratch. I looked at projects under the Stories and Games categories. I sorted projects by “Most Loved” in the past 30 days. Below is the numbers of scripts / spites used in the top ten projects listed under each category.

Here is what I found.


What I found agrees with what Burke found. I took a look at that because oftentimes the rationale to use storytelling to motivate programming is often gendered, e.g. in Erete et al. (2015) or Storytelling Alice (a Logo-based platform developed specifically to motivate girls to do programming).

There appears to be a distinct difference in the numbers of scripts and sprites used in Stories projects and those used in Games projects. This difference does not suggest that Stories projects are more simplistic and Games projects are more complex. However, the difference does suggest that people who tend to create stories with Scratch and people who tend to create games with Scratch may have different opportunities to learn to program. I don’t mean to suggest that it is simply a matter of more opportunities and fewer opportunities to learn (which in turns leads to more skills and fewer skills), although that may also be the case. More importantly, this difference suggests that people may come to know programming very differently, because they have differential access to different programming practices depending on what kinds of project they choose to engage in, and this difference is typically found to be gendered.

I want to acknowledge other kinds of work that this approach is doing, namely it has a lot of potential to give girls another space for identity work, as Erete et al. (2015) pointed out.  However, while the storytelling approach may be useful in initiating interest in programming for girls, I still wonder what is the rest of the trajectory may look like so that girls really do have access to all the facets of programming practices.

If our goal is to introduce students to programming, so that they can use it to whatever they want to do with it, then storytelling seems to be a productive format; students who are interested in that format can see the point of programming, and use programming to support what they are doing with storytelling. If our goal is to make sure that students have opportunities to engage fully with computational practices, one format might be too limited.

Science

I only have a short question in terms of computational thinking + science. I rarely see works (possibly because I haven’t read that much) that discuss what designers/educators can do to support student thinking about the connection between the models and the physical world. In other words, how do I trust that the swarm of little turtles on the screen has anything to do with anything?


3 comments:

  1. The connection-to-the-physical-world problem for science nags at me too. That is why in the project that I did for Paul's class, last semester, I really focused on having kids plant things and dig things up to inform their models. But when I did that, it seemed like most of the content learning happened in diagrammatic (paper, drawing) models, which kids used to synthesize, try out, abstract and reduce ideas, or during the process of physical modeling, where they designed contexts to test their ideas and collected data to confirm or challenge their ideas.

    I value computer science/computational modeling in its own right - I think that computational thinking does give kids a lot of tools for problem solving. But I wonder if computational modeling in that context helps kids deepen content knowledge, or just is a way to add computational thinking into a project where it otherwise wouldn't be. Doug and Corey also talk about leveraging computational thinking as a tool for collaboration, but I don't think we did that well in our project - there was no additional type or amount of collaboration moving from diagrammatic to physical to computational models. I guess my question is more: how do we integrate computational modeling with other types of modeling in a way that adds value to students engagement/experience with content?

    To address your question - in Wilensky's work, at least specifically with the fireflies example (which I think was in a different paper), they connected the model to the real world by having kids look for data in journals and use that data in their models. This is kind of like the "experiment optional" version we talked about on my post for the ants. It would be better for kids to get their own data in a lot of ways, but maybe the kid couldn't catch and study fireflies (cost, time, location, etc.), so we make do with other's data (which empowers findings of adult scientists over students).

    ReplyDelete
  2. I think you bring up important gendered issues with programming. I can't really articulate why, but it bothers me that so much of the work with getting girls to program focuses on storytelling or e-textiles. It's like making Legos pink to get girls to play with them. It seems stereotypical and limited. It's really just touching the surface of girls' interest in programming and not getting to the deeper roots of why girls have trouble identifying with computer science, what sociohistorical, cultural, community issues are also there. It just seems like a quick patch on something that goes much deeper. And like you said, what happens after that? Getting girls to start programming is one thing, but what about persistence? That's another huge issue, and I think a more important one.

    ReplyDelete
  3. I agree that it is important to address the issues of stereotyping intertwined in the nature of attempting to engage specific populations in programming. While is is important that we as educators aim to promote computational literacy across multiple populations, it is important to ensure that our attempts at accomplishing this are socially, and culturally responsive. How we can ensure that this happens, will require some more in depth research and discussion.

    ReplyDelete