Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.


I will be coaching student's programming projects in my engineering faculty (group of <10 students). At this occasion I wanted to draw the student's attention to the usefulness of version control systems in particular DVCS.

There are many convincing DVCS tutorials out there, however all the ones I found use unrealistic or contrived examples (e.g. hginit uses cooking recipes).

What I am looking for

I want the students to collaborate in class on a simple but realistic programming project that makes them discover the benefits of the DVCS through its usage. The class would collaborate as a dev team.

I am looking for a toy project simple enough to keep the focus on the DVCS workflow. The goal is for student to face DVCS challenges that arise naturally in a collaborative development: bug fixes, branch management (stable vs development), merge conflict resolution, etc.

I would be greateful if you could give me specific project ideas and highlight their DVCS challenges (e.g. a basic signal processing pipe-line, where each steps is written by different student, forcing them to deal with interface conflicts, etc).

Thanks !

share|improve this question

closed as off-topic by durron597, jwenting, Ixrec, gnat, MichaelT May 12 at 0:28

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – durron597, jwenting, MichaelT
  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Ixrec, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

Surely any collaborative project would benefit from source control. I don't see how one project would be better than another. – ChrisF Sep 30 '11 at 10:06
Yeah, don’t give them a toy project; give them a real and useful project. Random, unuseful projects are the worst you can do, students hate those. – poke Sep 30 '11 at 10:09

1 Answer 1

up vote 2 down vote accepted

Let them write an application that can be used at the end of the project.

In the university I used to attend had a XP project where each team wrote an application that would store times for a race, and that could support several types of races (start-stop, intervals, endurance). It's done during the semester, reserving 8 hour mondays for implementation time and a couple of hours during the week for planning. Before this they are taught version control, TDD and are introduced to the programming process (eXtreme Programming).

At the end of the project, the teams both had relay three-legged races and also pitted each other on who would produce the fastest and most correct race results with their application. I.e. the first team who printed out the correct race results would win, other than also winning the race.

The greatest challenge is coming to the point in their user-stories that would force them to do a refactoring, which often happens when they have to support other race types. And thats when the teams start to branch out in their SCM and merge their work (while crossing their fingers and hope the refactoring works and all their tests passes).

share|improve this answer
Reading your answer, maybe am I looking for a scenario of project evolution (new feature requested, bug reported, etc) rather that a project. Thank you for your input. – oli Oct 3 '11 at 8:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.