Duke Project Borg^3

From programming_contest
Jump to: navigation, search


Borg^3 is a set of problems of increasing difficulty which students can attempt to solve over their time at duke. It is similar to Project Euler, but with problems more directly tailored to solving programming contest problems.


Several challenges arise when trying to prepare students to do very well in programming contests:

  1. There is a large range of abilities in students preparing
  2. New students sometimes becomes discouraged when they are unaware of basic techniques that greatly ease most problems (input, output, etc)
  3. Students often become overwhelmed trying to bridge the gap between trivial problems and more advanced ones
  4. Encouraging students to continue to progress over 4 years is challenging when the problem sets overall do not change in difficulty
  5. It is difficult to motivate students to solve problems outside classtime
  6. Students will often gloss over techniques they find challenging at first, never learning how to make that technique "easy"


Project Borg^3 addresses these challenges in a way that has yet been seen in Duke programming contest preparation. Normally when contests are given, they have 8-12 problems and last for a few hours. Students will think about the problems during the set, solve the ones they find easy, maybe solve one they didn't know how to do at first, and then proceed to not go back and soslve the more challenging problems. At best, a set is up for a semester, and students will not go back and solve previous semesters' problems. By creating a static set of problems, we ensure that students have the opportunity to solve them over a much longer time span. There is no concept of "going back" to old problems since the set never changes.

By forcing the student to solve the problems in turn, we ensure that they do not gloss over any techniques they may find challenging at first. We do not envision "giving up" as an issue as the allure of further problems which they cannot yet see. The gamification, by the maintenance of a "forever" scoreboard, will ensure that students want to continue. Further, the static nature ensures that students can see their progress over time (since they are forced to solve harder and harder problems) as they rise up the scoreboard.

The increasing difficulty nature of the presented problems ensures that all students have a problem to work on which is at their ability level. For beginning students, this means they have trivial problems to get through, and as the students become more skilled, so do the problems. This requires a careful structuring and ordering of problems, with the ultimate goal being that the skill to solve problem n+1 is only slightly greater than the skill required to solve any of the first n problems.

Lastly, we have something that drives continuity from semester to semester, with hopefully people wanting to return to continue to solve the static problems rather than moving on to other ventures.




The first problems are live now. Hopefully I will add the rest of the problems before anyone gets that far


Everyone who takes 309s or competes in ICPC at Duke should have an account already. Anyone else can request an account from me.


Like Project Euler, I wanted to come up with a famous computer scientist/mathematician. I chose Anita Borg, who was a major advocate for women in computing. If you don't get the exponent, then you have to figure it out, or else you'll fail 309s forever.