Posts Tagged ‘canvas’

“Bridging Formal to Lifelong Learning” on Instructure’s Blog

May 17, 2012 at 9:03 am, Jared Stein

My quarterly Instructure blog post was just published. It summarizes much of my learning and thinking about continual learning on the open web, and suggests how users of Canvas might take advantage of built-in capabilities to help learners bridge the gap between formal and informal learning experiences: Bridging Formal to Lifelong Learning.

\

Coming soon: Press+Canvas for WordPress

May 12, 2012 at 11:26 am, Jared Stein

Knowing my proclivity to start awesome projects that get lost in the flow of life, this may be premature. But in the tradition of publicly declaring dieting goals to stay honest, I want to share a glimpse of a new plugin for WordPress: Press+Canvas.

I had previously thought about ways to get Canvas to aggregate and auto-submit learner blog posts to URL assignments, further freeing them from the bother of having to deal with conventional mechanics of the LMS. That would take significant work, and I probably won’t be convincing the Instructure engineers that this is a priority right now. But, what about going the other way around? Canvas has an open API, so why not have the blogger push their new posts into Canvas?

I have to credit Martha Burtis and friends up at UMW for inspiring this plugin. We were on a call discussing ways that their work on a syndication bus might cross-pollinate with my ideas to further extend and leverage Canvas as an open learning platform when Martha suggested this approach.

So, this WordPress plugin will do just 2 things:

  1. Store your school’s Canvas URL and your personal access token
  2. Allow you to send a Post’s URL to a specific Canvas course and assignment when you publish

I just began stubbing out the plugin this morning after thinking through specs on the plane. I’ll be building out the WP plugin parts in the next two weeks in anticipation of InstructureCon ’12, with the intent to work out the API calls and potentially troublesome AJAX during Hacknight.

Bookmark Sharing via Diigo (+ Canvas)

Apr 16, 2012 at 8:09 am, Jared Stein
This post is a continuation of my reflection on the design, development, and teaching of an online web design course. This activity aims to help students achieve two outcomes:

  • Develop habits and practices that maintain currency with new information in the field
  • Evaluate web design information, practices, and techniques for currency, utility, and elegance

I maintain a Diigo Group specifically for my online Web Design class that, unlike services in a traditional LMS, doesn’t have to die at the end of the semester. Students elect to become members of the Diigo Group, and use the Diigo browser add-on to quickly share and comment on blog posts or articles that they find relevant with the Group (i.e. the class). Diigo also provides tools to tag, comment on, and highlight passages from the article (I haven’t required this, but probably would in a special topics class that focused more on new practices and methods in web design and development).

I actually first started this activity with a simple wiki page listing relevant articles that the class could contribute to. I also used a Delicious account with a for: tag that I linked to from the wiki for more current articles. Both were eventually replaced by this Diigo Group.

Diigo + Canvas

Diigo is the mechanism for both the bookmarking and the archiving of these web pages, and students are able to subscribe to the Diigo Group’s new bookmarks, but I am able to go a step further thanks to Canvas*.

Diigo produces an RSS feed, and Canvas can subscribe to any number of feeds. So I simply add the Diigo Group feed to the Canvas course Announcements. This means that any time a new Diigo Group bookmark is made, Canvas automatically posts it as a hyperlink in a new Announcement.

Students are able to control how Canvas automatically notifies them of announcements (e.g. via email, text, twitter, whatever) as well as the frequency of these notifications (e.g. right away, once a day, etc).

So, in addition to the Diigo archive of bookmarks, Canvas will keep a secondary record of all the bookmarks made in the Diigo Group for the entire semester. This simple act of syndication provides students with additional avenues by which they can choose to learn about new resources–especially important for students who may not yet be comfortable venturing outside of the traditional classroom space.

That’s the mechanism for the activity, but the activity itself is clearly founded in the first learning outcome described above. But I think there are some indirect benefits to this activity as well. For instance, I encourage students to find and read blogs in addition to web design magazines, because, in this field at least, blogs are the best way to share new information fast. Frankly, web design has little need of academics for the general practice; for the theory of usability and visual design? Sure. But most new information goes out through informal publications like blogs and forums.

Focusing attention toward blogs presents students a golden opportunity to be up close and almost-personal to web design luminaries like Jeffrey Zeldman, Eric Meyers, Tantek Celik, Cameron Moll, and more. By following the writings of practicing professionals in the field, I hope students might develop their view of the field, and even fall into some indirect cognitive apprenticeship and accidental learning. And by engaging in the rich, deep, and sometimes contentious discussions of techniques found on web sites like Smashing Magazine or A List Apart, students will have begun participating in the actual practitioner community.

My hope is that students will not drop out of the Diigo Group after the semester’s end. But if they do, and many have, I hope they will, at least, continue the practice of bookmarking and sharing new articles and web sites to support their continual engagement in the field — using their own tools, in their own space, choosing whatever methods suit them best.

* I currently work for Instructure, makers of Canvas.

“Keep It Super Simple” on Instructure’s Blog

Jan 17, 2012 at 5:30 pm, Jared Stein

My next official Instructure blog post was published today, a brief list of general tips on keeping the design of your online learning simple and usable: Online Course Design: Keep It Super Simple.

I could have gone on for pages on this topic (in fact, I did, for about 2000 words before cutting to around 600). That’s my way of saying there’s plenty of room for exploration and discussion, so go ahead, check it out, and leave a comment.

Canvas Tip: Use Browser Add-Ons to Play with the Canvas API

Nov 28, 2011 at 5:30 pm, Jared Stein

This post is for all of you who, like me, have been intrigued by Instructure Canvas’s open API but just haven’t had a big block of time to play with it. Because the Canvas API operates on HTTPS, you can actually run API actions directly from your normal web browser’s address bar. I like to use browser plug-ins to make the JSON responses more manageable, and to let me save and store actions that I’ve run. I’ll guide you through the steps of grabbing a browser plug-in that operates as a REST client and you can be up and running in no time. You’ll be surprised at what doors this might open.

1. Install a REST client extension.

Chrome has several great extensions to this end, but so far I like Advanced Rest Client. It lets you save requests and view your history.

For Firefox the most popular REST client is intuitively named RESTClient. Same basic functionality, but with nice tabs to view the output in different ways.

2. Create a Canvas Access Token in your account profile.

The access token will provide a secure key, if you will, to Canvas with all your own unique permissions and enrollments. Most modern web services help you create these to securely talk with other systems.

Login to Canvas, click on your name, and scroll down to Approved Integrations. If you don’t already have a token, click New Access Token.

Give your token a label (purpose) and expiration date (if you want).

Copy that really long string that Canvas generates and paste it into a text document for later reference–you’ll need it to talk to Canvas via your REST client.

3. Pick an API resource or action from the Canvas documentation

Start by going to the Canvas API documentation. Browse through the Authentication page as well as the Resources, which contain all the currently possible the API actions and outputs.

I don’t have a lot of time to get into API calls and REST, but you can think of it as simply a message sent to a server with an authorization method that tells the server how to respond based on the target and the access token. In this case we’re using the GET method. The API calls will simply be HTTPS URLs with the access token appended as a variable. The URL will change based on what data in Canvas you want to access.

For example, if I want to see all of my page view data, I start with the base Canvas HTTPS URL:

https://canvas.instructure.com

I then append the location of the API resource or action:

/api/v1/users/:user_id/page_views

Be sure to replace :user_id with the numeric value of the user id (or course or account id) you want to access. In this case I want my own. It’s easy to grab this from the end of the URL of my profile page (which happens to be https://canvas.instructure.com/users/123456, so my user id = 123456)

Finally, you’ll need to append your access token as the value of a variable:

?access_token=somereallylongsecurestringhere

So it looks something like this:

https://canvas.instructure.com/api/v1/users/123456/page_views?access_token=somereallylongsecurestringhere

This URL is what we’ll feed our REST client in the next step.

4. Run the API through the browser REST client

Open your REST client add-on/extension and paste in the URL customized for the API action you want to perform plus the course/account/user id plus your access token.

Be sure you’re using the right method (typically GET) before clicking send.

You’ll end up with output below. I recommend looking at the JSON formatted response. This data is organized in name/value pairs, but can also contain objects, so a whole lot of data in a very simple format is possible here.

This gives you a glimpse of the possible data exchanges that Canvas makes available via its open API. Your ability to get data will depend upon your role and permissions within Canvas. Obviously student and teacher users will have far less access than admins at any sub-account level.

In real-world practice, you’ll need to know a bit more than this. But the essence is that you’d use any number of scripting languages to request the data from the Canvas API, parse the JSON format response, then do wonderful, magical things–like calculate an individual user’s course progress in order to dynamically generate a badge. Or not.

“Canvas Tastes Like Open” on Instructure’s Blog

Nov 3, 2011 at 7:17 am, Jared Stein

I’ve just had my first official blog post for Instructure (my new employer–more on that soon) posted on the company blog: Canvas Tastes Like Open. This post explains some of the ways that the Canvas LMS is truly open, and how Instructure has advocated and supported openness since day 1, be that open source, open licensing, open sharing, or open learning experiences.

So check it out and leave a comment there if you can!

Canvas Tip: Build Quizzes with Multimedia Answers

Nov 2, 2011 at 4:47 pm, Jared Stein

I discovered a nice way to create a Quiz in Canvas that associates images or really any multimedia with answer choices.

When creating a Canvas question choose either Fill in Multiple Blanks or Multiple Dropdowns. Multiple Blanks is similar to short answer, and the blanks may need to be manually assessed to provide latitude with spelling etc. Multiple Dropdowns works like matching or multiple choice.

In either of these cases you build the question and the answers in the rich text editor for the question field. Start by introducing the question, e.g. “Match the following constellation images to their names.”

Follow this by one or more images, videos–whatever.

For each of those media items type in the Canvas-standard markup for the blank/dropdown variable name, e.g. [fig1]. It looks something like this:

…where each [fig1] is for a single blank or dropdown choice. Don’t worry–this makes more sense when you’re in the editor!

Then simply use the area below the editor to show the correct answers with feedback.

Voila!

If this works for you, please share some examples.

Canvas Tip: Add News Feeds to a Canvas Page with iframe and Feedburner

Aug 10, 2011 at 10:51 am, Jared Stein

Instructure Canvas features a pretty powerful Pages tool that allows for rich text editing, quick linking to tools and activities, and embedding multimedia. It does not, unfortunately, support the embedding of RSS or Atom news feeds. Pages strips out your Javascript, too, so there’s no use trying to roll your own feed parser. But there is a work-around: use Feedburner and an IFRAME (more…)

Canvas Tip: Javascript to Open Quiz and External URL in Canvas

Jun 28, 2011 at 12:10 pm, Jared Stein

A question came up on the Canvas users list of how one might open an external web site at the same time that a quiz opens. This is possible with Javascript and use of the External URL option in the Canvas Modules (more…)

Instant Grade Notification as a Motivator

May 17, 2011 at 7:31 pm, Jared Stein

I’ve been teaching online courses in Instructure Canvas for a while, but stumbled upon a fascinating phenomenon today thanks to one of Canvas’s built in features. This plays out due to a number of system settings, so bear with me (more…)