The following Academic Paper was presented at this year ITICSE conference, Using DevContainers to Standardize Student Development
Environments: An Experience Report by Sander Valstar, William G. Griswold, and Leo Porter from University of California, San Diego
ABSTRACT
In computer science classes it can be a challenge to ensure every student has a functioning development environment. Running preconfigured servers that provide students with remote access can help mitigate most of these setup issues, however they can also introduce new limitations of their own. We propose using DevContainers to overcome the local machine setup difficulties for the students. DevContainers allow the instructional staff to provision a development environment (a Docker image) with all the correct software versions pre-configured. This development environment can be used on any major OS through Docker. Moreover, through this DevContainer configuration, Microsoft Visual Studio Code can integrate seamlessly with the Docker container to provide an experience for the user that is practically the same as working on the native OS. This work examines the value of employing a DevContainer setup in an Advanced Data Structures course and provides details for those interested in using DevContainers in their courses.
CONCLUSION
In this study, we found that the majority of students used our DevContainer setup and generally viewed it favorably—recommending faculty use it in other courses. From the instructor’s point of view there are several advantages. For instance, there is no need to communicate with the maintainers of the Linux server to configuring the machines. This offers more control to the instructor about the development environment the students use, which leads to faster turnaround times for improvements to the programming assignments. Another benefit is that the DevContainer’s Docker configuration can be used almost without change on auto grading systems such as Gradescope [4]. This ensures that there will be no “it works on my machine”-issues with the auto grader. Furthermore, the DevContainer allows for easy sharing of programming assignments between instructors as the tooling infrastructure is shipped with the assignment. This could be useful for programming assignments sharing platforms such as the SIGCSE symposium’s Nifty Assignments [9]. Finally, DevContainers are not a research or hobby project, but a professional tool supported by Microsoft. Hence, they can be expected to continue to be usable and supported in the future. There remain some barriers to using the DevContainer, specifically Docker can be a hurdle to set up for the first time. However, we suspect that this is only an issue in the first course in the curriculum that introduces DevContainers to the students as for following courses students will come into the course with a working Docker configuration. Moreover, we find that despite the initial barrier of setting up the DevContainer the vast majority
You can download the paper here https://dl.acm.org/doi/pdf/10.1145/3341525.3387424