Link Search Menu Expand Document

Challenges & Questions

How can instructors find suitable projects easily?

Should instructors coordinate with OSS communities and project managers?

Should instructors dedicate time to teach software development tools in CS2?

  • ACM recommends teaching basic software engineering principles in introductory CS classes
  • 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