Welcome to the 2022 APL Problem Solving Competition!
Learn APL, have fun, and maybe be a prizewinner!
Dyalog Ltd invites you to use the APL programming language and your problem solving skills to compete for a total of USD 6,500 in cash prizes and a paid trip to the next Dyalog user meeting . Additionally, if you refer a student to the competition and they receive a cash prize, you will receive an equivalent amount as a referral award .
The competition is free to enter. The deadline for submission is Friday 29 July 2022 at 23:59 BST.
Overview
The competition consists of two parts:
Phase 1 asks you to solve 10 puzzles by writing short APL functions, allowing you to demonstrate array-oriented thinking. You can begin without registering — your solutions should be stored by your browser until you decide to register and submit them (not all browsers do this).
Phase 2 comprises a collection of more difficult problems, each having one or two tasks. In addition to requiring array-oriented thinking, this enables you to show off your ability to write larger amounts of well-documented, high-quality, code.
The problem specifications given on this site can also be downloaded as PDF files:
Running Dyalog APL
Although TryAPL might be sufficient for solving the Phase 1 problems, for Phase 2 we highly recommend installing a local desktop Dyalog APL development environment. It is free to download for all platforms (no registration required).
Don't know APL?
Would you like to be able to translate know-how into computer-based solutions quickly and efficiently? APL is an array-oriented programming language that will change the way you think about problems and data. It doesn't take long to learn enough to participate in the competition. Many previous winners of the competition learned APL after they heard about the competition – APL is easy to learn and fun to use, and this is your opportunity to profit from the experience!
Don't have time?
You can win a cash prize without writing a single line of code! Just refer someone to the competition, and if they win a cash prize then you'll receive the same amount as a referral award .
If you're interested in the competition, but don't want to actively participate this year, please register – this will ensure that you're notified with updates on the competition as well as informed about next year's competition (you can un-register at any time).
Are you ready?
To proceed through the competition, click Next .
Expand all
Collapse all
Discover APL
Getting started with any new programming language can seem like a daunting task so we've tried to simplify this process for you:
Start by consulting the APL Wiki's comprehensive index of learning resources as well as the materials from previous competitions on Dyalog Ltd's website.
If you have a generally applicable question (not a competition-specific one!), consider asking it on Stack Overflow. APL questions are usually answered very quickly there.
For technical problems, FAQs, advice and tips, browse the Dyalog Forums .
If you need more individual or interactive advice, consider consulting an experienced APLer in The APL Orchard chatroom.
In addition, the core language is fully documented in the online documentation , and the complete documentation set can be found in the Documentation Centre .
Prizes
Only those in full-time education are eligible to win the majority of prizes, although there is a non-student prize that is available if you're not in full-time education.
You do not need to submit an entry in Phase 2 to win a Phase 1 prize, but to win a phase 2 or the non-student prize you must complete at least one Phase 1 problem and at least one problem in Phase 2.
We reserve the right to choose the winners
at our sole discretion. Although not anticipated, competition
rules and prizes can be changed or altered at any time. The judges'
decision is final and no correspondence will be entered into by the
judges in relation to their decisions.
Grand prize
USD 2,500 cash prize and an invitation to attend Dyalog '22 in October 2022.
At this user meeting, the winner will receive their prize and have the opportunity to present their winning work.
Dyalog Ltd will cover all user meeting fees and travel costs up to USD 3,500 (plus USD 500 for incidental expenses) for the winner, but not for family or friends.
The winning student is responsible for visas, travel documents, and other necessary arrangements, and must be legally able to travel.
Second prize
USD 1,250 cash prize.
Third prize
USD 750 cash prize.
Phase 2 prizes (5 random participants)
USD 200 cash prize for 5 participants who submit at least one correct entry for Phase 2 of the
competition, selected at random.
Phase 1 prizes (top 10)
USD 100 in cash to each of the top 10 Phase 1 participants.
Non-student prize
One non-student participant will win complimentary registration for the
next in-person Dyalog user meeting .
Payment
While all prizes are denominated in U.S. dollars, they can be awarded in U.S. dollars (USD), pounds sterling (GBP) or euros (EUR) by electronic transfer to a bank account or a PayPal account. No other forms of payment will be made.
If you are selected as a winner and are unable or unwilling to accept the prize,
you cannot transfer the prize or designate someone else as the winner. We reserve the right to award unclaimed prizes to the next highest scoring entrant.
If you accept a prize, you
will be solely responsible for all applicable taxes related to accepting that prize.
Sponsors
Referral awards
You can win referral awards equal in value to the cash prizes won by participants
who you introduce to the competition.
You do not need to be a student or submit an entry yourself to earn a referral award.
For example, if you are not a student but introduced the second prize winner
and two winners of Phase 2 prizes, you would receive USD 1,650. If you are the
student who won third prize and you also introduced the second prize winner,
you would receive USD 2,000.
How do I indicate who referred me? Put the name and email address of your referrer into the "Referrer" input box on your Account details form. This form can be found by clicking the email/username button at the top-right of this page after you've logged in.
Note: All winners who did not indicate at the time of submission who
introduced them will forfeit any matching referral awards.
You cannot win a referral award for referring a participant of a previous competition.
Timeline for the 2022 Competition
These are the important dates in this year's competition:
Friday 29 July 2022 at 23:59 BST
The competition closes. All entries must be submitted by this time. It doesn't matter when you submit your entries as long as it's before this deadline. You can submit as many times as you like – only your final submission before the deadline will be judged. Submissions will not be judged until after this deadline.
Monday 22 August 2022
Announcement of the winners of the competition (they will be formally notified by e-mail by this date).
Detailed rules
Eligibility
The competition is open to everyone except Dyalog employees and problem set contributors. Proof of full-time primary, secondary, college or graduate enrolment is necessary to claim any of the prizes (except the non-student prize). You can be on a sabbatical as long as you will be returning to full-time student status within a year.
Conditions
All participants must submit to these rules.
Participants can only compete with one entry in the competition. However, until the deadline, participants can submit replacement solutions. Only the last submitted solution for a given problem will be judged.
Participants must provide truthful and accurate information regarding contact and personal information.
All entry material must be presented and submitted in English.
Only entries that are received by the deadline are eligible. We cannot accept responsibility for entries that are lost, delayed or damaged. Proof of sending an online entry is not proof that we received it.
Entries not submitted in accordance with these terms and all other rules and directions, or entries that are incomplete or illegible (at the sole discretion of Dyalog Ltd) will be excluded from the competition.
Your submission and its contents can be used at the discretion of Dyalog Ltd
Collaboration
Participants must ensure that all solutions that they submit are produced and owned by them.
You can collaborate with others in learning APL and solving the problems, but each submission must be made by a single person and only that person will be eligible for a prize. Each collaborator can submit an entry as long as their submission is unique. If multiple people submit nearly identical Phase 2 solutions, all of them will be disqualified. Submissions for simpler Phase 2 problems are likely to end up being similar even without collaboration, so you should make your submission unique by adding comments in your own words that make it clear that you understand what your code does.
Please do not post any (partial) solutions online until after the competition has closed, nor seek help from services that provide peer review. We monitor various sites, and reserve the right to disqualify or penalise you for doing so.
Frequently Asked Questions (FAQ)
In APL, how do I...?
In fairness to all, we cannot provide answers to contest-specific questions. Instead, have a look at the Discover APL resources.
Can I utilise functions or code snippets from the workspaces that come with Dyalog (for example, dfns) or other sources?
Yes. However, you will be judged both on the uniqueness of your code and evidence of your understanding of what you are doing. The judges read various forums (and other similar channels) and will notice if contestants are asking for too much help. At a minimum, include comments (in your own words) indicating that you understand what the code is doing — don't just copy someone else's comments along with their code. If you really want to score well, you might want to see if you can improve on the code you find elsewhere.
Does the possibility of winning prize money classify as commercial use of Dyalog APL?
No.
What do I do if there is a problem with the website or I have a question about a problem?
Please report any problems or direct any questions to contest@dyalog.com .
What are the recommended browsers for this site?
We recommend the latest versions of Firefox, Safari, Chrome and Edge.
I did not receive an email with a code when registering. What should I do?
Click Register again and wait for 5–10 minutes. Make sure you check your spam folder. If the code still doesn't come through, then please report the problem to contest@dyalog.com .
Data protection and cookies
We use cookies to keep you logged in and to retain your solutions.
By using this site, you agree to this.
We only collect the data necessary for the competition to run, and will use any personal information submitted in accordance with Dyalog Ltd's Privacy Policy .
At any time after you have registered and are logged in, you can erase all data that is stored about you as part of the competition by clicking the user button email@domain.com in the top right corner and selecting Erase account and data .
Consent to usage of information
By entering the competition, you consent to the use by Dyalog Ltd of all images,
text and materials that you submit, for any purpose, in any media, for an
unlimited period, without remuneration. We have the right to publish,
display, reproduce, adapt, promote or otherwise use entries in any way
we deem fit. You warrant that you are legally entitled to grant these
rights to us and agree to indemnify us in the event that we suffer any
loss as a result of false information you provide.
By entering the competition you agree that if you win and subsequently participate in
any promotional activities or material, you will do so without additional payment or
permission.
Disclaimers
We are not liable for any damage, loss or disappointment suffered by you for taking part or not being able to take part in this competition.
In the event of unforeseen circumstances, we may alter, amend or cancel the competition without prior notice.
We reserve the right to change these terms at any time.
These terms are governed by the Laws of England and Wales and all disputes subject to the jurisdiction of the courts of England and Wales.
Technology
This site was constructed with, and runs on,
MiServer
MiServer , a free, open-source web server implemented in Dyalog APL.
It enables the APL user to build sophisticated websites using the power of APL and with minimal knowledge
of web technologies like HTML, JavaScript, and CSS.
To safely verify Phase 1 submissions, we use
Safe Execute for Dyalog APL , a tool developed by Adám Brudzewsky that validates APL expressions as non-destructive, covering built-ins if necessary, and executes them in a sandbox environment.
Contact
If you have feedback, or would like to ask a question that is not already answered here, please e-mail contest@dyalog.com .