12 Principles Of Mobile Learning

http://www.teachthought.com/technology/12-principles-of-mobile-learning/

12 Principles Of Mobile Learning

10/18/2012, , 46 Comments

  

Mobile Learning is about self-actuated personalization.

As learning practices and technology tools change, mobile learning itself will continue to evolve. For 2013, the focus is on a variety of challenges, from how learners access content to how the idea of a “curriculum” is defined.

Technology like tablets PCs, apps, and access to broadband internet are lubricating the shift to mobile learning, but a truly immersive mobile learning environment goes beyond the tools for learning to the lives and communities valued by each individual learner.

It is only within these communities that the native context of each learner can be fully understood. Here, in these communities that are both local and digital, a ”need to know” is born, knowledge accrues incrementally, progress resonates naturally, and a full picture of each learner as a human being fully emerges.

1. Access

A mobile learning environment is about access to content, peers, experts, portfolio artifacts, credible sources, and previous thinking on relevant topics. It can be actuated via a smartphone or iPad, laptop or in-person, but access is constant–which in turn shifts a unique burden to learn on the shoulders of the student.

2. Metrics

As mobile learning is a blend of the digital and physical, diverse metrics (i.e., measures) of understanding and “performance of knowledge” will be available.

3. Cloud

The cloud is the enabler of “smart” mobility. With access to the cloud, all data sources and project materials are constantly available, allowing for previously inaccessible levels and styles of revision and collaboration.

4. Transparent

Transparency is the natural byproduct of connectivity, mobility, and collaboration. As planning, thinking, performance, and reflection are both mobile and digital, they gain an immediate audience with both local and global communities through social media platforms from twitter to facebook, edmodo to instagram.

5. Play

Play is one of the primary characteristics of authentic, progressive learning, both a cause and effect of an engaged mind. In a mobile learning environment learners are encountering a dynamic and often unplanned set of data, domains, and collaborators, changing the tone of learning from academic and compliant to personal and playful.

6. Asynchronous 

Among the most powerful principles of mobile learning is asynchronous access. This unbolts an educational environment from a school floor and allows it to move anywhere, anytime in pursuit of truly entrepreneurial learning. It also enables a learning experience that is increasingly personalized: just in time, just enough, just for me.

7. Self-Actuated

With asynchronous access to content, peers, and experts comes the potential for self-actuation. Here, learners plan topic, sequence, audience, and application via facilitation of teachers who now act as experts of resource and assessment.

8. Diverse

With mobility comes diversity. As learning environments change constantly, that fluidity becomes a norm that provides a stream of new ideas, unexpected challenges, and constant opportunities for revision and application of thinking. Audiences are diverse, as are the environments data is being gleaned from and delivered to.

9. Curation

Apps and mobile devices can not only support curation, but can do so better than even the most caffeine-laced teacher might hope to. By design, these technologies adapt to learners, store files, publish thinking, and connect learners, making curation a matter of process rather than ability.

10. Blending

A mobile learning environment will always represent a blending of sorts–physical movement, personal communication, and digital interaction.

11. Always-On

Always-on learning is self-actuated, spontaneous, iterative, and recursive. There is a persistent need for information access, cognitive reflection, and interdependent function through mobile devices. It is also embedded in communities capable of intimate and natural interaction with students.

12. Authentic

All of the previous 11 principles yield an authenticity to learning that is impossible to reproduce in a classroom. They also ultimately converge to enable experiences that are truly personalized.

test syntex highlight

Objective-C Demo


#import "ADTextView.h"

@implementation ADTextView


- (id)initWithFrame:(CGRect)frame {
    
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor colorWithRed:1.0f green:1.0f blue:0.6f alpha:1.0f];
        self.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
        self.contentMode = UIViewContentModeRedraw;
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
    
    //Get the current drawing context
    CGContextRef context = UIGraphicsGetCurrentContext();
    //Set the line color and width
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.2f].CGColor);
    CGContextSetLineWidth(context, 1.0f);
    //Start a new Path
    CGContextBeginPath(context);
    
    //Find the number of lines in our textView + add a bit more height to draw lines in the empty part of the view
    NSUInteger numberOfLines = (self.contentSize.height + self.bounds.size.height) / self.font.lineHeight;
    
    //Set the line offset from the baseline. (I'm sure there's a concrete way to calculate this.)
    CGFloat baselineOffset = 6.0f;
    
    //iterate over numberOfLines and draw each line
    for (int x = 0; x < numberOfLines; x++) {
        //0.5f offset lines up line with pixel boundary
        CGContextMoveToPoint(context, self.bounds.origin.x, self.font.lineHeight*x + 0.5f + baselineOffset);
        CGContextAddLineToPoint(context, self.bounds.size.width, self.font.lineHeight*x + 0.5f + baselineOffset);
    }
    
    //Close our Path and Stroke (draw) it
    CGContextClosePath(context);
    CGContextStrokePath(context);
}

@end

CSS Demo

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
    margin:0;
    padding:0;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
fieldset,img {
    border:0;
}
address,caption,cite,code,dfn,em,strong,th,var {
    font-style:normal;
    font-weight:normal;
}
ol,ul {
    list-style:none;
}
caption,th {
    text-align:left;
}
h1,h2,h3,h4,h5,h6 {
    font-size:100%;
    font-weight:normal;
}
q:before,q:after {
    content:'';
}
abbr,acronym { border:0;
}

javascript Demo

$(window).load(function() {
    // Slider
    $('#slider .slides').nivoSlider({
        effect: 'random',
        directionNav: false,
        controlNav: false
    });
});

/* 
$('#slider').nivoSlider({
        effect: 'random', // Specify sets like: 'fold,fade,sliceDown'
        slices: 15, // For slice animations
        boxCols: 8, // For box animations
        boxRows: 4, // For box animations
        animSpeed: 500, // Slide transition speed
        pauseTime: 3000, // How long each slide will show
        startSlide: 0, // Set starting Slide (0 index)
        directionNav: true, // Next & Prev navigation
        controlNav: true, // 1,2,3... navigation
        controlNavThumbs: false, // Use thumbnails for Control Nav
        pauseOnHover: true, // Stop animation while hovering
        manualAdvance: false, // Force manual transitions
        prevText: 'Prev', // Prev directionNav text
        nextText: 'Next', // Next directionNav text
        randomStart: false, // Start on a random slide
        beforeChange: function(){}, // Triggers before a slide transition
        afterChange: function(){}, // Triggers after a slide transition
        slideshowEnd: function(){}, // Triggers after all slides have been shown
        lastSlide: function(){}, // Triggers when last slide is shown
        afterLoad: function(){} // Triggers when slider has loaded
    });
*/
$(window).load(function() {
    // Slider
    $('#slider .slides').nivoSlider({
        effect: 'random',
        directionNav: false,
        controlNav: false
    });
});

/* 
$('#slider').nivoSlider({
        effect: 'random', // Specify sets like: 'fold,fade,sliceDown'
        slices: 15, // For slice animations
        boxCols: 8, // For box animations
        boxRows: 4, // For box animations
        animSpeed: 500, // Slide transition speed
        pauseTime: 3000, // How long each slide will show
        startSlide: 0, // Set starting Slide (0 index)
        directionNav: true, // Next & Prev navigation
        controlNav: true, // 1,2,3... navigation
        controlNavThumbs: false, // Use thumbnails for Control Nav
        pauseOnHover: true, // Stop animation while hovering
        manualAdvance: false, // Force manual transitions
        prevText: 'Prev', // Prev directionNav text
        nextText: 'Next', // Next directionNav text
        randomStart: false, // Start on a random slide
        beforeChange: function(){}, // Triggers before a slide transition
        afterChange: function(){}, // Triggers after a slide transition
        slideshowEnd: function(){}, // Triggers after all slides have been shown
        lastSlide: function(){}, // Triggers when last slide is shown
        afterLoad: function(){} // Triggers when slider has loaded
    });
*/

[iOS][APNs]Device Token

http://stackoverflow.com/a/7999690

Apple’s official documentation is unclear on this point. What I have observed is this: the token is invariant for a given device, application, and domain (production vs. sandbox). I believe that this must remain true in order for the system to work reliably. Consider the situation where an application update triggers a new APN token; if I were using the greatest new Twitter-like app, with notifications enabled, what would happen when I update my app from iTunes? Should I have the expectation that it will continue to be sent notifications even though I have not run the applications since I “sync” the update onto me device? The act of changing the application cannot affect the APN system since the OS can receive notifications on your behalf even though you haven’t run the updated app.

To be clear, Apple states “An application should register [with APN servers] every time it launches and give its provider the current token”. I wholeheartedly agree; doing so will protect your application from bad assumptions or unusual situations.

One of the answers to are push notification tokens unique across all apps for a single device? indicates that device tokens are unique per “operating system install”; and that restoring from backup to a device would maintain the token but wiping a device will cause it to get a new token. This would be entirely consistent with Apple’s intentions of seamless operation and privacy: wiping a device is severe enough that perhaps it warrants a new association, but a user restoring an image after an OS update would want to preserve their existing notifications. If I recall the recent iOS5 update on my iPad, I restored the most recent backup after upgrading, so this would have maintained my notification token’s consistency. [Edit: restoring a backup to a different device will NOT duplicate the token.]

caveat: I do not have definitive knowledge on the subject, just some reasonable experience working with APN (as a third-party developer). As always, it is best to verify your assumptions.
Update (June 2012):

I recently had a chance to a> talk to Apple engineers and b> run some real world tests, and I wanted to present the results:

To be complete, when I talk about returning an APN token, I am assuming the context of a single bundle identifier/application.

First, the Apple engineers said that it should not be possible for two devices to return the same APN. Notwithstanding the comments below, I have not been able to identify a circumstance where this fails.

Second, here is the upgrade test sequence and results:

Start with iOS4 installed on iPhone4; backup device in iTunes

Upgrade to iOS5
From a previous test, I know that the APN token is now different

Restore the backup to the device
The APN token is now the same as step 1.

Reset iOS (clean device)
The APN Token changes

Backup a different phone to iTunes and restore that backup to test device; basically, I’m restoring the “wrong” backup, as if I were switching phones.
The APN token changes again; further it is distinct and does not match the tokens either the original token or the “cloned” token.

Restore the “correct” backup to the device.
The APN token is now the same as step 1.

Lastly, I upgraded the phone to iOS6 (beta2), restored my backup, and re-tested. As expected, the token continued to match the token in step 1.

At this point, I’m pretty confident that APN tokens can’t be duplicated between different devices; perhaps this may have happened as a bug in earlier versions of iOS, but I’m confident that iOS5 (and presumably iOS6) are handling APN tokens correctly.
Update (August 2012)

I just realized I had not added this: device tokens will change. One of the Apple devs shared with me that tokens do actually expire (after 2 years, I think). For many purposes, this is long enough that can be thought of as invariant.

[I’m not worried if I have to update my test scripts with new tokens every two years, especially since I change phones every year.]