MATLAB Community

MATLAB, community & more

New Cody Features: Customized Groups and Solve Later 5

Posted by Ned Gulley,

Today I want to tell you about two new features in Cody. One of them, Customized Groups, I’ve been anticipating with excitement for a long time. The other one, Solve Later, took me by surprise and bowled me over with how useful it is.

Customized Groups

Groups (that is, named collections of Cody problems) have been around since the beginning. But it was hard to make them and we didn’t get much use out of them. More recently we improved the Groups architecture and added a lot of groups. You may remember this change at the same time we had our Cody Fifth Anniversary celebration. But even then, adding groups was a special admin-only task. I want to thank Grant O. Cook III for volunteering to help us create many of these new groups. He did a terrific job. But Grant was only able to do that work because we gave him special administrative privileges. A typical Cody player still couldn’t create groups.

But that’s all changed. Now anyone can make a personal Cody group. You do it by assembling problems just as though you were building a playlist on Spotify or some other music site. At the top right of every problem is a little link that says “Add to Group”. Click on it and you can start a new group or add the current problem to an existing group.

I made a custom group: All Things Fibonacci. Since so many people like making Fibonacci problems, I thought I’d throw a bunch of them into one group. I was able to arrange them in a specific order, from easy to hard. Working through a list of related problems is fun, because it takes you deep into a certain algorithmic space. You see commonalities and differences in your algorithms depending on the problem statement. If I tell you to calculate the Nth Fibonacci number for N<40, you’ll code it up one way. But you’ll probably use a different approach if I say give me all the Fibonacci numbers less than N for N up to 1e20.

Note that anybody can make customized groups, but to publish it on the public Groups page, you need to have a Cody score of 1000 or better.

Solve Later

This is the feature that surprised me. It’s a natural partner for Customized Groups, because it’s really just a special kind of group. If you see an interesting problem that you don’t have time to solve right now, just add it to your “Solve Later” list. Easy peasy!

Solving a problem on Cody calls for a certain amount of commitment. At first it may look straightforward (“I see what to do”). Then after working at it for a while it doesn’t seem so easy (“Why isn’t this working?”). Then when you finally have a solution (“Aha! I’ve got it!”), maybe a part of the test suite throws you for a loop. You may have to rethink your solution (“It never occurred to me that N could be as big as a million!”).

But now, at any point from the moment you see it to the moment you dance the Cody Victory Dance, you can save the problem on your “Solve Later” list. Then you just have to go back to “My Cody” and look for the list.

Try out the new features! I’ve been having fun using them. And every time I give myself an excuse to spend time on Cody, I think: Wow! There’s a lot of great stuff here! And in the comments, tell us what you think and how we can improve the feature.


Comments are closed.

5 CommentsOldest to Newest

David Barry replied on : 1 of 5
Hi Ned, As well as custom groups for questions, how about custom groups of players with their own leaderboard? I'm thinking it could be fun to have a separate leaderboard for everyone in our team at work, for example.
Gareth replied on : 2 of 5
Hi Ned, I also like David's idea. This could even be extended to MATLAB Answers (internal competition on who is the best MATLABer in the company). The idea also could extend to FEX, having a dedicated FEX for MATLAB inside a particular company that could tie into the App manager.
Ned Gulley replied on : 3 of 5
Thanks for the note. It's a great idea! As it happens, I just created a File Exchange entry for this: It would be nice for us to have a way to do this directly on the site, but in the meantime this is a quick and easy way to make a leaderboard for your class, your office, or your whole company. I know of companies where this is already happening now, because I wrote this code at the request of one of those companies. Give it a try, and tell me how to improve it!
Gareth replied on : 4 of 5
Hi Ned, this works like a charm. Thanks for the GitHub entry:) Overnight I also thought that maybe this could become a part of HR recruiting tools for larger companies to filter out applications who say that they have MATLAB experience, and with a few Cody tests it can become clear if they do or don't. I guess MATLAB Grader could be sold as a Recruiting tool too. Just an idea.
Ned Gulley replied on : 5 of 5
A brilliant idea, Gareth! I particularly like combining the private leaderboard idea with customized groups. So you could build a group that tests the job skills that you're looking for and challenge a set of people, whether new hires or prospectives, to solve it. I'm glad the leaderboard code worked for you.