CS 125 IntelliJ Plugin

The CS 125 IntelliJ Plugin is a(nother) new feature for the course for Fall 2018. It records student activity in the IntelliJ IDEA Java IDE as they complete the course programming assignments—machine problems (MPs) as we call them at Illinois.

Where to Get It

The CS 125 IntelliJ Plugin is published on the JetBrains Plugin Repository. The download link is here, but you can also install it directly from the IntelliJ IDEA IDE. However, you will not find it useful unless you are working on a CS 125 MP. In fact, it is disabled otherwise.

Bug Reports

The CS 125 IntelliJ is beta software being built by a small team. So it may not work perfectly for you! CS 125 course staff and students should report bugs on the course forum. (Non-CS 125 course staff and students should not be using this plugin.)

Note that, although we anticipate that most students will find the plugin helpful, no part of your grade in CS 125 is influenced by whether or not you use it.

How It Works

Once you have the CS 125 IntelliJ Plugin installed, opening an IntelliJ project that contains a CS 125 MP will cause the plugin to begin recording IDE activity at periodic intervals. We do this by leveraging various IntelliJ event listener mechanisms.

The events that we record include:

  • Project opens and closes

  • Document modifications

  • Selection and visible area changes

  • Mouse movement and clicks

  • Window scrolls

  • Key presses

  • Compilation passes and results

  • Test runs and results

  • Autograding runs

Why Are We Doing This?

The CS 125 IntelliJ Plugin allows us to accurately answer one of the most important questions when teaching introductory courses: How long are students spending on the assignments? If the assignments take too long, students will get overwhelmed and give up. If they don’t take long enough, we’re missing opportunities to provide students with the practice they need to improve.

Despite the centrality of this question when teaching programming, accurate data in this area is difficult to obtain. Survey results are unreliable, while other measure of student activity—for example, Git commits—make it hard to reconstruct periods of business and inactivity. We anticipate that our approach will provide accurate and high-resolution student activity data.

Beyond measuring how long it took each student to complete each assignment, we also plan to investigate questions such as:

  • How effective are office hours? By combining this data set with the proximity information collected by the CS 125 App, we can compare the productivity of students when they work at office hours versus other places and times.

  • What development behaviors lead to success for beginning programmers? For example, do successful beginners work in short stretches or long sittings? Do they frequently or infrequently run tests? And what, if any role, does typing speed play?

Privacy Policy

The CS 125 IntelliJ Plugin is for the exclusive use of CS 125 staff and students. However, downloading and installing the plugin and then opening a IntelliJ project containing a CS 125 MP will initiate data collection.

All data collected by the CS 125 App is for exclusive use by the CS 125 Course Staff and researchers at the University of Illinois. It will not be shared with or in any other way provided to third parties. Before using the data generated by the CS 125 App in any research publication, even in aggregated form, we will obtain consent from plugin users.

All data collected by the CS 125 App is stored in secured servers located on campus at the University of Illinois. All data transfer back and forth between the app is done over encrypted connections. The plugin caches a small amount of state locally in case of network disconnections.

CS 125 is now CS 124

This site is no longer maintained, may contain incorrect information, and may not function properly.


Created 10/24/2021
Updated 10/24/2021
Commit a44ff35 // History // View
Built 10/24/2021 @ 21:29 EDT