MUzECS:Chrome

From REU@MU
Jump to: navigation, search

Researchers: David Hunpatin and Ryan Thomas. Mentor: Dr. Dennis Brylow.

Background && Motivation

Exploring Computer Science (ECS) is a computer science course which aims to improve representation of minority groups in computer science. It is targeted to early high school students, and is designed to work well in low-income communities. In order to expand the curriculum, we offer the MUzECS platform: a low-cost alternative to the final module of ECS, which currently uses expensive LEGO Mindstorms Robots. Currently, the MUzECS platform costs about 10% of the LEGO Mindstorms module.

Since our goal is to create a low-cost alternative to the current ECS module, we ought to be sure that we can adapt to new low-cost technologies which show up in high school classrooms. One such technology that has seen a spike in usage due to its low cost is the Chromebook, a lightweight laptop from Google which runs Chrome OS. Chromebooks, however, are unable to compile and run Java programs, rendering our initial MUzECS IDE unable to run on this platform.

In order to adapt, we created a prototype browser-based IDE for the MUzECS platform which runs in the Google Chrome browser with a Chrome Extension. While the current implementation is functional, we seek to improve the compilation process and hope to make the platform more scalable.

Plot Twist: Code.org enters the scene

While the MUzECS project has been going on for several years, we haven't noticed many competitors in the field for a while. Everything changed, however, at SIGSCE 2016, when a few researchers from Code.org presented a platform similar to MUzECS which runs on a lightweight, and still in-development circuit board called the Circuit Playground. The Circuit Playground board requires no external plugins, in contrast to our MUzECS platform, which combines a shield which is added to the top of an Arduino Leonardo. The Circuit Playground has many of the same hardware capabilities that MUzECS has, but is 1/3 of the price. Keeping in mind that our goal is always to deliver at the lowest cost possible, we must figure out how to integrate these new developments to deliver the best product at the lowest price to our pilot schools.

One very compelling feature of Code.org's platform is their use of the Johnny-Five framework, effectively allowing the Arduino to be programmed using JavaScript. Johnny-Five uses node.js to run the JavaScript on the client machine, and sends basic I/O instructions to the Arduino, connected to the client machine via USB serial. The following picture captures how we could use this model to program an Arduino Leonardo:

JavaScriptIDE.png

This model is simple and reduces overhead. Since the Browser simply offers an interface to assemble blocks, there is very little to maintain on our end, so the platform would likely scale much more effectively. The problem with this model, however, is that it requires the ability to use node.js on the client machine - and getting node.js to run on a Chromebook is not an incredibly straightforward task.

Milestones

  • Understand and integrate the features of Code.org's similar project into the MUzECS project.
  • Simplify the browser-based IDE to allow for one-click compilation and upload to the Arduino.
  • Improve and test the scalability of the platform, ensuring that upper limit boundary conditions are handled correctly.