GEO503: R Data Science


Professor Adam M. Wilson (

Office Hours: Tuesdays 9:00-11:00am


Thursdays 9:30-12:10pm in 144 Wilkeson Quad.

Course Structure

The course will focus on programming in the R language. Typical class sessions will consist of a short (~30 minute) lecture followed by around two hours of interactive exercises. All teaching and exercises are done from within RStudio.


Course announcements, homeworks, and other materials will be distributed through UBLearns. Please check the site regularly (or enable email notifications).

Computer requirements

During the course we will complete class exercises on your personal laptop (under any Mac, Linux, or Windows). If you do not have access to a laptop, please let the professor know as soon as possible. Students will need to install RStudio on their laptops (instructions here).

Email Policy

During the week, I will attempt to respond to emails within 24 hours of receiving them (not including weekends). Do not expect an immediate response (please plan accordingly). For example, do not send an email with a question about a homework the same day that the homework is due. If you send an email over the weekend, do not expect any response until Monday or Tuesday.

Student Learning Outcomes

Successful completion of this course will enable the student to use the R programming language to:

  1. develop approaches for integration of information/data
  2. inspect data and apply basic statistics to analysis and communication of geographical topics
  3. Understand and use scientific methodologies to perform spatial analyses in reproducible research workflows.

These learning outcomes can be related to those expected of students completing the Geography program.

Course Requirements


The major course components are as follows:

Course Participation (10%)

You are expected to attend class, actively participate in class discussions, and follow along during in-class interactive exercises. If you are not able to attend class, please let me know as soon as possible so an alternative can be arranged.

Package introduction (10%)

Each student will be expected to introduce a package (or two) that is relevant to their research interests in a 5 minute presentation during a class session. See full Package Introduction Description for more details.

Homeworks (30%)

Four homework assignments will be assigned throughout the semester and due before class the following week. Assignments will be provided via UBLearns as R scripts with embedded questions. See full Homework Description for more details.

Final Project and Presentation (50%)

The final project will consist of a poster-length summary of an analysis that tells a story about a topic of interest. This project can be related to the student’s own research or a separate topic.

Project stages

  • Proposal (5%)
  • First draft (evaluated by your peers) (5%)
  • Presentation (5%)
  • Final draft (35%)

See the schedule for details on deadlines. Unexcused late submissions will be docked 10 percentage points per 24 hour period. See full Project Description for more details.

There will be no final exam.

Grading Scale

Course grading will follow the grading procedures of the UB Graduate School.

Quality of Work Weighted Percentage Quality Points Weighted Grade
Superb 92+% 4 A
Excellent 90+% 3.67 A–
Very Good 88+% 3.33 B+
Good 85+% 3.0 B
Acceptable 80+% 2.67 B–
Adequate 75+% 2.33 C+
Barely Adequate 70+% 2.0 C
Substantially Flawed 60+% 1.0 D
Flawed <60% 0.5 F


There will be no textbook for the course. All materials will be available through this website.

Academic Integrity

The course will follow the university Academic Integrity Policy. Please review it and ask if you have any questions. Writing computer code often involves use of existing code chunks (e.g. copying an example from the documentation) which complicates identification of academic dishonesty. Students are responsible for comprehending the code they submit, regardless of its source. If there is reason to believe that submitted code was simply copied from elsewhere, the student will be asked to verbally (and specifically) explain the code used in the analysis to ensure comprehension.

Course Content

Course content is designed to be flexible to accommodate student interest and abilities. The order and timing of course topics may change as the semester progresses. See the course schedule for detailed course content.