Strokes: new features have arrived

The Strokes project is still ongoing and several interesting new features have been added by my Danish friends! For those unfamiliar with this project (have you never read this blog???) , simply put: Strokes a Visual Studio 2010 extension that allows users to gain achievements while programming. It is mainly targeted to students who are learning C#; however some interest from the development community, especially VB.NET devs, also exists. Read this post for a full overview of the project.

The new features that have been added since my last post, in no particular order, are:

  • Achievement tree: It is now possible to define what achievement needs to be unlocked before the user can unlock a particular other achievement. For example, the user can’t unlock the “Create a foreach loop”, if he never ever unlocked the “create a for loop”. This allows us to prevent students from accidently unlocking things they never heard of before.
  • Localization: If anyone ever feels like using the Strokes extension in a particular language/culture, this can now simply be done as the achievement titles and descriptions can now be localized (currently supported languages are : English 100%, Danish 5%, Dutch 5%, Russian 0,01% )
  • More than 150 achievements and counting: Currently there are more than 150 achievements defined that the user can unlock. These are categorized in 13 categories. Yours truly is especially having fun in writing achievements in the Funny category (though your definition of what is in fact funny might differ a bit), especially the “What if Visual Studio had Achievements” post was a great inspiration.
Many achievments

Lots of new achievements and categories.

If you wish to contribute in any which way, don’t hesitate to contact us on our github page. Suppose you wish to write achievements, make fancy art, translate stuff, etc. join us and let eternal glory be yours!


Strokes: achievements while programming!

Ok, so I’ve already hinted about this several posts before: an actual implementation of achievements-based programming in Visual Studio is being made as we speak. In this post I will humbly and proudly present the Strokes program that is rapidly evolving into something I’m eager to use in my own classes. Humbly because the work Jonas Swiatek has done is, in my opinion nearly epic, for each component in the project that I understand, there’s about 3 others that I don’t. Proudly because, it being a googlecode project, I in fact have made several small contributions to the project, not in the least dozens of mails in which I describe my ultimate wishes on how the program should behave.

Explaining how the whole shebang works internally is not what this post will be about, instead, I’d like to simply throw around some pretty screenshots and show of the program the way the end-user might see it. Since this program was written to be as extendable as possible, in the end of this post I’ll give a brief overview on how others can use the Strokes-code to write new achievements.

Before reading on, I’d like to point out this project is still a work-in-progress. So if you are a) disappointed or b) excited, there’s 2 things you can do: you can help us out and contribute in any which way you see fit (provide ideas for challenges and achievements, contribute code or art, give basic feedback) or you can simply nod with your head sympathetically, leave and do other things *grin*.

If you want to see how it all works or make some contributions, all information can be found here: Make sure you read the wiki on how to setup your Visual Studio if you wish to test the current version of the project. And of course, don’t hesitate to contact us.

Update (24/08): An early beta can be downloaded of the strokes program so people can test the application themselves. Let us know what you think of it. Download here. Read more of this post

“World of C#-craft” part 3: other sources for inspiration as an interlude to Strokes

A lot has happened since I wrote on my dream of teaching C# using a system where my students could earn achievements (previous parts: Part 1 intro, Part 2 survey). In fact, my dream is actually nearing completing thanks to the hard work of Jonas Swiatek who is building exactly what I need, with a little help of myself. In a next post I’ll give a full overview of what this is (if you’re anxious to find out, go check out the Strokes Project on googlecode). Expect this review in a couple of weeks. Consider this post an interlude to the post where I present the Strokes project!

So, in the meantime, allow me to quickly summarize what other projects and sources currently exists (besides the earlier mentioned Ribbon Hero) and which can be used as inspiration both for the Strokes project and for others going the same ‘achievement-based’ learning path. Oh yeah, and if you think that Negative Achievements don’t exist, think again and check out part 3 of the excellent “The cake is not a lie” articles. Speaking of lying cakes, you definitely should check out this comic on achievements and portal 2 (click image for the full comic)!

One of the original projects that should be a must-see for anyone seriously thinking about teaching a programming language is the PexForFun project by Microsoft Research. This, free to use, project is a series of programming challenges (C#, F# and VB) both extremely easy and stupidly hard to solve. Users can randomly start a challenge or, more wisely, solve them in order. Basically the user is presented an in-browser code editor with per challenge a few lines of code and usually a title that hints to what needs to be done. The nice thing is that no additional help is given. Instead, the user simply needs to guess what needs to be done by adding some code and then hit the ‘Ask Pex!’ button which will results in the current code being compiled and tested for correctness of the challenge, followed by feedback of why the current test failed. So bit by bit you, usually, get closer to the solution and in the meantime hone your algorithmic thinking skills. If you are on the road, PexForFun also has an excellent Windows Phone 7 application that does exactly the same, but on a way smaller screen (more info). Though PexForFun won’t win any prizes in the looks department, it is definitely worthwhile to check out.


What will win prizes in the looks department is Jira Hero. This plugin for Jira , a bug tracker, does exactly what we are aiming for in the Strokes project: achievement-based learning with an online part that allows users to compare each other’s progress. The user, in a playable manner, learns how to use the Jira systems and earns badges by performing specific tasks. Leaderboards allows a user to see his progress compared to other user. The project ended on third place in a plugin programming contest, Codegeist V, by Attlasian, the makers of Jira. Even if you’re not into Jira, check out the postmortem of the Jira Hero project here.

A small blogpost with not much additional information but a brief paper (that’s not very exhaustive in my opinion) describes commonly used game mechanics. This particular posts is on achievements, more posts are promised but to be honest, don’t way for them because it appears that the author(s) have moved on to other interests, still, check out the paper for some inspiration here.

For real, scientifically backed, inspiration and papers, several high-ranked journals exists:

  • Wiley’s “Journal of Computer Assisted Learning” (link)
  • Elseviers “Computers & Education – An International Journal” (link)
  • “Journal of Educational Technology & Society” (link)
  • “Journal of Research on Technology in Education” (link)

Many other journals in fact exists which sometimes focus on parts of game-based learning but the aforementioned can be considered, in my opinion, to be prime resources. For a complete listing of what is out there, and more, check out the following site (WARNING: contains a lot of adds!).