Academic journal article Journal of Geoscience Education

Experiences with Efficient Methodologies for Teaching Computer Programming to Geoscientists

Academic journal article Journal of Geoscience Education

Experiences with Efficient Methodologies for Teaching Computer Programming to Geoscientists

Article excerpt

INTRODUCTION

Computer programming is increasingly becoming an essential skill for geoscientists as the world becomes more digitalized. We might commonly think of computer programming as an activity carried out by a relatively small number of domain specialists developing complex application software, perhaps in collaboration with computer scientists. However, geoscientists and engineers are faced with numerous day-to-day tasks such as manipulating datasets (e.g., standardizing, reformatting, or filtering), statistical analysis, plotting, or automating repetitive tasks such as rerunning the same program with many different data inputs and gathering the results for analysis. Even in the case of software use in which no active programming is required, a basic knowledge of computer programming and experience in debugging can be critical when troubleshooting third-party software. This is because programming skills provide the user with a conceptual model for understanding what might be going wrong, systematically characterize the problem, and then either modify their workflow or constructively engage the software developers to resolve the problem. Enhanced computing power enables simulation and data inversion to play a greater role in discovery and prediction in the geosciences. Arguably, we are rapidly approaching a point where innovations will primarily come from those who are able to translate an idea into an algorithm, and then into computer code.

It has long been recognized that teaching basic programming skills to novices is difficult (Robins et al., 2003). Winslow (1996) suggests that it takes about 10 y of experience to turn a novice into an expert programmer. It is worrying that these conclusions were mostly drawn from teaching computer science students for whom computing dominates the curriculum. Therefore, it follows that careful consideration needs to be given to the design of an introductory programming course when it only forms a small part of a noncomputing curriculum. There are also motivational issues due, in part, to the subject being largely associated with the field of computer science, and geoscientists are therefore often surprised to see it as part of their own curriculum. This can lead to the opinion that the subject is not worth pursuing, or the worry that they do not have the background or potential to do well in the subject. Even in the case in which the student does have a strong computing background, learning how to program, much like learning to swim or how to ride a bike, requires a great deal of practice. The learning experience is likely going to be completely different to the experiences the student is used to. Not only is there a large amount of unfamiliar material and knowledge to understand, the student must also adapt to different methods of content delivery and a highly practical learning methodology. Furthermore, the mind has to be trained to think "like a computer" (i.e., to follow a series of steps in a logical way as a process).

In light of these challenges, a considerable amount of research has gone into developing effective strategies for teaching a course in introductory programming; an excellent review is given by Pears et al. (2007). A key consideration in a geoscience context (or indeed any course outside a dedicated computer science degree) is that introductory programming is not being taught as part of a wider computer science curriculum, but instead has to fit within an already full geoscience curriculum. One specific concern is that a single introductory programming course is unlikely to enable the students to take these skills and reapply them to a different problem-solving context from that in which they were presented (Palumbo, 1990). Therefore, we also need to consider where else in the curriculum there are opportunities to use and extend students' programming skills and experience.

The choice of a first programming language also has a significant impact on learning. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.