Nomenclature nature

Last week I gave a talk at the Gamification 2013 conference at the Stratford campus of the University of Waterloo. A lot of conferences talk about “bringing together academia and industry” but it’s a difficult thing to do. Some conferences like IBM’s CASCON are able to do it really well. Gamification 2013 did a great job, and that was one of the highlights of the event from my perspective.

At the end of my talk I took some questions, the last of which was about the distinction between gamification and serious games.

Gamification is generally defined as the usage of game design elements in non-game contexts.

Serious games are generally defined as full fledged games built for a purpose other than pure entertainment.

There are other overlapping terms and categories in this area, such as simulations, play, persuasive games, game mechanics, exergames, advergames, games for health, games for change, games for impact, gameful design, etc. Getting people to agree on a common terminology when the lines are grey and overlapping is difficult.

One important thing science and academia provides to society is the ability to meaningfully categorize different things using a common nomenclature. A common nomenclature makes it easier to teach things, and easier for people to communicate with one another about the same ideas. It would be ideal to categorize this area as much as is possible. It’s something I’m trying to help do myself. Lots of people across academia and industry are trying to do this now:






When this question was raised I made a point that I have yet to meet anybody in industry use the term “serious games” to describe what they create, or what they want somebody to create for them. I’m sure there’s people working in industry that use the term “serious games” to describe what they do, a quick Google search confirms as much. I just haven’t met any yet myself. But I do talk to a lot of people in industry, and I find they will just use the term “gamification” instead, or sometimes things like “health games” or whatnot, even if what they are describing is strictly speaking a serious game.

Why is this? I think it comes down to sex appeal / marketability. Outside of academia there are usually better alternative words to not only communicate what you are doing to somebody else, but to sell what it is you’re doing to somebody else. For example a client may not care about the distinction between serious games and gamification, they’ve just heard they can increase ROI through gamification and so this becomes the common terminology they use to seek out and communicate with a company that provides gamification solutions.

I propose the following:

The granularity of distinctions and degree of formality used in language are determined by the value that they provide to the community.

So an academic community will tend to have a finer granularity of distinctions and a higher degree of formality than industry, because the value in doing so exists. Sometimes this filters out successfully to the broader community when it provides enough value, and sometimes it doesn’t.

Is there value right now for industry to make the distinction between gamification, serious games, gameful design, and games when describing their products? Will there be in the future as gamification evolves as a design technique?

We’ll see. But I think it’s a decision a community organically makes.


Connecting McMaster students to Hamilton jobs

Last night Software Hamilton (@hamiltonsw) and Hamilton Economic Development (@hamiltonecdev) hosted the inaugural Jobs Night at McMaster University. A big part of the motivation for me to organize Software Hamilton events is the frustration I’ve experienced watching the brian drain occur out of McMaster. Year after year an amazingly talented bunch of people graduate from McMaster University and generally leave Hamilton. I’m told this happens in “University towns” everywhere, but I’m fairly certain it’s worse in Hamilton. An obvious example would be RIM (now Blackberry), which has been great for retaining University of Waterloo graduates in their city. We can’t capture all of the McMaster graduates or even most of them at this point, but with Hamilton software firms now hiring in greater numbers than ever before we should be able to start retaining at least some of them.

McMaster has formal channels for connecting students to jobs that work great; my own experience with the co-op program during my undergraduate years was fantastic. I obviously forward any job opportunities I’m aware of to the right contacts internally (McMaster is my employer, and I’m a graduate student there currently).

But in past years I’ve also run more unofficial informal “networking events” for undergraduate students where I’ve had alumni come in and pitch what their company does and what types of jobs they will be looking to fill over the next 6 months. It ends up being educational for the students if nothing else, they get to see what types of career paths exist and what companies out there are looking for in terms of skills and experience. But a cool thing happened where every time I ran one of these events companies would fill positions with students they interacted with that night. I’ve always wanted to do one of these event focusing on companies from Hamilton specifically, but it wasn’t until the software startup and job surge over the last few years that doing so was really possible.



At Job Night last evening we had Mabel’s Labels, Weever Apps, REfficient, ProSensus, HiFyre and others from the Hamilton-area come in and talk about what positions they’ll be looking to fill over the short term to about 60 students in attendance. I know at least a few of these companies will be conducting interviews with students that they met at the event, and they spoke highly of the McMaster students that they have hired thus far. A representative from the Small Business Enterprise Centre was also there to explain the Summer Company program. Several students indicated they would be using the program to help launch their own software development shops over the summer. There’s a huge opportunity for them there… I get a lot of requests for help with short-term software development projects from companies that are overburdened with work but not yet at a level that they can justify hiring a new employee.

A single event like this isn’t going to stop the brain drain or build a better funnel from McMaster in to Hamilton. In some sectors like healthcare the talent already flows freely and in large numbers from McMaster in to Hamilton. But in others the talent doesn’t flow in to Hamilton, it just flows right out, and the lack of local opportunities can lead to a perception that McMaster is a bit of a wall within Hamilton. Based on feedback from participating companies and students, I suspect Job Night helped put a nice little crack in that wall, with many more to come.


Stanford’s Venture Lab to offer new courses this fall

Venture lab

There are 5 new Stanford classes to be offered on Venture Lab, an entrepreneurship focused Stanford MOOC initiative, this Fall.
Here is the list:

Technology Entrepreneurship, Chuck Eesley
Start up Boards, Clint Korver
A Crash Course on Creativity, Tina Seelig
Designing a New Learning Environment, Paul Kim
Finance, Kay Giesecke

“My technology entrepreneurship is going to be a repeat of last Spring’s class. It is also an opportunity for those of you who were too busy in the Spring to take the class on a fully developed platform. Clint Korver’s class on start up board is the first in our advanced series on entrepreneurship. The class is more suitable for those of you who already have formed a team. I highly recommend it! !

We look forward to seeing you in the next classes. Meanwhile, please spread the word to your colleagues and friends and on social networks.”
Chuck Eesley

Stanford’s free online courses are taught by regular Stanford faculty and are highly interactive. Enrollees do not get Stanford credit for their work, but they do receive a statement of accomplishment if they successfully complete a course. The classes are delivered on a number of different platforms.

If you are interested in MOOCs you may want to check these out too:

Stanford online


GenCheck – a generalized property-based testing framework

Test.GenCheck is a Haskell library for generalized proposition-based testing. It simultaneously generalizes QuickCheck and SmallCheck.

Its main novel features are:

  • introduces a number of testing strategies and strategy combinators
  • introduces a variety of test execution methods
  • guarantees uniform sampling (at each rank) for the random strategy
  • guarantees both uniqueness and coverage of all structures for the exhaustive strategy
  • introduces an extreme strategy for testing unbalanced structures
  • also introduces a uniform strategy which does uniform sampling along an enumeration
  • allows different strategies to be mixed; for example one can exhaustively test all binary trees up to a certain size, filled with random integers.
  • complete separation between properties, generators, testing strategies and test execution methods

The package is based on a lot of previous research in combinatorics (combinatorial enumeration of structures and the theory of Species), as well as a number of established concepts in testing (from a software engineering perspective). In other words, further to the features already implemented in this first release, the package contains an extensible, general framework for generators, test case generation and management. It can also be very easily generalized to cover many more combinatorial structures unavailable as Haskell types.

The package also provides interfaces for different levels of usage. In other words, there is a ‘simple’ interface for dealing with straightforward testing, a ‘medium’ interface for those who want to explore different testing strategies, and an ‘advanced’ interface for access to the full power of GenCheck.

See for further details.

In the source repository (, the file tutorial/reverse/TestReverseList.lhs shows the simplest kinds of tests (standard and deep for structures, or base for unstructured types) and reporting (checking, testing and full report) for the classical list reverse function. The files in tutorial/list_zipper show what can be done with the medium level interface (this tutorial is currently incomplete). The brave user can read the source code of the package for the advanced usage — but we’ll write a tutorial for this too, later.

User beware: this is gencheck-0.1, there are still a few rough edges.  We plan to add a Template Haskell feature to this which should make deriving enumerators automatic for version 0.2.

Jacques and Gordon


AppsForHealth helps build Ontario’s eHealth community

Over the last two days I attended Mohawk College’s AppsForHealth conference. The two day conference first took place last year, with the second occurring May 10-11th of 2012. The first day of the conference was centered around talks, discussion panels, technology showcases and networking for professionals and students alike. The second day of the conference was centered around a student mHealth app design competition where teams of students attempt to design mobile solutions to health care challenges posed by industry sponsors. I was part of the UI design panel that took place during the first day of the conference. The diversity of the community at the event in terms of career backgrounds made for lively and interesting discussions, as nursing students, med school students, family doctors, policy makers and entrepreneurs in the audience connected with a diverse mix of UX and UI design experience on the panel. At one point the following Tweet was briefly brought up on the screen:



It reminded me of articles I’ve come across over the last year like The Jig Is Up: Time to Get Past Facebook and Invent a New Future by Alexis Madrigal (@alexismadrigal) advocating for a new paradigm for startups, and Stop Building Apps and Start Disrupting Industries by Michael Karnjanaprakorn (@mikekarnj) encouraging startups to focus on disrupting industries such as education and healthcare.

I do love Angry Birds, but when I read articles like these and Tweet’s like the above, it makes me think about watching shows like Star Trek growing up, where technology was being used in the future to save lives and drastically improve quality of life. I remember Dr. McCoy thought our health care might as well be from the dark ages! Wherever they found their inspiration, I think that like health care professionals, a lot of engineers and scientists are motivated to do what they do by the possibility of improving people’s lives and creating a better future.



That’s why I’m excited about AppsForHealth and other events across Canada like Hacking Health in Montreal that are working towards increasing and improving the usage of technology in health care. The infrastructure for supporting eHealth and mHealth in terms of internet access, bandwidth and market penetration is now in place, and increasingly capable mobile devices are gaining larger market penetration with lower costs every year. There are great opportunities for using this new technology to improve health in Canada and around the world. And with rising health care costs squeezing government budgets to the point of credit downgrade warnings, technology may provide an alternative solution to the undesirable options of either decreasing services or increasing costs.

You can check out some video coverage of the first day of AppsForHealth here:



The student challenge portion of the event was focused on designing mHealth solutions to challenges posted by non-profit and health care organizations. Students formed teams with a mix of technical and medical skills in the weeks before the event, and were able to access professional mentors during the pre-event mixer and the event itself to improve their solutions. The top three prizes as awarded by the judges were $3000, $2000 and $1000 respectively. Check out the list of challenges below:

  • World Vision Challenge – How might we use mobile technology to support growth monitoring and counselling for children under the age of 5 to improve nutrition and reduce child mortality in developing countries? [link]
  • Electronic Dermatology Consultation – How can mobile technology be used to streamline dermatology consultations in the primary care setting? [link]
  • Mobile Assistance Solution for Youth with Lupus – How could a mobile app increase connectedness with other young people with lupus; track symptoms; remind them to take their medications, include an up-to-date summary of their current status; allow communication of their health status to health care providers; and ide healthy role models in a way that is easy to access, empowering and fun and that won’t require individual feedback to users? [link]
  • Interoperability Between Specialized Data and Generic EHR – How could nurses use technology in a long term care organization to plan, evaluate and document evidence-based care? How could technology enable safe transition of care at shift change? How could technology interoperate with the EHR to improve patient care and capture health outcome data? [link]
  • Mobile Education App for Prostate Cancer – Design an application that will be used to educate men on prostate cancer and provide them with the relevant questions to ask their doctor, based on their profile and disease stage – screening, diagnosis, treatment, living with cancer or remission. [link]
  • Technological Assistance for Children with Chronic Health Conditions – How can technology be used to improve accessibility and ease of use of the new WHO classification system (ICF-CY) to process, collect and display information about the ‘disability’ and ‘functional’ status of children with chronic health conditions? [link]
  • Mobile Solution to Reduce Mortality Rates in Northern Haiti – How can we use mobile decision support and mobile technology to improve effective institutional delivery referrals to reduce maternal and infant mortality rates in rural communities in Northern Haiti? [link]
  • Leveraging Technology to Assist Seniors with Alternative Living and Long-Term Care – How could mobile technology be used to assist seniors and their families explore and discuss alternate living environments and long-term care options? [link]
  • Medical Records Challenge – How can a chronic disease patient track their relevant symptoms using an application, meanwhile utilizing the live data from this symptom tracker to trigger retrieval or receipt of research- based recommendations, and present those recommendations to both the patient in their PHR and to their health care providers’ EMR? [link]

The winners were announced at the close of the event on Friday afternoon:


1st Place $3,000: Shivani Goyal & Joanne Wong (University of Toronto) for their solution to the youth with lupus challenge supported by SickKids.


2nd Place $2,000: Kent Tsui (McMaster University), Gawain Tang (McMaster University) & Steven D’Costa (Ryerson University). Electronic dermatology consultation challenge by Hamilton Family Health Team.


3rd Place $1,000: Lauren Harris,Teresa Coutu, leanne Fernandez (McMaster University), Adam Carriere, Lina Tirilis (Mohawk College). Supporting seniors with alternative living and long-term care planning challenge, Niagara Haldimand Brant CCAC.


Though I love that it takes place in Hamilton, it was clear during the event that AppsForHealth really has fast become Ontario’s conference for mHealth and eHealth professionals. The keynotes, panelists, experts, technology demonstrators, professionals and students came from Waterloo, London, Toronto, Hamilton and post-secondary institutions from all over Southern Ontario. AppsFoHealth is playing an important community building role for the region. It brings together a group of people with diverse talents and connects them to one another so that together they have the skills required to tackle these challenges. For me personally what I liked the most was being reminded about why I became interested in science and technology to begin with. And I think it was because the challenges themselves were so focused on ideas that would save lives, improve quality of life, and help create that better future for everyone. Organizers Christy Taberner, Duane Bender (@duane_bender) and Mark Casselman (@markcasselman) have put together something really great. I can’t wait to see AppsForHealth 2013.


McMaster graduate student built a Tricorder

Peter Jansen (@thetricorderprj) recently earned his PhD in Cognitive Science at McMaster University, and as part of his research he built a working Tricorder!

If you’re interested, maybe you should talk to Peter, he’s looking for partners. There is also the Qualcomm Tricorder X-Prize, a $10 million US prize contest to essentially recreate the Tricorder from the Star Trek franchise. Maybe we’ll see somebody try to build that at AppsForHealth 2013!


Online courses update

It’s not too late to sign up for the April 23rd start of Computer Science 101, Automata, Compilers, Computer Vision Fundamentals, Introduction to Logic, or Machine Learning.

They’ve also added a large amount of more offerings starting later in the summer and fall of 2012. There are around 40 or so classes, check them out:


Udacity is also offering 6 courses right now, all taught by world-class professors, all currently in their first week. The first homework assignment is not due until Tuesday the 24th so you still have time to join. You won’t be disappointed in their quality and engagement.


Lastly I’m currently taking “Principles of Economics” at, there are monthly offerings for under $200 if you are interested in broadening your scope in that kind of area.


Improving education with technology – Dundas Central model

The Spectator covered Dundas Central teacher Heidi Siwak’s (@HeidiSiwak) efforts to use technology to improve learning using technology last December in this article, but I’ve been meaning to throw up a post about it here in case anyone missed the story. Heidi’s efforts have also been covered in The Globe & Mail’s “Future of Education” series, and last month Dundas Central won The Ken Spencer Award given out by the Canadian Education Association for innovation in teaching and learning.

The class uses YouTube, has experimented with a livestream channel and podcasting, uses a document camera to share information, has hosted a student-led global Twitter chat, and have designed a tourism mobile app, amongst other innovative efforts. Heidi is sharing these new models for learning with peers in the US, Canada and Australia, turning the initiative into what the writer of the Ken Spencer Award text called the ‘Dundas Central model’.

Heidi maintains a blog at where she documents these efforts, in addition to posting about education and technology in the classroom. The students themselves explain how they use technology and what they’ve been up to in the video below, which itself won the 4th Annual 21st Century Video Classroom Challenge.

I have a research interest in education technologies and I’m a fan of “learning by doing” when it makes sense. So it’s great to see a classroom that embraces experimentation with new technology and practical applications. It’s even better to see that the results are being shared openly with the world so others can benefit from the experimentation.


Learn Web Application Engineering by the co-founder of Reddit

If you haven’t joined an online course already now is your chance! Udacity has listed several new courses coming up mid-April including Web Application Engineering taught by Steve Huffman, the co-founder of Reddit. Udacity currently has two active courses CS101 and CS373 that you can jump into today for free.  It’s not just Udacity but Coursera with many courses running now or will be running shortly, and let’s not forget MITx.

The first of these free online courses were started in October of 2011: AI Class, Machine Learning and Introduction To Databases. They were run by Stanford professors Sebastian Thrun, Andrew Ng, and Jennifer Widom respectively.

Sebastian Thrun, along with several other co-founders, then created their own company called Udacity. Thrun’s methodology is based on the idea of iterative progression: you may get a C in college and be done with it, but with Thrun and Udacity you may get a C, have to try again, and try again until you understand the material and can get an A. Courses are taught by Stanford professors and other passionate guests; mostly using youtube videos and a built-in python interpreter, which leads to an intuitive and fun experience.

At the same time Professor Andrew Ng, along with Professor Daphne Koller  created their own company Coursera.  They are currently offering tons of free online courses taught by professors from Stanford, UofM, and UC Berkeley. Many of the Coursera and Udacity courses overlap.

MITx has launched it’s first course Circuits and Electronics with world re-known professors Anant Argwal , Gerald Sussman (author of SICP, and Scheme programming language), and Piotr Mitros.

There is another MIT endeavor not related to MITx. It is that of Professor Pritchards’ Introductory Physics course running on the MIT RELATE platform which like all others you still have time to register for.

If you’re anything like me you run a tight schedule, so it’s a good thing that most courses will be repeated every ‘term’. The professors improve on every iteration of their classes so you can only expect them to get better, and already the quality is outstanding. Overall it’s a great system and I love the fact there are multiple players from big schools engaging in this method of education. It could lead to something revolutionary if it hasn’t already. If it’s all a bit much I’ve included short descriptions, links, and video where available, for all relevant courses below.

I think everyone should at least dip their toes into one class from Udacity and one from Coursera, you never know where it could lead you or how it could change your context.



For non-programmers learning to program and develop a minimal search engine in python. Taught by Professor David Evans, a great teacher.

How the web works, managing state, security, integration, scalability, more… – Taught by Steve Huffman (co-founder of Reddit, Hipmunk)

Implement a limited javascript interpeter using python while learning lexical analysis, parsing, and more … – Taught by Professor Westley Weimer

Working in python and dealing with probabilities, sensors, path finding, more … – Taught by Professor Sebastian Thrun

Symmetric/Asymmetric encryption, Public-key protocols, Secure computation, more… -Taught by Professor David Evans

Under development:
Theory of Computation, Operating Systems, Computer Networks, Distributed Systems, Computer Security, Algorithms and Data Structures, Software Engineering Practices



Serves as a first course in electrical engineering or electrical engineering and computer science – Taught by Professor Anant Agarwal, Professor Gerald Sussman, Piotr Mitros


Introductory Newtonian Mechanics with some calculus. “We’ll train you to concentrate on planning and understanding the solution rather than focusing on obtaining the answer. ” – Taught by Professor Pritchard



From the game of life to societal models of rioting behavior, modeling will help you become a better thinker – Professor Scott E. Page (University of Michigan)

Model Thinking


From spelling and grammar correction in word processors to machine translation on the web, from email spam detection to automatic question answering, NLP is everywhere – Taught by Professor Dan Jurafsky (Stanford) and Professor Christopher Manning (Stanford)

Natural Language Processing


Learn modeling of conflict among nations, political campaigns, competition among firms, and trading behavior in markets such as the NYSE. – Taught by Professor Matthew O. Jackson (Stanford) and Professor Yoav Shoham (Stanford)

Game Theory


Learn algorithms for using a PGM to reach conclusions about the world from limited and noisy evidence, and for making good decisions under uncertainty and more. – Taught by Professor Daphne Koller (Stanford)

Probabilistic Graphical Models


Learn how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic and more. – Taught by Professor Dan Boneh (Stanford)



Learn several fundamental principles of algorithm design. You’ll learn the divide-and-conquer design paradigm, with applications to fast sorting, searching, and multiplication. Learn the answers to questions such as: How do data structures like heaps, hash tables, bloom filters, and balanced search trees actually work, anyway? – Taught by Professor Tim Roughgarden (Stanford)

Design and Analysis of Algorithms I


Learn engineering fundamentals for long-lived software using the highly-productive Agile development method for Software as a Service (SaaS) using Ruby on Rails – Taught by Professor Armando Fox (UC Berkeley) and Professor David Patternson (UC Berkeley)

Software as a Service


Learn about remarkable successes of computer vision – capabilities such as face detection, handwritten digit recognition, segmenting out organs or tissues in biological images and more – Taught by Professor Jitendra Malik (UC Berkeley)

Computer Vision

Under development:
CS 101, Machine Learning, Human-Computer Interaction, Making Green Buildings, Information Theory, Anatomy, Computer Security


Free online resources for learning programming, computer science

Robert Porter (@rgeraldporter) wrote a really great blog post recently: If you want to learn programming for the web.. where do you start?. Programming skills provide ample job opportunities; jobs that also tend to be well paid too. At the same time the cost of learning such skills has never been lower thanks to innovative online solutions that are grabbing attention lately such as Codeacademy and MIT’s free online courses and certificates program. Utilizing these free and accessible online resources to obtain these sought after skills may be a new way for some people to open up career opportunities and raise their income level.

So here is a list of resources for learning programming and computer science, from workplace level skills to elementary school level skills (for junior – because it’s never too early to foster and interest and start learning!). What else should be on this list? A lot of these resources are more academic in nature, are there any resources in the same vein as The Pragmatic Programmer to help somebody that has “learned a programming language” become a better “programmer/developer”?


College, University and Workplace Level Online Resources

“Codecademy is the easiest way to learn how to code. It’s interactive, fun, and you can do it with your friends.”

Google Code University
“Courses and innovative resources to help CS students, faculty, and instructors.”

MIT OpenCourseWare
“MIT OpenCourseWare (OCW) is a web-based publication of virtually all MIT course content. OCW is open and available to the world and is a permanent MIT activity.”

School of Webcraft
Part of the Peer 2 Peer University, a “grassroots open education project that organizes learning outside of institutional walls and gives learners recognition for their achievement”. Courses on how to code are run online. Other schools exist for topics such as mathematics.

Stanford University – Free Online Courses
A variety of free CS and math courses will be made available online, scroll down to the bottom to see the featured courses.

The New Boston
Free educational videos.

“Webcast.Berkeley is UC Berkeley’s central service for online video & audio for students and learners around the globe.”


Elementary to Secondary School Level Online Resources

“Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student’s first exposure to object-oriented programming.”

Computer Science Unplugged
“CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.”

Hackety Hack
“Hackety Hack will teach you the absolute basics of programming from the ground up. No previous programming experience is needed! With Hackety Hack, you’ll learn the Ruby programming language. Ruby is used for all kinds of programs, including desktop applications and websites.”

McMaster Computing & Software Outreach
“Whether you are a student, teacher or parent we hope to provide you with the resources you need to learn and have fun with Computer Science and Software Engineering!”

“Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art — and share your creations on the web. As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.”