Canvas course design analytics

By examining the distinct usage of Canvas course tools, the organization of navigation items, and the structure of course content, we categorized Canvas course design strategies into seven models:
CrsDesign2

syllabus
Syllabus_based design: The Syllabus tool is used to list a topical outline of the course content and to communicate to students exactly what will be required of them throughout the course in chronological order. This design facilitates posting course descriptions, class guidelines, weekly reminders and assignments information.
homepageHomepage_based design: This design presents a front page usually including a course outline and links to course activities. This page could be a wiki page or the Syllabus tool. Other navigation links are typically hidden from student view.

This design is useful for courses that have a specific workflow by providing a central page that helps students understand how they can navigate through the course.

moduleModule_based design: The design utilizes the Module tool to outline the sequence of course content and course activities. The Pages link is usually disabled from student view.

This design is suitable for courses containing sequential activities with possible prerequisites.

pagePage_based design: This design uses the Page tool to list the sequence and structure of course activities. Course files are usually embedded and linked in the content pages. Students use the content pages to guide their coursework. The course instructor can also use Pages as a wiki collaboration tool, setting specific student access for each page.

This design facilitates providing descriptions for course content.

page-modulePage/Module_mixed design: This design utilizes both Page and Module tool to construct course outline and guide students through their coursework. Both Pages and Modules navigation tabs are enabled to allow student access.

This design is suitable for courses contain sequential contents, meanwhile allowing flexibility for students to navigate through the course content.

discussionDiscussion_based design: The Discussion tool is utilized to facilitate communication before or after face-to-face classes. Page and Module tools are usually not used in this design.

This design may be appropriate for blended learning, helping students to begin thinking about an upcoming assignment or class discussion, or following up on questions that began in a face-to-face classroom.

file

File repository: This design utilizes the Files tool to share course documents and syllabi with students, The Pages and Modules tools are not used extensively.

This design is suitable for face-to-face classes that use Canvas mostly for provided documents to students.

Building dynamic interaction graphs in Tableau using R

Student online discussion interaction data can be quite rich, it is beneficial to visualize the data in a meaningful way that helps faculty make an informed decision to engage students in online discussions. We can try a dynamic network dashboard to explore the ideas.

In previous blog, I posted a couple of online discussion interaction layouts that were generated in R with igraph package. In this blog, I would like to share another approach that uses R in Tableau to create a dynamic network graph. Please click on the image to view a video clip that shows a dynamic interaction I created in Tableau using R.animationTo build a dynamic network graph in Tableau, in addition to prepare the edge list, we need to get the x/y coordinate for each node. There are multiple way to obtain node x/y coordinate. Inspired by a blog posted by Boran Beran, in which he describes how to generate x/y coordinates in Tableau using R igraph, I decided to try the coding in Tableau to build a dynamic discussion interaction diagram.

Below includes a step-by-step instruction and sample script:

  1. Install Rserve package in R and run Rserve – Rserve(). Make sure to install igraph and plyr package in R as well.
  2. Prepare an edge list that includes the following fields: from (the interaction initiator/sender), to (the receiver), users (the field combines both from and to list), pathorder (1 for users=from, and 2 for users=to), weight (varies and depends on the elements you want to examine or the focus of a question)
  3. Import the file to Tableau
  4. Create a Tableau calculated field (GraphNodes) to generate x/y coordinates and betweenness calling R igraph:
    SCRIPT_STR(“library(igraph); library(plyr);set.seed(123);

    mydf <- data.frame(from=.arg1, to=.arg2, weight=.arg3, Order=.arg4);
    mydf <- aggregate(mydf[,3],mydf[,-3],sum);
    mydf <-mydf[(mydf$Order==’1′) & (!is.na(mydf$to)),];
    mygraph <- graph.data.frame(mydf);
    mygraph <- simplify (mygraph, remove.multiple=F, remove.loops=T);
    coords <- “+[Layout]+”(mygraph);
    c<-cbind(coords, data.frame(users=V(mygraph)$name));
    c<-cbind(c, betweenness(mygraph));
    allusers <- data.frame(users=.arg5);
    c<-join(allusers, c, by = ‘users’);
    paste(c[,2],c[,3],c[,4], sep=’~’)”,ATTR([From]), ATTR([To]),SUM([Weight]),ATTR([Pathorder]), ATTR([User]))
  5. Create calculated fields to extract x and y coordinate from the calculated field ‘GraphNodes’
    X coordinate: FLOAT(LEFT([GraphNodes],FIND([GraphNodes],’~’)-1))
    Y coordinate: FLOAT(LEFT(RIGHT([GraphNodes],LEN([GraphNodes])-FIND([GraphNodes], ‘~’)),FIND(RIGHT([GraphNodes],LEN([GraphNodes])-FIND([GraphNodes], ‘~’)),’~’)-1))
  6. Build a network diagram in Tableau: step-by-step instruction on how to build a network diagram in Tableau.

Resources about Using R in Tableau: