Advent of Code

Last updated

Advent of Code
Advent of Code 2020 screenshot.png
Screenshot of the 2020 event page
StatusActive
BeginsDecember 1
EndsDecember 25
FrequencyAnnually
InauguratedDecember 1, 2015 (2015-12-01)
FounderEric Wastl
Most recentDecember 2023 (2023-12)
Website adventofcode.com

Advent of Code is an annual set of Christmas-themed computer programming challenges that follow an Advent calendar. [1] [2] It has been running since 2015. [3]

Contents

The programming puzzles cover a variety of skill sets and skill levels and can be solved using any programming language. Participants also compete based on speed on both global and private leaderboards. [1]

The event was founded and is maintained by software engineer Eric Wastl.

History

Advent of Code was created by Wastl, who is still the sole maintainer of the project. [1] [4]

The event was initially launched on December 1, 2015. By midnight EST (UTC−05:00), 81 people had signed up for the event, going slightly over Wastl's planned 70-participant capacity. Within 12 hours, about 4,000 people had joined, nearly causing a system crash. After 48 hours, there were about 15,000 people, and by the end of the 2015 event, the total had risen to 52,000. [5]

In 2020, perhaps due to the COVID-19 pandemic, the event saw a 50% growth in traffic, with over 180,000 participants worldwide. [5]

On December 4, 2022, Wastl announced that the project had reached 1,000,000 registered users. [6]

Puzzle design

Puzzles consist of two parts that must be solved in order, [7] [8] with the second part not revealed to the user until the first part is solved correctly. [9] Participants are awarded a silver star for completing the first part of a daily puzzle, and a gold star after completing the second. [10]

Each puzzle contains a fictional backstory that is the same for all participants, but each person receives a different piece of input data and should generate a different correct result. [9]

Puzzles are released on a daily schedule from December 1 to December 25 at midnight EST. There is no time limit to complete the puzzles, and puzzles from past years' events remain available to solve. [4]

Some participants have used tools such as GitHub Copilot and ChatGPT to assist in solving the puzzles. [4] In 2023, Wastl requested that users abstain from using these tools until after the leaderboard has been filled for the day, stating that "the leaderboards are for human competitors". [11]

Preparations

According to a comment in the HTML code on each page of the event's website, Advent of Code runs using custom Perl code. Wastl built almost the entire website himself, including the design, animations, prose, and puzzles. (He relies on other services for authentication, analytics, and social media integrations.) [1]

Each year, Wastl creates and tests the 25 puzzles in advance. This takes 4–5 months of work each year. [1]

Related Research Articles

<span class="mw-page-title-main">Programmer</span> Person who writes computer software

A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

<span class="mw-page-title-main">Markdown</span> Plain text markup language

Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber created Markdown in 2004 as a markup language that is easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.

<span class="mw-page-title-main">GUID Partition Table</span> Computer disk partitioning standard

The GUID Partition Table (GPT) is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers, which are also known as globally unique identifiers (GUIDs). Forming a part of the Unified Extensible Firmware Interface (UEFI) standard, it is nevertheless also used for some BIOSs, because of the limitations of master boot record (MBR) partition tables, which use 32 bits for logical block addressing (LBA) of traditional 512-byte disk sectors.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

<i>osu!</i> 2007 rhythm game

Osu! is a free-to-play rhythm game primarily developed, published, and created by Dean "peppy" Herbert. Inspired by iNiS' rhythm game Osu! Tatakae! Ouendan, it was written in C# on the .NET Framework, and was released for Microsoft Windows on 16 September 2007. The game has throughout the years been ported to macOS, Linux, Android and iOS.

<span class="mw-page-title-main">TorChat</span> Anonymous instant messaging application

TorChat was a peer-to-peer anonymous instant messenger that used Tor onion services as its underlying network. It provided cryptographically secure text messaging and file transfers. The characteristics of Tor's onion services ensure that all traffic between the clients is encrypted and that it is very difficult to tell who is communicating with whom and where a given client is physically located.

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub, Inc. is a platform and cloud-based service for software development and version control, allowing developers to store and manage their code. It uses Git software, providing the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

<span class="mw-page-title-main">Etherpad</span> Open-source web-based collaborative real-time editor

Etherpad is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication.

<span class="mw-page-title-main">Julia (programming language)</span> Dynamic programming language

Julia is a high-level, general-purpose dynamic programming language, most commonly used for numerical analysis and computational science. Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, efficient garbage collection, and a just-in-time (JIT) compiler.

Slack is a cloud-based team communication platform developed by Slack Technologies, which is currently owned by Salesforce. Slack has freemium and paid subscriptions model, and platform offers functionalities such as text messaging, file and media sharing, voice and video calls, and group chat for team collaboration.

<span class="mw-page-title-main">Lichess</span> Internet chess platform

Lichess is a free and open-source Internet chess server run by a non-profit organization of the same name. Users of the site can play online chess anonymously and optionally register an account to play rated games. Lichess is ad-free and all the features are available for free, as the site is funded by donations from patrons. Features include chess puzzles, computer analysis, tournaments and chess variants.

<span class="mw-page-title-main">Matrix (protocol)</span> Networking protocol for real-time communication and data synchronization

Matrix is an open standard and communication protocol for real-time communication. It aims to make real-time communication work seamlessly between different service providers, in the way that standard Simple Mail Transfer Protocol email currently does for store-and-forward email service, by allowing users with accounts at one communications service provider to communicate with users of a different service provider via online chat, voice over IP, and videotelephony. It therefore serves a similar purpose to protocols like XMPP, but is not based on any existing communication protocol.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

<span class="mw-page-title-main">CircuitPython</span> Programming language

CircuitPython is an open-source derivative of the MicroPython programming language targeted toward students and beginners. Development of CircuitPython is supported by Adafruit Industries. It is a software implementation of the Python 3 programming language, written in C. It has been ported to run on several modern microcontrollers.

<span class="mw-page-title-main">GPT-3</span> 2020 large language model

Generative Pre-trained Transformer 3 (GPT-3) is a large language model released by OpenAI in 2020. Like its predecessor GPT-2, it is a decoder-only transformer model of deep neural network, which uses attention in place of previous recurrence- and convolution-based architectures. Attention mechanisms allow the model to selectively focus on segments of input text it predicts to be the most relevant. It uses a 2048-tokens-long context and then-unprecedented size of 175 billion parameters, requiring 800GB to store. The model demonstrated strong zero-shot and few-shot learning on many tasks.

GitHub Copilot is a cloud-based artificial intelligence tool developed by GitHub and OpenAI to assist users of Visual Studio Code, Visual Studio, Neovim, and JetBrains integrated development environments (IDEs) by autocompleting code. Currently available by subscription to individual developers and to businesses, the tool was first announced by GitHub on 29 June 2021, and works best for users coding in Python, JavaScript, TypeScript, Ruby, and Go.

OpenAI Codex is an artificial intelligence model developed by OpenAI. It parses natural language and generates code in response. It powers GitHub Copilot, a programming autocompletion tool for select IDEs, like Visual Studio Code and Neovim. Codex is a descendant of OpenAI's GPT-3 model, fine-tuned for use in programming applications.

<span class="mw-page-title-main">You.com</span> Search engine

You.com is a search engine. It allows people to personalize their search by letting its users upvote, downvote, or block apps. It provides additional products including their chatbot called YouChat, a writing tool called YouWrite, and AI-image generator called YouImagine, which utilizes models like Stable Diffusion and Open Journey.

<span class="mw-page-title-main">GPT-4</span> 2023 text-generating language model

Generative Pre-trained Transformer 4 (GPT-4) is a multimodal large language model created by OpenAI, and the fourth in its series of GPT foundation models. It was initially released on March 14, 2023, and has been made publicly available via the paid chatbot product ChatGPT Plus, and via OpenAI's API. As a transformer-based model, GPT-4 uses a paradigm where pre-training using both public data and "data licensed from third-party providers" is used to predict the next token. After this step, the model was then fine-tuned with reinforcement learning feedback from humans and AI for human alignment and policy compliance.

References

  1. 1 2 3 4 5 Wastl, Eric (2022). "About". Advent of Code. Retrieved December 10, 2022.
  2. Joyce, Kara E. (November 11, 2020). "Brain teasers and other fun tips for learning Python". SearchBusinessAnalytics. TechTarget. Archived from the original on November 12, 2020. Retrieved May 12, 2021.
  3. Speed, Richard (December 1, 2021). "On the first day of Christmas, my true love gave to me... a coding puzzle and it's a doozy". The Register. Archived from the original on December 1, 2021. Retrieved December 5, 2021.
  4. 1 2 3 Warren, Christina (December 9, 2022). The Download: Clippy Sweaters, ChatGPT Mania, Advent of Code and more (Videotape). GitHub . Retrieved December 11, 2022 via YouTube.
  5. 1 2 Roberts, Siobhan (December 17, 2021). "This puzzle challenge brings joy to the world of code". MIT Technology Review . Retrieved February 20, 2022.
  6. Wastl, Eric [@ericwastl] (December 4, 2022). "#AdventOfCode just hit 🌟1,000,000🌟 registered users!!!" (Tweet). Retrieved December 10, 2022 via Twitter.
  7. Gee, Sue (December 6, 2020). "Advent Of Code For Programmers". I Programmer. Archived from the original on December 6, 2020. Retrieved May 12, 2021.
  8. Fisher, Kenneth (December 3, 2020). "SQL Homework – December 2020 – Participate in the Advent of Code. from Blog Posts – SQLServerCentral". Packt Hub. Archived from the original on January 26, 2021. Retrieved May 12, 2021.
  9. 1 2 Hjelle, Geir Arne (December 1, 2021). "Advent of Code: Solving Your Puzzles With Python". Real Python. Retrieved February 20, 2022.
  10. Advent of Code 2023 - Stats https://adventofcode.com/2023/stats . Retrieved December 8, 2023.{{cite web}}: Missing or empty |title= (help)
  11. "About - Advent of Code 2023". adventofcode.com. Retrieved October 22, 2023.