DOI QR코드

DOI QR Code

Creating a Standardized Environment for Efficient Learning Management using GitHub Codespaces and GitHub Classroom

  • Aaron Daniel Snowberger (Department of Computer Education, Jeonju National University of Education) ;
  • Kangsoo You (School of Liberal Arts, Jeonju University)
  • Received : 2014.05.09
  • Accepted : 2024.06.21
  • Published : 2024.06.30

Abstract

One challenge with teaching practical programming classes is the standardization of development tools on student computers. This is particularly true when a complicated setup process is required before beginning to code, or in remote classes, such as those necessitated by the COVID-19 pandemic, where the instructor cannot provide individual troubleshooting assistance. In such cases, students who encounter problems during the setup process may give up on the class altogether before even beginning to code. Therefore, this paper recommends using GitHub Codespaces as a tool for implementing standardized student development environments from day one. Codespaces provides Docker containers that an instructor can configure in such a way as to enable students to practice installing various coding tools within a controlled space, while also providing a language-specific, fully optimized development environment. In addition, Codespaces may be used more effectively in collaboration with GitHub Classroom, which helps instructors manage both the starter code and coding environment in which students work. In this paper, we compare two semesters of university Node.JS programming classes that utilized different development environments: one localized on student computers, the other containerized in Codespaces online. Then, we discuss how GitHub Codespaces and GitHub Classroom can be used to increase the effectiveness of practical programming classes while also increasing student engagement and programming confidence in class.

Keywords

References

  1. GitHub Codespaces, https://github.com/features/codespaces. 
  2. GitHub Classroom, https://classroom.github.com. 
  3. O. Laadan, J. Nieh, and N. Viennot, "Teaching operating systems using virtual appliances and distributed version control," in Proceedings of the 41st ACM Technical Symposium on Computer Science Education, pp. 480-484, 2010. https://doi.org/10.1145/1734263.1734427. 
  4. D. Malan, "Moving CS50 into the cloud," 2010, in 15th Annual Conference of the Northeast Region of the Consortium for Computing Sciences in Colleges, 2010. https://www.researchgate.net/publication/42246066_Moving_CS50_into_the_Cloud. 
  5. D. Malan, "Reinventing CS50," in Proceedings of the 41st ACM Technical Symposium on Computer Science Education, pp. 152-156, 2010. https://doi.org/10.1145/1734263.1734316. 
  6. D. Malan, "Containerizing CS50: Standardizing Students' Programming Environments," in Proceedings of the 2024 Innovation and Technology in Computer Science Education V. 1 (ITiCSE 2024), July 8-10, 2024, Milan, Italy. ACM, New York, NY, USA, 7 pages. https://doi.org/10.1145/3649217.3653567. 
  7. D. Malan, "Standardizing Students' Programming Environments with Docker Containers: Using Visual Studio Code in the Cloud with GitHub Codespaces," in Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education, vol. 2, pp. 599-600, 2022. https://doi.org/10.1145/3502717.3532164. 
  8. D. Malan, J. Carter, R. X. Liu, and C. Zenke, "Providing Students with Standardized, Cloud-Based Programming Environments at Term's Start (for Free)." in Proceedings of the 54th ACM Technical Symposium on Computer Science Education, vol. 2, pp. 1183, March 2023. https://doi.org/10.1145/3545947.3569611. 
  9. A. Snowberger and C. H. Lee, "A workflow for practical programming class management using github pages and github classroom," Journal of Practical Engineering Education, vol. 15, no. 2, pp. 331-339, 2023. https://doi.org/10.14702/JPEE.2023.331. 
  10. GitHub Pages, https://pages.github.com. 
  11. GitHub Desktop, https://desktop.github.com. 
  12. GitHub Docs, "About Billing for GitHub Codespaces," Accessed June 20, 2024. https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces. 
  13. GitHub Docs, "Using GitHub Codespaces with GitHub Classroom," Accessed June 20, 2024. https://docs.github.com/en/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/using-github-codespaces-with-github-classroom. 
  14. GitHub Docs, "Understanding the Codespace Lifecycle," Accessed June 20, 2024. https://docs.github.com/en/codespaces/getting-started/understanding-the-codespace-lifecycle. 
  15. MongoDB Atlas, https://www.mongodb.com/products/platform/atlas-database.