google / codeworld

Educational computer programming environment using Haskell
http://code.world
Apache License 2.0
1.24k stars 192 forks source link

Q&A system for students #392

Open cdsmith opened 7 years ago

cdsmith commented 7 years ago

We want a Q&A forum built into CodeWorld. It should let students submit questions, and a trusted set of respondents answer them. The respondents would be teachers and other CodeWorld leaders.

Ideally, it should automatically attach the student's program and error message to the question, since they won't always send it on their own.

cdsmith commented 7 years ago

I've linked http://help.code.world to an external Q&A site for now.

cdsmith commented 5 years ago

So, both external Q&A sites that I've tried have been horrible. I think it might be time to look into the right custom-built solution. Some thoughts follow:

The big deal is this: We do NOT want a StackOverflow clone. Most CodeWorld students simply cannot use a resource like that effectively, for a myriad of reasons.

  1. Students are usually not capable of writing clear, general-purpose questions about things they do not understand. Most of the time, they don't know what exactly it is they are missing.
  2. StackOverflow was designed for peer-to-peer help, but there's no evidence this will ever happen with CodeWorld. There are more rigidly defined roles as teachers/mentors and students. Sure, learning by teaching others is great, but it usually needs to be a designed and supervised experience to succeed.
  3. Students should not have to deal with voting on the quality of their questions. StackOverflow can be a harsh place, and justifies it by simply denying any interest in the emotional well-being of their users. Teachers don't have that luxury.
  4. Student questions usually involve an extended back-and-forth of suggestions and advice -- not just a single question and answer. As the experience progresses, the students and helper(s) should have access to the evolving code at all stages, and the history of the conversation.
  5. Students have relationships with their teachers or mentors, who have a shared understanding about how much they already know, and what level of support or scaffolding they need. Posting their words to a random person isn't likely to generate good answers.
  6. There are social issues with matching students to random helpers, anyway. They should be helped to communicate within their class, but not to arbitrary other people studying with the platform.

So it looks like we'll need to either design a solution that satisfies most of these requirements, or else integrate with a more appropriate external system (LMS or something) that's not just a public web forum.