From WeBWorK_wiki
Revision as of 11:31, 25 January 2014 by Geoff Goehle (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Achievements (or Mathchievements) are gamification features designed to reward students for solving homework problems and for practicing good WeBWorK behavior. In a nutshell, students can earn achievements by meeting preset goals. For example, they might earn an achievement for solving 3 homework problems in a row without any incorrect submissions, or for solving a problem after taking an 8 hour break. Earning achievements and solving problems earns students points and after a student gets enough points they will be given a new Level. Depending on settings the math level may come with an Achievement Items. Students can view their current level and their progress towards various achievements by visiting the Achievements page. Instructors can modify and administer achievements by using the Achievement Editor page.

Enabling Achievements[edit]

To enable Achievements go to the Course Configuration page and under the General tab set the Enable Course Achievements option to true. From this page you can also change the default number of "Achievement Points" awarded to a student for getting 100% on a problem and enable Achievement Items.

  • Note: By default the Achievement Points Per problem is set to 5. This value is such that if the default level thresholds are used in a course with approximately 180-200 problems per semester then most students will get to level 9 or 10 by the end of the course. If you use fewer or more than 200 problems in your courses then you should adjust the Achievement Points Per Problem value in ratio to 200. If you add in additional custom achievements, or change the number of points awarded for achievements then this also affects how quickly students will earn levels.

From here you should reload the page and then go to the Achievement Editor page. There you should go to the Import tab, select the default_achievements.axp file and hit "Take Action". (If you are using achievement items use default_achievements_items.axp.) If you choose you can have the achievements assigned to your students now or you can do that later.

  • If you do not have default_achievements.axp listed in the Import drop down menu then you should download the tar.gz files at and The first archive should be uploaded and unpacked using the File Manager into the templates directory. (This is the default directory when you enter File Manager.) The second should be uploaded and unpacked into the html directory. (This is can be found by clicking on the ^ button to go up a directory from templates.) Once you have done this you should have the ability to import the default achievements as described above.

Once the achievements have been assigned you should be able to test the system by vising any open problem and submitting a correct answer. Note: check answer does not work. You can also visit the Achievements page to see that things are functioning.

  • The achievements are designed to all run automatically. The one exception to this are the "Challenge" achievements. These achievements are awarded for completing challenge problems. If you don't want to have challenge problems then delete or disable these 11 achievements. If you do want to have challenge problems then create a set called Challenge with 10 problems and the challenge achievements will work automatically.

Administering Achievements[edit]


From this page you can change nearly everything about the achievements.

  • If you either use the Edit tab or click on the pencil next to an achievement name you will get to the editor page. The table on this page look like the following

Achievement Edit Table.png

  • Here is a description of the fields in the edit table.
    • The left most column contains the current icon of each achievement. The file name for the icon is contained in bottom right field. These icon files are all located in the [TMPL]/html/achievements directory. If you put in the wrong file name then you will end up with broken image links. If you don't put in any filename into the Icon File entry then you will get a default icon.
    • The Edit link in the right most column brings you to the achievement "evaluator" which is described at Achievement Evaluator.
    • The left top field is the Achievement ID, which you cannot edit and is not visible to students.
    • The left middle field is the Achievement Name. This is the visible title attached to the achievement.
    • The left bottom field is the achievement category. This has a special purpose. Achievements are sorted and presented first by category and then alphabetically according to their achievement id. (This is why the achievement id's tend to start with numbers...) This makes the student achievement page easier to parse. There are two special categories that deserve to be singled out. Achievements in the "secret" category will not be visible to the students until after they are earned and are for fun/surprise achievements. There is also a "level" category. These are the achievements which are used to determine/control a students Level. If you do don't want to use levels then delete or disable these achievements before assigning any data.
    • The top middle check box indicates if the achievement is enabled.
    • The middle middle field is for the number of achievement points the student will gain by earning the achievement.
    • The middle bottom field is used for "counting" achievements. For example, if the achievement requires students to solve 5 derivative problems, the 5 would be stored in this field.
    • The top right field is where the description of the conditions necessary to earn the achievement is kept.
    • The middle right field is where the name of the evaluator file corresponding to the achievement is kept.

Importing and Exporting[edit]

Using the Import and Export tab you can import or export achievements. This is useful if you have customized your achievements for a particular course and want to transfer them to a different course. The system works much like importing and exporting homework sets with a couple of exceptions.

  • The import data is stored in an .axp file. These files should be kept in your [TMPL]/achievements directory.
  • If you export achievements it exports it to a file CourseID_achievements.axp stored in the [TMPL]/achievements directory.
  • When moving files between courses you should save the achievements directory in your templates folder and move it to the new course. You will need to do the same thing with the achievements directory in the html folder. (This second folder is where the achievement icons are kept.)

Assigning and Scoring[edit]

The Assign tab can be used to assign all or some of the achievements to students.

  • There is certain data about students (like their total number of achievement points for example) which is stored separately from any given achievement. The only way to reset this data is to use the overwrite all data option on the Assign tab.

The Score tab can be used to create a csv with data about student progress on achievements.

  • If you use the score tab the resulting data is stored in a file CourseID_achievement_scores.csv in the scoring directory of your course
  • If you score no achievements the file will contain only the students total achievement score and other global data.
  • If you score some, or all, achievements the file will contain columns for each achievement with a 1 or 0 indicating if the achievement was earned or unearned.

Creating and Deleting[edit]

The Create tab can be used to create a brand new achievement with the given achievement id.

  • Remember: Achievements are sorted and presented first by category and then alphabetically according to their achievement id. (This is why the achievement id's tend to start with numbers...)
  • More information on how to create achievements is on Achievement Evaluator

The Delete tab can be used to delete an achievement and the associated student data. There is no undo for this.

Modifying Individual Student Data[edit]

The "Edit Users" column of the Achievement Editor page shows how many students in the class have been assigned a particular achievement. If you click on this link you will be taken to the Achievement User Editor page. Here you can do the following:

  • Change whether the achievement has been assigned to a given user.
  • Change whether the achievement has been earned by a given user. (This also changes their achievement score.)
  • Change the "counter" for a particular user. This is only used for "counting" type achievements. For example if the achievement requires students to solve 5 derivative problems, then this field would contain the number of derivative problems the student had currently solved.

Remember to save before leaving the page!

Achievement Best Practices[edit]

The achievement system works best when it rewards students for doing their homework and practicing good WeBWorK behavior. It is also more effective the more playful it is. The default set of achievements are, by necessity, bland enough to work for all courses. However, if you customize your achievements you might find that students like them more. (And you can always export and move your customized achievements from course to course.) One way to customize your achievements is to change the name and icon. This can make your achievements feel more personal to your institution or to your class. Another thing you can do is to add achievements. There are a number of different types of achievements, and some are easier to add than others.

  • Playful achievements - These achievements are generally whimsical and just for fun. For example, one achievement is awarded for submitting homework late at night.
  • Anti-guessing achievements - These achievements are designed to encourage students not to guess. For example, one achievement is awarded for getting 10 problems in a row correct with no incorrect submissions.
  • Persistence achievements - These achievements reward students for putting effort into homework. For example, one achievement is awarded for getting a problem right after a 24 hour break.
  • Challenge achievements - These achievements are awarded for doing challenge problems. They are part of the default achievement setup, but in order to use them you have to have a set called 'Challenge' with 10 problems.
  • Set and Homework completion achievements - These achievements are awarded for completing sets and completing homework problems. One achievement which is nice, but requires course customization, is to include an achievement for completing all the sets in a particular course.
  • Content achievements - These achievements are for mastering a particular course concept. For example, an achievement for solving a very hard related rates problem, or for taking 30 derivatives. These are not included by default, but they are very nice to have. They do require that the achievement be customized to individual courses. They are discussed more on the Achievement Evaluator page.
  • Manual achievements - These achievements are awarded manually by the instructor and are not included as part of the default setup. For example, there could be an achievement for coming to class for 4 weeks straight without any absences.

Gotchas and Unintended Features[edit]

This is a list of things which are a result of how the achievement system is set up and may be counter-intuitive.

  • The level achievements control what the XP thresholds for the levels. However, the threshold for level 2 is set in the level 1 achievement evaluator. The threshold for level 3 is set in the level 2 evaluator and so on.
  • Achievements and essay questions don't always mix well. Since the achievements are evaluated on problem submission, and students will never have a 100% grade on a problem at the time of submission if there is an essay answer, many achievements will not register. This is true even if the student is eventually given 100% on the problem.
  • Sometimes instructors don't want achievements to register for the initial "orientation" set. This can be done by not assigning achievements until after the set has been completed, or by using the file described at Achievement Evaluator.