Winning the APL Programming Contest – Finance Category

#Dyalog16 – Vibeke Ulmann

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

Zack Batik is 23 years old and is in his second year studying for an undergraduate in Maths and Economics at the University of Cape Town in South Africa. See Zack’s profile here: http://www.dyalog.com/news/112/420/2016-APL-Programming-Contest-Winners.htm

Until about 18 months ago Zack had never heard about Dyalog APL. Indeed, he’d never done any programming himself. The event that happened those 18months ago was that he attended a talk by Dyalog’s CXO Morten Kromberg – and at the talk he also met Illse Nell from Riskflow in Johannesburg – and they got chatting. (http://www.riskflow.com/ ).

Zack was just about to start Uni – but 2 weeks before registration, he packed up his bags and went to Johannesburg instead as Illse had persuaded him to ditch Uni and come work as an intern at Riskflow.

“I spent the first two months learning Dyalog APL using the Mastering Dyalog APL book by Bernard Legrand (http://www.dyalog.com/mastering-dyalog-apl.htm ). It pretty much became my bible, and I went through it chapter and verse, did all the exercises and so on. It was extremely useful as it got me everything I needed in terms of having the start for exploring things in more depth”, Zack said. I was then given a prototype of an Index Forecasting System (IFS) – and asked if I could tidy it up. When I discovered it was copyrighted in 1984 – it dawned on me I probably had to write this thing again from scratch, which I then proceeded to do! I went through a phenomenal progression in terms of knowing what to do, and how to do it and how to make code prettier.”

“Working on the IFS application gave me a good foundation for entering the programming contest this year, although I did also enter last year, where I was given a participation award. But this year it was obvious to me that I would address the Finance problems, and especially the third problem – which dealt with a Monte Carlo modelling – was great, as I could use some of the knowledge I had gained from working on the IFS,” Zack explained.

In terms of how he approached the Programming Contest this year – after breezing through the 10 one liner problems in Phase 1, Zack mainly focused on the Finance problems in Phase 2.

He then showed us how he solved a couple of the Phase 1 problems, such as ‘mean’ and ‘the Median’, before mowing to presenting his solutions for the Phase 2 problems. During lunch – prior to his presentation – I interviewed Zack. And I took the opportunity to ask him, how long it took him to solve each problem.

  • Calculating Forward Rate Problem – approx. 1/2 hour
  • Triangular Distribution – approx. 2 hours
  • The Monte Carlo Modelling – approx. 2 hours

However – he admitted that he probably spent the time over a week, as he constantly wanted to ‘pretty up’ the code, before submitting his solutions.

Although Zack HAS now re-started his University studies in Cape Town, he is still retained to Riskflow for about 40 hours per month.

It is also worth noting, that the work he did on the IFS, has resulted in it going into production at Riskflow – so also on that front we commend him for a job well done!

Comments are closed.