{"id":4570,"date":"2016-10-11T21:55:28","date_gmt":"2016-10-11T21:55:28","guid":{"rendered":"http:\/\/www.dyalog.com\/blog\/?p=4570"},"modified":"2023-04-03T13:47:24","modified_gmt":"2023-04-03T13:47:24","slug":"winning-the-apl-programming-contest-bioinformatics-category","status":"publish","type":"post","link":"https:\/\/www.dyalog.com\/blog\/2016\/10\/winning-the-apl-programming-contest-bioinformatics-category\/","title":{"rendered":"Winning the APL Programming Contest \u2013 Bioinformatics Category"},"content":{"rendered":"<p>#Dyalog16 &#8211; Vibeke Ulmann<\/p>\n<p>Today we had the second of the 3 grand prize winner presentations.<\/p>\n<p>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\u2019s profile here: <a title=\"Profile\" href=\"http:\/\/www.dyalog.com\/news\/112\/420\/2016-APL-Programming-Contest-Winners.htm\" target=\"_blank\">http:\/\/www.dyalog.com\/news\/112\/420\/2016-APL-Programming-Contest-Winners.htm<\/a><\/p>\n<p>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 \u2013 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 <a title=\"Codegolf\" href=\"https:\/\/codegolf.stackexchange.com\/\" target=\"_blank\">https:\/\/codegolf.stackexchange.com\/<\/a>).<\/p>\n<p>\u201cCode Golf is good, creative, and teaches you all the obscure features of the language\u201d, Marinus said. \u201cBut it has it downsides too obviously \u2013 especially if you are self-taught\u201d.<\/p>\n<p>After downloading the \u2018annoying\u2019 free licence from the Dyalog website &#8211; this was before Marinus discovered that students qualified for a free Dyalog APL Licence &#8211; he started playing with the language some more. He embarked on the programming contest last year &#8211; got \u00be through solving the problems, and then his workspace crashed, and he lost everything, so didn\u2019t get a change to submit, as he ran out of time.<\/p>\n<p>Over lunch we discussed a bit more about how he learned Dyalog APL in a more structured manner. It turned out he didn\u2019t learn it with a structured approach\u2026.\u201cYou can actually get to grips with the basic structure of the APL language in a couple of hours &#8211; provided you have the aptitude \u2013 because there are only \u2018so many primitives&#8217;! But when you dive deeper into the language there are a lot of weird subtleties.\u201d Marinus said, and then he proceeded to mention \u2018an empty vector\u2019 as an example.<\/p>\n<p>Marinus told me that he had good use of the <strong>Mastering Dyalog APL<\/strong> book by Bernard Legrand (<a title=\"Mastering Dyalog APL\" href=\"http:\/\/www.dyalog.com\/mastering-dyalog-apl.htm\" target=\"_blank\">http:\/\/www.dyalog.com\/mastering-dyalog-apl.htm<\/a> )<\/p>\n<p>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 \u2013 he used it as a look-up, to check he\u2019d done stuff the right way. This to me was an example of a new way of using the book \u2013 a reference guide &#8211; basically.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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<\/p>\n<ul>\n<li>The Comparing Spectra with Spectral Convolution Problem\u00a0&#8211; approx. 1 hour<\/li>\n<li>The Interlacing Two Motifs (DNA strings) &#8211; 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 &#8211; using different approaches &#8211; in order to find the shortest possible expression<\/li>\n<li>The Sorting through reversals problem &#8211; approx. 1 day<\/li>\n<\/ul>\n<p>Over lunch, I also asked Marinus how Dyalog can continue to promote Dyalog APL and attract new programmers. He said that we\u2019re 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 \u2013 like Visual Studio does.<\/p>\n<p>(<strong>Note<\/strong>: Since end of June 2016 it is free of charge to download a Dyalog Licence for non-commercial purposes \u2013 but you <em>do<\/em> still have to register your details)<\/p>\n<p>I asked him if he had looked at MiServer &#8211; and he said that he\u2019d 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 \u2013 perhaps to present his credentials to a future employer- and send us the URL, so we can use it as a case study.<\/p>\n<p>Marinus said that he is considering to pursue a career as a Dyalog APL programmer once he\u2019s 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 &#8211; as we know there is a shortage of new APL programmers around the world.<\/p>\n<p>The presentation was streamed live on <a title=\"TV\" href=\"http:\/\/dyalog.tv\/\" target=\"_blank\">http:\/\/dyalog.tv\/<\/a> and will also be available on Dyalog\u2019s YouTube channel at a later date, post Dyalog\u201916.<\/p>\n<p><strong>NOTE:<\/strong> The last winner presentations from this year\u2019s APL Programming Contest will also be streamed live \u2013 and I will blog about them too.<\/p>\n<p><strong>Check out:<\/strong><\/p>\n<ul>\n<li>Zack Batik &#8211; who will present the winning solution in the Finance category <strong>Wednesday 12 Oct 13:15 -13:45 (UK time)<\/strong><\/li>\n<\/ul>\n<p><strong>For everyone\u2019s information: <\/strong><em>All the sessions tomorrow Wednesday 11<sup>th<\/sup> will be streamed live as we\u2019re celebrating the 50<sup>th<\/sup> anniversary of the APL language with lots of interesting presentations both from yesteryear and today.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>#Dyalog16 &#8211; 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. &hellip; <a href=\"https:\/\/www.dyalog.com\/blog\/2016\/10\/winning-the-apl-programming-contest-bioinformatics-category\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":17,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"gallery","meta":{"footnotes":""},"categories":[22,28,4],"tags":[],"class_list":["post-4570","post","type-post","status-publish","format-gallery","hentry","category-student-competition","category-dyalog-16","category-events","post_format-post-format-gallery"],"_links":{"self":[{"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/posts\/4570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/comments?post=4570"}],"version-history":[{"count":2,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/posts\/4570\/revisions"}],"predecessor-version":[{"id":4590,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/posts\/4570\/revisions\/4590"}],"wp:attachment":[{"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/media?parent=4570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/categories?post=4570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dyalog.com\/blog\/wp-json\/wp\/v2\/tags?post=4570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}