- Notes:
- Tentative calendar (weekly topics), subject to changes depending on the pace of the course.
- Notes (:file_folder:) involves material discussed in class.
- Reading (:book:) involves material that expands lecture topics, as well as coding examples that you should practice on your own.
- Misc (:newspaper:) is supporting material that is worth taking a look at.
- 📇 Dates: Aug 22-24
- 📎 Topics: Welcome to Stat 133. We begin with the usual review of the course policies/logistics, expectations, topics in a nutshell, etc. Then, we move on with an unconventional introduction to computing with data using my favorite analogy "Data Analysis is a lot like Cooking".
- 📁 Notes:
- Welcome to Stat 133 (slides)
- Data Analysis is a lot like cooking (slides)
- 📖 Reading:
- 🔬 Lab: No lab
- 📰 Misc:
- 🔈 To Do:
- 📇 Dates: Aug 27-31
- 📎 Topics: First things first. At the conceptual level we'll discuss how data analysis projects usually start with a Research Question. Also, we'll describe how Data can actually be seen from a triangular perspective (i.e. my "3 Views of Data"). At the practical level, you'll begin learning basic survival skills for R, followed by an overall review of the RStudio workspace. Then we move on to discuss basic data types and their implementation in R around vectors and other data structures.
- 📁 Notes:
- The Starting Point: Research Questions (slides)
- The Three Views of Data (slides)
- Be the Boss of your Data (talk and chalk)
- Data Types and Vectors (slides)
- 📖 Reading:
- First contact with R (tutorial)
- Intro to Rmd files (tutorial)
- 🔬 Lab:
- Getting started with R and RStudio (due Sep-01)
- 📰 Misc:
- Introduction to R Markdown (by RStudio)
- 💡 Cheat sheet:
- 🎯 WARM-UP 1:
- Markdown practice (due Sep-04, open till Sep-18)
- 📇 Dates: Sep 03-07 (Holiday Sep-03)
- 📎 Topics: In this week you'll keep learning more about R data structures like arrays and lists. More specifically, we'll focus on fundamental concepts like atomicity, vectorization, recycling, and subsetting. And given that we are studying vectors and its cousins, we'll briefly review the traditional base graphics approach that is based on R vectors.
- 📁 Notes:
- Arrays and Factors (slides)
- Lists (slides)
- Data Frames (slides)
- Base Graphics I (slides)
- Base Graphics II (slides)
- 📖 Reading:
- Intro to vectors (tutorial)
- 🔬 Lab:
- Getting started with vectors and factors (due Sep-08)
- 📰 Misc:
- chapter 20: Vectors (R for Data Science by Grolemund and Wickham)
- 💡 Cheat sheet:
- 🎯 WARM-UP 2:
- Vectors and Factors (due Sep-11, open till Sep-18)
- 📇 Dates: Sep 10-14
- 📎 Topics: Data Analysis Projects (DAPs) are made of files and directories. Therefore, we need to review some fundamental concepts such as the file-system, the command line interface, and some basic shell commands. At the practical level, you will have the chance to practice some data manipulation operations on data frames.
- 📁 Notes:
- Filesystem Basics (slides)
- Shell Basics (slides)
- Working with files (slides)
- 📖 Reading:
- Linux Tutorial lessons 1-5 (by Ryan Chadwick)
- The Unix Shell lessons 1-3 (by Software Carpentry)
- 🔬 Lab:
- Command Line Basics (due Sep-15)
- 📰 Misc:
- Linux Command Line tutorial (by Guru99)
- 💡 Cheat sheet:
- 🎯 WARM-UP 3:
- Data Frame Basics (due Sep-18)
- 📇 Dates: Sep 17-21
- 📎 Topics: We continue talking about filestructure topics, and we introduce basic notions of version control systems (VCS) using Git, and the companion hosting platform GitHub. On the Data side, we begin our discussion about Tables: the most common form in which data is stored, handled, and manipulated. Consequently, we need to talk about the typical storage formats of tabular data, and the relationship between tables and R data frames.
- 📁 Notes:
- Git Basics (slides)
- Git Workflow (slides)
- Data Tables (slides)
- Importing Tables in R (slides)
- 📖 Reading:
- Read sections 4 to 9 in Part I Installation (Happy Git and GitHub for the useR by Jenny Bryan et al.)
- Basic manipulation of Data Frames (slides)
- 🔬 Lab:
- Work on episodes 2 to 7 of the tutorial Version Control with Git (by Software Carpentry)
- Getting started with data frames (due Sep-22)
- 📰 Misc:
- Data Import (R for Data Science by Grolemund and Wickham)
- Organizing data in spreadsheets (by Karl Broman)
- 💡 Cheat sheet:
- 🎯 WARM-UP 4:
- Data Frame Basics (due Sep-25)
- 📇 Dates: Sep 24-28
- 📎 Topics: Because data tables are so ubiquituos, it's important that you learn how to manipulate them via R data frames in a more modern and syntactic way. How? By following the data plying framework provided by the package
"dplyr"
. Likewise, we begin reviewing the visualization paradigm of"ggplot2"
which is based on data frames. - 📁 Notes:
- "dplyr" tutorial slides (by Hadley Wickham)
- Grammar of Graphics framework (slides)
- 📖 Reading:
- "ggplot2" lecture (by Karthik Ram)
- 🔬 Lab:
- GitHub Classroom
- Getting started with dplyr and ggplot2 (due Sep-29)
- 📰 Misc:
- tibbles vignette
- Introduction to dplyr (by Hadley Wickham)
- 💡 Cheat sheet:
- 🎯 WORK-OUT 1:
- Data Wrangling and visualization (due Oct-05)
- 📇 Dates: Oct 01-05
- 📎 Topics: We continue reviewing more aspects of
"dplyr"
and the famous pipe operator. - 📁 Notes:
- Pipes with
"dplyr"
(tutorial) - Shell input/output redirection (tutorial)
- Shell filters (tutorial)
- Pipes with
- 📖 Reading:
- Pipes (R for Data Science by Grolemund and Wickham)
- 🔬 Lab:
- More data wrangling, and exporting outputs (due Oct-06)
- 📰 Misc:
- Tidy Data (by Hadley Wickham)
- 💡 Cheat sheet:
- 🎓 MIDTERM 1: Friday Oct-05
- 📇 Dates: Oct 08-12
- 📎 Topics: You don’t need to be an expert programmer to be a data scientist, but learning more about programming allows you to automate common tasks, and solve new problems with greater ease. We'll discuss how to write basic functions, the notion of R expressions, and an introduction to conditionals.
- 📁 Notes:
- Creating functions (tutorial)
- Introduction to functions (tutorial)
- Introduction to R expressions and conditionals (tutorial)
- 🔬 Lab:
- Getting started with functions and conditionals (due Oct-13)
- 📰 Misc:
- chapter 19: Functions (R for Data Science by Grolemund and Wickham)
- 🎯 WARM-UP 5:
- Function Basics (due Oct-16)
- 📇 Dates: Oct 15-19
- 📎 Topics: In addition to writing functions to reduce duplication in your code, you also need to learn about iteration, which helps you when you need to do the same operation several times. Namely, we review control flow structures such as
for
loops,while
loops,repeat
loops, and theapply
family functions. - 📁 Notes:
- Introduction to loops (tutorial)
- More about functions (tutorial)
- Functions (Advanced R by H. Wickham)
- 🔬 Lab:
- Getting started with loops (due Oct-20)
- 📰 Misc:
- chapter 21: Iteration (R for Data Science by Grolemund and Wickham)
- 🎯 WARM-UP 6:
- Pipelines and Programming Basics (due Oct-23)
- 📇 Dates: Oct 22-26
- 📎 Topics: At its heart, computing involves working with numbers. However, a considerable amount of information and data is in the form of text. Therefore, you also need to learn about character strings, and how to perform basic manipulation of strings. In parallel, we'll keep working on writing funtions, especially focusing on testing functions.
- 📁 Notes:
- Environments (Advanced R by H. Wickham)
- Intro to testing functions (tutorial)
- Character strings in R (r4strings by Sanchez)
- Basic string manipulations (r4strings by Sanchez)
- 📖 Reading:
- testthat: Get started with testing (by Wickham)
- 🔬 Lab:
- Getting started with strings (due Oct-27)
- 📰 Misc:
- chapter 14: Strings (R for Data Science by Grolemund and Wickham)
- 💡 Cheat sheet:
- 🎯 WARM-UP 7:
- Pipelines and Programming Basics (due Oct-30)
- 📇 Dates: Oct 29 - Nov 01
- 📎 Topics: To unleash the power of strings manipulation, we need to take things to the next level and learn about Regular Expressions. Namely, Regular expressions are a tool that allows us to describe a certain amount of text called "patterns". We'll describe the basic concepts of regex and the common operations to match text patterns.
- 📁 Notes:
- Regexpal tester tool.
- Introduction to regular expressions
- 📖 Reading:
- Handling Strings in R (by Sanchez)
- 🔬 Lab:
- 💡 Cheat sheet:
- 🎯 WORK-OUT 2:
- Strings and Regular Expressions (due Nov-05)
- 📇 Dates: Nov 05-09
- 📎 Topics: Random numbers have many applications in science and computer programming, especially when there are significant uncertainties in a phenomenon of interest. In this part of the course we'll look at some basic problems involving working with random numbers and creating simulations. Jointly, we will briefly discuss Shiny apps to better visualize the results of some simulations. This type of apps are a nice companion to R, making it quick and simple to deliver interactive analysis and graphics on any web browser.
- 📁 Notes:
- Introduction to random numbers
- Coin toss shiny app
- shiny tutorial (by Grolemund)
- 📖 Reading:
- 🔬 Lab:
- Random numbers and simulations (due Nov-10)
- 📰 Misc:
- 💡 Cheat sheet:
- 🎯 WARM-UP 8:
- Strings and Regular Expressions (due Nov-13)
- 📇 Dates: Nov 12-16
- 📎 Topics: Packages are the fundamental units of reproducible R code. They include reusable functions, the documentation that describes how to use them, and sample data. In this part we'll start describing how to turn your code into an R package.
- 📁 Notes:
- Programming S3 Classes
- Pack YouR Code (by Sanchez)
- 📖 Reading:
- Package Structure (R packages by Wickham)
- See package components: http://r-pkgs.had.co.nz/ (R packages by Wickham)
- 🔬 Lab:
- HTML and Web scraping (due Nov-17)
- 💡 Cheat sheet:
- 🎯 WORK-OUT: due Nov-30
- R package
- 📇 Dates: Nov 19-23 (Holiday Nov 21-23)
- 📎 Topics: More about creating an R package
- 📁 Notes:
- Discussion on the R packging process (chalk and talk).
- 📇 Dates: Nov 26-30
- 📎 Topics: Creating an R package can seem overwhelming at first. So we'll keep working on the creation of a relatively basic package. This will give you the opportunity to apply most of the concepts seen in the course.
- 📁 Notes:
- Pack YouR Code (by Sanchez)
- 📖 Reading:
- See package components: http://r-pkgs.had.co.nz (R packages by Wickham)
- 🔬 Lab:
- TBA
- 💡 Cheat sheet:
- 📇 Dates: Dec 03-07
- 📎 Topics: Prepare for final examination
- 📁 Notes:
- No lecture. Instructor will hold OH (in 309 Evans)
- 🎓 FINAL: Mon Dec-10, 7-10pm (room TBD)
- See announcement about the final test on bCourses