|Advent Of Code - More Than You Might Expect|
|Written by Sue Gee|
|Friday, 09 December 2022|
Advent of Code 2022 is well underway and as well as the challenge of earning stars for the daily puzzles, programmers are using it to try out new languages and new techniques.
Top of the leaderboard at this stage is Brian Chen, betaveros, using his own language, noulith. AI is also getting in on the act with ChatGPT being used not just to write the code, but also to report on doing it - scary or what?
December is much anticipated among those who like programming puzzles. It is time to collect stars by solving small puzzles on the Advent of Code website with the goal of amassing 50 stars by December 25th. Since it started in 2015 a community has built up around Advent of Code with a sub Reddit devoted to it and many GitHub repos, and even You Tube videos where participants share solutions.
According to its creator, Eric Wastl who is also the developer of Vanilla JS and PHP Sadness,
Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as interview prep, company training, university coursework, practice problems, a speed contest, or to challenge each other.
The way it works is that every day between December 1st and December 25th there are two puzzles, with the second puzzle unlocked when you complete the first. The puzzles are released daily at midnight EST and points are awarded for the quickest solutions. 100 points go to the first person to submit the correct solution, 99 points to the second and so on down to 1 point for the hundredth. Of course, there are many more than 100 people submitting solutions as evidenced in this chart of the current completion statisitics:
Here a gold indicates users that have completed both parts of a puzzle, while silver indicates users that have completed only the first half. Each star represents up to 5491 users. What it indicates is that number of complete submissions already made for the first puzzle is well over two hundred thousand and that, although we are not yet half way through Day 9 almost thirty thousand participants have completed both of its puzzles and a further thousand completed the first puzzle but not the follow on.
It also means that the leaderboard is just the tip of a much larger iceberg. Wast himself has this to say about the leaderboard:
Should I compete on the global leaderboard? Maybe. Solving puzzles is hard enough on its own, but competing for a spot on the global leaderboard also requires many additional skills and a lot of practice. Depending on the puzzle, that day's leaderboard usually fills up anywhere between two minutes and an hour. If that sounds interesting, go for it! However .. it is completely fine to ignore the leaderboard entirely.
Even so getting a place on the leaderboard is an achievement it is hard to ignore. In response to requests one seasoned AoC participant, hyper-neutrino has posted this YouTube video as a guide to solving AoC problems including advice about how to get a spot on the leaderboard:
At the time of posting the video hyper-neutrino was in 6th place, now he is in 4th but what has remained the same over the period is that the top spot is occupied by betaveros, who finished in second place in 2018 and has come top every year since. Ironically on his GitHub repo, betaveros say's that for 2022 trying to top the leaderbaord isn't his prime focus. Instead his goal is to finish all the puzzles using only noulith, a programming language that he has been working on this year. So far noulith seems to be not only performant enough to solve the puzzles within a competitive timeframe but also to do them really quickly and on Day 7 it was first past the post, scooping up 100 points.
Waves are also being made by Nils Eriksson, a software educator at Miridin who is trying to solve all of the advent of code with as little human input as possible using ChatGPT, a tool from OpenAI he'd not used until coming across it on December 1st.
He has been posting his experiences day by day on his blog and they show just how effective this ai-powered approach to code generation can be. And it's not just code generation. Erikkson has also used ChatGTP to write the summaries of the interactive process by instructing it to:
Write a summary about the conversation we had to reach the right program ...
The AI returned a model answer in around 400 words, itemizing three changes to the code. A human could not have done better.
However, things came unstuck on Day 5, when the puzzle question didn't give a clear specification that could be simply handed over to generate code. Erikkson resorted to an approach described as machine-human collaboration in which he wrote a more precise specification.
For Day 6 ChatGPT solved both challenges in 10 seconds just on the basis on having the whole questions pasted in!
Is this cheating or it is the future, not only for code generation but also for code documentation?
or email your comment to: email@example.com
|Last Updated ( Wednesday, 14 December 2022 )|