But teaching how to use version control systems and navigate code repositories may divert focus from the core curriculum and students may be overwhelmed by those tools
If students are not experienced in software development, projects involving direct contributions to OSS are not recommended
How should student work be graded?
Awarding points based on whether students’ pull requests are accepted by the community may be unfair since some OSS requires a long time to review changes
Instead, implement checkpoints to assess students’ understanding of their work, assigned OSS code base, CS2 concepts they applied, etc. in the form of write-ups or reports
Should students download and build the entire OSS?
If their assigned software is lightweight and doesn’t require too many additional libraries to be installed, students can run/debug code on their local machines
Otherwise, instructors can act as an intermediary between students and OSS
They can set up their own software build and test students’ work
Should students be expected to understand the entire OSS?
If the code base is small and simple, students can benefit from analyzing how real-world software is implemented
Otherwise, instructors can identify relevant components to help students grasp a general understanding of the overall architecture