Course Description

Computer literacy is now essential in all aspects of science. Data management skills are needed for entering data without errors, storing it in a usable way, and extracting key aspects of the data for analysis. Basic programming is required for everything from accessing and managing data, data visualization, to statistical analysis, and modeling. This course will provide an introduction to data/project management, manipulation, visualization and analysis, across a broad set of ecological data. Class will typically consist of short introductions or question & answer sessions, followed by hands on computing exercises. The course will be taught using git/Github, R/RStudio, and RMarkdown, but the concepts learned will easily apply to all programming languages and database management systems. No background in databases or R/computational experience is required.

Prerequisite Knowledge and Skills

  • Willingness to practice coding
  • Willingness to fail
  • Willingness to try things

Purpose of Course

In this course you will learn fundamental aspects of computer programming that are necessary for conducting ecological research. By the end of the course you will be able to use these tools to import data into R, wrangle various types of data, summarize and analyze data, create visualizations, write reports/manuscripts/CV’s in RMarkdown, save and export data/figures, as well as collaborate on Github with version-controlled projects.

The focus of this course is to provide graduate students with training that develops and teaches the tools applicable to the entire process of reproducible data-driven research and encourage the use of open-source tools. By learning how to get the computer to do your work for you, you will be able to do more science faster, and your future-self will thank you.

Course Objectives

Students completing this course should be able to:

  • Organize R projects in GitHub
  • Read, import/export data
  • Tidy/summarize and analyze data
  • Create publication-quality graphs and figures
  • Write simple functions/programs in R
  • Search for and access new learning materials to further develop their computational skills
  • Apply these tools to address scientific research questions

Course format

To get the most out of in-class time together, R-DAVIS will combine video material with in-person discussion and activities that build on the video material for that week. Unless unforeseen circumstances arise, videos will be posted by Monday to the relevant week on the Lectures page. Please come to class having watched the material relevant to that week’s lesson, and perhaps having taken a cursory attempt at trying out what is covered in the videos. We are organizing the course this way so as to spend less of our time together lecturing, and more time working and learning together. The general plan for each course period will be: (1) brief overview of topic and tasks for class; (2) in-class challenge activities; (3) debrief of challenge activities; (4) get started on weekly “at-home” lab assignment as time allows.

Schedule

Week 1 (Sept. 23)

  • Course intro
  • Intro to git/GitHub and RStudio

Week 2 (Sept. 30)

  • Project management
  • How R thinks about data

Week 3 (Oct. 7)

  • Spreadsheet best practices
  • Starting with spreadsheets in R

Week 4 (Oct. 14)

  • Data manipulation in the tidyverse, part 1

Week 5 (Oct. 21)

  • Data manipulation in the tidyverse, part 2

Week 6 (Oct. 28)

  • Data visualization, part 1

Week 7 (Nov. 4)

  • Data visualization, part 2

Week 8 (Nov. 11) – Veterans Day Holiday

Week 9 (Nov. 18)

  • Date-time data with lubridate
  • Writing functions

Thanksgiving holiday (Nov. 25)

Week 10 (Dec. 2)

  • Iteration