Martin Orr's Blog

CATAM Projects

Posted by Martin Orr on Saturday, 03 May 2008 at 17:17

A substantial part of the past couple of weeks was occupied by CATAM, the computational projects for the Maths Tripos. For each project you write some computer programs for mathematical purposes, then write a report on the results you obtained and the mathematics involved. (This is the only part of the Maths Tripos assessment not done by exams.) This year's projects were more interesting than last year's - at least the ones I did contained a greater mathematical content, and got me interested in elliptic curves. I also did my programming this year in Scala, the language I learned last summer, to try out something different - I have never been entirely satisfied with any programming language for doing mathematics. (And now that I have got into functional programming I have moved the goalposts. I did my CATAM projects in an almost pure functional style, but there were a few places where I couldn't see any efficient way to do that.)

The deadline for that was on Wednesday, and I have finished my supervisions from last term yesterday, so now all that is left until the exams at the start of June is revision. That seems like a long time but there is a lot to revise (and longer than before since in previous years I did some lectures in Easter term).

2 comments Tags catam, programming, scala, tripos

Lessons from Sygneca

Posted by Martin Orr on Wednesday, 26 September 2007 at 10:11

I spent the summer working at Sygneca in Basingstoke. This was an interesting experience as, while I have developed some web-based projects for school and contributed the odd bit to open source projects, I have never worked on software development in conjunction with other people. Nevertheless each person mostly worked independently on separate projects. So long as the projects are small enough for this to be feasible, it definitely seems to be the most efficient way to develop: it is important when programming to be able to hold the entire project in your head at once (the details of bits you have already done can be dropped once you are satisfied they work), and this is hard if someone else is doing bits of it. When multiple people work on a project, each person's piece should be as separate as possible from the rest, with a strictly defined (and simple) interface. This worked well on a couple of occasions where a project required a component not only separate from, but different in nature to, the main project.

Sygneca does its development in a language called Scala which is a language developed at a Swiss university. It is an active research project, or set of research projects, so contains a lot of cutting-edge features; however it is actually very easy to use, and you can gradually pick up the more advanced features. It incorporates functional programming and a rich type system, both pieces of computer science with a strong mathematical content which I had never explored before.

no comments Tags basingstoke, programming, scala, sygneca, tech