For a while now Grant has asked that we provide more challenges on Cody. Challenges, also known as “Problem Groups”, are those lists of problems that appear in the panel on the left. Originally there were just two groups: the 96 problems that we launched (the Cody Challenge group), and the growing number of all problems added by everybody else (the Community group). Since we launched in 2012, the number of Community problems has grown to 3242.

Over time, we added some problem groups for special events, like an ASEE conference (ASEE stands for American Society for Engineering Education). But really, we haven’t created many challenges considering how many Community problems there are. Having a giant monolithic list of problems is problematic, because of the “What next?” problem. Once you finish solving one problem, it’s hard to know what to solve next. There are so many good problems hiding in the middle of that enormous list, but it can be hard to find them. Creating more problem groups is one way to help. You stay on a single theme until you finish the list.

So recently we invited Grant to create a new challenge for us. Grant is a Cody connoisseur and, like a DJ putting together a set of quality tunes, he has expertly assembled a new problem playlist. Here is his first: Indexing I. Note that he didn’t create these 27 problems. He merely selected them. All the problems in the Indexing I group came from the Community group.

Note

2 CommentsOldest to Newest

The Cody challenge provides lots of fun, but it has two main drawbacks:
1. It’s a terrible time-sink. A great deal of time is lost trying to optimize some insignificant chunk of code.
2. It leads to terrible coding practices. The eventual code is too often complex, obscured and incomprehensible. I, actually, had to force myself to abandon this bad habit.

I wish there were “style” points for elegant solutions. This should be an automatic procedure with clear criteria how to score answers. The current method of upvoting good answers is lacking due to the sheer number of solutions — one simply cannot find the best solutions to appreciate in all this mess.

Thanks for the note Yaroslav! Regarding your concerns, we like to think the time you sink into Cody is useful practice for “real” coding you do at other times and places. This is certainly something that’s been reported to us. I know that I’ve learned a lot by looking at how other people have solved a problem. It is true that the smallest entries can get convoluted and obfuscated, but you don’t need to follow those practices or carry them back to your day job. And we are working on a feature that will provide some subjective appraisal in addition to the size scoring that we do now.