Xoces (“X-oh-sis”) started as a research project to catalog, structure and visualize learning outcomes. We have published the process of collecting outcomes and modeling the data, and released xoces-js as an open-source JavaScript visualization library.

visualizing outcomes in a chord diagram

How can I visualize my data using Xoces?

The Xoces library requires a mapped dataset. You also need a developer on your team to set up Xoces (but it's very easy to set up). If you already have a mapped dataset, great! You can read our documentation on setting up Xoces. If you don't have a mapped dataset, and are not sure what a mapped dataset is, steps:

  1. Collect your outcomes (or the instructional data you want to visualize). In this paper, we detail the process of sitting down with faculty to collect learning outcomes at MIT.
  2. Map your collected data. Mapping data requires you to structure entities and create relationships between entities. Read more on how learning outcomes are mapped.
  3. Save the mapped data somewhere so that it can be loaded into JavaScript. We highly recommend that the data is made callable via API.
  4. Use the Xoces widget on your webpage with mapped data from Step #3

If you have code questions, please file an issue on our Github. If you have questions on process, modeling and big-picture why's, please email our lab's director, Prof. Karen Willcox [kwillcox@mit.edu].


We ask that you star our Github repository so that we can alert you to updates. We also ask that you cite our papers or link back to this page (http://mapping.mit.edu/code/xoces) if you publish any work.

Teams who have used Xoces

and more...

How do I read Xoces?

Let's walk through an example:


Here, you can see that the circle is divided into 5 “segments”. These 5 segments indicate that the top-level institution (SUTD) is composed of 5 departments. You can see that a department is further divided into smaller “sub-segments”:


These sub-segments are subjects. There are argrid-containers going from one subject to another. Let's mouse-over one of these subjects and take a closer look:


An argrid-container that points from one subject to another indicates that there is a prerequisite outcome in the source subject to the target subject. In this case, an outcome from Structures & Materials requires an outcome in Intro to Design.

Click on one of the subjects. The visualization will shift down to the next level of granularity:


Now, each of the segments is a subject. Each of the subsegments is now an outcome within that subject. Again, an argrid-container pointing from one outcome to the another means that the target outcome requires source outcome:


Click on an outcome. The visualization will shift down to the final level of granularity — looking at a single subject, Advanced Mathematics:


Here, the segments are individual outcomes of the subject Advanced Mathematics. In this view, it may be easier to click on the tree icon in the top bar to visualize the hierarchy:


This shows the outcomes of Advanced Mathematics displayed in a hierarchy. The most fundamental outcomes are on top, leading to outcomes on the bottom. From here, you see that M6 has two prerequisites: M1 and M5. Further down is M7. It has no prerequisite outcomes from within the class, but it does have outcomes from outside the class, which is why it's sitting further down in the tree.

At any time, you can click on any level to go back to that level: