Previous Next

How to Participate

The competition is free to enter. The deadline for submission is Friday 31 July 2020 at 23:00 UTC.

Phase I

Phase I asks you to solve 10 puzzles by writing short APL functions. You can begin Phase I without registering — you can experiment from your browser, and your solutions to Phase I problems will be stored by your browser until you decide to register and submit them. Select the Phase I: Submissions menu item to review the solutions that you've submitted.

PDF of the Phase I problem set

Phase I will mainly be judged based on:

Generality: does your function handle the given edge-cases? Is it even more general than required?

Use of array-oriented thinking: did you write array-oriented APL or something that looks like C# written in APL?

Phase I solutions must be submitted using the Submit button. Submitted solutions will appear on the Phase I: Submissions page.

Phase II

Phase II contains a collection of problem sets, each of which has been assigned a difficulty level – low, medium or hard – based on the judges' impressions. You must solve at least 1 (one) problem to be considered for a prize; if a problem has more than one task, then you need to solve all its tasks for the problem to be considered solved. When you have completed your solutions, you should upload a file containing your code. You need to have submitted at least one Phase I solution before you can upload a file for Phase II.

PDF of the Phase II problem set

The submission format is a Unicode text file describing a Dyalog namespace that contains your solutions. Your code can be written in any APL dialect but must be able to run in Dyalog APL version 16.0 or higher.

Phase II will be judged mainly based on:

Completeness: did you solve the problem? Did you comment your code? (Phase I solutions should not be commented.)

Use of array-oriented thinking: did you write array-oriented APL or something that looks like C# written in APL?

Running Dyalog APL

Although TryAPL might be sufficient for solving the Phase I problems, for Phase II we highly recommend installing a desktop Dyalog APL development environment locally. It is free to download for all platforms (no registration required).

Update (10 June 2020): Dyalog APL version 18.0 has now been released. To maintain a fair standard for all participants, Phase I will be judged based on version 17.1 which was the latest when the competition launched. The automated validation uses version 17.1 and will continue to do so. For phase II, upgrading to 18.0 offers new functionality and performance improvements over 17.1 but the version that you use will be taken into account by the judges and there is no version-dependent advantage to be gained by upgrading or remaining on an earlier version in terms of this competition. When you download Dyalog you will be offered both versions, and you can have both installed on your machine at the same time.

Expand all Collapse all

Timeline for 2020 These are the important dates in this year's competition: Friday, July 31, 2020 at 23:00 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 the final submission before the deadline will be judged. Submissions are judged only after the deadline has been reached. Friday, August 21, 2020 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 win 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 Phase I solutions and upload replacement Phase II solution files. 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 duly 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 and answers are produced and owned by the participant. If multiple people make nearly identical Phase II submissions, all of them will be disqualified. For simpler Phase II problems the solutions are likely to end up being similar, so make your submission unique by adding comments in your own words, making it clear that you understand what your code does. You are allowed to collaborate with others in learning APL and solving the problems, but each submission must be made by a single individual and only that individual will be eligible for a prize. Each collaborator can submit their own entry, as long as each entrant's code is unique. If you choose to share your winnings with other people, then you must make your own arrangements. If you win the grand prize, then you can choose to send a collaborator to the user meeting instead of yourself, but that person is expected to be able to present the work competently. Until after the competition has closed, do not post your (partial) solutions online, 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) If you have feedback, or a question not answered here, please e-mail contest@dyalog.com. 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 the Dyalog 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 Phase II 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? Hit 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.