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 |