No matter the discipline, scientific research and teaching in the 21st century relies heavily on computational tools. This class aims to introduce graduate students in the geological, geophysical and biogeochemical sciences to a wide range of commonly used concepts and data tools to empower them to find the right tool for their computational needs in research and teaching. For this purpose, the course will introduce the following topics to provide basic exposure and practice and go into more depth on those most relevant to the cohort.
- version control & markdown
- collaborative coding and data analysis
- literate programming with RMarkdown and Jupyter Notebooks
- variables, data types and machine precision
- flow control (loops and conditionals)
- vector operations
- functions
- basics of classes
- data structures
- data visualization with matplotlib (python) and ggplot (R)
- data evaluation and data statistics
- numerical computing (ODE solvers, finite difference methods)
- Landlab and other plug-and-play tools
- unit testing, error handling and test-drive development
- microcontroller programming and data recording
- data import/export, interaction with web data and databases
- typesetting math with LaTeX