Winning the APL Programming Contest – Bioinformatics Category

#Dyalog16 – Vibeke Ulmann

Today we had the second of the 3 grand prize winner presentations.

Marinus Oosters is 25 years old and is in his second year studying for a Masters in Computer Science at the University of Utrecht. See Marinus’s profile here:

Until about 2 years ago, Marinus had never heard about Dyalog APL. He had done some programming in Perl, and one day saw someone doing something which looked cool – and discovered that it was Dyalog APL. He said that the squiggles appealed to him, and he mainly learned the language through Code Golf (see

“Code Golf is good, creative, and teaches you all the obscure features of the language”, Marinus said. “But it has it downsides too obviously – especially if you are self-taught”.

After downloading the ‘annoying’ free licence from the Dyalog website – this was before Marinus discovered that students qualified for a free Dyalog APL Licence – he started playing with the language some more. He embarked on the programming contest last year – got ¾ through solving the problems, and then his workspace crashed, and he lost everything, so didn’t get a change to submit, as he ran out of time.

Over lunch we discussed a bit more about how he learned Dyalog APL in a more structured manner. It turned out he didn’t learn it with a structured approach….“You can actually get to grips with the basic structure of the APL language in a couple of hours – provided you have the aptitude – because there are only ‘so many primitives’! But when you dive deeper into the language there are a lot of weird subtleties.” Marinus said, and then he proceeded to mention ‘an empty vector’ as an example.

Marinus told me that he had good use of the Mastering Dyalog APL book by Bernard Legrand ( )

But rather than use it to go through chapter and verse, and do the examples which are included with the book if you download it in PDF – he used it as a look-up, to check he’d done stuff the right way. This to me was an example of a new way of using the book – a reference guide – basically.

In terms of how he approached the Programming Contest this year, Marinus said that he solved the problems in all three categories, and submitted his solutions for all three categories. Very commendable indeed.

He was actually very surprised to learn that he won the Bioinformatics Category, because this was the hardest category for him to come to grips with, he said.

He then showed us how he solved the 3 problems in Phase 2 and told us how long it approximately took him to arrive at the solutions

  • The Comparing Spectra with Spectral Convolution Problem – approx. 1 hour
  • The Interlacing Two Motifs (DNA strings) – approx. 1 days, but he said the reason he estimates it took him a day is because he tried to solve the problem several times – using different approaches – in order to find the shortest possible expression
  • The Sorting through reversals problem – approx. 1 day

Over lunch, I also asked Marinus how Dyalog can continue to promote Dyalog APL and attract new programmers. He said that we’re already doing a lot of good stuff, but that it would be helpful if people could simply just download the licence and use it for 30 days, before they had to register their details – like Visual Studio does.

(Note: Since end of June 2016 it is free of charge to download a Dyalog Licence for non-commercial purposes – but you do still have to register your details)

I asked him if he had looked at MiServer – and he said that he’d only been introduced to it during the conference here in Glasgow, and that he would like to play with it on Linux. I encouraged him to make a website using MiServer – perhaps to present his credentials to a future employer- and send us the URL, so we can use it as a case study.

Marinus said that he is considering to pursue a career as a Dyalog APL programmer once he’s completed his Masters next summer. The entire lunch table helped to point him to a number of companies he could look at, starting with Dyalog reference Customers – as we know there is a shortage of new APL programmers around the world.

The presentation was streamed live on and will also be available on Dyalog’s YouTube channel at a later date, post Dyalog’16.

NOTE: The last winner presentations from this year’s APL Programming Contest will also be streamed live – and I will blog about them too.

Check out:

  • Zack Batik – who will present the winning solution in the Finance category Wednesday 12 Oct 13:15 -13:45 (UK time)

For everyone’s information: All the sessions tomorrow Wednesday 11th will be streamed live as we’re celebrating the 50th anniversary of the APL language with lots of interesting presentations both from yesteryear and today.

Comments are closed.