Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increasing motivation with gamification #90

Open
alexmojaki opened this issue Oct 21, 2020 · 6 comments
Open

Increasing motivation with gamification #90

alexmojaki opened this issue Oct 21, 2020 · 6 comments
Labels
discussion Looking for ideas and opinions

Comments

@alexmojaki
Copy link
Owner

I want to explore ways we can reward success to encourage better performance. For example there could be a page dedicated to statistics, progress, achievements, etc. Or we could show some rewarding graphics or animations on some occassions, like the confetti that currently shows when a user gets an output prediction question right.

Here are some things we can currently measure. I'm sure some of these are bad ideas, but I'm going to list everything I can think of just to get brain juices flowing:

  • Number of steps/exercises/pages completed
  • Exercises solved without looking at:
    • any hints
    • more than X hints
    • any kind of solution, including Parsons problems
    • the gradual reveal solution, regardless of how much was revealed
    • more than X% of the solution revealed
  • Steps completed without copy pasting
  • Outputs predicted correctly
    • On the first guess
    • Within two guesses
  • Speed of completing steps/exercises
  • Number of attempts to complete an exercise

An idea that really excites me is to encourage the user to explore and experiment and reward them for discovering new concepts, especially if they discover something before it's been covered in the course. For example, we could reward discovering:

  • Any new error message, whether syntax or runtime. Trying to break things is a great sign.
  • Mathematical operators, parentheses, floating point numbers, negative numbers, any calculation that produces a number with more than 20 digits...
  • Nested things: loops, if statements, function definitions, function calls, lists...

Thoughts? Ideas?

@alexmojaki alexmojaki added the discussion Looking for ideas and opinions label Oct 21, 2020
@spamegg1
Copy link
Collaborator

Many sites out there let users earn badges. Upon completing a certain topic or mastering a cluster of related subjects, users obtain badges that show off their "level". It would be great if these are displayable and/or shareable over the Internet as a sign of pride and accomplishment.

Your "easter egg" idea sounds super awesome! We would have to write a lot of clever message step guesses though.

@spamegg1
Copy link
Collaborator

Another motivating gamified idea could be to interrupt the flow of chapters with slightly more formal "quizzes", like taking a mini-exam, covering recently learned topics. It could display a grade out of 100%, and completion time. These could earn them different levels of badges. They could retake it later.

Also we can reward them for using features when not needed: using Snoop, Bird's Eye, and Python Tutor X number of times (even when the text does not require them to).

@spamegg1
Copy link
Collaborator

What a strange coincidence, Coursera just rolled out a new beta feature called "Skill tracking":
skills

Maybe we could have a much simpler version of this, for "Strings", "Lists", "Functions" etc. Not sure, maybe that's too simple/trivial and needs to be fleshed out.

@acivitillo
Copy link

I understand you are asking a platform question but my experience with motivation is that people learn python more quickly when they need python to execute a project they care about. I have been thinking a lot about this (my first comment here was in August!) and I keep coming back to the same 2 questions:

  1. How to give beginners a proper python intro -> futurecoder seems the best approach out there here
  2. How to keep them engaged over multiple months

I think for point 2 moving them to Jupyter and giving them a notebook connected to some key services (i.e. databases) to build real life programs is important. Even better if Jupyter cells can somehow be turned into Futurecoder steps.

It depends, ultimately, on what is the goal of futurecoder.

@alexmojaki
Copy link
Owner Author

I definitely want futurecoder to eventually include real-life style projects. That can include databases, networking, scraping, data science, etc. But that's all very far down the line.

For now the goal is purely a proper intro. And for that, gamification of small achievements seems like a good fit.

@oskarissimus
Copy link
Contributor

oskarissimus commented Dec 31, 2023

Rewarding discovery of the errors sounds like a great idea :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Looking for ideas and opinions
Projects
None yet
Development

No branches or pull requests

4 participants