Thursday, October 22, 2009
Is Formal E-Learning Dead or Alive?
Mark Lassoff recently wrote a blog posting about the current state of eLearning. http://learntoprogram.tv/2009/10/a-few-lessons-learned-about-elearning/
I agree with everything that Mark said in this post. I consider myself an eLearning developer (I have a masters in Instructional Technology) and have been frustrated as well with the typical formal elearning that consists of a slide of text and maybe some basic interactivity and a multiple choice quiz at the end. If a classroom training session were like a elearning course, it would consist of everyone in the class in soundproof booths where they could only see the powerpoint on the screen, the students wouldn't be able to ask questions, and the instructor would only know if anyone understood the course until after the course was done. That is just sad... Learning comes from interaction, asking questions, applying knowledge and receiving feedback among other things.
However, I think there is hope for formal e-Learning. The first few generations of movies looked a lot like stage plays because of the mindset and the limitations of the technology. I believe it wasn't until movies started using more than one camera and realized the possibilities of editing and the many possibilities of storytelling that we see in todays movies. I believe today's limitations with elearning includes the use of LMSs that limit functionality and how much data you can store using SCORM. (There are hundreds of LMS vendors, that tells me that no one has found a right answer yet.) Because of these limitations to the standard asynchronous LMS distributed elearning course, information really is only communicated one way, from the screen to the learner. There is really no opportunity for customized feedback for the learner from the instructor, or for the student to know what other students think about a particular topic or concept. What if you created a course using Flash or Flex or some other tool that still presented a course in a logical step by step format, but allowed the learner to comment on the content on the same slide that it is presented and ask questions about the content and have that information saved and made available to everyone who takes the course. Notifications could be sent out and then people could return to the course, view what other people had asked and collaborate. This could potentially be better than a classroom training in some ways because more knowledge could be shared and more participants could have their questions answered.
One promising concept is that of LearningComponents.com they have built a structure using Flex that does an excellent job at giving feedback for each step of the learning process, and for real time collaboration. The drawback with their approach is that it works best when people are taking the class at the same time, and when you want to script out every step in a learning process. This seems hard to do for most training.
What do you think? Is there hope for formal eLearning or are we just going to search the internet in the future when we want to learn anything?
Saturday, August 29, 2009
Creating a Online Book, using EXCEL, XML and Flash
See conference information here.
http://elearning.byol.com/
Traditionally, if you were to make a simulation that you didn't need to reuse, you would hard code it Flash using the timeline or MovieClips. The problem with creating a simulation this way is that if you want to reuse your code you will have to create the whole simulation over again, and to make changes to your simulation would require a lot of work. The problem I find with Quizzes is that there are a lot of tools out there that help you build quizzes but don't let you customize the look and feel to your liking.
So, basically this is trying to recreate what they have already created. There are pros and cons to creating a custom simulation or quiz but it is sure fun to do.
I first wanted to show how easy it is to use Excel 2007 to create XML documents.
Excel works great for populating a XML document because it feels like you are editing a spreadsheet or a database, you can copy and paste items and you don't have to create start and end tags for each time that you put in some text.
There are some downsides to using Excel as you can only create one level instead of having XML nodes nested inside of other XML nodes. They call this a recursive structure, which works great for creating a Menu, but Excel has trouble doing that kind of structure. There are ways around that though.
In this example, you will learn how to create an simple online book, using Flash, Excel and XML.
First we need to create our XML structure.
Open a code editor such as Dreamweaver and paste in the following code.
<?xml version="1.0" encoding="UTF-8"?>
<Book>
<Title></Title>
<Pages>
<Page>
<Text></Text>
</Page>
<Page>
<Text></Text>
</Page>
</Pages>
</Book>
For sake of simplicity we are just going to create a title for the book and pages using XML.To make sure that Excel knows that there will be more than one page we have to put at least two into our structure.
Save your XML Document.
Open Excel 2007.
Note: You can do this with Excel 2003 but the process is a little different.
To use the XML in Excel you need to have the Developer ribbon enabled.
To do this, click on the Microsoft Office Icon in the top left corner.
Select Excel Options
In the popular tab make sure that Show Developer tab in Ribbon is selected.
Click OK.
Next, click Open from the main menu.
Open the xml file that you saved previously.
When the Open XML pop-up appears select the third option "Use the XML Source task pane. "An XML Source box should open in the right side of the window.Drag the Title node to the B column.A little box should pop up next to it, click on the option to place the title to the left.This node is a non-repeating element. Next, drag the Page element to the D column. You will notice that this only shows the Text Node, this is because this is the only one that is editable in the Page. We could add other tags such as a page number or chapter number, but Text is enough for right now.
After you have finished mapping the cells. Fill in the spreadsheet. I chose the Count of Monte Cristo because it is in the public domain and can be found at the Gutenberg Project.http://www.gutenberg.orgSave the file.
Click inside a mapped cell.
Select the Developer ribbon and click Export.
Save the XML file to the same folder where you will create your Flash File.
After you have saved the .xml file go ahead and open it.
You should have something similar to what is found below.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Title>THE COUNT OF MONTE CRISTO</Title>
<Pages>
<Page>
<Text>On the 24th of February, 1815, the look-out at Notre-Dame de la Garde signalled the three-master, the Pharaon from Smyrna, Trieste, and Naples.</Text>
</Page>
<Page>
<Text>As usual, a pilot put off immediately, and rounding the Chateau d'If, got on board the vessel between Cape Morgion and Rion island.</Text>
</Page>
<Page>
<Text>Immediately, and according to custom, the ramparts of Fort Saint-Jean were covered with spectators; it is always an event at Marseilles for a ship to come into port, especially when this ship, like the Pharaon, has been built, rigged, and laden at the old Phocee docks, and belongs to an owner of the city.</Text>
</Page>
</Pages>
</Book>
Create a Flash File using Actionscript 3.0.It should have a dynamic text box for your page text, another dynamic text box for your page numbers and then a back and next button.Your final example could look something like this.First, we need to load in the XML.
var bookXML:XML;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
xmlLoader.load(new URLRequest("Count.xml"));
function xmlLoaded(e:Event):void {
bookXML = new XML(e.target.data);
trace(bookXML);
}
function xmlLoaded(e:Event):void {
bookXML = new XML(e.target.data);
trace(bookXML);
loadPage(0);
}
function loadPage(pNum:int):void {
page_txt.text = bookXML.Pages.Page[pNum].Text;
}
Next, we need to create a way to go forward and backward through each page.We will do this by creating a currentPage variable and a totalPages variable to help us know where we are in the book.
Place the following variables before the xmlLoaded functions.
var currentPage:int = 0;
var totalPages:int;
function xmlLoaded(e:Event):void {
bookXML = new XML(e.target.data);
totalPages = bookXML..Page.length();
trace(totalPages);
loadPage(currentPage);
next_btn.addEventListener(MouseEvent.CLICK, nextPage);
back_btn.addEventListener(MouseEvent.CLICK, backPage);
}
Next, we will modify the loadPage function.
function loadPage(pNum:int):void {
page_txt.text = bookXML.Pages.Page[pNum].Text;
currentPage = pNum;
pageNum_txt.text = (currentPage+1) + " / " + totalPages
}
Next, we will create our nextPage and backPage button functions.
function nextPage(e:MouseEvent):void {
if(currentPage <>
currentPage++
loadPage(currentPage);
}
}
function backPage(e:MouseEvent):void {
if(currentPage > 0){
currentPage--
loadPage(currentPage);
}
}
Here is the finished script.
var bookXML:XML;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
xmlLoader.load(new URLRequest("Count.xml"));
var currentPage:int = 0;
var totalPages:int;
function xmlLoaded(e:Event):void {
bookXML = new XML(e.target.data);
trace(bookXML);
totalPages = bookXML..Page.length();
trace(totalPages);
loadPage(currentPage);
next_btn.addEventListener(MouseEvent.CLICK, nextPage);
back_btn.addEventListener(MouseEvent.CLICK, backPage);
}
function loadPage(pNum:int):void {
page_txt.text = bookXML.Pages.Page[pNum].Text;
currentPage = pNum;
pageNum_txt.text = (currentPage+1) + " / " + totalPages
}
function nextPage(e:MouseEvent):void {
if(currentPage <>
currentPage++
loadPage(currentPage);
}
}
function backPage(e:MouseEvent):void {
if(currentPage > 0){
currentPage--
loadPage(currentPage);
}
}
Friday, June 19, 2009
Using iPods to teach Cello
I attended a conference session at eLearning DevCon 2009 by Thor Anderson of UVU where he talked about the importance of giving feedback to students in real time and that they crave this feedback to make sure they learning correctly. He has an excellent example teaching HTML using learning components that he built in Adobe Flex. Check out his great work at https://www.learningcomponents.com
Anyways, this concept of feedback got me thinking about how I can use technology to help my cello students to learn better. Especially to have good intonation.
Here is the idea that came to me while I was teaching a lesson.
- Have the student use an iPod while they are practicing to listen what the song should sound like.
- Record a slow, medium and fast version of the solo line of each song.
- Record a slow, medium and fast version of the cello accompaniment for each song
- Record a slow, medium and fast version of the piano accompaniment for each song.
What do you think? What ways do you use technology in your music teaching?
Tuesday, August 19, 2008
return e-learning;
public function instructionalDesign(boringCourse:Learning):AwesomeCourse {
e-learning = objectives + goals + greatInstruction + realWorldProblems;
return e-learning;
}
While this is a contrived example based on a function in Actionscript, it highlights my goal that through technology we can make elearning and rich and fulfilling experience for those that take the course. (probably because I had to explain that title that much it might not be the best.)
I have been here at 360 | Flex and have really enjoyed it. My brain is fried but I like to think that I am learning a few things. I am currently trying to create a swf xml course loader in Flex to replace the course loaders that we are currently doing in Flash. From what I have learned at this conference, I almost think that I should wait until the new version of Flex comes out. It will give a lot better options to modify the design of a shell. But oh well, maybe by then I will actually figure it out.
If you use flex or Flash to develop e-learning I would like to hear from you, with your experiences.
I will try to post code, examples and if I am really ambitious tutorials of how to do things that I have learned. If I ever figure out how to implement AICC with a Flash course I will be sure to pass that on, and feel that I am contributing something to the world.