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.

Self-grading and Class Expectations

R-DAVIS follows a self-grading protocol. In order to pass the class, each student is expected to attend class every Thursday, submit weekly assignments, and take the midterm and final assignment. Additionally, it is strongly encouraged for students to attend the weekly help sessions on Tuesdays.

At the start of the quarter, each student specifies how they would like to earn credit for the course (e.g., complete the weekly homework as assigned or in application to their own work). During finals week, we will then ask each student to report on how well they met their goals for the quarter, plus some additional information on their successes and challenges throughout the quarter.

Each student will also have to complete a midterm and final assignment. Both assignments will be ungraded, but we will use these assignments as an opportunity to provide individual feedback to each student on concepts they would benefit from focusing on moving forward.

Schedule

Week 1

Sept. 24

  • Pre-class setup help

Sept. 26

  • Course intro

  • Intro to git/GitHub and RStudio

Week 2

Oct. 1

  • Drop-in lab

Oct. 3

  • Project management

  • How R thinks about data

Week 3

Oct. 8

  • Drop-in lab

Oct. 10

  • Spreadsheet best practices

  • Starting with spreadsheets in R

Week 4

Oct. 15

  • Drop-in lab

Oct. 17

  • Data manipulation in the tidyverse, part 1

Week 5

Oct. 22

  • Drop-in lab

Oct. 24

  • Data manipulation in the tidyverse, part 2

Week 6

Oct. 29

  • Midterm (during drop-in lab)

Oct. 31

  • Data visualization, part 1

Week 7

Nov. 5

  • Drop-in lab

Nov. 7

  • Data visualization, part 2

Week 8

Nov. 12

  • Drop-in lab

Nov. 14

  • Date-time data with lubridate

  • Writing functions

Week 9

Nov. 19

  • Drop-in lab

Nov. 21

  • Iteration

Thanksgiving holiday (Nov. 28)

Week 10

Dec. 3

  • Drop-in lab

Dec. 5

  • Collaborative Github Skills

Finals

Dec. 10

  • Drop-in lab

Dec. 12

  • Final assignment (in class & mandatory)