Coventry, 28 September - 1 October 2012.
By Aleksandra Pawlik, Agent and PhD student, the Open University.
Python used for teaching programming at all levels – from schools to universities
RasperryPi & Python – excellent duet for teaching computer science; there is still a lot of room for further development and new ideas
Larch - Programming Environment supporting visual programming
Sustainable software for better research – Shoaib Sufi’s presentation about Software Sustainability Institute
PyCon UK 2012 gathered together a very vibrant community whose members’ professional or personal interests evolve around Python programming language. Among over 200 delegates many, if not most, were professional software developers working in the IT industry. A smaller number of attendees represented academia and other educational institutions. There were also a few representatives of charity organisations and non-profit foundations (for example, Evidence for Development http://www.evidencefordevelopment.com/ or Rasperry Pi http://www.raspberrypi.org).
The conference lasted 4 days, from 28th September till 1st October 2012. The schedule was very busy with three parallel sessions/activities to choose from. These sessions included talks, tutorials and sprints. The conference was organised around four main themes:
1) Education – Python is becoming a very popular programming language not only within the professional/commercial IT but also among scientists who need to develop pieces of software for their own research as well as among school students; clear and not-overcomplicated syntax makes Python relatively easy to teach even to young children and other programming novices;
2) Rich Apps – Python underpinning different web service application enables fast development of flexible and powerful apps;
3) International Development – Python is used in a growing number of libre software projects, including those which have has been successfully entering the area of software development for charity organisations – including those organisations focusing on helping the developing countries;
4) Best Practice – this topic is not Python-specific but with growing number of Python programmers (including those self-taught) best practices, methods and tools supporting software development become essential skills.
Within the Education theme there were three things which deserve particular attention. The first was the discussion about using Python to teach ICT not only at the university level (to non-Computer Science students) but also at schools. This topic was widely discussed by several participants of the conference during the panel discussion. One of them was Carrie Ann Philbin (http://www.ictwithmissp.co.uk/), an ICT teacher with background in IT. As Carrie Ann emphasised currently there is no fixed curriculum when it comes to teaching ICT which gives the ICT teachers a lot of freedom to teach but at the same time may leave them a bit lost and not prepared to what will be expected from them in the near future, when a curriculum is introduced. Python may be a very good language to teach at schools, however many teachers may not be prepared and trained to the level of teaching proper programming. It is clear that representatives of different communities (ICT teachers, professional IT and academics in the IT area) need to work together to help in preparing the curriculum, materials and training the teachers.
Another topic related to the Education theme was Rasperry Pi (http://www.raspberrypi.org). In his keynote speech Alex Bradbury (http://asbradbury.org/) discussed how Rasperry Pi in connection with Python can be used for teaching computing and for a variety of other, primarily educational, projects. Again, the emphasis was on the fact that teaching programming and ICT in a wider context should not be left only to the universities. These skills should be taught at schools and coordination between curricula at different educational levels is essential.
Jonathan Fine presented a comprehensive review of online Python courses and resources (http://2012.pyconuk.net/Talks/PythonOnline). All presented courses are freely available and almost anyone can find a suitable course for themselves. The courses do not only cover introductory programming but also advanced topics such as programming for scientists and elements of computer science (data structures and algorithms).
There were numerous very interesting tools presented during the conference. Apart from the longer (30 min to 1 h) talks, the delegates presented their projects during lightning talks. In fact, the lightning talks were an excellent opportunity to have a preview of new ideas, projects and problems within the Python community. The limited time (up to 5 minutes) almost completely eliminated the problem of “death by Power Point”. One of the key factors which made the lighting talks very attractive was a dynamic host Harald Massa (http://www.lightningtalkman.com).
One of the tools presented during PyCon UK was Larch Programming Environment (https://sites.google.com/site/larchenv/) supporting exploratory programming in Python. Larch offers similar functionalities to other visual interactive environments such as IPython Notebook. It combines a flexibility of a rich text editor with interactive output. That is the code can be edited and executed within one environment which allows a programmer to have a better insight and understanding of the programming task.
Another tool worth attention was docopt library (http://docopt.org) allowing the developers to build elegant and efficient command line interfaces to their programs. Vladimir Keleshev (http://www.keleshev.com/) discussed the shortcomings of the existing tools (such as optparse and argparse) and showed how docopt can help to build more user-centred command line interfaces by following POSIX conventions, in particular those used in help messages and man pages.
One of the talks within the Best Practices theme focused on organising, managing and running programming sprints presented by Jacob Hallen who has a long experience in organising such events, in particular within the PyPy project (http://pypy.org/). Jacob emphasised the need of pair programming during sprints. Ideally the pairs should always have a “master-apprentice” constellation to allow maximum knowledge transfer. No sprint participant should be left alone to work. It seems that many of the ideas for sprints could be applicable in scientific software development in which it is quite often that the whole team working on a project is able to get together and work on a piece of software for short and intensive periods of time.
Shoaib Sufi gave a talk about Software Sustainability Institute. Shoaib presented SSI’s main goals and discussed how Python and community around it fits into the research world.
During my presentation, I discussed various aspects of crowd sourcing documentation in the SciPy community. I also talked about the advantages and disadvantages of opening documentation production to the user community.