Course Syllabus


Use data-driven programming in R for the handling, formatting, and visualization of messy and complex data. Students will implement data handling techniques and the grammar of graphics in visualizing complex data.

Credits: 3



Complete Option A or Option B.

  • Option A
    • Complete MATH 325: Intermediate Statistics (3 credits)
  • Option B
    • Complete both of these courses:
      • CSE 111: Programming With Functions (2 credits)
      • DS 250: Data Science Programming


Competency Assumptions

This is a data coding class. The prerequisites for this course include introductory statistics and introductory programming in R. As such, it is assumed that the students know what a console does and how to execute scripts. This course will not focus on traditional statistical hypothesis testing or complex statistical modeling but will leverage the concepts of how to visualize uncertainty and variability. A firm understanding of standard deviation and variance is needed. There is a population and standard deviation review as well.

Required Resources

This course uses a free online textbook. Links to the textbook are included throughout the course.

Resource Title/Description
(books, software, etc.)
Author/Provider Ed./Vol. 13-Digit ISBN (if applicable)
R for Data Science
(available free online)
Hadley Wickham and Garrett Grolemund 1st 978-1491910399

(Assignments will mostly be turned in via Github. There are reminders in the course for your convenience. This is a free resource and directions for setup are included in Week 01.)

(Most communication for this class will take place in Slack. This is a free resource and directions for setup are included in Week 01.)

(RStudio is an integrated development environment (IDE) that you will use throughout the course. This is a free resource and directions for setup are included in Week 01.)

(Class discussion assignments will take place in Perusall. This is a free resource and directions for setup are included in Week 01.)


Course Outcomes (CO)

At the completion of this course, successful students will be able to do the following:

  1. Adapt data from various formats and structures to a desirable format for analysis and visualization.
  2. Create effective visualizations of large and messy datasets using the grammar of graphics with programming.
  3. Use current analysis, presentation, and collaboration tools in the data science field (R, Slack, GitHub, etc.) to communicate with data scientists and other parties.
  4. Develop confidence in and strategies for completing ambiguous requests.
  5. Describe where data wrangling and visualization resides within the data science profession.

Major Assignments

The table below is meant to help you see the relevance of each major assignment as it pertains to the course outcomes (CO).

Major Assignment Description CO#

Case Studies

Create visualizations that answer open-ended questions. You are not given code, functions, or packages and asked to regurgitate them. Instead you research, explore, problem solve, and develop your coding and analysis strategies. 1 , 2, 3, 4
Coding Challenges Complete timed coding challenges to demonstrate your proficiency in the material. 1, 2, 3, 4

Weekly Patterns

The table below displays typical weekly activities, due dates, and activity descriptions. 

Due Date* Learning Model Activity Title Description
Beginning of Week Prepare and Teach One Another Being Readings Discussion of readings or videos in Perusall that prepare you to be a data analyst or scientist.
Middle of the Week Prepare Guided Instruction

Study demonstration videos, complete code step-through exercises, and read the hints for setting up and solving the tasks and case studies.

Middle of the Week Teach One Another and Ponder/Prove Tasks Complete the assigned tasks. These assignments are turned in via GitHub.
Middle of the Week Teach One Another Weekly Team Meeting Share with group members recently worked on Tasks and Case Studies. Fill out the weekly Team Report to assess team members' participation and preparation for the meeting.
End of Week Ponder and Prove Case Study Students individually complete the Case Studies which tend to be more involved assignments that often incorporate all the learning from the current and potentially prior weeks. Questions can be asked in Slack, Data Science Lab, or the instructor or TA. These assignments are turned in via GitHub. The assignment is marked as complete or incomplete in I-Learn. Feedback on incomplete assignments may be found in GitHub issues or in I-Learn.

*Set your time zone within user preferences so your due dates and times display correctly.

Learning Model

The student will find, in all assignments, principles of the BYU-Idaho Learning Model. Consider how each of these principles is rooted in pure doctrine and look for them throughout the course.

Learners and teachers at BYU-Idaho accomplish the following: 

  1. Exercise faith in the Lord Jesus Christ as a principle of action and power.

  2. Understand that true teaching is done by and with the Holy Ghost.

  3. Lay hold upon the word of God, as found in the Holy Scriptures and in the words of the prophets-in all disciplines.

  4. Act for themselves and accept responsibility for learning and teaching.

  5. Love, serve, and teach one another.



Online students are expected to spend three to four hours per week per credit hour. For a 3-credit class, you should be spending 9–12 hours per week on the class.

Group Work

Students collaborate with their class and an entire community of BYU-Idaho programmers by asking questions in Slack. Don't be afraid to ask questions and share code or error messages. Learning to articulate a question in a way that others can understand and help you solve the problem is a resumé-worthy skill.

Also, students will be organized into teams in week 2 and should begin meeting weekly in week 3. The meetings are primarily retrospective, allowing students to share their struggles, successes, and solutions from the most recently due assignments. Having completed the previously due tasks and case studies will allow the student to learn and contribute in these meeting. Their level of participation and preparation will be evaluated by themselves and peers.

Group members will hold each other accountable through peer and self evaluations each week called Team Reports. 

What does it mean to "contribute" and to be "prepared"? Contributing may be sharing solutions, or partial solutions, or helping the group discussion along by asking informed questions about pitfall/roadblocks in the task. "Prepared" means you spent sufficient energy in the task to attempt all of its aspects, to explain things you tried that worked and didn't work, and to become aware of what needs to be done. It does not necessarily mean you have a polished and completed assignment.

See the class policy on AI and Shared repos for additional clarification.

Late Work and Retries

As a sign of professionalism and respect, students should complete work on time. Not completing the work sufficiently on time will prevent students from receiving a rating of "prepared" for the team meeting from their peers - thus adversely affecting their grade; however, it is better to complete something late than not at all. No initial submits will be allowed more than 2 weeks after the original deadline.

If an assignment is marked as "incomplete" by a TA or instructor the student should address feedback and then resubmit the assignment. You will need to fix the assignment, push it to GitHub again and resubmit the link in I-learn (even if the link is identical, this resubmitting is what notifies the instructor to grade the assignment again).  This process of feedback and resubmit can iterate multiple times, but generally if a student does not have a "complete" mark within 2 weeks of the original due date of an assignment, the instructor reserves the right for the "incomplete" mark to be final.



Grading is a brutal outcome of mass learning and academia. This is a class at a university and therefore students will have to manage this side effect. However, it does not have to control our learning or thinking in this class. Learning and thinking should motivate each activity.

Specifications Grading

As a team, teacher and student, have the challenge to improve in three months. Instructors have worked hard to identify the specifications needed for a data visualization specialist (as an undergraduate). The instructor's goal is to align the student's grade with the skill specification the student has mastered. In other words, the grade the student wants will determine how much work the student will do. Tasks will not be traditionally graded. If the work meets the specified criteria the student will get full credit. There is no partial credit on tasks.

In a specifications-grading system, all tasks are evaluated on a high-standards complete or incomplete basis using detailed checklists of task requirements and expectations. Letter grades are earned by passing marks on a set of tasks. This system provides for a variety of choice and is closer to how learning, and work, is done in the real world. It will be easy for the instructor to tell if work is complete, done in good faith, and consistent with the requirements.

Here are the grading guidelines students should use when developing their final grade proposal at the end of the year. 

In all grade levels above a C+, the Exit Interview assignment must be completed.

NOTE: The definitive word is "complete." Starting them or getting them almost done is not complete.


35 Assignments (tasks and case studies)

Mean Perusall Score
(ignore two lowest scores)
Semester Project Preparation and Contribution to Team 
A 32 >= 2.0 Yes prepared contributor in ≥ 80% of team meetings (as measured by Team Reports)
A- 30 >= 2.0 Yes
B+ 27 >= 1.5 Yes
B 24 >= 1.5 No prepared contributor in >60% of team meetings (as measured by Team Reports)
B- 21 >= 1.5 No
C+ 18 >= 1.0 No prepared contributor >40% of team meetings (as measured by Team Reports)
C 15 >= 1.0 No
C- 12 >= 0.5 No prepared contributor >20% of team meetings (as measured by Team Reports)
D 10 >= 0 No prepared contributor >10% of team meetings (as measured by Team Reports)

Coding Challenge

In order for the instructor to see original coding work from students, three coding challenges will be conducted. Students will need to complete all three. Each coding challenge will focus on the skills learned during the first five or six weeks of the course. The goal is for students to represent the same gestalt, or in other words, recreate a clean graph to the best of the student's ability such that your graph tells the same story and accurately represents the data. This test for the instructor to see if students have learned the skills from the tasks and case studies. These will take the form of a timed assignment, at the end of which the student must upload the knitted HTML file they have created. If students cannot take the data and get a graph in 1.5 hours, then perhaps students have not truly learned the required wrangling and visualization skills. This is also good practice for a job interview scenario where they request the completion of a coding task.

The final coding challenge is the one that matters most; however, the instructor will take into consideration your performance on all three tasks, so students should do their best each time. Challenges are evaluated using a number between 0 and 4. 4 is excellent, 3 is satisfactory, 2 is evidence of competency but has not yet mastered the skills. A score of 1 or 0 indicates little to no evidence of competency has been demonstrated.

The instructor may drop a student's grade depending on their performance on the code challenge. Conversely, if a student is on the borderline between two grades, good performance on the coding challenges can serve as evidence that the student deserves the higher grade. Usually, students proposed grades are in line with the caliber of their coding challenge performance, and minimal change is made to their final grade.

Grade Updates in I-Learn

Most learning management systems are not built to handle specifications grading well. Therefore, the grade in I-Learn may not reflect the grade a student can anticipate earning. However, it is relatively simple to determine what grade a student is on track to get at any given time using the rubric above. There will be one check-point around mid-semester to ensure students are understanding the grading scale correctly and verify students are on track to get your desired grade. This check-point will take the form of a quiz in which students estimate their final grade based on a continuation of the current pace of assignment completion. The instructor will review each student's grade estimate and reach out to individual students if there is a discrepancy about their level of performance.

University Policies

Students with Disabilities

BYU-Idaho is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by BYU-Idaho Disability Services. If you need assistance or feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established policy and procedures.

If you have any disability that may impair your ability to complete this course successfully, please contact Disability Services as soon as possible, preferably before the beginning of the semester, in order to ensure you receive appropriate accommodations.

Disability Services Contact Information:

Other University Policies

Go to the Student Resources module to review the university policies regarding honesty, online etiquette, communication expectations, etc.

Course Summary:

Date Details Due