Initial Publication Date: December 11, 2015

Computational Skills

Concepts on this page were derived from participant presentations, discussions, and breakout groups at the 2015 Teaching Geoscience with MATLAB workshop and benefitted from the editing of Risa Madoff, University of North Dakota. This page has been expanded upon in Teaching Computation in the Sciences.

Basic programming can be a highly rewarding skill, both in understanding data, solving problems, and moving toward thinking like an expert. Learning the proper way to write code ensures that the scripts can be used by others and provides a highly marketable skill within and beyond the geosciences. Students can take control of their data, explore models, and output results with a complete understanding of what happened.

Scientific knowledge should not be a black box, and we should not advocate that any part of what we do not know should remain a mystery. Data collected in the field are the data used to generate a model, and so understanding where the data are headed is enormously important for knowing what to collect and how to collect it. Teaching the various elements of computational thinking in the context of disclosing scientific knowledge and current understandings of Earth processes goes hand-in-hand with advocating communicating science and making it public. While most geology students do not become programmers, it is important for them to understand that the computational and modeling aspects of science are not trivial matters. With a little understanding and groundwork, a non-programmer can know enough to ask probing questions about programming output. Thus, learning to program can help students develop:

  • Computational confidence and self-efficacy, including the lack of fear of the program
  • Problem solving skills
  • Logic and reasoning when dealing with big data and models
  • Dirt (data collection) to desktop - transform raw collected data to the program so it can be read
  • Control of the data - the opposite of a black box. Reading the code and know what it does and why!
  • Communicating science
  • Reproducible research
« Back to Teaching with MATLAB® page

Programming with MATLAB

In addition to the overarching benefits of MATLAB, there are specific benefits of learning to program using MATLAB, including:

  • Interacting directly at the command line making it easy to debug
  • Powerful enough for computationally intensive numerical modeling (e.g. Parallel computing toolbox)

Approaches to Getting Students Started

Frederik Simon
Click to view
Frederik Simons (Princeton University) presented his approach to introducing students to MATLAB at the 2015 Workshop: Hello Earth! A grounded introduction to MATLAB. Simons focuses on building programming skills and uses many engaged pedagogies including teaching with data and incorporating research-like experiences. His methods launch students into utilizing many MATLAB features and thinking like an expert.
Download PDF of presentation (Acrobat (PDF) 3.7MB Oct19 15)


Other approaches discussed at the workshop included:

  • written diaries recording and reflecting on code, syntax, and programming
  • plotting simple things (illustrating that the program produces things they are familiar with)
  • assigning variables / using command line
  • anatomy of a program - what is it? script, functions
  • Diagramming - coding with intention
  • Metacognitive opportunities reflection about a problem, such as calculations, correlations, spatial and temporal scales, dimensionality, conversion, functionality, and error.
More on getting started with MATLAB »

Resources

Activities

Courses

Journals

Computational Geoscience Departments