BAN 6003: Intro to Programming with R

Welcome to Introduction to Programming with R! This course provides an intensive, hands-on introduction to the R programming language. You will learn the fundamental skills required to acquire, munge, transform, manipulate, and visualize data in a computing environment that fosters reproducibility.

Class Information

  • Instructor: Brad Boehmke        
  • Thursday sessions
    • Forest section: 2:00-3:15
    • Wake section: 3:30-4:45
  • Friday sessions
    • Wake section: 9:30-10:45
    • Forest section: 11:00-12:15
  • Location: Classroom 349/351
  • Virtual office hours: MTW 12:00-1:00 via Slack
  • Credits: 1.5
  • Prereqs: NA
  • Webpage:
  • Additional Resources:

Course Objectives

Upon successfully completing this course, you will be able to:

  • Perform your data analysis in a literate programming environment
  • Import and manage structured and unstructured data
  • Manipulate, transform, and summarize your data
  • Join disparate data sources
  • Methodically explore and visualize your data
  • Develop your own functions
  • And perform basic predictive analytic modeling

…all with R!


All required classroom material will be provided in class or online. Any recommended yet optional material will also be provided in the classroom notes.



Week Lesson Description & Material
1 Introduction & Reproducibility
Jul 13 Intro to the course, R, and RStudio   
Jul 14 Managing workflow & reproducibility   
2 Exploratory Data Analysis
Jul 20 ggplot2 for visualization   
Jul 21 dplyr for data transformation   
3 Preparing Your Data
Jul 27 Importing & exporting data   
Jul 28 tidyr for tidy data   
4 Controlling Your Data
Aug 3 Relational data   
Aug 4 Factors & dates   
5 Advancing Your Skills
Aug 10 Text mining   
  Writing functions   
  Intro to statistical modeling   
Aug 11 Friday Hackathon   
6 Predictive Modeling
Aug 17 Modeling basics
Aug 18 Self-guided learning
7 Final Week
Aug 23 Class project due

Grading Policies

Course grades will consist of:

Final grades will be distributed according to the following cutoffs:

  • A     94 – 100%
  • A-    90 – 93%
  • B+    87 – 89%
  • B      83 – 86%
  • B-    80 – 82%
  • C+    77 – 79%
  • C      73 – 76%
  • C-    70 – 72%
  • D & F   Hopefully None!


We will use this software during the course. Plan on bringing a computer to each class meeting.

  • R and RStudio will be used to perform all programming activities, assignments, and the final project. You can find details on how to download these here.
  • Slack will replace e-mail and Blackboard for our course. You will receive an invitation to the WFU R slack team. You may wish to install one of the apps.


  1. Attendance: Your attendance is expected at every meeting. If you must be absent, I request that you notify me in advance of the class meeting.
  2. Academic Integrity: All students must adhere to the highest standards of academic integrity. Students are prohibited from engaging in plagiarism, cheating, misrepresentation, or any other act constituting a lack of academic integrity. Failure on the part of any individual to practice academic integrity is not condoned and will not be tolerated. Individuals who violate this policy are subject to adverse administrative action including disenrollment from school and disciplinary action.
  3. Grade appeals: If you think the grade of your work (homework, peer reviews, participation) is miscalculated, you have the right to appeal. The appeal must be done (through email) within 7 calendar days since the grade is released/posted. After that, your grade is final and will not be changed.
  4. Testing Policy: This is a project-based course. Consequently there will be no midterm or final exam.
  5. Late Assignments and Make-Ups: Late submissions will not be accepted.
  6. Tentative Plan: The course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary.


I have drawn ideas or readings from the following syllabi: