Syllabus

This syllabus is subject to change. All changes will be announced both in class, on Slack, and on this page.

Course Info:

Instructor: Victoria (Vic) Sass
Lecture: Tuesdays 4:30-6:20pm
Location: Raitt 121
Office Hours: Wednesdays 1pm-3pm on Zoom (link on Canvas)

Overview and Learning Objectives:

This course is intended to give students a foundational understanding of programming in the statistical language R. This knowledge is intended to be broadly useful wherever you encounter data in your education and career. General topics we will focus on include:

  • Developing intermediate data management and visualization skills in R

  • Organizing projects and creating reproducible research

  • Cleaning data

  • Linking multiple data sets together

  • Learning basic programming skills

By the end of this course you should feel confident approaching any data you encounter in the future. We will cover almost no statistics, however it is the intention that this course will leave you prepared to progress in CS&SS or STAT courses with the ability to focus on statistics instead of coding. Additionally, the basic concepts you learn will be applicable to other programming languages and research in general, such as logic and algorithmic thinking.

Structure:

This course has a hands-on lecture and drop-in office hours, each once a week:

  • Lecture: On Tuesdays we will meet for an interactive session where we’ll cover a specific topic to help you learn fundamental skills, concepts, and principles for learning R. Additionally, these sessions will provide you with the opportunity to work with each other to learn and practice key skills in R. I will be available to answer questions and help troubleshoot code as well.

  • Office Hours (remote; one 2-hour session): On Wednesdays, I will hold drop-in office hours on Zoom from 1-3pm. This is a great time to ask questions, get advice, or continue discussions from lecture. We can talk in a breakout room or with the group! A link to the Zoom meeting can be found on Canvas.

Schedule:

Below is a summary of topics that will be covered each week in lecture.

September 30

October 7

October 14

October 21

October 28

November 4

November 11

November 18

November 25

December 2

December 9






















Week 1: Introduction to R, RStudio, and Quarto

Week 2: Visualizing Data

Week 3: Workflow and Reproducibility

Week 4: Importing, Exporting, and Cleaning Data

Week 5: Manipulating and Summarizing Data

Week 6: Data Structures & Types

Veterans Day Holiday (No Class)

Week 7: Working with Text Data

Week 8: Writing Functions

Week 9: Iteration

Week 10: Next Steps (optional, based on students’ interest) 

This course has no scheduled meeting during final exam week but if enough students are interested in attending a remote lecture about how to progress further with R, an optional final lecture will be offered.

Prerequisites:

This course has no prerequisites.

Materials and Texts:

This course has no required materials or texts. However, there are a few things to note:

  • Computers: This course is primarily focused on computation. You’re expected to bring a personal laptop to class as it helps to gain familiarity with the software you’ll be using and gaining hands-on experience with the material we’re learning. If you don’t have access to a laptop you can loan one from UW through the Student Technology Loan Program.
Keep In Mind

The versions of R, RStudio, and Quarto (as well as any packages you have installed) will not necessarily be the same/up to date if you do your work on different computers. My advice is to consistently use the same device for homework assignments or to make sure to download the latest versions of R, RStudio, and Quarto when using a new machine.

  • Online Textbooks: This course has no required textbooks, but there are many helpful resources available for free online. I will be suggesting selections from R for Data Science by Hadley Wickham, Mine Çetinkaya-Rundel, & Garrett Grolemund to pair with each week’s topic. While not required, I strongly suggest reading those selections before doing the homework for that week.

Tools for Class:

Communication

Learning is collaborative! In addition to being the place to communicate with me, our Slack is also where you can ask one another questions, share resources, and just generally check in with each other about how your adventures with R are going. You can find the link to join our workplace on our course Canvas.

Homework & Peer-Reviews

We will be using Canvas solely for homework & peer review submissions/deadlines and for any links I only want to distribute to those registered for this class (i.e. Slack and Office Hours Zoom).

Course Content

All course content will be accessible on this website.

Grading

This course is graded as credit/no credit. To pass you need to receive at least 60% of the available points. There will be 9 graded homework assignments: one for each week of content (except week 10). There are 4 points possible for each week that features a homework.

  • Homework (75%; 3 points): These must be turned in as rendered Markdown documents which we will learn to create and for which templates are provided. They will be graded on a 0 to 3 point scale based on a simple effort-focused rubric found on the course website. These are designed first and foremost to develop skills rather than "prove" you have learned concepts. I encourage you to communicate and work together, so long as you write and explain your code yourself and do not copy work. You can learn a lot from replicating others' code, but you will learn nothing if you copy it without knowing how it works! In other words, you’re not really going to learn unless you do the coding yourself!1

  • Peer Review (25%; 1 point): Each week an assignment is due, students will be randomly assigned to grade another student's assignment following a 0 to 3 rubric. They will be expected to provide constructive feedback and commentary if something new was learned. Reading others' code is an important skill and you will write better code knowing others will see it. These reviews will be due 5 days after homework is due. Each peer review is worth 1 point and will be evaluated by the instructor on a binary satisfactory/not satisfactory scale.

  • Schedule: We have a 2-hour interactive lecture/lab session on Tuesdays. Office Hours will be be held on Wednesdays. Homeworks will be due before class each Tuesday and peer reviews will be due 5 days later, by end-of-day on Sundays. Make sure to check the homework page or Canvas for all due dates!

1 Note: AI tools can be helpful while you’re learning R, especially for asking clarifying questions about what code is doing. But keep in mind that they often make mistakes — and sometimes confidently give you flawed, biased, and/or suboptimal code. If you don’t understand the basics, fixing those mistakes can be more work than writing the code yourself. Think of AI as a study aid — useful for clarification and explanations — but if you rely on it too much, it can actually hold back your learning and even weaken your coding skills over time. The real learning happens when you practice coding on your own.

Late Homework Will Automatically Lose Peer-Review Credit

Peer reviews are randomly assigned when the due date/time is reached. Therefore, if you don’t submit your homework on time, you will not be given a peer’s homework to review and vice versa. That said, life is messy and complicated and we all miss deadlines for a variety of reasons. Therefore, you can request that I review and provide feedback on a late assignment (message me on Slack) but you won’t be able to earn peer-review credit for that particular homework.

Classroom Environment

I’m committed to fostering a friendly and inclusive classroom environment in which all students have an equal opportunity to learn and succeed. This course is an attempt to make an often difficult and frustrating experience (learning R for the first time) less obfuscating, daunting, and stressful. That said, learning happens in different ways at at a different pace for everyone. Learning is also a collaborative and creative process and my aim is to create an environment in which you all feel comfortable asking questions of me and each other. Treat your peers and yourself with empathy and respect as you all approach this topic from a range of backgrounds and experiences (in programming and in life).

  • Names & Pronouns: Everyone deserves to be addressed respectfully and correctly. You are welcome to send me your preferred name and correct gender pronouns at any time.

  • Getting Help: If at any point during the quarter you find yourself struggling to keep up, please let me know! I am here to help. A great place to start this process is by chatting before class, coming to office hours, or sending me a message on Slack.

  • Diversity: Diverse backgrounds, embodiments, and experiences are essential to the critical thinking endeavor at the heart of university education. Therefore, I expect you to follow the UW Student Conduct Code in your interactions with your colleagues and me in this course by respecting the many social and cultural differences among us, which may include, but are not limited to: age, cultural background, disability, ethnicity, family status, gender identity and presentation, body size/shape, citizenship and immigration status, national origin, race, religious and political beliefs, sex, sexual orientation, socioeconomic status, and veteran status.

  • Accessibility & Accommodations: Your experience in this class is important to me. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course. If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS at 206-543-8924, uwdrs@uw.edu, or through their website. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, me (your instructor), and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.

  • Academic Integrity: Academic integrity is essential to this course and to your learning. In this course, violations of the academic integrity policy include but are not limited to: copying from a peer, copying from an online resource, or using resources from a previous iteration of the course. That said, I hope you will collaborate with peers on assignments, and use Internet resources when questions arise to help solve issues. The key is that you ultimately submit your own work. Anything found in violation of this policy will be automatically given a score of 0 with no exceptions. If the situation merits, it will also be reported to the UW Student Conduct Office, at which point it is out of my hands. If you have any questions about this policy, please do not hesitate to reach out and ask.

  • Religious Accommodations: Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW's policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.

Feedback

If you have feedback on any part of this course or the classroom environment I want to hear it! You can message me directly on Slack or send me an anonymous message here. Additionally, I will send out a mid-quarter feedback survey on Slack around Week 5.