Experiences on the Dyalog APL Training Course

James HeslipAPLLeave a Comment

The journey there

Crawley to Bramley isn’t supposed to be the most complicated journey in the world, yet somehow it turned out to be for us. My mum decided that she’d take me up there to spare me the pain of public transport. With conductor strikes and England’s train system being a bit of a mess in general, I tried my hardest to avoid it- even more so with a large suitcase. We decided we’d make a day out of it, and went to get some dinner at a local restaurant beforehand. We took the backroads, and after getting lost at nearly every turn we finally arrived an hour and a half later than planned...


I travelled there the evening before, and when I arrived Dyalog House was pretty empty. Roger Hui let me in and showed me to my room, but he was the only other person there at the time. Before I’d had the chance to make my bed up and unpack a couple of things, though, Bjorn Christensen and his daughter Sofie had arrived from Denmark. Gitte and Morten arrived around midnight but by this point I was already in bed. The evening’s entertainment consisted of us watching half a film and trying (not very hard I might add) to juggle with some balls from the lounge.


The actual course

I got a lift to the office each day with either Bjorn, Morten or Jason Rivers (who arrived the day after me). The journey wasn’t far but the area was very green and open compared to Crawley. The office was very big and yet felt pretty homely; I was invited to take my shoes off if I wanted, which made things feel more relaxed and informal. We had a brief tour before setting things up for the course.

Bernard Legrand, the teacher of the course, arrived about half an hour after us. We began once everyone had arrived, got settled in, and got a cup of tea. Initially we covered a brief background of Dyalog APL: what it’s good for and in what sort of applications it would be used. This then extended to a demonstration of basic operations (2­+2 = 4, and so on). We would do exercises from a specification at certain points of the day and these would require us to use the tools we’d been taught earlier. At the end of each day we’d have a test which would show how well you’d understood the teaching, and what areas you need to focus on to cement the knowledge of that subject. These tests weren’t particularly formal (the score didn’t matter) but it was recommended that you completed these without the use of a computer. The first day was really just covering the basics.

In the following days our code became more advanced. We created a function which would put a frame around a set of data. There was no real use to this other than to make things look pretty. To do this we used indexed assignment to place line drawing characters (┌┐└┘─│┼├┤┴┬) around the outsides of the data, and on the corners. Still not too difficult but useful for generating reports and such.

We also created a function which would generate a Gantt diagram from given data. We were given the week of the year in which a project would begin, the week it would end and how many workers would be working that project. From this we could generate a Boolean matrix with 1s representing work, and 0s representing not work. Each row represented a different project. The aim of this task was to work out how many sandwiches would need to be made to feed all of the workers each day. The 1s and 0s were then replaced with something a bit easier to read (either a ‘⎕‘or a ‘-‘) resulting in something like this:


On the last day of the course we were shown that APL can create a link with Excel, and be used to manipulate data from an external spreadsheet. This is an area which I was unfamiliar with before the course, yet looks to be very useful. This is something which I am taking time to research further as I feel that it could be something I could use more in my everyday work.

Final thoughts

The format of the course worked very well for me. I liked having a Student Workspace with all of the necessary variables set up for me so that I could follow along with what Bernard was doing in his session. If there was something I wanted to check something, i.e. if my function does the same as what Bernard was proposing, that could all be done very easily. This was particularly useful for me. I was very lucky to have made it onto his final course before he retires.

Everyone at Dyalog was extremely welcoming. The five of us taking the course and Mr. Legrand were invited to join the team for a curry at a local restaurant one night to celebrate Andy’s birthday. All of the food up in Bramley seemed nicer than my average meal. I don’t know if it was Gitte’s cooking or the daily runs to the bakery which topped it for me. Either way I’m looking forward to seeing everybody again when I get the chance.

For more information on the course please visit: Dyalog APL Training Courses