Skip to content

Writing Observer and Learning Observer: A system for monitoring learning process data, with an initial focus on writing process data from Google Docs.

License

Notifications You must be signed in to change notification settings

ArgLab/ArgLab_writing_observer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Writing Observer and Learning Observer

Writing Observer Logo

This repository is part of a project to provide an open source learning analytics dashboard to help instructors be able to manage student learning processes, and in particular, student writing processes.

linting

Learning Observer

Learning Observer is designed as an open source, open science learning process data dashboarding framework. You write reducers to handle per-student writing data, and aggegators to make dashboards. We've tested this in math and writing, but our focus is on writing process data.

It's not finished, but it's moving along quickly.

Writing Observer

Writing Observer is a plug-in for Google Docs which visualizes writing data to teachers. Our immediate goal was to provide a dashboard which gives rapid, actionable insights to educators supporting remote learning during this pandemic. We're working to expand this to support a broad range of write-to-learn and collaborative learning techniques.

Status

There isn't much to see here for external collaborators yet. This repository has a series of prototypes to confirm we can:

  • collect the data we want;
  • extract what we need from it; and
  • route it to where we want it to go (there's a lot of data, with complex dependencies, so this is actually a nontrivial problem)

Which mitigates most of the technical risk. We also now integrate with Google Classroom. We also have prototype APIs for making dashboards, and a few prototype dashboards.

For this to be useful, we'll need to provide some basic documentation for developers to be able to navigate this repo (in particular, explaining why this approach works).

This system is designed to be massively scalable, but it is not currently implemented to be so (mostly for trivial reasons; e.g. scaffolding code which uses static files as a storage model). It will take work to flush out all of these performance issues, but we'd like to do that work once we better understand what we're doing and that the core approach and APIs are correct.

Getting Started

We have a short guide to getting started. Getting the base system working is pretty easy. The guide is pretty comprehensive (including how to develop your first module).

System requirements

It depends on what you're planning to use the system for.

The core Learning Observer system works fine on an AWS nano instance, and that's how we do most of our testing and small-scale pilots. These instances have 512MB of RAM, and minimal CPU. It's important that this configuration remains usable.

For deployment and more sophisticated uses (e.g. NLP) in larger numbers of classrooms, we need heavy metal. As we're playing with algorithms, deep learning is turning out to work surprisingly well, and at the same time, requires surprisingly large amounts of computing power. A GPGPU with plenty of RAM is helpful if you want to work with more sophisticated algorithms, and is likely to be a requirement for many types of uses.

All Learning Observer development has been on Linux-based platforms (including Ubuntu and RHEL). There are folks outside of the core team who have tried to run it on Mac or on WSL, with some success.

Running on RHEL typically uses the following services:

  • redis
  • nginx

bcrypt

A note on bcrypt. The code uses bcrypt for internal password management. There is a mess of incompatible versions. Be careful if installing any way other than the official install to get the right one.

Contributing or learning more

We're still a small team, and the easiest way is to shoot us a quick email. We'll gladly walk you through anything you're interested in.

Contact/core maintainer: Piotr Mitros

Licensing: Open source / free software. License: AGPL.

About

Writing Observer and Learning Observer: A system for monitoring learning process data, with an initial focus on writing process data from Google Docs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 64.0%
  • JavaScript 29.1%
  • HTML 2.6%
  • Jupyter Notebook 1.4%
  • SCSS 0.9%
  • CSS 0.7%
  • Other 1.3%