cancel
Showing results for 
Search instead for 
Did you mean: 

Canvas Admin Blog

alunsfor
Community Advocate
Community Advocate

Canvas seems overwhelming for those that are just getting started but the best advice to to choose one feature at a time to add to your course and try out.  Check out my article on Conquering Canvas, one feature at a time.

Read more...

more
3 0 92
jkremer
Instructure
Instructure

Congratulations on making it to the end of what has likely been one of the most challenging years in education! As the CSM team begins to get questions from Canvas Admin about what they need to be doing to prepare for the end of the year, we decided to put together resources and answers to our most commonly asked questions and share them with our beloved Admin team. See below for those resources and answers and please reach out to your CSM team if you have any follow-up questions. We're here to support you!

Read more...

more
2 0 2,542
jwadec
Community Contributor

Learn how to extract the context id within a course and create the csv file needed for the Zoom LTI integration.

Read more...

more
3 5 470
Maryna_Dibrova
Community Participant

Hello everyone,

It is a monthly update from Turnitin Team. Learn about upcoming webinars and training sessions, discover the most useful resources and latest company news.

Read more...

more
0 2 114
mvanmatre
Community Participant

From Covid-19 to Canvas Admin: Building Courses, No Problem! Maintaining the Instance via API-Pushes and Backend Development, Problems Galore!

Read more...

more
1 2 181
GeorgeRBradford
Community Member

New account level role created but cannot assign an individual to that role.

This article is a request to help or directions to an article I could not locate.

Read more...

more
0 9 282
alunsfor
Community Advocate
Community Advocate

In the beginning of becoming a Canvas Admin, I was very adamant about not forcing templates on my teachers.  I firmly believed that having teachers use templates in their courses would take away from the creativity and the individualism that comes from designing their courses.  What better sense of pride could you have than knowing what you have created is being used in your course and just like creating the decorations in your classroom to showcase who you are as a teacher, the same can be seen in your Canvas course design.

Read more...

more
1 3 378
maguire
Community Champion

What can be done with a grading scale?

Read more...

more
1 0 223
adaughtridge
Community Member

Due to new staff, we will be moving teachers around.  Course number, section and students will stay the same, just changing the teacher of record.  Once this task is completed in PowerSchool, what happens in CANVAS? Where do the student assignments go?  Is there a way to "move" them to the new teacher's CANVAS page?

Read more...

more
0 1 216
tshunt
Community Member

My apologies if this topic is somewhere in this Group somewhere already.  I am looking to find the most efficient way in which to share morning video announcements out to students either through creating a course, sharing with teachers or sharing it with the students directly.  What is the best and most efficient to post video announcements each morning?

Read more...

more
0 0 165
murphyl
Community Member

Faculty at my institution have been asking for a way to record attendance for Zoom video lectures within a Canvas assignment as attendance makes up a very small percentage of final grades. There is no inbuilt functionality to do this within Canvas so I created a python script that takes a Zoom meeting report, creates a new assignment within Canvas and gives a points score to all attendees. 

Read more...

more
12 9 3,099
don_lourcey1
Community Advocate
Community Advocate

I have been lurking long enough in the Community. I feel like it is about time that I contribute.

 

I am building a virtual Canvas Boot Camp for our district teachers. Each day focuses in a particular skills level: Basic Training, Officer Training, and Field Training.

Read more...

more
7 2 670
jgee1
Community Member

Tracy Weeks, Executive Director of State Partnerships at Instructure, recently sat down (virtually) with leaders from ISTE, CoSN, SETDA, and Foresight Law & Policy to discuss key components of the CARES Act and how it can best support instructional continuity and equitable access in K-12 education. 

Read more...

more
1 0 411
jgee1
Community Member

Assessment will be more important than ever...

Read more...

more
1 2 626
jessjones
Instructure
Instructure

In Part 1 we explored best practices, practical tips, and considerations for creating online assessments.  In this Part 2, we’re focusing on the assessment itself and the provisions that can be put in place to ensure that online assessments run smoothly.

Read more...

more
5 0 837
mfreedman3
Community Participant

The advantages of online meetings are to save travel time, convenience, and flexibility while retaining or augmenting the benefits of group interactivity. For interactivity, we need engagement; for engagement, we need encouragement and trust.  A one-way webinar is not a lot better than a video or a one-to-many lecture. Here are some points to consider in developing and running an interactive online meeting.

Read more...

more
0 0 517
jessjones
Instructure
Instructure

The end of the school year is in sight, we can almost see it, just beyond that final assessment period!  Amidst the current context of COVID-19, where we are utilising online tools to enable teaching and learning more than ever,  we may need to take a different route to get there to the one we had planned.

Read more...

more
4 0 1,163
ctitmus
Community Team
Community Team
0 0 3,272
jcapps
Community Participant

What they are and how to use them.

Read more...

more
0 0 825
jperry4
Instructure
Instructure

Many teachers have now moved to teaching entirely online with the current COVID-19 situation. We've already discussed the idea of "Maintaining a Connection of the Classroom". What about our teachers who are on a rapid learning curve in the use of technology for distance learning. This article aims to cover ideas on maintaining and promoting a collaborative connection between teachers when working remotely.

Read more...

more
2 0 584
rmurchshafer
Community Coach
Community Coach

343644_Contingency Plan.png

Ok this is a really short post but might be helpful for some of you who have multiple adults and/or kids all doing Zoom meetings in the house and you keep hearing and being distracted by all of the other conversations. 

Turn on some White Noise

White noise is basically any sort of non-specific sound.  The idea is that you don't notice it much, but it helps drown out other noises coming from your housemates who are also in meetings (or playing FortNite with friends).  If you don't have a White Noise device there are a ton of apps for iOS and Android, and if you have a smart speaker try just yelling out "Alexa, play some white noise", or "Hey Google, play some white noise".  If you accidentally say "Play some white snake, well that might be a little more distracting.  Amazon has a whole selection of devices you can order and bathroom fans also can do the trick. 

I didn't do this, but in my house both of our Echo Dots are currently playing White Noise as well as fans running in both bathrooms. 

I guess I must be too loud?  

#KeepTeaching

The Rickster

more
3 0 727
afoote
Community Team
Community Team

You can start and join Zoom meetings in Canvas.

 

Notes:

  • You must have accounts for both Canvas and Zoom.
  • For more information about using Zoom in Canvas, visit the Zoom in Canvas document.
  • For help with Zoom, visit the Zoom Help Center.

 

Using Zoom with Canvas

 

How do I add Zoom to a Canvas course?

You must add the Zoom integration to each Canvas course you want to use with Zoom.

Note: Contact your Canvas administrator if you have questions about adding Zoom to your course.

 

  1. Log into your Zoom account.
  2. In the same browser, log into your Canvas account.
  3. In Canvas, open the course where you want to add Zoom.
  4. In Course Navigation, click the Settings link.
  5. Click the Navigation tab.
  6. In the list of course navigation menu options, select the Zoom option.
  7. Click the Options icon and select the Enable option.
  8. Click the Save button. View the Zoom link in Course Navigation. Note: When accessing Zoom for the first time in the course navigation, you may need to click the Authorize button to proceed.

 

 

How do I schedule a Zoom video meeting?

You can schedule meetings from the Zoom desktop client or mobile app, Zoom web portal, or Zoom plugins for Chrome, Outlook, and Firefox.

 

Once Zoom is added to a Canvas course, you can access Zoom from Course Navigation. 

  1. In Course Navigation, click the Zoom link. 
  2. Click the Schedule a New Meeting button. To learn more about scheduling meetings, visit the Scheduling Meetings guide in the Zoom Help Center.
  3. To schedule a recurring meeting, click the Recurring Meeting checkbox. You can set how often the meeting recurs, the number of meeting occurrences, and the date for the final occurrence. Note: When scheduling a recurring meeting, each occurrence is created as an independent event. To modify all recurring meetings, you must edit each meeting individually.

 

 

How do I invite others to join a meeting?

You can invite others to Zoom meetings via email, contacts, URL, a web portal invitation, or application invitation. In the Zoom Help Center, learn more about inviting others to join a meeting.

 

How do I start a meeting?

As the meeting host, depending on how you create your meeting, you can start the meeting from the Zoom desktop client, Zoom mobile app, web browser, or room system.

 

Once Zoom is added to a Canvas course, you can access Zoom from Course Navigation. 

  1. In Course Navigation, click the Zoom link.
  2. Click the Upcoming Meetings button.
  3. Locate the Meeting ID you want to begin and click the Start button.

 

How do I record a meeting?

You may be able to record your Zoom meetings. In the Zoom Help Center, learn more about cloud recordings and frequently asked questions about local and cloud recording.

 

Meeting recordings can be downloaded to a computer or streamed from a browser.

 

Note: Cloud recording is automatically enabled for paid subscriptions.

 

 

How do I know if students have joined the meeting?

As the host, the number of participants displays in the number icon on the Manage Participants button. You can also manage participants in a meeting.

 

How do I mute and unmute all participants?

As the host, you can manage participants, including muting or unmuting all participants. In the Zoom Help Center, learn more about audio controls

  1. Click the Manage Participants icon.
  2. Click the Mute All or Unmute All button.
  3. To mute all current and new participants, click the Continue button. To allow participants to unmute themselves, click the Allow participants to unmute themselves checkbox.

 

How do I turn my camera on and off and use the Zoom controls?

Hosts have access to these features:

  • Join Audio: Open the options to join the audio portion of the meeting.
  • Invite: Invite by copying the invitation, the join link, or by phone or room system (if available for your account).
  • Manage: View the participants list and manage participants.
  • Record: Start a cloud recording.
  • Leave Meeting: Leave the meeting. If you leave the meeting without designating another host, the meeting will end.

Learn more about meeting controls in the Zoom web client.

 

Participants have access to these features:

  • Mute / Unmute: Mute and unmute your microphone.
  • Start Video / Stop Video: Turns your camera on or off.
  • Invite: Invite others to join your meeting. Learn more.
  • Participants: See who's currently in the meeting.
  • Chat: Access the chat window to chat with the participants. 
  • Leave Meeting: Leave the meeting while it continues for the other participants. Only the host can end the meeting.

 

How do I share my screen?

Zoom allows for screen sharing on desktop, tablet, and mobile devices running Zoom.

 

The host and attendee can screen share by clicking the Share Screen icon.

 

How do I manage and share the recording?

Local Recording saves your recording files on your computer. It is not possible to upload a local recording to the Zoom cloud. To store a video on Zoom's cloud, you must use cloud recording.

 

However, you can share your local recording with others by uploading it to third-party cloud storage, content/learning management, or video streaming services such as Google Drive, YouTube, or Vimeo.

 

Zoom Storage

Is there a limit for storage?

Cloud Recording Storage Capacity is limited. 

 

Where can I access my recordings?

In Zoom, to view your recordings, click the Cloud Recordings tab.

 

Will I have access to my recordings forever?

You will have access to your cloud recordings as long as you have a Zoom subscription. To save your Zoom meeting recordings, download them to your computer.

more
10 33 306K
jperry4
Instructure
Instructure

You may have read my previous blog around maintaining the connection with your classroom. This was written as teachers moved from a classroom situation to teaching online.

Link to Blog - Maintaining the Connection of the Class RoomMaintaining the Connection of the Classroom

I wanted to write this post as the current circumstances means more and more educators are providing resources online to students who are working under a very different environment. Things have changed very rapidly in the last few weeks. In my role, I'm so lucky, I spend my time with fantastic educators around the world, looking at ways of using Canvas to change and enhance educational delivery. The situation we are presented with today means we need to step back and focus on new users, under pressure and with little time. By this, I mean our students and parents as well as teachers. They are juggling many priorities of a personal nature as well as professional. 

342792_Screenshot 2020-03-26 at 16.51.36.png

After thinking about your level of capability with the tools make a decision on what is really important now

Then let's ask ourselves 3 questions.

1 - Can we actually find time to be online together?

Tips

  1. Use Virtual Classrooms as open Q+A sessions.
  2. Don't forget the "Chat" tool.
  3. Use a single-threaded discussion tool to gather questions.

When everybody is at home, it may be putting a strain on the people as they spend more time together. We also need to consider it could be putting pressure on the internet and access to devices as well. Will your whole class still be available at the normal time?

We can think of what can be delivered in your virtual classroom on a continuous scale.

342805_Screenshot 2020-03-26 at 16.51.20.png

If you are not used to delivering online video classes, maybe a simple approach in the time online together will be more beneficial. Consider setting your work in assignments and discussions that can be completed asynchronously. Use shorter webinar times. Do they really need to be run at the same time as the usual school schedule? These sessions can be an opportunity to answer your students' questions or cover a crucial point they've not grasped in the assignments and quizzes. Do not undervalue you explaining a concept verbally.

If circumstances mean that web calls are inappropriate or inaccessible, you can use the chat tool to answer questions and support students synchronously.

Discussions can also help maintain the connection of the classroom and could be more accessible to students if they are unable to attend a scheduled virtual class. These to allow students to share ideas but simply keeping one discussion board pinned and open to gather questions can help students ask for help and gain support.

342810_Screenshot 2020-03-26 at 17.41.17.png

2 - Will they find their way around my course?

Tips

  1. Use the first module in your list as a box for this week's resources and tasks.
  2. Set due dates or add to the student to-do list.

There's no point in setting work that they can't find behind a large number of clicks. The modules page in Canvas is a fantastic way of presenting your resources in a structured manner to your students. Think about your students (consider parents) and their ability to navigate the course. One idea is to put a module at the top of the page with the current work. You can drag and drop, or move the module if need be.

342809_Screenshot 2020-03-26 at 17.30.40.png

Canvas automatically creates a to-do list for students. If you add dates and times to your tasks, it increases the visibility for students and helps organise their time.

3 - How do they get feedback when I'm not available?

Tips

  1. Use short self-marking quizzes where feedback is given based on a response.

When you can't be online at the same time as your students, there's no need for them to wait to get feedback on simple concepts. You can add mini-quizzes and if you use the feedback tools in the quiz students can see straight away if they've grasped a concept or idea.

342811_Screenshot 2020-03-26 at 17.50.33.png


I hope this discussion blog has been useful and feel free to comment. We see the work and effort you put in during these challenging times. Remember, you can only do what you can do. 

Stay Safe!

Jonathan

Summary of Ideas

  • Use a single-threaded discussion tool to gather questions.
  • Don't forget the "Chat" tool.
  • Use Virtual Classrooms as open Q+A sessions.
  • Use the first module in your list as a box for this week's resources and tasks.
  • Set due dates or add to the student to-do list.
  • Use short self-marking quizzes where feedback is given based on a response.

 

more
3 0 722
rmurchshafer
Community Coach
Community Coach

Bob the BuilderHow many of you have seen the show "Bob the Builder"?  One of Bob's mantras is to use the right tool for the job.  This holds true for so many things in life and is not just limited to building things.  It's something we should definitely try to do as much as possible in academic technology as well.  

Over the last month or so hundreds of thousands of educators are trying to get up to speed with how to conduct their classes in remote learning mode.  There are lots of tools available and in many cases a lot of overlap from tools meant to do very different things.  I want to focus here on video and using the right video tool for the job whenever possible.  

I like to break down the creation of video into three main categories:

  • Solo recorded video: such as a lecture done for people to view on their own time
  • Video Conferencing: a live synchronous event which may or may not be recorded for playback later
  • Group recorded video: a recording that needs to be made by more than one person who are not together.

What I've been hearing a lot recently is "I want to just use one tool for everything" meaning all 3 categories listed above.  And on the surface I agree with that statement, the fewer different tools the better.  And the tools that will do all three of those typically are Video Conferencing tools such as Zoom, Adobe Connect, or Big Blue Button (the conferencing tool built in to Canvas).  But for the first category of Solo Recorded Video, using a video conferencing tool can be overkill pulling resources away from others who need it for synchronous activities, and in some cases providing undesirable results.  

There are various tools which can be used for solo recorded video, some for screen capture and some for just plain video.  Examples include VidGrid, Canvas Studio, Screencast-o-matic, Camtasia and even the built in Canvas video recorder or your mobile phone/table.  When you use a tool like these virtually all of the "work" is being done by your device.  Only when the recording is done is it sent over the interwebs to a system to be hosted for viewing.

When you use a tool like Zoom to just make a solo recording, (especially a cloud recording) it is having to connect through the internet to Zoom servers to do the work.  That connection is like hopping on the highway with your car AND needing to maintain a speed of at least 45 miles per hour.  If you run into a traffic jam, (network congestion), the recording can suffer because not all of the data can get to Zoom in that constant minimum stream (bitrate).  Plus, just being out on the highway you are causing more congestion for everyone who might be holding a synchronous event. The other issue with some systems such as Zoom when using the Canvas integration; the cloud recordings are made available to your students as soon as they are processed. 

In comparison, when a solo recorded video gets sent up to a server over the interwebs, there is no need to maintain a minimum speed.  During times of congestion it may take 30 minutes instead of 10 to upload, but again that is not a problem because the recording has already been made. It just needs to get all of the data to the server eventually so the server can assemble them into a video presentation to be accessed by people on their own schedule. 

So obviously there are no hard and fast rules. Do I use Zoom sometimes to make solo recordings?  Yes. Does everyone have multiple tools available? No. So by all means use what you have available.  But if you are in a case where there are multiple tools available to you through your school, consider what the best tool is for the job. In these times of exponential increase of usage of various products, keep these things in mind and know that picking the best tool for the job can help improve your results, and impact work that others are doing as well.

#KeepTeaching

The Rickster

more
3 0 581
jessjones
Instructure
Instructure

With the education landscape rapidly changing, many of us are exploring ways to enable online teaching and learning opportunities to an increasing cohort of students.  This blog will explore best practices to consider when teaching large Courses within Canvas.

Sections 

Sections are a great way to subdivide students within a Course.  Using sections can enable easier facilitation of teaching, communication, and grading processes, as well as the opportunity to provide differentiated content and due dates for students. 

Assignments, Quizzes and Graded Discussions

When creating Assignments, Quizzes or Graded Discussions, they can be assigned to a specific section so that only students in that section will be able to access the activity.  This can be a great way to provide differentiated learning activities should you choose to create sections based on student ability. 

It is also possible to set an activity for the entire Course, but with different availability and due dates for different sections - a great solution when sections are created for students who usually have class at different times.  Keep in mind that students will only see the dates that you have set for them, so they will not know that other students in the course may have different due dates.

342593_1 Assignments.png

Announcements 

Announcements are a simple way to provide targeted communication to specific sections, meaning students will only receive the information that is relevant to them. Using the ‘Post to’ box, Announcements can be sent to individual or multiple sections.  Combining this with the ‘Delay posting’ option and links to relevant Course content can be another way to streamline admin time, with the added benefit of supporting students to engage with course content.

342594_2. Announcements .png

Gradebook and Speedgrader 

Using sections as a filter in the Gradebook can allow teachers to more easily monitor student engagement and progress within an individual section.

342595_3. Gradebook.png

Filtering by Section within the Speedgrader can be another way to streamline the grading process by completing grading one section at a time.  If you have multiple graders within a Course, consider creating Sections based on grader allocation again for ease of filtering.

342596_4. Speedgrader.png

Creating Sections

It is possible for teachers to create sections and enroll students to those sections within Courses.  However for large Courses, using a SIS import for section creation and enrollment is a far more time efficient workflow.  Reach out to your institutions Canvas Admin to action this, and the below guides provide further detail on how to create sections via either of these methods:

 

A few additional considerations for sections:

Groups

Groups provide collaboration opportunities for students to work together.  In large Courses, Groups can provide students with a smaller circle of peers to interact with, which may be more engaging and manageable than interaction across the entire cohort.

Group Area 

Groups are given sub areas within the Course, where students have space to independently interact with each other.  In Groups, students can facilitate their own Discussions, create content with Pages and Collaborations, share resources with Files, communicate with Announcements, submit Group Assignments, and even host online meetings with Conferences.  Groups can therefore be an efficient way to allow for peer-to-peer interaction, as well as student-led learning, even within large Courses.

342597_5. Group Area.png

Group Discussions

Another way to facilitate interaction is to use the Group Discussion tool. With just one additional click, teachers can create identical Discussion topics for each group of students.  When students reply to the Discussion, they do so within their Group environment, allowing simultaneous Discussions on the same topic to be held across all Groups.

342598_6. Group.png

Creating Groups

There are many options for creating Groups depending on your teaching preference - allowing students to create their own groups, to self sign-up, asking Canvas to automatically create Groups, or manually assigning Groups as the teacher.  Full guides on these different options can be found in the links below, however there are a two key things to consider with this process:

  • For students to be able to sign up to or create their own Groups, they need to be able to access the People tab in the navigation menu of your Course.  If you would like to allow self sign up, make sure the People tab is visible - it can be adjusted in the Navigation menu of the Course Settings.
  • Placing students into a Group adds a tab to the Global Navigation Menu, allowing them to navigate Groups without needing to be in the Course first.  Using a naming convention that identifies the Group as belonging to a specific Course will make it a lot easier (and more likely!) for your students to navigate in to.  

342599_7. Group Areas.png

Large Courses Considerations

Canvas courses are optimised for 3,000 - 5,000 enrollments, and will remain performant with these numbers.  As will all online tools, there are implications to be aware of when dealing with larger volumes, particularly with regards to load times and navigation.  It is important to be aware of this, and really consider whether reaching the upper limits of student numbers is necessary in your context, or if other solutions could be found.  Areas in particular to be aware of include:

  • Gradebook - using Sections, Modules, or Groups as filters will help  

  • Discussions - navigation can become suboptimal when thousands of topics are in use, though the search and sort options can be of assistance here

  • Analytics - large student numbers will extend load times, but only up to a minute so hang in there!

These are just a few suggestions of best practices for facilitating manageable teaching and engaging learning opportunities within large Courses. We’d love to hear from you - what are your thoughts about these ideas? What are your tips for managing large Courses?

more
9 2 2,591
rmurchshafer
Community Coach
Community Coach

I've been making some recordings recently on the theme of dealing with with coronavirus shutdowns that so many schools have been experiencing.  I posted one of my episodes earlier dealing specifically with using Zoom to remote proctor a written exam (Using Zoom to remote proctor an exam) but thought I'd create another post to contain all of my recordings and keeping adding to it.  The focus of the recordings is more around questions we are getting asked right now at my school, so if they don't seem well organized and linear, that is why.  But, I figured some people might still appreciate them.

Episode 1: Hardware considerations for Zoom and Recording

Episode 2: Scheduling Meetings in Zoom

Episode 3: Notifying students in Canvas about Zoom Meetings

Episode 4: Proctoring a written exam using Canvas and Zoom

            Addendum to Episode 4: Using CamScan and Canvas Student to submit a paper assignment or exam

Episode 5: Embedding Simulations in Canvas (Science type stuff)

Episode 6: Using the Canvas / Zoom Integration to Schedule Zoom class meetings

The Rickster

more
1 2 825
scottdennis
Community Team
Community Team

Earlier today, Phil Hill said in a blog post that as teachers respond to mass school closures the initial phase we are seeing is a lot of people wanting to move from synchronous face to face education to synchronous online video conferencing.  Phil theorized that as people begin to become aware of some of the inequalities of relying on video conferencing technology that requires all students to have “high speed internet,” and as teachers become more familiar with the online environment, a second main phase will focus more on asynchronous content delivery. 

If you are familiar with finding good content online, and adding it to your Canvas course, where do you go to find it?  Canvas Commons is a global online learning object repository (LOR) with content shared by Canvas users from around the world, designed to let you copy content directly from Commons into your Canvas course.  Not all institutions elect to link their instances of Canvas to Commons but it is available in Free-for-Teacher Canvas.

Another place instructors frequently turn to find materials for their courses is the world of Open Educational ResourcesOER Commons  is one example of public digital library of open educational resources.  Educause also has an excellent listing of other OER repositories.  Lumen has an amazing resource site as well. 

There are many educationally focused video resource collections to choose from, including Khan Academy (which has a whole section dedicated to homeschooling), or Teachertube.

If you know your way around instructional design and course building where do you typically go to find good course content?

more
2 1 598
devlin
Community Member

342085_Contingency Plan.png

During COVID-19, all online educational platforms have a responsibility to our teachers and students. I co-founded Instructure in 2008, and I recently co-founded the Derivita online math system with Ryan Brown. As you can imagine, the education community is incredibly close to my heart.

Many of you have already felt COVID-19’s impact on your classrooms. If you’re already using Canvas, the change from teaching in a classroom to fully online will be a bit easier.  But teaching math remotely without an online math system can still be incredibly tricky.

To aid you in this transition, we are offering the Derivita math homework system for free, Spring and Summer semesters. We will also install it on your Canvas course in under 24 hours, so the disruption you are already feeling will be minimal.

See my post introducing Derivita New Math Engine for Canvas 

Email us at info@derivita.com, and we will do everything we can to provide you with guidance. 

You can also find us at derivita.com, where you will learn how students around the world use our online system to learn math from their own homes. An online classroom does not need to be a lost learning moment for your math students.

We are privileged to serve the wonderful education community. We care about you, and we’re here to help.

Sincerely,

Devlin Daley, CEO at Derivita, Co-founder of Instructure

more
2 0 646
kenneth_larsen
Community Champion

Like many of you out there, here at Utah State University, we are struggling to move all of our classes online in an absurdly short period of time in response to COVID-19.

To help speed up the process, I have created some JavaScript to facilitate rapidly pulling a template course into an empty course shell and I am sharing it in the hopes that it can alleviate some of the headaches for other institutions.

I am providing the code for two contexts, uploading JavaScript to Canvas using the Canvas Theme Editor and creating a browser bookmarklet for those who do not have access to account-level JavaScript in Canvas.


A Note About Permissions

The code that follows will run as the logged-in user and will only work if the user has permission to import course content in Canvas.

The code is also scoped to only show on the front-page of an empty course so it should not be visible to students.

Account Level JavaScript

Canvas allows for adding CSS and JavaScript at an account level using the Canvas Theme Editor. For institutions that want to provide this type of functionality for an entire account, here are two options:


Single Template Course

If you have a single template course that you would like to provide an easy way to copy, the following code will create an Insert Base Template button in the right Canvas sidebar:

Insert Base Template Button

Here is the code that you would upload to Canvas. Update the templateCourse id on line 36 to your template course:

// Import Base Template button for the course Home Page
// This function will keep checking the progress url until process is complete or fails
function checkImportProgress(progressUrl) {
$.get(progressUrl, function(data) {
// Update the button to show we are checking again
$('.kl-import-template').html('Checking Progress');
// Four possible options
// 'queued', 'running', 'completed', 'failed'
let completed = false;
switch(data.workflow_state) {
case 'completed':
completed = true;
break;
case 'failed':
alert('Import failed');
break;
default:
// For 'queued' or 'running'
setTimeout(function(){ checkImportProgress(progressUrl); }, 5000);
}
if (completed) {
// Reload the course home page
location.reload();
} else {
// Wait a bit and try again
setTimeout(function(){ checkImportProgress(progressUrl); }, 5000);
}
// Provide feedback of the current progress
setTimeout(function(){
$('.kl-import-template').html('Template Progress: ' + data.workflow_state);
}, 1000);
});
}
$(document).ready(function() {
// The Canvas course id for your template
let templateCourse = '593';
// Only add the button to the home page of courses without any other content in place
if (ENV.COURSE !== undefined && ENV.COURSE.id !== null && window.location.pathname === '/courses/' + ENV.COURSE.id && $('.ic-EmptyStateList:visible').length > 0) {
// Add the import button
let importButton = '<button class="btn btn-primary button-sidebar-wide kl-import-template"><i class="icon-download"></i> Import Base Template</button>';
$('.kl-import-template').remove();
$('.course-options').prepend(importButton);
// Bind action
$('.kl-import-template').unbind('click').on('click', function () {
// Prompt user so they have a chance to cancel
let confirmMessage = confirm("This will copy content into your course. Click OK to proceed.");
if (confirmMessage == true) {
$(this).html('Importing Base Template');
// Send import request to the Canvas API
$.post('/api/v1/courses/' + ENV.COURSE.id + '/content_migrations', {'migration_type': 'course_copy_importer', 'settings[source_course_id]': templateCourse}, function(data, textStatus, xhr) {
// Begin checking the progress url to see when import is complete
checkImportProgress(data.progress_url);
});
}
});
}
});

Multiple Template Courses

This next variation is for institutions with multiple templates. Instead of a single button, this will add a list of courses with the option to preview and a brief description:

Template list

Here is the code that you would upload to Canvas. Update the templateList that begins on line 4 to include a name, id, and description for each of your template courses:

// Create a list of templates on the home page of a blank course 
$(document).ready(function() {
// This is the list of your templates (Duplicate as needed)
let templateList = [
{
name: 'Basic Online Template',
id: '593',
description: 'Basic 8 week course with readings, assignments, and quizzes'
},
{
name: 'Another Template',
id: '1234',
description: 'This is a good course template'
}
];
// Function to check the Canvas progress url to see if the course has finished importing
function checkImportProgress(progressUrl, courseID) {
$.get(progressUrl, function(data) {
// Give a visual cue that we are going to check again
$('#kl-import-progress').html('Checking Progress');
// 'queued', 'running', 'completed', 'failed'
let completed = false;
switch(data.workflow_state) {
case 'completed':
completed = true;
$('#kl-import-progress').attr('class', 'alert alert-success');
break;
case 'failed':
$('#kl-import-progress').attr('class', 'alert alert-error').html('Import failed');
break;
default:
// for 'queued' or 'running'
setTimeout(function(){ checkImportProgress(progressUrl, courseID); }, 5000);
}
if (completed) {
// Change from institution visibility to course
// If you set the template visibility to 'institution', users can preview before they copy
let parms = {
'course[is_public_to_auth_users]' : false,
'course[is_public]' : false
};
$.ajax({
'url' : '/api/v1/courses/' + courseID,
'type' : 'PUT',
'data' : parms
});
// Import is complete, reload the page
location.reload();
} else {
// Import isn't finished, wait a bit and try again
setTimeout(function(){ checkImportProgress(progressUrl, courseID); }, 5000);
}
setTimeout(function(){
$('#kl-import-progress').html('Template Progress: ' + data.workflow_state);
}, 1000);
});
}
// Only add the button to the home page of courses without any other content in place (shows import option)
if (ENV.COURSE !== undefined && ENV.COURSE.id !== null && window.location.pathname === '/courses/' + ENV.COURSE.id && $('.ic-EmptyStateList:visible').length > 0) {
// Add a placeholder to the sidebar
$('#kl-template-list').remove();
$('.course-options').prepend('<div id="kl-template-list"></div><div id="kl-import-progress"></div>');
// Add each template to the list
$.each(templateList, function(index, val) {
let itemInfo = `<p>
<a href="/courses/${val.id}" target="_blank" data-tooltip="left" title="${val.description}" class="Button Button--secondary kl-preview-template" style="padding: 2px 6px;"><i class="icon-eye"></i><span class="screenreader-only">View ${val.name}</span></a>
<button class="Button Button--secondary kl-import-template" data-tooltip="top" title="Import ${val.name}" data-courseid="${val.id}" style="padding: 2px 6px;"><i class="icon-download"></i><span class="screenreader-only">Import ${val.name}</span></button>
<span class="kl-template-name-${val.id}">${val.name}</span>
</p>`;
$('#kl-template-list').append(itemInfo);
});
// When template import is clicked
$('.kl-import-template').unbind('click').on('click', function () {
// Give user a chance to cancel
let confirmMessage = confirm("This will copy content into your course. Click OK to proceed.");
if (confirmMessage == true) {
let templateCourse = $(this).attr('data-courseid');
let templateName = $(`.kl-template-name-${templateCourse}`).text();
$('#kl-import-progress').addClass('alert alert-info').html(`Importing ${templateName}`);
// Send import request to the Canvas API
$.post('/api/v1/courses/' + ENV.COURSE.id + '/content_migrations', {'migration_type': 'course_copy_importer', 'settings[source_course_id]': templateCourse}, function(data, textStatus, xhr) {
// Begin checking the progress url to see when import is complete
checkImportProgress(data.progress_url, ENV.COURSE.id);
});
}
});
}
});

JavaScript Bookmarklets (No access to add JavaScript to Canvas)

Next, let's take a look at some options for those who do not have access to add JavaScript to Canvas using the Theme Editor at an account level.


What is a Bookmarklet?

A bookmarklet is similar to create a bookmark in your browser to take you to a webpage. The difference is that instead of opening a webpage, a bookmarklet will run some JavaScript.


How do I create a Bookmarklet?

  1. Create a bookmark in your browser (the same way you would create any bookmark).
  2. Edit the bookmark.
  3. Give it a name to make it easy for you to find.
  4. In the URL field, you are going to add some JavaScript (keep reading to learn what this will look like).


Hard-Coded Template Course

If you would like to add a bookmarklet that will always import the same course, this is the JavaScript code we will use (replace the template_course_id on line 2 with your template course):

// The id of our template course
let template_course_id = '593';
// Only run on the home page of courses without any other content in place (shows import option)
if (ENV.COURSE !== undefined && ENV.COURSE.id !== null && window.location.pathname === '/courses/' + ENV.COURSE.id && $('.ic-EmptyStateList:visible').length > 0) {
// Give user a chance to cancel
let confirmMessage = confirm("This will copy content into your course. Click OK to proceed.");
if (confirmMessage == true) {
// Add a div for feedback
$('#modules_homepage_user_create').prepend('<div id="kl-import-progress" class="alert alert-info"></div>');
// Send request to Canvas
$.post('/api/v1/courses/' + ENV.COURSE.id + '/content_migrations', {'migration_type': 'course_copy_importer', 'settings[source_course_id]': template_course_id}, function(data, textStatus, xhr) {
// Write a response with a link to the course migration page
$('#kl-import-progress').html('Request submitted. Course copy will take a few minutes. Reload this page periodically or <a href="https://community.canvaslms.com/courses/'+ENV.COURSE.id+'/content_migrations">view import progress in Canvas</a>');
});
}
} else {
// Will only work on the course front page
alert('Run this from the course home page of an empty course');
}

In order for this to work as a bookmark, we have to convert it. I like to use MrColes Bookmarklet Creator to convert the code above into what we will add to a bookmark. After converting the code, it will look more like this:

javascript:(function()%7B%2F%2F%20The%20id%20of%20our%20template%20courselet%20template_course_id%20%3D%20'#####'%3B%2F%2F%20Only%20run%20on%20the%20home%20page%20of%20courses%20without%20any%20other%20content%20in%20place%20(shows%20import%20option)if%20(ENV.COURSE%20!%3D%3D%20undefined%20%26%26%20ENV.COURSE.id%20!%3D%3D%20null%20%26%26%20window.location.pathname%20%3D%3D%3D%20'%2Fcourses%2F'%20%2B%20ENV.COURSE.id%20%26%26%20%24('.ic-EmptyStateList%3Avisible').length%20%3E%200)%20%7B%2F%2F%20Give%20user%20a%20chance%20to%20cancellet%20confirmMessage%20%3D%20confirm(%22This%20will%20copy%20content%20into%20your%20course.%20Click%20OK%20to%20proceed.%22)%3Bif%20(confirmMessage%20%3D%3D%20true)%20%7B%2F%2F%20Add%20a%20div%20for%20feedback%24('%23modules_homepage_user_create').prepend('%3Cdiv%20id%3D%22kl-import-progress%22%20class%3D%22alert%20alert-info%22%3E%3C%2Fdiv%3E')%3B%2F%2F%20Send%20request%20to%20Canvas%24.post('%2Fapi%2Fv1%2Fcourses%2F'%20%2B%20ENV.COURSE.id%20%2B%20'%2Fcontent_migrations'%2C%20%7B'migration_type'%3A%20'course_copy_importer'%2C%20'settings%5Bsource_course_id%5D'%3A%20template_course_id%7D%2C%20function(data%2C%20textStatus%2C%20xhr)%20%7B%2F%2F%20Write%20a%20response%20with%20a%20link%20to%20the%20course%20migration%20page%24('%23kl-import-progress').html('Request%20submitted.%20Course%20copy%20will%20take%20a%20few%20minutes.%20Reload%20this%20page%20periodically%20or%20%3Ca%20href%3D%22%2Fcourses%2F'%2BENV.COURSE.id%2B'%2Fcontent_migrations%22%3Eview%20import%20progress%20in%20Canvas%3C%2Fa%3E')%3B%7D)%3B%7D%7D%20else%20%7B%2F%2F%20Will%20only%20work%20on%20the%20course%20front%20pagealert('Run%20this%20from%20the%20course%20home%20page%20of%20an%20empty%20course')%3B%7D%7D)()‍

 It is a lot harder to read but it will do the job. To make things easier for you to update, find the ##### string and replace it with your template course id. Once you update the course id, this is the code that you will paste in as the URL in your bookmark.


Prompt for Course ID

If you want a little more flexibility for what course you want to copy, this option will ask the user to provide a course ID.

Course ID Prompt

Here is the JavaScript we will use for this one (you don't have to update this one):

// Only run on the home page of courses without any other content in place (shows import option)
if (ENV.COURSE !== undefined && ENV.COURSE.id !== null && window.location.pathname === '/courses/' + ENV.COURSE.id && $('.ic-EmptyStateList:visible').length > 0) {
// Prompt user for Canvas course ID
let course = prompt("Please enter the Canvas course ID from which to pull content");
// If they give a response, use it
if (course != null) {
// Placeholder for feedback
$('#modules_homepage_user_create').prepend('<div id="kl-import-progress" class="alert alert-info"></div>');
// Remove any spaces
course = course.trim();
// Send request to Canvas
$.post('/api/v1/courses/' + ENV.COURSE.id + '/content_migrations', {'migration_type': 'course_copy_importer', 'settings[source_course_id]': course}, function(data, textStatus, xhr) {
// Write a response with a link to the course migration page
$('#kl-import-progress').html('Request submitted. Course copy will take a few minutes. Reload this page periodically or <a href="https://community.canvaslms.com/courses/'+ENV.COURSE.id+'/content_migrations">view import progress in Canvas</a>');
});
}
} else {
// Will only work on the course front page
alert('Run this from the course home page of an empty course');
}

And here is that code converted to use for a bookmarklet:

javascript:(function()%7B%2F%2F%20Only%20run%20on%20the%20home%20page%20of%20courses%20without%20any%20other%20content%20in%20place%20(shows%20import%20option)if%20(ENV.COURSE%20!%3D%3D%20undefined%20%26%26%20ENV.COURSE.id%20!%3D%3D%20null%20%26%26%20window.location.pathname%20%3D%3D%3D%20'%2Fcourses%2F'%20%2B%20ENV.COURSE.id%20%26%26%20%24('.ic-EmptyStateList%3Avisible').length%20%3E%200)%20%7B%2F%2F%20Prompt%20user%20for%20Canvas%20course%20IDlet%20course%20%3D%20prompt(%22Please%20enter%20the%20Canvas%20course%20ID%20from%20which%20to%20pull%20content%22)%3B%2F%2F%20If%20they%20give%20a%20response%2C%20use%20itif%20(course%20!%3D%20null)%20%7B%2F%2F%20Placeholder%20for%20feedback%24('%23modules_homepage_user_create').prepend('%3Cdiv%20id%3D%22kl-import-progress%22%20class%3D%22alert%20alert-info%22%3E%3C%2Fdiv%3E')%3B%2F%2F%20Remove%20any%20spacescourse%20%3D%20course.trim()%3B%2F%2F%20Send%20request%20to%20Canvas%24.post('%2Fapi%2Fv1%2Fcourses%2F'%20%2B%20ENV.COURSE.id%20%2B%20'%2Fcontent_migrations'%2C%20%7B'migration_type'%3A%20'course_copy_importer'%2C%20'settings%5Bsource_course_id%5D'%3A%20course%7D%2C%20function(data%2C%20textStatus%2C%20xhr)%20%7B%2F%2F%20Write%20a%20response%20with%20a%20link%20to%20the%20course%20migration%20page%24('%23kl-import-progress').html('Request%20submitted.%20Course%20copy%20will%20take%20a%20few%20minutes.%20Reload%20this%20page%20periodically%20or%20%3Ca%20href%3D%22%2Fcourses%2F'%2BENV.COURSE.id%2B'%2Fcontent_migrations%22%3Eview%20import%20progress%20in%20Canvas%3C%2Fa%3E')%3B%7D)%3B%7D%7D%20else%20%7B%2F%2F%20Will%20only%20work%20on%20the%20course%20front%20pagealert('Run%20this%20from%20the%20course%20home%20page%20of%20an%20empty%20course')%3B%7D%7D)()


Wrap Up

Anyway, I hope that this will be useful to some of you during the present chaos and any future chaos. Feel free to modify, adapt, change, or share that code.

more
6 0 999
emily_allen
Community Team
Community Team

If you would like to connect with students using Zoom as your conferencing tool, you have the ability to add a Zoom Meeting to your Canvas Course, Course Announcement, Module, or via Calendar. The Zoom sessions will start when you join, and will run until you end the meeting. You do not have to update the link to start a new session. When you're ready for your next class to start, the same link allows the next group of students to join.

Note - Zoom will launch in a new tab, and if students are on a mobile device they will need the Zoom app, or can call in to participate via phone. 

Please view Zoom Meetings in Canvas to view or download a copy of the instructions below.

If you need to configure your Canvas instance with the Zoom LTI, please view the LTI Pro for Canvas document from the Zoom Help Center.

Add a Zoom Meeting in Announcements

Add a Zoom Meeting in Modules

Add a Zoom Meeting in Course Navigation

Add a Zoom Meeting in Calendar

more
7 32 105K