Link Search Menu Expand Document

Integrating Open Source Software in CS2 Classrooms

By contributing to open source software (OSS), students can gain professional software development experience and learn about applications of computer science (CS) concepts in pragmatic contexts. However, integrating such projects in classrooms requires substantial logistical planning by instructors as well as adequate programming skills from students. To mitigate these challenges, we propose four model curricula to serve as accessible strategies of integrating practicable learning opportunities in lower-level CS classes. Depending on classroom circumstances, instructors can assign projects that involve student contributions to OSS, custom plug-ins, simulated open source communities, or practical code excerpts. As a result, students will be able to realize the utility of CS and discover an exciting future in computing.

Comparison of Proposed Curriculum Models

  Direct Contributions Custom Plug-ins Simulated OSS Communities Code Snippets
Suggested Class Size Small (less than 50 students) Medium (less than 200 students) Medium (less than 200 students) No requirement
Student Experience in Software Development Proficiency in code literacy and version control systems (ex. Git) Competency in code literacy and version control systems Familiarity with version control systems No requirement
Course Objectives Hands-on experience with OSS development Early introduction to real-world software development Introduction to software development and exploration of creative project ideas Exposure to real-world code