Picture of Jacobi Petrucciani

Jacobi Petrucciani

August 15, 2017

Technically, Mimir’s IDE Is Different

Mimir has been on a quest for the past three years to better deliver computer science education to both instructors and students. In part, this quest has been to make grading automated and more informative; ideally giving instant feedback on coding projects that is useful to students. These improvements are extremely useful because they better represent how the students will work post graduation, as well as help them improve faster along the way.

In addition to taking that workload off of instructors and TAs, our team has worked to automate the computationally intensive work of plagiarism checking between submissions in the course and against online sources like GitHub and StackOverflow. These features primarily aid instructors with their courses and save copious amounts of time throughout the semester.

Outside of better and faster feedback, what’s the benefit to students? Mimir Classroom’s IDE was born when our development team determined a cloud development environment would be exceptional for allowing more students to work from any type of computer.

However, Mimir Classroom’s IDE is quite unlike many other cloud development environments.

Other web IDEs can be reduced to glorified text editors. They typically come with a couple of tools related to a single language that users need. Some have syntax highlighting and in fewer cases they also have a form of code autocompletion. They may allow for running the code that’s being worked on, but not in all cases. These IDEs aren’t truly fulfilling development tools and are definitely not something most developers would want to use more than every once in awhile.

Mimir Classroom’s IDE is one of the main features that we tout specifically for students (instructors can still use it too!). It is a full Linux instance running inside a sandbox on our cloud, allowing students access to a real development machine straight from their browser.

Students can write real code from anywhere with internet access, regardless of their device. The platform allows for advanced development functionality when used properly. This environment can be a bit more confusing at first, and has a slight learning curve, but the possibilities are limitless. This is not unlike many of the tools students will use when they enter the workforce.

IDEAnalogy+Mimir

The difference between Mimir Classroom’s IDE and other web IDEs is like the difference between a motorcycle and a bicycle. While a bicycle might get you to where you want to go, a motorcycle will be more powerful and more fun.

Mimir Classroom’s IDE grants a standardized environment that matches our testing servers, allowing students to test on the same type of machine their code runs on to be graded. This level of standardization allows us to offer a live environment that will match 1:1 with how the student’s code will operate inside of the instructor’s test cases. Students can also submit directly from their IDE to Mimir Classroom, skipping having to bundle their code before manually uploading.

In addition to being a standardized environment, Mimir Classroom hosts a persistent workspace for students. When students load their Mimir IDE instance, all files that they’ve run before (or worked on in their IDE) will be saved and available inside their home folder. This maintains a home folder that students can customize by installing any libraries or frameworks they may need, and customize environment variables and paths they may want.

The instance that they are working on has full root access, so students can install anything that they would normally be able to install, as long as the libraries/programs are compatible with 64 bit Linux. In Mimir’s IDE, libraries and programs run as if they were on a normal machine…because they are! Access is granted to port 80 of their instance, allowing users to work on web frameworks or websites from their browser while accessing and interacting with them in real-time.

Having the ability to install things when necessary is nice, but we know no one wants to have to manage these installs themselves. By default, Mimir’s IDE comes with multiple versions of Java and Python, Node, Go, Scala, GCC and G++ with Multilib, tons of popular libraries, and practically any default development tool you could want. That means by default, you can login and instantly start coding and getting to work on what’s important.

The bread and butter of the IDE is the graphical text editor. This allows users to work on files without having to use Vim, Nano, or Emacs (although you could use those too). It has built-in syntax highlighting, code auto-completion, and automated linting for multiple languages. These are all viable features that help students get the most out of their coding. From a development perspective, it was important to give a sense of a real native development environment, all from within a browser.

We have superfluity of other cool features in the pipeline including group collaboration and video calls inside of groups. Why limit enhancements to programming projects when we can also enhance the way that students work together?

So technically, Mimir’s IDE is different — very different. In reality, it’s actually a full computer that is pre-configured to match Mimir Classroom’s testing environments. The IDE makes it easy to upload files and gives students an exclusive work space to store and interact with files. This limitless environment requires an internet connection but allows students to work on anything that they normally would on a stationary computer. We’re excited to continually improve on our platform and look forward to continuing to make the IDE more useful and fully-featured.