Necode

What is Necode?

Necode is experimental networked programming software designed to improve interactivity in a classroom setting. Necode enables teachers to create in-class interactive programming activities where students can write code and see it evaluated live, in order to facilitate learning for themselves and for their classmates.

How do you pronounce "Necode"?

Neh-code. Like the "ne" in "network" and then "code." Like "neko" but if the "ko" was "code." If you can read IPA, /nɛkoʊd/.

What makes Necode special?

Rather than creating a specific kind of interactive activity for a specific programming language, Necode is designed to allow activities to be implemented independently of language implementations. Activities specify what features they require a language implementation to support, and language implementations specify what features they do support. If there's a match, that language will be available for the instructor to turn on for that activity.

Additionally, Necode runs all user code in the browser. While this removes the ability to have trustworthy verification of task completion (Necode is NOT intended to be used for graded assignments), it provides many benefits over server-side computation:

  • Students can debug their code using native browser debugging tools
  • Realtime multi-media activities are possible, including those with canvas graphics, audio, and even WebGL
  • Intermittent server issues will not severely impact interactivity

Is there a paper I can read?

Yes! It doesn't contain a comprehensive list of features, but it is fairly thorough and gives a good idea of what Necode is capable of, at least as of March 2022.

I'd like to evaluate Necode for use in my class. How should I get in touch?

Thank you very much for your interest! Feel free to shoot an email to Trevor at tmpaley@wpi.edu, and cc Charlie at cdroberts@wpi.edu. We'll give you a tour and help you get acquianted with the software in case you choose to use it.

I don't teach a class, but I'm still interested in Necode. Can I try it out?

Currently no, unfortunately. However, if you're willing to put in a bit of effort to get it running on your local machine, the source code for Necode is available on GitHub.

I'm a developer and I want to build my own components for Necode. Are the APIs stable?

Not currently, but API stability and third-party developer documentation is a goal for the upcoming year.


  • View it on GitHub