November 17, 2020 TCO20 Dev Final Recap
2020 is a challenging year due to the COVID-19 crisis. The world is slowing down, things are changing, and everything is different. Topcoder members also had a new, different experience – the first-ever virtual TCO development final! This was the first time that finalists competed from home for the glory of being TCO’s final champion and winning the $10,000 cash prize.
Even though the final was virtual, the rules were strict. Every competitor had to open a webcam, share their screen and voice, and be monitored by a Topcoder admin. This made it possible to bring the live competition right to everyone’s living room with the same (actually, even more) transparency as our onsite events.
The TCO20 development world final comprised three problems in easy, medium, and hard levels, respectively. The total points for each problem were 250, 500, 750. The finalists needed to solve all three problems in four hours.
I was honored to be the problem writer for the final. When I was drafting these problems, I was thinking they should be interesting, challenging, and technology independent. I added a background story to each problem to make it fun, and all the problems are focused to test the competitors’ problem-solving ability. Let’s see the details of the problems.
Easy level problem (250 points): Decipher the treasure key
You are an adventurous explorer. One day, you come to a castle called the TCO20 Castle in order to find the treasure that’s said to be hidden inside. The treasure is known to be stored in a mysterious box. The only way to get to the treasure is to find the key that unlocks the box. In order to unlock the box, you must build a web application that can decipher the key from the given symbols.
To solve this problem, competitors become adventurous explorers. They need to decipher a base64 encoded string to a valid JSON value. However, the decoded string is not straightforward. They need to brainstorm and find the correct way to reorder the decoded string to a valid JSON string.
Medium level problem (500 points): Build the Pattern-Lock
You have recently discovered that your roommate has hidden some delicious cookies in one of the rooms in your house. You want to get to them but when you try to open the door you find that the door cannot be opened without a pattern-based door lock. The pattern-based door-lock has to be built by you in the form of an API. Thankfully, there is an instruction manual in front of the door that your friend inadvertently left, which describes how the pattern-lock should work.
Now the competitors are cryptographers, they need to find all the combinations of integers that a valid pattern can represent, then return the answer in the form of an API. The key points to solve this problem are
- Validate if the pattern is valid.
- If the pattern is not a closed-loop shape, find the patterns of these possible numbers
- If the pattern is a closed-loop shape, find the patterns of these possible numbers.
Hard level problem (1000 points): Topcoder Gigs Chatbot
An advanced Artificial Intelligence named Bill gained consciousness and now wants to experience the world. Being a tech-guy himself, he is good at programming and is interested in being a gig-worker with the help of Topcoder. Your task is to build a simple web app based chatbot that people can interact with to better understand and benefit from the gig opportunities at Topcoder.
This problem is very Topcoder-specific and also very challenging. Competitors need to extract the locations, skill sets, years of experience, expected payment, etc from the natural languages, fetch the gig content from the Topcoder Gig API, and find the best matches, then recommend the best gig opportunities via the chatbot.
It is also very beneficial to Topcoder gigs. Maybe we can pick the winning submission, polish it a bit and make the chatbot live! 🙂
Most finalists started the competition from the easy problem, but birdofpreyru was an exception, he chose to start from the medium problem. Around half an hour after the final challenge kicked off, birdofpreyru solved the medium problem and ranked to the top. It seemed that his strategy was good. After that, several members got points in the leaderboard and it began to fluctuate. birdofpreyru kept the ranking until the last minute, then diazz passed more test cases in the hard problem and he defeated birdofpreyru and ranked to the top! This is the leaderboard after the challenge ended.
But, all the points and rankings on the leaderboard are provisional. All the submissions will be reviewed manually and the final result will be revealed during the award ceremony on Nov 22nd.
The competition was intense, but during their webcam views, we saw some fun stuff. For example, jiangliwu’s support staff (his adorable kid) was standing behind him while he was competing. That was a fun fact that only a virtual event can bring to us.
The intense four-hour competition completed successfully. Well done all finalists. Good luck to you all and let’s see who will be the TCO20 Dev champion!