Faculty Recruiting Support CICS

CICS Student and Professors Develop JavaScript Classroom Teaching Tool That Shields Students from “the Bad Parts”

Joydeep Biswas, Arjun Guha and Sam Lee

Computer science students increasingly need to learn JavaScript, one of the most widely-used programming languages in the world. Unfortunately, the language has a laundry list of bad features that get in the way of programming, leading to bugs in code and frustrations for novice programmers. So, how should we teach JavaScript? A team of researchers at the College of Information and Computer Sciences, UMass Amherst (CICS) think they have the answer.

Sam Lee '20, under the supervision of Professors Arjun Guha and Joydeep Biswas, developed Ocelot, a web-based IDE JavaScript, as part of a Research Experience for Undergraduates program sponsored by the National Science Foundation.

Ocelot's most significant feature is that it shields students from the "bad parts" of JavaScript by restricting the language to a safe subset of features. Ocelot uses a combination of static and dynamic checks to eliminate JavaScript's most egregious features, preventing students from "shooting themselves in the foot" while learning to use the language. Other significant Ocelot features include continuously saving work, maintaining a fine-grained history of edits, and integrated support for testing and graphics.

Since Ocelot is browser-based, students can use it on any computer, including public computers. Moreover, it does not require installing any software, so students can get up and running immediately. "Joydeep and Arjun wanted to design the course so that it could be modular and taught by other faculty members," explains Lee. "With Ocelot, we wanted to give students the ability to code anywhere, anytime."

After extensive testing over the summer, Lee deployed Ocelot in COMPSCI 220 for Fall 2018 and Spring 2019, when he served as the Undergraduate Course Assistant (UCA) for both classes. Ocelot has already been used to teach over 400 students at CICS, and will be used in subsequent semesters.

Professor Biswas praises Lee's high level of achievement, saying it went well beyond the requirements for a UCA. "It is very rare to see student code that is applied at this level and really used." Lee received an Outstanding UCA Award last semester, partly for his work with Ocelot in COMPSCI 220.

Professors Biswas and Guha have more plans for Ocelot. Over the summer, they will use it to run a Holyoke Codes workshop that will teach children to program soccer-playing robots created by Professor Biswas. They also plan to explore using the platform to assist with similar programming challenges for students in other classes.

Lee reflects on his experience with pride. "It feels good to make something like this and to make an impact ... to know that many students are using this and that it will live on."

Ocelot has been released as open source software. Interested educators and students can take the project for a test spin at https://www.ocelot-ide.org and download the source code from GitHub (https://umass-compsci220.github.io/Ocelot/).