The Trouble with Actions/Triggers in E-Learning Tools

An Observation

Common e-learning development tools try to make creating logic in a lesson a simple matter of clicking a few buttons. This no code solution is great for the majority of what course developers will make. The logic involved is simple and you only need short snippets to make it all work. If you are not a programmer this is a great convenience.

Things fall apart however if you need something more complex or want to do a calculation. I was recently looking at how someone implemented the calculation of the percentage correct in a quiz. It is a simple calculation really, take the present score, divide that by the maximum possible score, and multiply by 100. Unfortunately, using the click to create a an action/trigger interface this involved four triggers. Each of these carefully created with a number of clicks to set up the logic for that portion. Directly programming this in something like Javascript would be a small and simple one line snippet that is entered quickly and directly.

Another challenge with the click based interface is keeping track of the logic across multiple steps and actions/triggers. Anything much more than a drag and drop interaction and it gets very tedious and complex to keep straight. Programming tools can make the logic easier to follow in complex interactions. 

Upping Our Game

No code solutions are all the rage right now but if we are to break out of the basic and predictable e-learning mode we are in right now are going to have to improve our tools and how we use them. We need to be able to create more involved interactions than drag and drop games.

Right now the only programming capability the most popular tools have is javascript. It’s not a bad choice for where we are now. It’s fairly easy to pick up and fairly powerful in its vanilla form without massive libraries. Unfortunately the documentation for its use within our tools can be pretty skimpy. Often it is out of date or even wrong.

The ability to interact with the tools using javascript can be pretty limited. Often we are limited to simple reading and writing to a few defined variables. What is needed is a clearly defined interface that allows getting and setting variables but also defining functions that control more complex interactions like SCORM or xAPI. We could also use a better way to edit and deploy custom javascript code. The slide by slide code and manually adding a custom javascript script to the course output is clunky and error prone.

A Dream

In an ideal world our tools would make programming logic seamless and direct. It would include a good basic editor, good interface documentation, and output in a way that is respected when we publish the course. I’d also like to see other programming languages beyond javascript, perhaps Python or Lua. Both of these are easy to pick up and powerful without a whole lot of external libraries. Speaking of libraries why don’t we have some that unleash the power of the tools to create adaptive learning, customization based on user choices or desires, and enable advanced interactions?

We have good basic tools but in the 21st century it is time to really up our game.

I’d love to hear your thoughts in the comments below.