ICFP Programming Contest

Last updated

The ICFP Programming Contest is an international programming competition held annually around June or July since 1998, with results announced at the International Conference on Functional Programming.

Contents

Teams may be of any size and any programming language(s) may be used. There is also no entry fee. Participants have 72 hours to complete and submit their entry over the Internet. There is often also a 24-hour lightning division.

The winners reserve "bragging rights" to claim that their language is "the programming tool of choice for discriminating hackers". As such, one of the competition's goals is to showcase the capabilities of the contestants' favorite programming languages and tools. Previous first prize winners have used Haskell, OCaml, C++, Cilk, Java, F#, and Rust.

The contests usually have around 300 submitted entries. [1] [2]

Past tasks

YearOrganiserDescription
1998 Université de Montréal and Massachusetts Institute of Technology Write a program that plays pousse, an odd variant of tic-tac-toe. Contestant programs were entered into a tournament to determine the first- and second-place program.
1999 Harvard University Size-optimize case statements (the contest task spoke about text-based adventure games, but in fact the task was to size-optimize the description of such a game).
2000 Cornell University Implement a ray tracer using a Postscript-like syntax.
2001 INRIA RocquencourtSize-optimize an HTML-like markup language by removing unnecessary whitespace and tags, and so on.
2002 OGI School of Science and Engineering Implement robots playing a Sokoban-like game one against each other.
2003 Chalmers University Implement robots driving a car as fast as possible through different racing tracks.
2004 University of Pennsylvania Design an ant colony that will bring the most food particles back to its anthill, while fending off ants of another species. The contest entry would output a state-machine description of the ant: in principle, entries could have been written by hand. Later the task was adapted into Ant Wars, a strategy and programming game where each participant is a species of ant. The participants then, in a language called Antomata, [3] program a finite state machine to function as the brain of each ant. The ant brain then controls the ant to find and collect food to bring to the home ant hill, to fend off attackers or make trails of pheromones.
2005 PLT groupImplement "bots" for a "Cops & Robbers" game: contestants have to write the control program that guides a Robber-Bot through a quiet urban neighborhood on a mission to rob every bank without getting caught, and the control program for a Cop-Bot dedicated to stopping it.
2006 Carnegie Mellon University Implement a virtual machine that runs an operating system (called UMIX) provided by the judges, and crack it using new programming languages with unconventional syntax and semantics, such as 2D and a version of BASIC using Roman numerals. Many puzzles were tiny versions or parodies of previous contests.
2007 Utrecht University Implement a 2-stage virtual machine that executes a DNA-like string to produce an image. Then, given an input string for this machine, find a prefix that when added to this string yields an image as close as possible to the given target image.
2008 Portland State University and the University of Chicago Provide a Mars rover control system that will guide it to a home base while avoiding obstacles and enemies.
2009 University of Kansas Control a satellite to move between specified orbits and rendezvous with other satellites.
2010 Leipzig University of Applied Science, GermanyInternational Car and Fuel Production.
2011 Tohoku University, JapanProgram a computer with 256 "slots" to outlast its opponent in terms of slots remaining at the end of the match. Submissions include executables that are entered into a two-phase tournament.
2012 University of St Andrews, ScotlandProgram an AI for a Boulder Dash-like game.
2013 Microsoft Research Guess the implementation of a blackbox function implemented in a simple functional language through querying a web service.
2014 University of Oxford and Well-Typed LLPWrite AI programs for a pacman like game, in SECD machine instruction for pacman and 8-bit machine assembly instructions for four ghosts.
2015GaloisWrite an AI for Tetris-like game on a hexagon grid field that embeds secret phrases in the move sequence.
2016 University of Electro-Communications Write an AI to solve abstract origami.
2017 University of Edinburgh Write an AI for a game where players in turn claim route parts on the map and the one with the best coverage wins. There are also three extensions to the main game mode, any number of which can be enabled on a map.
2018 Rochester Institute of Technology Generate nanobot traces to construct, destruct, and reconstruct target 3D objects while minimizing energy used.
2019 Yale-NUS College and National University of Singapore Worker-Wrappers against Bit Rot. [4]
2020 SKB Kontur Build virtual machine by the alien specification, run alien provided game-server on that VM, explore the game (2D space battle on the planet orbit with Chebyshev distance, with accelerate, shoot, split and detonate commands), reverse engineer game-protocol and create bot to play this game.
2021Alex Lang and Jasper Van der JeugtManipulate a figure similar to a mechanical linkage to fit through a hole in the wall.
2022Alperen KelesReconfigure a prefilled canvas into a painting.

Prizes

Prizes have a modest cash value, primarily aimed at helping the winners to attend the conference, where the prizes are awarded and the judges make the following declarations:

First prize
[Language 1] is the programming tool of choice for discriminating hackers.
Second prize
[Language 2] is a fine programming tool for many applications.
Third prize
[Language 3] is also not too shabby.
Winner of the lightning division
[Language L] is very suitable for rapid prototyping.
Judges' prize
[Team X] are an extremely cool bunch of hackers.

Where a winning entry involves several languages, the winners are asked to nominate one or two. The languages named in the judges' declarations have been:

YearFirst PrizeSecond PrizeThird PrizeLightning
1998 Cilk OCaml
1999 [5] OCaml Haskell [6]
2000 [7] OCaml OCaml
2001 [8] Haskell Dylan
2002 OCaml C [6]
2003 C++ C++ OCaml
2004 [9] Haskell Haskell and C++ Java and C++
2005 [10] Haskell Dylan Haskell
20062D [11] D Assembly
2007 C++ Perl [12]
2008 [13] Java ML
2009 [14] C++ Java ML
2010 [15] C++, Haskell, Python SageMath
2011 [16] F# Shell and C++
2012 [17] C++ OCaml Java
2013 [18] Java, C#, C++, PHP, Ruby and Haskell C++ and Python C#, C++, bash, awk, sed and Excel C++
2014 [19] Haskell C++ Perl OCaml
2015 [20] C++, Java, C#, PHP, Ruby and Haskell C++, Python, JavaScript C++ C++
2016 [21] Java, C++, C#, PHP, Haskell C++, Ruby, Python, Haskell, Java, JavaScript OCaml
2017 [22] C++ C++ OCaml
2018 [23] Rust C++, Python, Ruby, JavaScript, bash and SQL OCaml
2019 [24] Rust C++ C++ and Haskell
2020 [25] Python C++ (first winner), Rust (second winner) Haskell
2021 [26] C++, Rust Rust Rust, TypeScript and Go Rust, TypeScript and Go
2022 [27] Rust, Go and Python Rust, C++ and Python C++, Rust and Python Rust, C++ and Python

See also

References and notes

  1. "ICFP Programming Contest Scoreboard" . Retrieved 23 September 2012.
  2. https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
  3. "Antomata - The Language of Ant Wars". Archived from the original on 2007-09-29. Retrieved 2007-11-25.
  4. "The Contest Begins". ICFP Programming Contest 2019. 2019-06-21. Retrieved 2020-07-15.
  5. Final results of the ICFP'99 Programming Contest
  6. 1 2 The contests in 1999 and 2002 had a lightning division, but without a separate prize. The winners of that division were awarded Judges' prizes.
  7. The Third Annual ICFP Programming Contest
  8. The Fourth ICFP Programming Contest
  9. The Seventh Antual ICFP Programming Contest
  10. The Eighth Annual ICFP Programming Contest
  11. 2D was a toy language invented for the 2006 contest. The winning team used C++, Haskell, Python, Bash, and 2D.
  12. The 2007 contest had a lightning division, but since there was no clear leader after 24 hours the judges decided not to choose a winner.
  13. ICFP 2008 Programming Contest Results
  14. http://www.vimeo.com/6613815 - accessed September 23, 2009
  15. ICFP 2010 Programming Contest (video)
  16. ICFP Programming Contest 2011
  17. ICFP Programming Contest 2012
  18. "ICFP Programming Contest 2013". Archived from the original on 2013-10-16. Retrieved 2013-08-15.
  19. ICFP Programming Contest 2014
  20. ICFP Programming Contest 2015
  21. ICFP Programming Contest 2016
  22. ICFP Programming Contest 2017
  23. ICFP Programming Contest 2018
  24. "Final Results". ICFP Programming Contest 2019. 2019-08-20. Retrieved 2020-07-15.
  25. "ICFP Programming Contest Awards and Reports". 2020-08-26. Archived from the original on 2021-12-21. Retrieved 2021-05-29.
  26. ICFP Programming Contest 2021
  27. ICFP Programming Contest 2022

Related Research Articles

Writers of the Future (WOTF) is a science fiction and fantasy story contest that was established by L. Ron Hubbard in the early 1980s. A sister contest, Illustrators of the Future, presents awards for science fiction art. Hubbard characterized the contest as a way of "giving back" to the field that had defined his professional writing life. The contest has no entry fee and is the highest-paying contest for amateur science-fiction and fantasy writers. Notable past winners of WOTF include Stephen Baxter, Karen Joy Fowler, James Alan Gardner, Nina Kiriki Hoffman, Jay Lake, Michael H. Payne, Patrick Rothfuss, Robert Reed, Dean Wesley Smith, Sean Williams, Dave Wolverton, Nancy Farmer, and David Zindell.

<span class="mw-page-title-main">Peabody Awards</span> International awards for excellence in radio and television

The George Foster Peabody Awards program, named for the American businessman and philanthropist George Peabody, honor the most powerful, enlightening, and invigorating stories in television, radio, and online media. The awards were conceived by the National Association of Broadcasters in 1938 as the radio industry’s equivalent of the Pulitzer Prizes. Programs are recognized in seven categories: news, entertainment, documentaries, children's programming, education, interactive programming, and public service. Peabody Award winners include radio and television stations, networks, online media, producing organizations, and individuals from around the world.

The Loebner Prize was an annual competition in artificial intelligence that awards prizes to the computer programs considered by the judges to be the most human-like. The prize is reported as defunct since 2020. The format of the competition was that of a standard Turing test. In each round, a human judge simultaneously holds textual conversations with a computer program and a human being via computer. Based upon the responses, the judge must decide which is which.

Hong Kong Olympiad in Informatics is an annual programming competition for secondary school students in Hong Kong, emphasizing on problem solving techniques and programming skills. It is co-organized by the Hong Kong Association for Computer Education (HKACE) and the Hong Kong Education Bureau (EDB). It serves as a preliminary contest to international, national and regional competitions such as the China National Olympiad in Informatics (NOI) and the International Olympiad in Informatics (IOI). The first HKOI was held in 1997.

<i>Rising Stars of Manga</i>

Rising Stars of Manga (RSoM) was an English-language comic anthology published by TOKYOPOP from 2002 to 2008, and a contest held by the same company. It was originally semi-annual, but switched to annual beginning with the 6th volume.

Lennart Augustsson is a Swedish computer scientist. He was previously a lecturer at the Computing Science Department at Chalmers University of Technology. His research field is functional programming and implementations of functional languages.

<span class="mw-page-title-main">Hackathon</span> Event in which groups of software developers work at an accelerated pace

A hackathon is an event where people engage in rapid and collaborative engineering over a relatively short period of time such as 24 or 48 hours. They are often run using agile software development practices, such as sprint-like design wherein computer programmers and others involved in software development, including graphic designers, interface designers, product managers, project managers, domain experts, and others collaborate intensively on engineering projects, such as software engineering.

wxHaskell is a portable and native GUI library for Haskell, built on wxWidgets. It is often used by those wanting to develop a GUI with a functional language.

Functional reactive programming (FRP) is a programming paradigm for reactive programming using the building blocks of functional programming. FRP has been used for programming graphical user interfaces (GUIs), robotics, games, and music, aiming to simplify these problems by explicitly modeling time.

National History Day is a non-profit organization based in College Park, Maryland that operates an annual project-based contest for students in grades 6-12. It has affiliates in all fifty states, Washington, D.C., Puerto Rico, Guam, American Samoa, South Korea, China, South Asia, and Central America. It started as a local program in Cleveland, Ohio, headed by Dr. David Van Tassel, a history professor at Case Western Reserve University. It grew from 129 students in 1974 to over 500,000 students in 48 states in 1991, and 700,000 students and 40,000 teachers in 2001. Today more than half a million students enter through local contests. They construct entries as an individual or a group in one of five categories: Documentary, Exhibit, Paper, Performance or Website. Students then compete in a series of regional contests with top entries advancing to state/affiliate contests. The top two entries in each category and division are invited to compete at the National Contest.

The Netflix Prize was an open competition for the best collaborative filtering algorithm to predict user ratings for films, based on previous ratings without any other information about the users or films, i.e. without the users being identified except by numbers assigned for the contest.

The Amazon Breakthrough Novel Award (ABNA) was a contest sponsored by Amazon.com, Penguin Group, Hewlett Packard, CreateSpace and BookSurge to publish and promote a manuscript by an unknown or unpublished author. The first award was given in 2008 and in 2015 Amazon announced that they would not be continuing the award and would instead focus on the Kindle Scout program.

<span class="mw-page-title-main">Android Developer Challenge</span> Programming contest by Google

The Android Developer Challenge (ADC) was launched by Google in 2008, with the aim of providing awards for high-quality mobile applications built on the Android platform. In November 2009, the winners of Android Developers Challenge II were selected after two rounds of scoring by thousands of Android users as well as an official panel of judges. The overall winners of ADC II were SweetDreams, What the Doodle!? and WaveSecure.

<i>Narrative Magazine</i> American online literary magazine

Narrative is an online magazine and website that is dedicated to advancing the literary arts in the digital age that publishes fiction, creative non-fiction, poetry, and art. It was founded in 2003.

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic IO. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry.

<span class="mw-page-title-main">Competitive programming</span> Mind sport

Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. Contestants are referred to as sport programmers. Competitive programming is recognized and supported by several multinational software and Internet companies, such as Google and Facebook.

The Indie Game Challenge is an award competition run in conjunction between the Academy of Interactive Arts & Sciences (AIAS), GameStop and The Guildhall at Southern Methodist University (SMU) to support independent video game development. Started in 2009, the competition highlights ten to twelve independent games, with winning games receiving monetary rewards in addition to the award. The Indie Game Challenge ceremonies are held during the annual D.I.C.E. Summit, during which the finalists are able to demonstrate their games to the press.

<span class="mw-page-title-main">Gennady Korotkevich</span> Belarusian competitive programmer (born 1994)

Gennady Korotkevich is a Belarusian competitive programmer who has won major international competitions since the age of 11, as well as numerous national competitions. His top accomplishments include six consecutive gold medals in the International Olympiad in Informatics as well as the world championship in the 2013 and 2015 International Collegiate Programming Contest World Finals. As of December 2022, Gennady is the highest-rated programmer on CodeChef, Topcoder, AtCoder and HackerRank. In January 2022, he achieved a historic rating of 3979 on Codeforces, becoming the first to break the 3900 barrier.

Junction is a hackathon organizer with headquarters Espoo, Finland. Started in 2015, Junction grew to be one of the largest organizers in Europe. In 2018 it expanded globally with a Junction event at Tsinghua University in China and cooperation with Chinese and South Korean universities bringing high performing students to attend the event in Helsinki.

The Great American Song Contest is an international music competition run annually by Songwriters Resource Network since 2000.