comment 0

Reflections on Reflecting in Computer Science

 

By Paul Dickson

Computer science can feel like a field far removed from concepts like reflection. There are solid facts and concepts that need to be learned and once they are learned, students are set: Why do they need to reflect upon the process? This completely misses the point of reflection.

We have students reflect to make them think more about what they have learned. This can be anything from how the learned material fits into a larger context to how they could have learned the material better. Reflection enhances the learning process no matter what the topic, including computer science.

The course where I have always forced my students to reflect the most is Comp 207 Game Development and Technologies. In this course the first third of the semester is spent teaching the game engine through a series of in-class examples. After each example, students complete a lab in which they reproduce the example from class before taking it a step further. For the final two-thirds of the course, students work in groups of 3 or 4 to create and implement a single game. Each group comes up with the idea for the game it wants to develop, and 5-10 minutes of mostly bug-free game content is a really good result. Students’ lack of experience with the game engine, creating and implementing games, and 2-month-long projects make this a messy assignment. They tend to survive the process more than actively learn from it. To get my students to learn from the process, I have always had each group write a postmortem of the process, a common practice in game development. These postmortems include what went right and wrong during the process and what can be learned from each, essentially a reflection on their process.

As part of the Course Design Institute, I began to look at how I could bring more reflection into this course. I looked into ways of incorporating reflection mid-semester with the goal of improving student productivity in the final project group work. While this has had some of the desired effect in terms of improving student understanding and work, it was not a complete solution.

The problem is that I did not reflect enough on what I was trying to solve with reflection.

Before I can aim my students using reflection, I need a better idea of where I am pointing them. I give them a large group assignment because I want them to work on a messy project. I want them to come up with an idea and then have to modify it when what they set out to do turns out to be impossible. I want them to learn material on their own and to figure out how to make group dynamics work under adverse circumstances.

All of these benefit from reflection but the reflection must be tailored and not just general reflection on what went well or didn’t go well or what wasn’t working at present.

  1. The first point is that I want students to assess their groups games and figure out how to modify their goals to make them achievable. To achieve this I need to have my students define the core of their game concepts. Once they have these concepts they can better determine whether they are meeting them and hence whether the concepts have to be modified. Having them tightly couple this definition of what they are trying to achieve with a reflection on how well they are achieving their goals should clarify their process and help them see better what they need to modify.
  2. Reflecting on their learning of material that they need in order to build their games should be a bit easier. The real point is that group members are looking things up on their own to figure out how to make things work. If I have each group put together a document on how to approach learning to do something with the game engine, it should achieve my goal of reflection. Group members will have their own strategy, but if they all have to create a document together they will all become more aware of the other members’ strategies. Having to blend their ideas into a single document should force them to focus in greater detail on how they are approaching learning on their own and should improve their self-directed learning. In addition, each group’s document should be useful for others who take the course in the future.
  3. Reflecting on how to improve group dynamics should be the most ticklish reflection. I want each group to figure out how to work together better before the end of the semester when it is too late for improvement. This process will be hampered by the fact that people have a lot of trouble telling friends that they aren’t pulling their weight or are causing problems. For a first attempt I am going to have group members each write a document listing the single most positive and negative thing that each group member (including themselves) has brought to the group project. I will then require each group to pull all of that information together to determine what changes they need to make as a group to improve productivity. Group members will also have to list the single biggest thing that they are doing that they need to improve on as well as what they are doing best and should do more of.

This all returns to the overall concept of reflection. Reflection can be just as useful in the hard sciences as in any other field because the point of it is to revisit material and ideas in order to learn more. The key to using reflection is, like with many other concepts, simply to really think about what goal is trying to be achieved through reflection and use appropriate reflection for that purpose. All of this becomes glaringly obvious upon reflection and really should have been obvious before reflection, but that is kind of the point for why you reflect.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s