Exercising coding skills is good for problem solving, camaraderie and education. Over the past year, we’ve been working on a project called Bloomberg CodeCon – a browser-based, e-learning platform that does two things: Enables cloud-hosted programming contests and helps to reshape the way people improve their coding skills. The platform has become so popular we recently launched the 2015 CodeCon Challenge (more on that later).
The contests on CodeCon are all about efficiency – writing optimized code that solves the contest problems within the specified time and memory constraints while accounting for all possible test cases. An example might be the following: You are X miles away from your house, in your car, with Y units of fuel in it. There are Z gas stations on the way, each with different amounts of gas. Is it possible to reach your house before you run out of gas? If so, what is the minimum number of fuel stops that you would make?
These contests address many concepts, from simple string parsing to memoization to graph traversal. The problems are engaging – each with a short, “creative” backstory, such as helping a robot avoid obstacles in a grid in order to collect the most coins possible, or deriving the fastest way to escape a maze which contains fire-breathing dragons. Participants can then use the concepts learned while solving these problems in real daily programming tasks.
Improving coding skills:
Aside from being used for programming contests, CodeCon is also being used by academic institutions as a teaching tool. Dr. Bina Ramamurthy, a computer science professor at SUNY Buffalo used CodeCon to host the C programming labs for her fall 2014 Realtime Embedded Operating Systems course. Dr. Ramamurthy believes that CodeCon is a unique teaching tool that gives more life to lectures and is a great step toward data-driven education because it can actually track more than just whether students complete assignments; it also tracks how they approach problems (e.g. number of attempts, common errors and difficulties, length of time it took to complete):
“I was impressed with the ease of use and pedagogical features such as the pre-loading of problems, built-in editor, submission, cloud-hosting and auto-grading. The student-data collected by CodeCon can provide quantitative insights into the student-learning process and help educators focus on points of difficulty. Cloud-hosting of the tool also helps in availability and accessibility of the tool irrespective of an institution’s infrastructure, thus democratizing the resource for all (big or small school).”
Click here for Dr.Bina’s experience report where she shares more details on her introduction to CodeCon, background on her course, the student engagement, accessibility, scalability and thoughts on opening up CodeCon for grades K-12.)
CodeCon is the brainchild of Bloomberg R&D developer Rangan Prabhakaran. He initially developed the tool to better engage with his team, but interest in the platform spread throughout Bloomberg R&D’s 3500+ person operation. It was quickly identified as a tool that could be used not only internally but also externally at conferences, universities and in Bloomberg’s efforts to work with organizations that are interested in closing the coding gap.This tool benefits professors and teaching assistants (TAs) as well as students.
“A primary motivation behind building CodeCon was to make learning more exciting by providing immediate scoring feedback to students. It’s more effective for students to get feedback when they are completely focused on the problem at hand – it’s key to the acceleration of learning and innovation,” says Rangan. “In addition, it frees up TAs so they can focus on other aspects of making their courses better.”
“There are a lot of schools around the world where programming assignments are still manually graded by course TAs. As a former TA and having spoken to many other TAs, it’s frustrating to compile and run each submission against a set of comprehensive test cases to grade them. As a result of the manual grading, students are also limited to only one or two submissions at most for these assignments.”
As Bloomberg R&D team members (special shout out below) continue to volunteer their time to evolve the platform and how it is used, we invite you to try a challenger series or tutorial problem at http://codecon.bloomberg.com. Please contact us with any questions or comments.