By Thomas Etherington, Senior Research Leader, Royal Botanic Gardens, Kew, and Institute Fellow.
One of the Software Sustainability Institute’s missions is to increase programming skills through training. So as part of my Software Sustainability Institute Fellowship, and with support from the Royal Geographical Society, I am organising an introductory programming workshop targeted at geographers. However, as well as telling people what they need to know from the perspective of someone with programming skills, I also think it is important to understand how learning computer programming is viewed from the non-programmer's perspective so that the training can be made as effective as possible. Therefore, the application process for attending the workshop involved a survey that asked non-programmers questions about their perceptions of computer programming. I’ve summarised here what I think are some interestingly consistent themes and how these will affect the design of my workshop.
I had a total of 18 applicants for the workshop, the majority of whom had interests in human geography, so the following does need to be interpreted in that context. However, the applicants did cross a spectrum of educational levels, from BSc/BA to PhD, and careers, with students, researchers, university academics, and professionals all applying.
Perhaps the most important finding was that 83% of applicants reported that they never had the option to undertake any computer programming training as part of their formal geography education. While anecdotally I would say that computer programming is becoming a much common component of geography curricula here in the UK, the only formal survey I am aware of is from the US where it was found that there is currently little emphasis on computer programming as it is rarely a requirement for a geography degree (Bowlick et al. 2017). So there are certainly going to be geographers who need this kind training, which means that the kind of workshop I am running clearly does have value. However, there are still barriers to attending computer programming workshops, and quite interestingly, the most selected reason for not attending training in the past is that there isn’t any training relevant to geographers.
This issue of relevance was further underlined by some of the comments made about what attendees thought might be good ways of getting non-programming geographers to learn programming:
“... provide examples of programming tasks/techniques related to the discipline of geography, and to relate programming exercises to research tasks likely to be undertaken by geographers on a day-to-day basis.”
“... using different types of analysis but with real data so you can actually try and get the answer out the data. I've tried ... following a handout and it made little sense to me as the numbers that were used didn't mean anything as it was a fake data set.”
“Hands on exercises and clear examples (those that as researchers we normally encounter)”
A desire to learn with relevant examples and real data is something I have encountered before when trying to teach technical skills such as programming to geographers within a formal academic setting (Etherington 2016a, Etherington 2016b). The essence of those findings was that by using relevant examples, potentially by opening up the learning process such that learners can have some control over what examples they use, facilitates a deeper learning outcome.
Reducing the number of perceived barriers to learning through the use of relevant examples is also important as the perception of the respondents was that learning to computer program would be difficult. Fortunately, there was a clear perception that programming would be a very useful skill to develop. So while there will be geographers out there who are motivated to learn to program, I do think trainers need to remove as many obstacles to learning as possible, as with a preconceived idea that programming is hard, I think there is the potential for many learners to give up if they perceive or encounter additional difficulties with the learning process.
In terms of what non-programming geographers want to learn, there was a clear preference among some respondents for R and Python as desirable programming languages for geographers. In terms of programming tasks, relatively generic tasks such as statistics, plotting graphs, and data handling were popular, but so were other geographer specific tasks such as map making and spatial analyses, which perhaps again underlines the need for courses to contain some domain-specific content.
In summary, I think the responses to my survey emphasise the need and importance of domain-specific training, and that it isn’t possible to have a single course that will fit the need of every researcher. Therefore, I think the efforts of projects like Data Carpentry that aim to provide domain-specific training are very much needed. As for how I will make use of this information for my workshop, along with explaining things of generic importance to any scientist wanting to learn to program, I think it will be important to use geographical data and methods, and where possible also provide a choice of example datasets that fit in with the areas of geography that are of interest to the individual. I don’t think this requires much more effort from me as a trainer, but could increase the relevance of the learning activities, and therefore hopefully will promote much better training success.