Learning without a Teacher

  • Aug 10, 2012
  • 0 Comments

One of our main goals is for kids to understand how to use the features of Looking Glass, such as drag-and-drop, play and remix. However, even if they can successfully create a basic animation, with characters talking and walking, they may not necessarily ever learn how to create more complex animations, use if statements and do-togethers, or create custom procedures for high-level classes with parameters. While some kids may explore and discover these functionalities, many others may not take the initiative, or will attempt to use them and not know how. Unfortunately, a large majority of these kids will not know a teacher, peer or parent with the knowledge to answer these questions. I have been working on two projects, a mentoring system and a help system, which will hopefully fill at least part of the role a teach would play in this learning process. Mentors will make suggestions to improve the code or story of a world and a help system will provide kids with a way to get answers to their questions. For example, a mentor might suggest that a kid use a count loop, rather than repeating a line of code 5 times, and a kid might want to ask something like, "how can I make my backflip better?"

 

Mentoring

As mentors, domain experts will make suggestions of changes to their mentee's code and then write rules to identify other worlds that could benefit from the same suggestion. This week I ran six user studies for our rule authoring system. 

The hardest part, initially, about running this study was definitely working out how to explain the process so that the participants understand what we're asking them to do- it's a concept very few people have thought about before and it's not simple to wrap your mind around! Running the study has definitely made me aware of how clear our interface is going to need to be in order to effectively communicate what needs to be done when mentors can't ask questions to a live person. Once the api is written, at least mentors will have a standard way to write the rule, but even the general idea of what they're doing is new and different. 

Another complication is in the different skill sets and experience levels of all of the parents/teachers/older siblings who might want to mentor a child they know. After running just 15 participants, it's clear that varying programming experience will definitely play a role in how the mentoring system should work. 

 

Help

I have also been working to design a system for kids to ask questions and have other kids answer them. One systems like this in the adult programming world, is Stack Overflow, where programmers ask questions and other programmers answer. For adults, it seems to work pretty well, but I think that for kids, a help system integrated into the programming environment would provide useful context to the question and would make both the questions and the answers easier to understand for other middle school-aged kids. 

One of the biggest challenges for me has been thinking about how to make a smooth transition between the community and the IDE. For example, I think that users need to both be able to ask questions and view the answers to their questions in the programming environment, where the question arises and where the answer will be applied. However, it seems as though the users who answer questions will be more likely to browse them online than while they are working on a project of their own in the IDE. I think it makes sense to browse on the community and build worlds in the community, making it logical for different parts to exist in the two different spaces. 

I have also been working on determining how answers should be displayed. In order to encourage learning, we don't want users to simply be able to open the answer world and copy it. Instead, the user should be presented with some sort of teaching mechanism, like a tutorial, to teach them how to make the change. For a complicated question with a complex answer, a tutorial does seem like the best approach. But what about answers that are one or two lines, or one swap of lines of code? Is a tutorial necessary, or even the most effective method to teach these solutions? I have been thinking about using screenshots for this category of questions, so that users can just look at an image of how to do it and then attempt to re-create the change themself. 

Another important aspect of this design is that I would like to determine, for each question, which set of users has the skills to answer the question and would be most likely to do so, in order to have all questions answered, and answered correctly. There are two parts of this: skill level and interests.

  • Skill: Each question will only be shown to users who have just gained the skill level immediately above. For example, if the skill levels were numbered 1-10, with 1 the lowest, questions of level 1 would only be shown to levels 2-3, and so on. This way, the users in levels 2-3 probably know how to answer the question and can reinforce skills they have recently learned. Additionally, as users gain more skills, they are pushed to answer harder questions and are not bored by the same beginner questions repeatedly. 
  • Interests: Users who are interested in certain themes or characters may have more knowledge about how to create animations with those characters or relating to those themes. For example, if a question with a dolphin in it is directed to a user who has used dolphins before, they may have already created the dolphin flip and can help a user with less skills. Additionally, because the user likes dolphins, they may be more likely to answer the question, than they would if the question had some "less interesting" character, like a cow. 

If questions can be answered accurately and those answers are presented to users in a way that helps them learn, the hope is that users would gain new skills that they might not have learned on their own and that it will help to keep them engaged. 

 

Comments

  • No comments yet

Log In or Sign Up to leave a comment.