| Resource | Link |
|---|---|
| Weekly meetings (online) | Friday, 9AM-10:50AM, Pacific |
| Class website (public) | https://anyone-can-cook.github.io/rclass1/ |
| Questions, discussion (private) | https://github.com/anyone-can-cook/rclass1_student_issues_f26/issues |
| Class Zoom link | https://ucla.zoom.us/j/93047249632 |
EDUC 260A: Introduction to Programming and Data Management
Fall 2026
1 Course information
2 Course description
The primary goals of this course are (1) to teach fundamental skills of “data management,” which are important regardless of which programming language is used, and (2) to develop a strong foundation in the R programming language. The course is designed for students who never thought they would become programmers. No prior experience with R is required. For goal (1), most statistics courses teach you how to analyze data that are ready for analysis. In real research projects, data management – the process of cleaning, manipulating, and integrating datasets in order to create analysis datasets – is often more challenging than conducting analyses. For goal (2), R is a free, open-source, object-oriented programming language. R is arguably the most popular language for statistical analysis and one of the most popular languages for graphics and data visualizations (e.g., web-scraping, interactive maps, network analysis) compared to other open-source languages. Students will become proficient in data management and R programming through weekly problem sets, which can be completed individually or in groups.
DataX Initiative
This class is created in collaboration with UCLA’s DataX initiative in an effort to make data science accessible to the the UCLA community. The DataX initiative encourages interdisciplinary research, scholarship, and innovation centering on the application of “data science and critical social, ethical, and data justice research and pedagogy.” The course aims to provide a welcoming space for all learners interested in working with data and the implications of how it is used and for what purpose.
2.1 Extended description
Data management consists of acquiring, investigating, cleaning, combining, and manipulating data. Most statistics courses teach you how to analyze data that are ready for analysis. In real research projects, cleaning the data and creating analysis datasets is often more time consuming than conducting analyses. This course teaches the fundamental data management and data manipulation skills necessary for creating analysis datasets particularly in social science research in asking questions that inform our social world (e.g., social relationships, policies impacting communities, administrative data for organizational change, etc.).
The course will use R, a free, open-source programming language. R has become the most popular language for statistical analysis, surpassing SPSS, Stata, and SAS. What differentiates R from these other languages is the thousands of open-source “libraries” created by R users. R is one of the most popular languages for “data science” because R libraries have been created for web-scraping, mapping, network analysis, etc. By learning R you can be confident that you know a programming language that can run any modeling technique you might need and has amazing capabilities for data collection and data visualization. By learning the fundamentals of R in this course, you will be “one step away” from web-scraping, network analysis, interactive maps, quantitative text analysis, or whatever other data science application you are interested in.
The data management and programming skills you learn in this course will transfer to other object-oriented programming languages (e.g., Python).
The course primarily uses data and examples from social science research and is designed to teach skills that are important for social science research more broadly and also for computational research within the humanities. We welcome students from across the university.
Recommended prerequisites (encourage, but not required)
- One prior introductory statistics course (e.g., graduate-level stats course)
- Proficiency in general computer skills is helpful, (e.g., downloading files from the internet, renaming files, saving them to a folder of your choosing, finding this folder on your computer, etc).
3 Office hours
The instructor’s and teaching assistants’ weekly office hours are listed below. If you would like to schedule a 1:1 appointment with someone from the instructional team, please email them 48 hours in advance.
3.1 Instructional team
Ozan Jaquette
- Pronouns: he/him/his
- Office: Moore Hall, room 3038
- Email: ozanj@ucla.edu
- Office hours:
- Zoom office hours: Wednesdays 3:30-4:30PM, zoom link
- Note: different than class zoom link
- And by appointment (afternoons)
- Zoom office hours: Wednesdays 3:30-4:30PM, zoom link
3.2 Teaching assistant
Jada Sims
- Pronouns: she/her/hers
- Email: jadasims@g.ucla.edu
- Note: I will try my best to answer emails within 24 hours. However, I will not be available to answer problem set questions after 5pm on Thursday.
- Office hours:
- Zoom office hours: Mondays & Thursdays, 1:00 pm - 2:00 pm, zoom link
- And by appointment
4 Course learning goals
You will become proficient in data management and R programming language. What does that look like? You will be able to:
- Understand fundamental concepts of object-oriented programming
- Understand basic object types and how they apply to statistical analysis?
- What are object attributes and how do they apply to statistical analysis?
- Become familiar with Base R approach and Tidyverse approach to data manipulation
- Investigate data patterns
- Sort datasets in ways that generate insights about data structure
- Select specific observations and specific variables in order to identify data structure and to examine whether variables are created correctly
- Create summary statistics of particular variables to diagnose errors in data
- Create variables
- Create variables that require calculations across columns
- Create variables that require processing across rows
- Visualize data
- Create plots using the ggplot2 library
- Customize plots through color palettes, labels, line shapes, etc.
- Combine multiple datasets
- Join (merge) datasets
- Append (stack) datasets
- Manipulate the organizational structure of datasets
- Summarize and collapse observations by group
- Reshape and “tidy” untidy data
- Learn guidelines and practical strategies for ensuring data quality when cleaning data and creating analysis variables
- In addition, you will become proficient at using GitHub issues– the industry standard platform used by programmers to collaborate on projects– to ask questions about course material and to collaborate with your classmates
4.1 Course structure
Overview. The course structure consists of weekly asynchronous course materials and weekly synchronous meetings. Each week the class focuses on a particular topic (e.g., creating variables; writing functions). For each weekly topic, you will complete a problem set. Problem sets focus on practical applications of concepts/skills from the topic of the week.
Asynchronous course materials. Asynchronous course materials will focus on the topic for that week (e.g., processing across rows). Course materials will consist of three types of resources:
- Detailed lecture slides (HTML) with sample code
- Pre-recorded video lecture of the instructor working through these slides
- The “.qmd” file that created the HTML lecture slides.
- The .qmd file will contain all “code chunks” and links to all data utilized in the lecture. Thus, you will “learn by doing” in that you will run R code on your own computer while you work through lecture materials on your own.
Synchronous meetings. Synchronous class meetings will be on Zoom. Synchronous class time will largely be devoted to live lecture of course materials, with students asking questions as they arise. Attendance during the entire period is required, but you may ask the instructor/TAs for exceptions due to scheduling conflicts.
5 Assignments and grading
Course grade will be based on the following components:
- Weekly problem sets (100% of total grade)
5.1 Problem sets (100% of total grade)
You will complete 10 problem sets (the last one due during finals week). Problem sets are due by 9AM on Friday, right before the start of class. In general, each problem set will give you practice using the skills and concepts introduced in the course materials for that week. For example, after the lecture on joining (merging) datasets, the problem set for that week will require that you complete several different tasks involving merging data. Additionally, the weekly problem sets will require you to use data manipulation skills you learned in previous weeks. Link to problem set expectations and helpful resources HERE.
Participation
Broadly, you are expected to participate by being attentive, and supportive of classmates, by asking questions, and by answering questions posed by classmates.
- Weekly required participation on GitHub will be part of your problem set grade.
- Each week you will be required to post one “question” OR one “reflection” about the problem set (more is great, too!)
- A “question” is a question about the problem set that you can’t figure out and you want some help from your classmates/TA
- A “reflection” is a reflection about what you learned during the problem set, a reflection on the learning process, stuff you figured out, stuff you found challenging, or anything else about the problem set that comes to mind.
- Each week you are also required to respond to one “question” OR one “reflection” posted by one of your classmates.
Strategy for completing problem sets
A general strategy recommended for completing the problem sets is as follows:
- Work through required lecture material (important: run code chunks from lecture in RStudio!)
- Try working through problem set on your own. Start working on the problem set early in the week! This way, you have time to ask questions and receive help on Github.
- For students working in a problem set group: if you are working through the problem set together, and you find that your teammate(s) are usually figuring out the answers first, try working through some of the problem set on your own before you start working with your group.
Problem set groups
- Problem sets can be done individually or in a group.
- First problem set will be done individually.
- For all subsequent problem sets, we will give students an opportunity to join problem set groups of 2 or 3 students (not 4). We will implement a process to help students create groups.
- If you are part of a problem set group, keep the same group throughout the quarter. But annulments are possible!
- Each student must submit their own problem set. Each student’s submission will be graded individually, regardless of whether they worked individually or with a group.
Grading policies
- All problem sets are graded individually.
- Policy on late assignments
- Problem sets submitted after 11:59PM on Friday will lose one percentage point (e.g., max grade becomes 99% instead of 100%)
- Starting at 12AM on Monday morning, problem sets will lose an additional percentage point for each week-day it is not submitted
- e.g., for a problem set submitted at 10AM on Monday, the max grade becomes 98%
- e.g., for a problem set submitted at 10AM on Tuesday, the max grade becomes 97%
- For late submissions due to an unexpected emergency, you will not lose points. Please contact the instructor and/or TAs and we will work it out together.
Autograder-assisted grading policies
Problem-set grading will be assisted by an autograder that checks whether students’ code and required objects meet the specifications provided in each problem set. The autograder promotes consistent grading across submissions, but it will not be the sole basis for assigning grades. The instructional team will review the results and look more closely at submissions when the autograder identifies a possible issue.
Each problem set will provide detailed instructions, including the required object names and the type of value each object should contain. Students are expected to follow these instructions carefully.
We recognize that an autograder may occasionally fail to recognize a correct response or may not capture the full quality of a student’s work. If you believe your problem set was graded incorrectly, email the teaching assistant within four days of receiving your grade. In your email, identify the problem set and specific question you would like reviewed and briefly explain why you believe the answer may have been graded incorrectly. The teaching assistant will review the submitted file and make any appropriate adjustment.
Grade-review requests are intended to correct possible grading or autograder errors. Points generally will not be restored when the submitted file did not follow the stated instructions or used incorrect or missing object names.
5.2 Grading scale
Letter Grade | Percentage |
|---|---|
A | 93<=100% |
A- | 90<93% |
B+ | 87<90% |
B | 83<87% |
B- | 80<83% |
C+ | 77<80% |
C | 73<77% |
C- | 70<73% |
D | 60<70% |
F | 0<60% |
6 Course Schedule
Below is an overview of course topics. Topics and the schedule are subject to change at the instructor’s discretion. Topics may be cut if more time is needed to learn the most central topics. It is unlikely that additional topics will be added. The official course schedule will be posted on the course website, including weekly required reading and optional reading.
Week 1: Introduction to R
- Introduction to R and R data structures
- Execute R commands, understand R objects and data structures, use R functions
- Introduce atomic vectors, lists, and functions for investigating objects (e.g., length, type, str)
Week 2: Investigating data patterns in Base R
- Data investigation and manipulation using Base R
- Investigate R object type and structure, isolate elements using Base R subset operators and the
subset()function, create new variables in Base R
Week 3: Enter the Tidyverse Part I: Pipes & Dplyr
- Data investigation and manipulation using tidyverse
- Select, filter, and sort data using
tidyversefunctions, chain functions together using pipes (%>%)
Week 4: Enter the Tidyverse Part II: variable creation
- Create new variables using
mutate() - Create new variables conditionally using
if_else(),recode(), andcase_when()
Week 5: Processing across rows
- Calculate aggregate statistics from multiple rows of data
- Group rows of data using
group_by(), create aggregate statistics usingsummarize()
Week 6: Attributes and class
- Understand the class and attributes of R objects
- Investigate R object class and attributes, work with factor variables, label variables and values of a dataframe using the
labelledpackage
Week 7: Create plots w/ ggplot
- Understand the layered grammar of graphics for visualizing data with ggplot2
- Make plots with the
ggplotfunction (e.g., bar plots, scatter plots) - Customize plots through color palettes, labels, legends, etc.
Week 8: Strings and dates
- Work with strings and date/datetime objects
- Understand string basics, manipulate strings using
stringrfunctions, work with dates and times using thelubridatepackage
Week 9: Tidy data
- Understand tidy data structure and reshaping data
- Define tidy data and how to reshape untidy data into tidy form, reshape data from wide to long using
pivot_longer(), reshape data from long to wide usingpivot_wider(), handle missing values during reshaping
Week 10: Joining data
- Combine data from multiple datasets using joins
- Merge datasets using mutating joins, check the quality of merge using filtering joins, append datasets by stacking rows
7 Course policies
7.1 Academic integrity and AI
UCLA policy
- UCLA is a community of scholars. In this community, all members including faculty, staff and students alike are responsible for maintaining standards of academic honesty. As a student and member of the University community, you are here to get an education and are, therefore, expected to demonstrate integrity in your academic endeavors. You are evaluated on your own merits. Cheating, plagiarism, collaborative work, multiple submissions without the permission of the professor, or other kinds of academic dishonesty are considered unacceptable behavior and will result in formal disciplinary proceedings.
This class
- You are not allowed to copy problem set solutions from classmates.
- Enforcing this policy is unclear.
- Most questions are answered by creating and naming and object. If the object is equal to the expected value, the answer is correct. For these problems, everyone who answers the question correctly would likely have the exact same answer.
- Some questions ask you to explain something in your own words. If your answer to a lengthy question is exactly the same as that of a classmate, this could raise concerns that we investigate.
- If there is compelling evidence that a student merely copied solutions from a classmate, this could be considered a violation of academic integrity. That student will receive a zero for the homework assignment.
Policy on AI
Academic integrity in the age of AI
- You are allowed to use AI to help explain underlying concepts, help diagnose errors, etc.
- You are not allowed to simply paste the problem set or problem set questions into AI and copy the answer provided
- We cannot enforce this policy. So adherence depends on the honor system
How to use AI in a way that helps you helps you develop a deeper understanding of course material (including becoming a better problem solver)
- The purposes of this course are to develop strong foundations in:
- Data management
- R programming
- General problem solving and “computational thinking”
- People who develop these foundations will be able to do high-quality work with and without use of AI
- Using AI to do coding/analysis in the absence of these skills will go very poorly
- This is why this class remains valuable even in the age of Claude Code
- AI can help you develop these foundations
- But AI can also help you get a high grade in the course without developing these strong foundations
- Research on how people learn tends to find that embracing cognitive struggle is a good thing for learning how solve problems and learning how to learn
- Before you ask AI to help you with something you can’t figure out, try other avenues to figure out the answer (e.g., by thinking, by breaking the problem into parts, by asking on github, by reading github posts from your classmates, by looking at documentation, etc.)
- Good uses of AI:
- Use AI to help you explain concepts you don’t understand
- Use AI for installation issues
- first try to understand and figure out the problem on your own
- but then you can paste your error into AI
- Use AI to help diagnose/fix error you are getting; but try to solve it without AI first; and try asking classmates;
- Whenever you use AI for this class, spend a little extra time asking for a deeper explanation, and spend some time trying to understand that explanation
- The purposes of this course are to develop strong foundations in:
7.2 Online collaboration/netiquette
You will communicate with instructors and peers virtually through a variety of tools such as GitHub, email, and Zoom web conferencing. The following guidelines will enable everyone in the course to participate and collaborate in a productive, safe environment.
- Be professional, courteous, and respectful as you would in a physical classroom.
- Online communication lacks the nonverbal cues that provide much of the meaning and nuances in face-to-face conversations. Choose your words carefully, phrase your sentences clearly, and stay on topic.
- It is expected that you may disagree with the research presented or the opinions of their fellow classmates. To disagree is fine but to disparage others’ views is unacceptable. All comments should be kept civil and thoughtful.
- It is imperative that we respect one another in this course, and all other spaces. One way to gain/show respect is to actively listen to one another. Please do not text, tweet, email, Facebook, LinkedIn, browse the internet, and such during class.
- In the unlikely event that Zoom is down, please be sure to check your email often for instructions on how we will complete that class session in an asynchronous manner.
Class Zoom guidelines
All synchronous class sessions will be held online, via Zoom. Below, we have outlined some general guidelines about Zoom learning. As we continue learning together, we can add to and change the below list. I’m open to your feedback and your experiences as we continue to learn how to learn via Zoom.
- Video: You are not required to turn on your video during synchronous lectures, but we encourage you to do so if you feel comfortable.
- Audio: We ask that you mute your microphones when you are not speaking. We encourage the use of earphones or headphones if you are in a space with background noise.
- Zoom outage: In the unlikely event that Zoom is down, we will email the class with instructions for completing the class section in an asynchronous manner. Therefore, if Zoom is not functioning properly during the class period, be sure to check your email often.
- Internet connectivity: We understand that having access to a stable internet connection and/or electronic equipment is a privilege. With that in mind, we want to provide a space where everyone has the resources they need to do well in the class. If you have any issues with your internet connection and/or don’t have access to electronic equipment, please reach out to us.
7.3 Academic accommodations
Center for Accessible Education
If you need academic accommodations please contact the Center for Accessible Education (CAE). When possible, you should contact the CAE within the first two weeks of the term as reasonable notice is needed to coordinate accommodations. For more information visit https://www.cae.ucla.edu/.
Located in A255 Murphy Hall: (310) 825-1501, TDD (310) 206-6083; http://www.cae.ucla.edu/
8 Campus resources
Resource | Description | Contact |
|---|---|---|
Counseling and Psychological Services (CAPS) | As a student, you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, depression, difficulty concentrating, and/or lack of motivation that may lead to diminished academic performance or reduce your ability to participate in daily activities. | To speak directly with a counselor 24/7 at (310) 825-0768, if an emergency call 911 |
LGBTQ Resource Center | The LGBTQ resource center provides a range of education and advocacy services supporting intersectional identity development. It fosters unity; wellness; and an open, safe, inclusive environment for lesbian, gay, bisexual, intersex, transgender, queer, asexual, questioning, and same-gender-loving students, their families, and the entire campus community. | Email: lgbt@lgbt.ucla.edu |
International Students | The Dashew Center provides a range of programs to promote cross-cultural learning, language improvement, and cultural adjustment. Their programs include trips in the LA area, performances, and on-campus events and workshops. | Website: |
Undocumented Students Program | This program provides a safe space for undergraduate and graduate undocumented students. USP supports the UndocuBruin community through personalized services and resources, programs, and workshops. | Email: usp@saonet.ucla.edu |
Students with Dependents | UCLA Students with Dependents provides support to UCLA students who are parents, guardians, and caregivers. Some of their services include: | Website: |
Be Well Program | UCLA Be Well Bruin is committed to increasing students' access and awareness of health and well-being resources on campus. They provide a search tool to find resources related to physical, academic, emotional, financial, social, and basic needs. | Website: |
Data Squad | UCLA Library DataSquad is a team of undergraduate students offering consultations in coding, data cleaning and manipulation, data visualization, and statistical analysis in R, Python, Tableau, and SQL. | Website: |
Student Legal Services | UCLA Student Legal Services provides a range of legal support to all registered and enrolled UCLA students. Some of their services include: Landlord/Tenant Relations (Including challenges during COVID), Accident and Injury Problem, Domestic Violence and Harassment, Divorces & Other Family Law matters | Website: |
Discrimination | UCLA is committed to maintaining a campus community that provides the strongest possible support for the intellectual and personal growth of all its members- students, faculty, and staff. Acts intended to create a hostile climate are unacceptable. | Website: |
8.1 Campus maps
Map | Resource | Link |
|---|---|---|
Lactation Rooms | https://chr.ucla.edu/benefits/support-nursing-mothers-at-work | |
Gender-Inclusive Restrooms | https://lgbtq.ucla.edu/file/1500b7f1-7c6b-4c1b-9bbe-12674dd23f67 | |
Campus Accessibility | https://map.ucla.edu/downloads/pdf/Access_Oct_2020.pdf |
8.2 Title IX Resources
Title IX prohibits gender discrimination, including sexual harassment, domestic and dating violence, sexual assault, and stalking. If you have experienced sexual harassment or sexual violence, there are a variety of resources to assist you.
CONFIDENTIAL RESOURCES:You can receive confidential support and advocacy at the CARE Advocacy Office for Sexual and Gender-Based Violence, A233 Murphy Hall, CAREadvocate@careprogram.ucla.edu, (310) 206-2465. Counseling and Psychological Services (CAPS) also provides confidential counseling to all students and can be reached 24/7 at (310) 825-0768.
NON-CONFIDENTIAL RESOURCES: You can also report sexual violence or sexual harassment directly to the University’s Title IX Coordinator, 2255 Murphy Hall, titleix@conet.ucla.edu, (310) 206-3417. Reports to law enforcement can be made to UCPD at (310) 825-1491. These offices may be required to pursue an official investigation.
Faculty and TAs are required under the UC Policy on Sexual Violence and Sexual Harassment to inform the Title IX Coordinator should they become aware that you or any other student has experienced sexual violence or sexual harassment.