tl;dr Extend the community contribution model to the entire class structure so that programming projects and blog posts are options, not requirements.
I've been thinking about how assignments work in this class. Some examples of problems I've seen so far:
- I write blog posts that I would never put on my blog otherwise. Example: the project proposals.
- I am required to write a blog post every week, which hurts the quality of some posts I would otherwise invest more time into. Example: my PennApps post-mortem.
- Not all projects fit nicely into the 5 week structure. Oculus D Rift needed more time to reach fruitition, whereas D-language for Atom was completed (start to finish) in about an hour.
All this to say, people have different strengths and weaknesses that allow them to contribute to FOSS in different ways. So, how best to acknowledge that with the grading structure?
An assignment pool.
Present everybody with the options up front. Edit Wikipedia articles, write documentation for FOSS projects, make logos and art assets, create new programs, build a new feature for an existing project. Then allow students to work where they will best contribute and don't penalize them for skipping other parts.
There are issues with this model. Forcing students to blog is an inherently good thing to takeaway from the class. Making students complete a variety of assignments may spark an interest that was previously unknown.
It's also worth noting that this is the model being used for community contributions already. The main difference I am proposing is that programming projects and blog posts be lumped into the pool, and therefore the frequency of contributions (there are 3 for the whole semester) would rise.
This post is also located on Github.