Welcome to the 2023 APL Problem Solving Competition
Learn APL, have fun, and maybe be a prize winner !
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 .
The competition is free to enter. The deadline for submissions is Friday 28 July 2023 at 23:59 UTC.
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, broken down into 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.
Running Dyalog
Although TryAPL might be sufficient for solving the Phase 1
problems, for Phase 2 we highly recommend installing a local desktop Dyalog 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 by entering 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 people who were full-time students at the commencement of the competition are eligible to win the
Grand Prize and all other monetary prizes. Proof of student status will be required in order to
receive a prize. Previous recipients of the Grand Prize are ineligible from receiving another
Grand Prize, but are eligible to receive other prizes.
There is also a prize for the top non-student submission (see below).
Additionally, anyone is eligible to receive a referral award (see below).
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 the next Dyalog user meeting .
The recipient of the Grand Prize will be expected to present their work at the user meeting. 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 Dyalog user meeting .
Prize Eligibility
Grand Prize, Second Prize, Third Prize
You must be a full-time student at the beginning of the competition.
You must correctly solve at least one (1) Phase 1 problem.
You must correctly solve all Phase 2 problems.
Phase 2 Random Prizes
You must be a full-time student at the beginning of the competition.
You must correctly solve at least one (1) Phase 1 problem.
You must correctly solve at least one (1) Phase 2 problem.
Phase 1 Prizes
You must be a full-time student at the beginning of the competition.
The judging committee must have judged your overall Phase 1 entry to be
among the top 10 submissions. While it is not an absolute requirement
that you solve all 10 Phase 1 problems, based on historical results it
is likely that you will need to solve them all to be ranked in
the top 10 submissions.
Non-student Prize
You must correctly solve at least one (1) Phase 1 problem.
You must correctly solve all Phase 2 problems.
Referral Awards
You must refer a new participant in this year's competition.
That participant must name you as their referrer in their registration
information.
That participant must win a cash prize.
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 this year. You cannot win a referral award for referring a participant of a previous 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: You must indicate who referred you before the competition closes.
Timeline for the 2023 Competition
These are the important dates in this year's competition:
Friday 28 July 2023 at 23:59 UTC
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 be judged after
the deadline has been reached.
Monday 21 August 2023
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/testers. Proof of
full-time primary, secondary, tertiary 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.
Participants may not publish their solutions prior to the end of the competition. Doing so will be considered grounds for disqualification from the competition.
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?
No.
What do I do if there is a problem with this 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 .