Skip to content
Sharon JasonFebruary 1, 20214 min read

Addressing Technical Challenges in CS Education Using Codio Stacks - Computer Science

Computer science education has made a shift towards virtual learning over the past few years. Historically taught in physical labs, many educators have adopted virtual labs, student virtual machines, and other cloud-based resources. Not so surprising, when everyone works on different devices, technical issues become more complex. We asked educators about their teaching pain points, and then we asked ourselves how we could fix them. Introducing our version of stacks in computer science.

Watch On-Demand Demo

Tech Support is not part of the job description

Our 2019 Survey of Computer Science Teaching found that CS instructors identified course administration as one of their key pain points, which wasn't all that unexpected for some who are familiar with challenges in computer science instruction. While all educators struggled at some level when it came to tech support, it was especially high among instructors at small colleges and universities. The two most common pain points at these institutions were acting as technical support for students and configuring software on student machines,

What do these course administration headaches look like? Emails to professors with subject lines like:

“I can’t install the compiler on my computer!”

“The required tools for the class run too slow on my system!”

“I followed all the installation instructions, and I still can’t complete the homework assignment!”

Taking the time to ensure every students’ technology operates correctly takes valuable time away from instructors and hinders students’ learning experiences.

Pre-configured software stacks in computer science environments are the solution

We understand that professors don’t have time to provide tech support to their students, and we’ve developed a solution—Codio Stacks! A Stack is the software configuration of a project, incorporating everything on the project/Ubuntu server, outside the code workspace. Stacks include the operating system and other components such as compilers, linkers, interpreters, databases, and tools.

Providing your students with a pre-configured environment containing all the tools they need means you don’t need to author lengthy installation instructions. Best of all, you don’t need to figure out what went wrong when things don’t work. Installing a database on the Stack allows you to give each student their version of the data they need to complete their coursework. 

Cloud-based computing

With Codio, everything is cloud-based—your students only need a web browser to access all the tools and materials for your course. Each Codio assignment/project is its own Ubuntu server, fully isolated from other projects. You have full sudo-privileges for your projects/assignments and can install any packages you need for your course. 

Stacks in our computer science platform are customizable

It’s easy to customize your configuration; you can install software to your project by typing sudo apt-get install in the terminal window. Installation of some of the more popular packages has been automated through a dialog available from the Tools > Install Software menu item. 

Dialog driven software installation

Stacks in computer science assignments are reusable

Once you have the configuration set up, you can create a Stack to provide each student with an identical environment and data files that only they have access to. You can even reuse the Stack for all of the assignments in a class, which provides your students a problem-free coding environment for the entire course. You can set assignments to always use the latest version of a Stack, so if you update the Stack, all assignments that use that particular Stack will be prompted to update to the latest version.

Share Stacks in your computer science department

If you’d like to share your Stacks, you can set the Stack ownership to your institution’s organization and thereby make the configuration available to other instructors. Sharing configured Stacks among departmental colleagues ensures that everyone is using the same tools for their classes.

Pre-configured Stacks

Codio provides pre-installed and certified Stacks for many popular configurations such as Java, C++, and Python development environments. You can get a complete list of everything installed on a Stack by typing apt list --installed in the terminal window.

Codio’s pre-configured Stacks

More Time to Teach

With Codio Stacks, set up is no longer a chore for you or your students. You can set up your projects in one fell swoop, and your students can instantly access them from their internet browsers. Pre-configured environments, along with auto-graded assessments, mean less time spent on administrative tasks and more spent on actual teaching and mentorship.

Teaching with Codio at Southern New Hampshire University

Southern New Hampshire University, a leader in online learning, faced challenges with making computer science instruction interactive. When they sought a new platform to incorporate more applied material, they needed to ensure it was scalable for hundreds, even thousands, of students.

Gwen Britton, Academic Associate Vice President, Global Campus - STEM and Business Programs at SNHU, says of Codio:

“Initially, our courses were very theoretical, and we needed to make them more applied. However, we were always dogged with setup and configuration issues—the ability to put a cloud platform to use with all our students while simultaneously fixing the setup and configuration issues has been a huge benefit from the outset.”

You can read more about Dr. Britton’s experience using Codio in the case study, Codio and SNHU: Using Codio at scale to support CS and STEM programs.

Create Free Instructor Account

You can find more information about Stacks in our technical documentation.


Sharon Jason

Sharon is the Customer Success Manager at Codio. She has worked as a software developer and taught Scratch in K-8 schools.