3 Tips for Creating Effective eLearning

eLearning can be a very successful training medium if executed well. The rollout of eLearning programs can save organizations on training costs, with the added benefit of faster delivery and the reach of a wider scope of employees.  Creating eLearning that is both effective and engaging however, can sometimes be challenging.

Here are three tips that are useful when working on eLearning projects.

 Learning Objectives

Having a clear idea of what your learning objectives are helps to shape the content of your course.  When writing objectives, be specific and focus on connecting these goals with what you want learners to take away at the end of the learning. By making objectives clear and concise, I find that I am better able to focus in on creating targeted evaluation pieces.

 The importance of great images

Images can truly help bring life to learning. That being said, not all images are created equal. When selecting images, try to include those which help to connect content to the real world. Learners tend to grasp information more easily when presented with a quality visual.

Also be mindful of including the right image size and provide the correct placement to match the content being presented.  Choosing images that really connect to the subject matter can help make concepts more relatable to learners.

 Create engaging learning

Because eLearning cannot necessarily cater to learners in the same manner as classroom training would, it is important to incorporate activities that are engaging and can keep learners interested in the subject matter. Since adults learn by doing and are most engaged when all senses are utilized, creating activities that appeal to multiple senses can be highly effective.

An example that uses a learner’s visual, auditory and kinaesthetic senses for instance can be a game. If done well, games can serve to positively affect the learner’s ability to understand and retain complex material. The advantage of activities such as these is that the content can seem less daunting and more fun, as learners are rewarded for their participation.

 

This list is not everything that is needed but provides a few key guidelines to consider when conceptualizing and designing eLearning. To learn more about the work that we do at Pathways please visit our website athttp://www.pathwaystrainingandelearning.ca/.

3 Tips for Creating Effective eLearning

Virtual Reality and 3D Simulation for Training

Using 3D or virtual reality environments as part of your training methodology creates a whole new aspect of your training that will enhance your learner’s experience. This type of technology breathes life back into traditional online training and stimulates greater enthusiasm and interest in a course which translates into greater retention. Virtual reality scenarios can be used to test the knowledge gained from elearning in a life-like situation, allowing you to see what decisions the learner makes and how they react to the consequences. These simulations can replicate a variety of real-life occurrences such as human actions and behaviour. People usually learn best when they learn in real life and this is the next best thing to that, especially with high quality graphics and interactive scenarios.

By enabling learners to directly interact with their learning materials, virtual reality makes courses immersive and entertaining, thereby increasing engagement and motivation to learn, and also appeals to different types of learners in a way that standard eLearning does not

Virtual Reality and 3D Simulation for Training

Time-Saving Storyline Tips and Tricks

Here’s a few of my favourite tips and tricks. Keep these in mind when you’re designing your next eLearning module, and they’ll definitely enhance your productivity!

Transitions

The Transitions panel at the top of the Storyline can be used to adjust the transition between any two screens. This obviously includes between slides, but it can also be used to transition between layers! This can be a great time-saver, if for example you’re using layers to overlay text or images on the base layer. Instead of applying an animation to each element in each layer, you can simply add a single transition to the entire layer. You can select “Apply to All” in the same panel to apply your transition to all layers in your slide.

“Format” dialog shortcut

This one is a beauty, and a real must-know for Storyline users. Select any object on your slide and hit Ctrl+Enter to bring up the Format dialog. This saves a ton of right-clicking!

“Size and Position” dialog shortcut

Hit Ctrl+Shift+Enter to bring up the “Size and Position” dialog. Another neat tip here is that Storyline will remember the last edited parameter, and will automatically bring the focus to the same spot when you re-open the dialog, which saves you even more clicking if you use this to your advantage.

New Textbox shortcut

Everyone knows that Ctrl+T gives you a new textbox, but did you know that you can set the textbox’s position on your slide before you create it? Simply left click on the slide where you want your textbox to be created, then hit Ctrl+T. The top-left of the textbox will be at the click point.

Take advantage of trigger order

This tip takes a little practice to get used to, and it varies for each situation, but it is generally more efficient to let your slide triggers work together, if possible, rather than duplicating functionality (and complexity) between them. For example I recently wanted to show a warning layer if the user tried to advance to the next slide without visiting all the required links. To do this, I let triggers fall through each other, so that I only had to actually program one of them. Here’s what my two triggers looked like:

  • Jump to next slide when use clicks Next if … (all links visited)
  • Show warning layer when user clicks Next

The second trigger doesn’t need any conditions; since Storyline triggers are executed in order, it will only be reached if the first trigger isn’t activated. If all the links have been visited, the slide will change as soon as the first trigger evaluates to true, and the second trigger will never be evaluated.

For more Storyline tips and tricks, visit our website at: http://pathwaystrainingandelearning.com/.

Time-Saving Storyline Tips and Tricks

PROGRAMMING PRINCIPLES FOR STORYLINE DEVELOPMENT – PART I

The rise of graphical user interface-based programming software such as Storyline has simplified the creation of software and web content. No longer purely the domain of geeks, it is now possible to create a web application, for example, with no formal training, and no knowledge of a programming language.

This democratization of technology has led to a flood of creativity, as anyone with an idea and a little patience can turn it into a mobile or web-based application. Unfortunately, the focus on GUI-based WYSIWYG (What You See Is What You Get) editors has led to a loss of focus on the fundamental guiding principles of programming, which is in reality what we’re doing, whether it’s creating a Storyline eLearning program, or writing a Java-based Android app. I’d like to try to connect a few of the guiding principles of software development with some development patterns that you can follow when developing your own eLearning content. Today, we’ll discuss the DRY principle.

Don’t Repeat Yourself (DRY)

DRY is one of the fundamental principles of object-oriented programming. Even if you don’t have any idea what ‘objects’ are or why everyone’s so oriented on them, this is still a useful principle for your development. In a nutshell, DRY says that you should strive to develop so that if you need to change something down the road, you can change it in one spot, even if it is something that appears repeatedly in your program/eLearning module.

In Storyline terms, a good example of this would be using Slide Masters and Feedback Masters as much as possible. This usage can extend far beyond simply setting a background and header (although that’s not a bad start, if you aren’t doing this already). In another blog, I’ll write about how you can add repetitive elements like closed captioning and navigation controls in a Slide Master.

Another way you can reduce repetition in your eLearning module is to make triggers dependent on actual objects, whenever possible, rather than on timeline cues. For example, you want to sync an image’s motion path with the end of an audio clip. You could certainly set a cue point onto the timeline at the end of the audio clip, and then trigger the motion path based on that cue point… But what if you want to move the audio clip? You’ll not only have to adjust the clip, but also any cues that are positioned relative to it.

If you had simply triggered the motion path to begin when the timeline of the audio clip ended (or on ‘media complete’), you could move the audio clip as much as you like without breaking the timing of the motion path. Another way to put it is that your dependencies should be as limited as possible. In the original example, the path to starting your motion path went from Audio Finishes → Cue Point → Motion Path Triggered. When it’s spelled out like this, the cue point is clearly extraneous.

If you keep the DRY principle in mind when developing your eLearning content, you will save yourself all sorts of pain when it comes time to review and modify it. For more tips on developing eLearning content, or to see samples of our work, visit us at http://pathwaystrainingandelearning.com/.

PROGRAMMING PRINCIPLES FOR STORYLINE DEVELOPMENT – PART I

Creating a Custom Hotspot Activity for eLearning using Flash

Here’s a quick look at how to create a cool Storyline-compatible hotspot interaction in Flash for an eLearning module. I recently wanted to make a pick-many activity where the user could select multiple keys on a keyboard. In Storyline, hotspot activities are weakened by the fact that only selectable objects have a hand cursor over them. I got around this by making a huge hotspot that covered the entire keyboard, and then putting the ‘correct’ hotspots on top of that one. This solved the hand problem, but made it impossible to have any hover/selected effects on individual keys. The user would have no idea which keys they had selected.

I know when to stop beating my head against a wall; Storyline just isn’t made for this type of complexity. This is a job for the Flash! The Adobe Flash, that is. I’m not going to go through the whole ActionScript3 code here, but I want to talk about the important part – the communication between Storyline, and the keyboard, which is a SWF movie.

For my purposes, I want the activity to be marked correct when the user has selected both ‘Ctrl’, and ‘O.’ The activity should be marked incorrect if any other buttons are marked as ‘selected’ when the user submits the interaction. To accomplish this, I placed three buttons off-screen, and assigned them to be the hotspot targets – two correct buttons, one each for ‘Ctrl’ and ‘O’, and one incorrect button, which gets selected whenever there are incorrect keys selected.

These buttons are triggered by Storyline variables (in this case, True/False variables named ‘correct1’, ‘correct2’, ‘incorrect’). There are triggers which change the state of these three buttons, based on the state of the associated variables. When the user hits ‘Submit’ the state of these three off-screen buttons is what determines if the interaction is marked correct or incorrect. Here’s an example of what the slide looks like in Storyline:

capture.png

Okay, simple! So how do we adjust Storyline variables from a SWF movie? The answer can be found in this great article by Julio Ordonez. Here’s the short version, though. In your ActionScript3 code, call the following function to change a variable (in this case, we’re setting the variable ‘correct2’ to True):

ExternalInterface.call(‘GetPlayer().SetVar’,’correct2′, true);

The internal logic of deciding when to set each of your Storyline variables as True or False will be largely dependent on your particular circumstance. In my case, for example, I wanted my interaction to be marked correct only if two specific keys were selected, out of a possible 40 or so. I created an array to track all of the currently selected keys, and then iterated over the array on each mouse click, changing the Storyline variables depending on which keys in my SWF movie were selected.

The basic setup will remain largely unchanged, however. Simply hide your hotspots offscreen, and set their states via Storyline variable which are in turn set from within your Flash movie.

Here’s a working demo of the keyboard interaction.

 

Creating a Custom Hotspot Activity for eLearning using Flash

Programming tips: Modifying Storyline eLearning modules’ variables from Adobe Flash

As part of our series of tutorials, regarding extended functionality in Storyline by using Javascript and/or assets created in external tools, I want to jump in to a more advanced topic that will ultimately take our eLearning modules to the next level.

Let’s say you created in Adobe Flash a very fancy navigation bar with play, next slide and previous slide buttons, with some beautiful animations and states for the buttons that could hardly be done directly in Storyline, and now you are wondering how you will be able to actually control the module with that externally developed asset.

One option, and probably the simplest, is to import the flash object into your Storyline project and then cover the clickable areas with hotspots. While effective, because they will easily trigger the actions you want, this hotspots will also interfere with the states of your buttons, like the hover and clicked states. This happens because your hotspots are basically covering your Flash object and, in consequence, this object is not receiving any mouse inputs.

Another option is to have variables in Storyline that, modified by the Flash object, will drive the eLearning module, pausing and resuming the timeline, and going to the next or previous slide. In this tutorial, I want to show you how to achieve this by only using 2 variables in Storyline, that way we can also explore a bit more about triggers on the slides.

Just a heads up, since we will be using ActionScript 3 in Flash, we will have to do a bit more with coding compared to the first 2 tutorials.

Setting up the environment in Storyline

Let’s start by setting up the environment within Storyline, that way when we jump to coding in Flash, we will already know what to modify in our eLearning module.

The first step is to create 2 variables in Storyline that, as I mentioned before, will affect our module, pausing it or resuming it, and making it navigate to different slides. This variables could be as follows:

  • pauseModule: This variable is a Boolean or True/False and its default value is set to False.
  • navigateTo: This variable is Text variable and it’s default value is set to blank.

The second step is to create the triggers on the slide that will actually affect it. This triggers could be as follows:

  1. The first trigger should pause the timeline when ‘pauseModule’ changes to True.
  2. The second trigger should resume the timeline when ‘pauseModule’ changes to False.
  3. The third trigger should make the module jump to the next slide if ‘navigateTo’ changes to the value “next”.
  4. The fourth trigger should make the module jump to the previous slide if ‘navigateTo’ changes to the value “prev”.
  5. The fifth trigger should reset the value of ‘navigateTo’ to blank when the timeline of the slide starts.

Note: On the third and fourth triggers, the comparison to the values “next” and “prev” shouldn’t be case sensitive, that way we can ensure that inputs like “Next” or “PREV” have the same effect on the module.

Extending a bit further our work in Storyline, we can easily create a Master slide and implement this triggers in there, that way we don’t have to repeat this process n-times throughout our module.

Controlling our eLearning module with AS3

Now that we have set our variables and triggers in Storyline, it is time to go to Flash and create the code that will activate those triggers.

Let’s assume we have created 3 buttons and they are as follows:

  • A play/pause button called ‘playPauseBtn’
  • A next button called ‘nextBtn’
  • A previous button called ‘prevBtn’

With that in mind, let’s create our code in AS3. In this part, I will explain each line of code so that we all have a clear understanding of what they do.

The first step is to import the libraries related to the events of the mouse (e.g. Click event) and related to the communication of our Flash object with Storyline.

import flash.events.MouseEvent;

import flash.external.ExternalInterface;

The ExternalInterface library will allow us to call Javascript functions that are external to our Flash object, and the MouseEvent library, will capture the mouse input on our buttons.

var playPause:Boolean = false;

var navigateTo:String = “”;

In the lines of code above we are defining the same two variables we defined in Storyline, the ‘playPause’ variable relates to the ‘pauseModule’ variable and will indicate whether to play or pause the timeline of our eLearning module; the ‘navigateTo’ variable will determine if the module has to navigate to the next or previous slide from the current slide. These variables will be modified by the functions linked to the following event listeners:

playPauseBtn.addEventListener(MouseEvent.CLICK, controlTimeline);

nextBtn.addEventListener(MouseEvent.CLICK, navigateNext);

prevBtn.addEventListener(MouseEvent.CLICK, navigatePrev);

In essence, an event listener, is a function that will be executed when an event happens, in this case, the controlTimeline function will be executed when the playPauseBtn is clicked, and the navigateNext and navigatePrev functions will be executed when the next or previous buttons are clicked, respectively.

Now let’s see how these 3 functions are defined, starting with the controlTimeline function:

 

function controlTimeline(evt:MouseEvent):void{

                playPause = !playPause;

                ExternalInterface.call(“GetPlayer.SetVar”, “pauseModule”, playPause);

}

We will take a more in-depth look at the structure of AS3 in a future tutorial, in the meantime, let’s understand what the previous function is doing.

Basically, what the contolTimeline function does is to toggle the value of the variable playPause between True and False, as explained on a previous tutorial (link to the first programming tips article), and then it executes our beloved Javascript function “SetVar” (please refer to the first programming tips article for a better understanding of this function) by passing the two necessary parameters.

 

function navigateNext(evt:MouseEvent):void{

                navigateTo = “next”;

                ExternalInterface.call(“GetPlayer.SetVar”, “navigateTo”, navigateTo);

}

 

function navigatePrev(evt:MouseEvent):void{

                navigateTo = “prev”;

                ExternalInterface.call(“GetPlayer.SetVar”, “navigateTo”, navigateTo);

}

And finally, the previous functions will indicate the eLearning module to navigate forward or backwards by changing the value of the variable ‘navigateTo’ to “next” or “prev”.

Before finishing the tutorial, let’s remember that this interaction can’t be tested locally within storyline and, as indicated on the first programming tips tutorial, we would need to make use of other tools to verify if our customized code is working.

If you want to know more about Javascript and ActionsScript 3 applied to eLearning or about how to use other tools, such as software for 2D or 3D animation to enrich the outcome of your products, don’t forget to visit our blog or our website at www.pathwaystrainingandelearning.ca.

Programming tips: Modifying Storyline eLearning modules’ variables from Adobe Flash

eLearning Gamification – Making use of tiling textures

When creating games for eLearning, you will often need to create game environments, creating wide expansive spaces.  To save on resources often game artists use tiling textures.  Theses textures are designed to align seamlessly when laid adjacently.  See the example below

brick texture

Sample texture

tiling texture                 Texture tiled horizontally and vertically

 

These tiling textures can be applied over a large space, whether it be floors, walls, or other complex models.

These tiling texture can be made using Photoshop.  Adobe Photoshop has a robust toolset for image manipulation and art creation. But to create tiling textures there is one tool in particular is especially useful.

From the main menu navigate to Filter>Other>Offset..filter texture

Here you can test the tile-ability of your image, to ensure it will align when the UVs are tiled on the 3D mesh.

offset1offset2

Using this method you can ensure you have hi fidelity textures, over a large environment, greatly increasing the quality in your gamification and eLearning pursuits.

If you would like to learn more about eLearning, and gamification please visit:

www.pathwaysinc.ca

 

 

eLearning Gamification – Making use of tiling textures

Programming tips: Accessing LMS functions using the Javascript API in Storyline for eLearning modules

Continuing with the programming tips we started in the previous post, regarding how to write code in Storyline for eLearning modules, let’s continue this time with a little bit more of an advanced coding.

To summarize, we now know that our eLearning modules, when published from Storyline, come with a set of Javascript libraries that allows assets developed in external tools (e.g. Adobe Flash) to communicate with our modules and modify variables.

We also know about the reporting capabilities Storyline has, meaning that all the quiz questions you create in the modules, have the option to be graded and then reported to the LMS.

However, learning may not be as simple as creating slide questions with multiple answer questions, drag and drops or matching sequences, and sometimes we are required to develop this interactions somewhere else, so what happens when you want those interactions to be part of your eLearning module’s grade?

Well, thankfully we are able to manually report that score to our LMS, using Storyline’s Javascript functionality.

Storing the activities’ points and converting it to a percentage

Let’s say we have developed 6 interactivities in Adobe Flash and all of them send a point value to Storyline after they have been completed by the learner (This will be covered in another tutorial). To store this value in Storyline, let’s create 6 Number variables as follows:

  • Activity1
  • Activity2
  • Activity3
  • Activity4
  • Activity5
  • Activity6

And set all of them to a default value of 0.

Now, after all the slides with the activities, let’s create another slide that will work as our results slide, calculating the percentage achieved by the learner on the previous activities. On this slide, we can use a Javascript code that looks something similar to this:

var player = GetPlayer();

var act1 = player.GetVar(“Activity1”);

var act2 = player.GetVar(“Activity2”);

var act3 = player.GetVar(“Activity3”);

var act4 = player.GetVar(“Activity4”);

var act5 = player.GetVar(“Activity5”);

var act6 = player.GetVar(“Activity6”);

var scoreTotal = act1 + act2 + act3 + act4 + act5 + act6;

var percentage = scoreTotal * 100 /60;

 

Looks a little bit complicated? Well, let me explain it.

On the first 7 lines of code, we first get the Javascript API from the player and then get and store all the six variables containing the values reported by the activities. Then we have the following line of code:

var scoreTotal = act1 + act2 + act3 + act4 + act5 + act6;

In this line, we are only finding the total achieved by the learner after going through all the 6 interactions. Finally, we see this:

var percentage = scoreTotal * 100 /60;

This is just a simple ratio that allows us to translate the achieved points by the learner into a percentage. Let’s assume we have only 6 of these interactions and each one of them awards the learner 10 points if completed correctly, thus the value of 60.

If we do the math, let’s say the learner scored a total of 40 points, then percentage will be 66.7% (rounding up to the nearest decimal).

Reporting the score to the LMS

Now that we have the percentage we want to report, we can now report it to our LMS. Thankfully, Storyline allows us to communicate manually by providing a set of functions that we can use to report score or completion.

We achieve that by adding the following lines of code after calculating the percentage:

var lmsAPI = parent;

lmsAPI.SetScore(percentage, 100, 0);

What the previous 2 lines of code do, is that first, we get the LMS API provided by Storyline, and then we use the “SetScore” function to report the percentage to our LMS. If you notice, this function takes 3 parameters:

  • The first value is the percentage achieved by the learner
  • The second value is the maximum score that can be reported, 100 in this case, because we are talking about percentages
  • And the third value is the minimum score that can be reported, 0 in this case.

After adding this Javascript code to your project, you can now rest assured that your elearning module will report a score, even if those values don’t come directly from Storyline, but they come from activities or interactions you developed in an external tool.

If you want to know more about Javascript applied to eLearning or about how to use other tools, such as software for 2D or 3D animation to enrich the outcome of your products, don’t forget to visit our blog or our website at www.pathwaystrainingandelearning.ca.

Programming tips: Accessing LMS functions using the Javascript API in Storyline for eLearning modules

eLearning Gamification – Strengths of Virtual Simulation

Since the dawn of interactive entertainment, the then unattainable goal was virtual reality. But as technology advances and new innovations such as the Oculus rift, HTC vive, or Project Morpheus are bringing us closer than ever before.  But while a matrix like VR experience is still a long way off, the creation of interactive simulations has proven to be an excellent tool for learning and training for several reasons.

Greater retention of content

Thinking about the experience of an eLearning module vs. a video of the same content.  Assuming audio and visuals are identical to each, you will absorb more from an eLearning module because it involves interaction.  Without interaction the module cannot proceed. It is an active way of learning compared to the more passive example of video. User involvement automatically makes the experience more significant. This logic is what makes videogames such an immersive experience when compared to television or movies.

This same comparison can be made between virtual simulation vs. eLearning modules. Typically an eLearning module goes over the learning material and then eventually tests the user on it (in a similar manner to classroom learning).  But virtual simulations goes about learning in a more practical sense. Instead of being tested on content in a classroom setting, the user is thrust into the role. The virtual environment provides a practical learning environment which will help with the transfer of learning.  Studies have shown that learners recall 90% of information when simulations are used.

Untitled

* Source – elearningindustry.com

Taking part in a simulation teaches the user in a much faster way, not only because engagement equals significance, but also because the nature of simulations results in a quicker rhythm of feedback teaching the user through their mistakes at a faster rate.

If you would like to learn more about eLearning, virtual simulations and gamification please visit us at

www.pathwaysinc.ca

eLearning Gamification – Strengths of Virtual Simulation

Advancements in Instructional Design

Highway Signpost with New Technology wording on Sky Background.
Highway Signpost with New Technology wording on Sky Background.

As we progress through the 21st century I continually marvel at the technological advances that have been introduced and continue to emerge at a rapid rate.  Just in the past few years we have seen cars that can park themselves, a fridge that can tell you when you need to buy milk, a phone that can lock your door when you are a thousand kilometres away, robots that can clean your floors and drones filling our skies that are quite literately flying where no man has flown before and doing everything from delivering a package to mapping out the best areas to grow crops.   While many of these examples have made our lives easier they have also conditioned us to expect the same type of progress in all aspects of our lives, including how we learn.

It wasn’t that long ago that training meant going to classroom, reading from a thick manual and listening to a facilitator tell you what you needed to know.  Now while there remain situations where having a facilitator assist you in learning is beneficial, the fact remains today’s student expects more, and more is what they have been getting.  Through virtual learning today’s student can attend a course being taught by person on the other side of the country while still participating in live exercises, collaborating with their fellow students and receiving immediate feedback on tests and quizzes.   With mobile learning (or Mlearning) a student can not only access course material that has been specifically formatted for their hand held device or smartphone, but are also able to view and complete interactive exercises, the same as they would on a laptop or desktop computer.

Looking at the content being developed the advancements have been just as impressive. With Elearning, course materials and manuals come to life by integrating elements and interactions that keep the learner engaged. This can include 3D graphic and Whiteboard animation, technologies that not that long ago were only seen on your local movie screen. If that were not enough to excite and engage, learners can also complete exercises and reviews through gaming which is quickly becoming a popular option, especially with the younger audiences.

With the continued advances in training and course design there has emerged a parallel need to house the materials in a central location that is easily accessible for the learner. As such many organisations over these past few years have moved to using a Learning Management System, or LMS. These learning portals can provide the user many great options including easy access to course materials through a simple menu design and search features, links to social media, chat options, forums for discussions and quick availability to a student’s learning profile.

Considering all of the above I think it fair to say these are indeed exciting times in training and development and am equally certain that the best is yet to come!

To learn more about training solutions offered by Pathways please visit our website at http://www.Pathwaysinc.ca

Advancements in Instructional Design