<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>RStudio Education</title>
    <link>https://education.rstudio.com/</link>
      <atom:link href="https://education.rstudio.com/index.xml" rel="self" type="application/rss+xml" />
    <description>RStudio Education</description>
    <generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 17 Feb 2021 00:00:00 +0000</lastBuildDate>
    <item>
      <title>Beginners</title>
      <link>https://education.rstudio.com/learn/beginner/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/learn/beginner/</guid>
      <description>
&lt;script src=&#34;https://education.rstudio.com/rmarkdown-libs/header-attrs/header-attrs.js&#34;&gt;&lt;/script&gt;


&lt;p&gt;No one starting point will serve all beginners, but here are 6 ways to begin learning R.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install &lt;a href=&#34;https://cloud.r-project.org/&#34;&gt;&lt;i class=&#34;fab fa-r-project&#34;&gt;&lt;/i&gt;&lt;/a&gt;, &lt;a href=&#34;http://www.rstudio.com/download&#34;&gt;RStudio&lt;/a&gt;, and R packages like the &lt;a href=&#34;https://www.tidyverse.org/&#34;&gt;tidyverse&lt;/a&gt;.&lt;/strong&gt; These three installation steps are often confusing to first-time users. For beginner-friendly installation instructions, we recommend the free online ModernDive chapter &lt;a href=&#34;https://moderndive.netlify.com/1-getting-started.html&#34;&gt;&lt;em&gt;Getting Started with R and RStudio&lt;/em&gt;&lt;/a&gt;. You may also enjoy the &lt;a href=&#34;https://rladiessydney.org/courses/ryouwithme/basicbasics&#34;&gt;&lt;em&gt;Basic Basics&lt;/em&gt;&lt;/a&gt; lesson unit from &lt;a href=&#34;https://rladiessydney.org&#34;&gt;R-Ladies Sydney&lt;/a&gt;, which provides an &lt;a href=&#34;https://rladiessydney.org/courses/ryouwithme/01-basicbasics-1/&#34;&gt;opinionated tour of RStudio&lt;/a&gt; for new users and a &lt;a href=&#34;https://rladiessydney.org/courses/ryouwithme/01-basicbasics-2/&#34;&gt;step-by-step guide to installing and using R packages&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spend an hour with &lt;a href=&#34;https://resources.rstudio.com/webinars/a-gentle-introduction-to-tidy-statistics-in-r&#34;&gt;&lt;em&gt;A Gentle Introduction to Tidy Statistics In R&lt;/em&gt;&lt;/a&gt;.&lt;/strong&gt; If you are coming to R from a traditional point-and-click statistics package such as SPSS or SAS, RStudio’s &lt;a href=&#34;https://twitter.com/thomas_mock&#34;&gt;Thomas Mock&lt;/a&gt; has created a free video webinar titled &lt;a href=&#34;https://resources.rstudio.com/webinars/a-gentle-introduction-to-tidy-statistics-in-r&#34;&gt;A Gentle Introduction to Tidy Statistics In R&lt;/a&gt;. This one-hour introduction covers how to get started quickly with the basics of research statistics in R, providing an emphasis on reading data into R, exploratory data analysis with the tidyverse, statistical testing with ANOVAs, and finally producing a publication-ready plot in ggplot2. Plus, you’ll find a host of other RStudio webinars and videos to explore via the topic menus on the left side of that page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read &lt;a href=&#34;https://r4ds.had.co.nz&#34;&gt;&lt;em&gt;R for Data Science&lt;/em&gt;&lt;/a&gt;.&lt;/strong&gt; While videos are great for some, others of us learn best by curling up with a good book. If that describes you, pick up a copy of &lt;em&gt;R For Data Science&lt;/em&gt; by &lt;span class=&#34;citation&#34;&gt;Wickham and Grolemund (&lt;a href=&#34;#ref-wickham2016r&#34; role=&#34;doc-biblioref&#34;&gt;2016&lt;/a&gt;)&lt;/span&gt; from your friendly local bookseller. &lt;em&gt;R For Data Science&lt;/em&gt; is available in &lt;a href=&#34;https://www.amazon.com/Data-Science-Transform-Visualize-Model-dp-1491910399/dp/1491910399/ref=mt_paperback?_encoding=UTF8&amp;amp;me=&amp;amp;qid=1562083100&#34;&gt;paper&lt;/a&gt; and &lt;a href=&#34;https://www.amazon.com/Data-Science-Transform-Visualize-Model-ebook-dp-B01NAJAEN5/dp/B01NAJAEN5/ref=mt_kindle?_encoding=UTF8&amp;amp;me=&amp;amp;qid=1562083100&#34;&gt;electronic&lt;/a&gt; forms and has been translated into multiple languages including &lt;a href=&#34;https://es.r4ds.hadley.nz/&#34;&gt;Spanish&lt;/a&gt;, so choose the version that’s easiest for you. &lt;strong&gt;&lt;em&gt;R For Data Science&lt;/em&gt; is also available for free as a online book at &lt;a href=&#34;https://r4ds.had.co.nz&#34;&gt;https://r4ds.had.co.nz&lt;/a&gt;.&lt;/strong&gt; If you don’t yet know enough about R to commit to &lt;em&gt;R for Data Science&lt;/em&gt;, you may find Garrett Grolemund’s &lt;a href=&#34;https://rstudio-education.github.io/hopr/&#34;&gt;&lt;em&gt;Hands On Programming with R&lt;/em&gt;&lt;/a&gt; &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-grolemund2014hands&#34; role=&#34;doc-biblioref&#34;&gt;2014&lt;/a&gt;)&lt;/span&gt; a quicker way to get started. It’s also available in &lt;a href=&#34;https://www.amazon.com/Hands-Programming-Write-Functions-Simulations/dp/1449359019&#34;&gt;paper&lt;/a&gt;, &lt;a href=&#34;https://www.amazon.com/Hands-Programming-Write-Functions-Simulations-ebook-dp-B00LPUIB8C/dp/B00LPUIB8C/ref=mt_kindle?_encoding=UTF8&amp;amp;me=&amp;amp;qid=&#34;&gt;electronic&lt;/a&gt;, and &lt;a href=&#34;https://rstudio-education.github.io/hopr/&#34;&gt;free online versions&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start coding using &lt;a href=&#34;https://rstudio.cloud/learn/primers&#34;&gt;RStudio.cloud Primers&lt;/a&gt;.&lt;/strong&gt; One of the most effective ways to get started learning R is to start using it. &lt;a href=&#34;https://rstudio.cloud/learn/primers&#34;&gt;RStudio.cloud Primers&lt;/a&gt; offer a cloud-based learning environment that will teach you the basics of R all from the comfort of your browser. RStudio.cloud doesn’t require you to install any software on your computer, making it easy to dip your toe into data science with R with a minimum of fuss. And best of all, rstudio.cloud accounts are free for personal use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Publish your work with R Markdown.&lt;/strong&gt; R is a terrific tool for telling stories with graphics and data, but sometimes you need words too. R Markdown weaves together narrative text and code to produce elegantly formatted reports, papers, books, slides and more. Garrett Grolemund will give you a personal R Markdown tour with his &lt;a href=&#34;https://resources.rstudio.com/the-essentials-of-data-science/getting-started-with-r-markdown-60-02&#34;&gt;&lt;em&gt;Get Started With R Markdown&lt;/em&gt;&lt;/a&gt; video, or you can choose your own path through the wonders of R Markdown at &lt;a href=&#34;https://rmarkdown.rstudio.com&#34;&gt;rmarkdown.rstudio.com&lt;/a&gt;. Bookmark &lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/&#34;&gt;&lt;em&gt;R Markdown: The Definitive Guide&lt;/em&gt;&lt;/a&gt; &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-xie2018r&#34; role=&#34;doc-biblioref&#34;&gt;2018&lt;/a&gt;)&lt;/span&gt; as you work too; it provides a great overview of what is possible within the R Markdown family of packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn about some power tools for development.&lt;/strong&gt; RStudio offers 6 videos called the &lt;a href=&#34;https://resources.rstudio.com&#34;&gt;RStudio Essentials Series&lt;/a&gt; that help you learn how to program and manage R projects using RStudio’s tools including the RStudio Integrated Development Environment (IDE). These videos will also help you learn good development practices that make collaboration within a team safe and easy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;Books &amp;amp; packages referenced&lt;/summary&gt;
&lt;p&gt;
&lt;div id=&#34;refs&#34; class=&#34;references hanging-indent&#34;&gt;
&lt;div id=&#34;ref-R-rmarkdown&#34;&gt;
&lt;p&gt;Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2020. &lt;em&gt;Rmarkdown: Dynamic Documents for R&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=rmarkdown&#34;&gt;https://CRAN.R-project.org/package=rmarkdown&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-grolemund2014hands&#34;&gt;
&lt;p&gt;Grolemund, Garrett. 2014. &lt;em&gt;Hands-on Programming with R: Write Your Own Functions and Simulations&lt;/em&gt;. O’Reilly Media, Inc. &lt;a href=&#34;https://rstudio-education.github.io/hopr/&#34;&gt;https://rstudio-education.github.io/hopr/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-tidyverse&#34;&gt;
&lt;p&gt;Wickham, Hadley. 2019. &lt;em&gt;Tidyverse: Easily Install and Load the ’Tidyverse’&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=tidyverse&#34;&gt;https://CRAN.R-project.org/package=tidyverse&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-ggplot2&#34;&gt;
&lt;p&gt;Wickham, Hadley, Winston Chang, Lionel Henry, Thomas Lin Pedersen, Kohske Takahashi, Claus Wilke, Kara Woo, Hiroaki Yutani, and Dewey Dunnington. 2020. &lt;em&gt;Ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-wickham2016r&#34;&gt;
&lt;p&gt;Wickham, Hadley, and Garrett Grolemund. 2016. &lt;em&gt;R for Data Science: Import, Tidy, Transform, Visualize, and Model Data&lt;/em&gt;. O’Reilly Media, Inc. &lt;a href=&#34;https://r4ds.had.co.nz/&#34;&gt;https://r4ds.had.co.nz/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-xie2018r&#34;&gt;
&lt;p&gt;Xie, Yihui, Joseph J Allaire, and Garrett Grolemund. 2018. &lt;em&gt;R Markdown: The Definitive Guide&lt;/em&gt;. Chapman; Hall/CRC. &lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/&#34;&gt;https://bookdown.org/yihui/rmarkdown/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Learn to teach</title>
      <link>https://education.rstudio.com/teach/how-to-teach/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/teach/how-to-teach/</guid>
      <description>&lt;p&gt;While it might seem like teaching data science is a new activity, educational professionals have studied teaching techniques for decades. Today&amp;rsquo;s teaching techniques are based not only on the personal experiences of classroom teachers, but also on neuroscience and cognitive psychology. While we can&amp;rsquo;t replicate the thoroughness of the National Academies&amp;rsquo;s 
&lt;a href=&#34;https://www.amazon.com/How-People-Learn-II-Learners/dp/0309459648/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;How People Learn&lt;/em&gt;&lt;/a&gt;, we can recommend a couple of starting points for learning how to teach technology:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read 
&lt;a href=&#34;http://teachtogether.tech&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Teaching Tech Together&lt;/em&gt;&lt;/a&gt;.&lt;/strong&gt; RStudio&amp;rsquo;s 
&lt;a href=&#34;https://education.rstudio.com/author/greg&#34;&gt;Greg Wilson&lt;/a&gt; penned (actually, he typed it) this book based on his work for 
&lt;a href=&#34;http://carpentries.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the Carpentries&lt;/a&gt;, and it will help you create and deliver lessons that work for technical and non-technical audiences alike and to build a teaching community around them. Greg also created a free online webinar titled 
&lt;a href=&#34;https://resources.rstudio.com/webinars/what-every-data-scientist-should-know-about-education-greg-wilson&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;What Every Data Scientist Should Know About Education&lt;/em&gt;&lt;/a&gt;. This one-hour introduction presents a handful of evidence-based practices you can use right now, explains why we believe they are true, and points you at other resources that will help you go further.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Get involved in 
&lt;a href=&#34;http://carpentries.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the Carpentries&lt;/a&gt;&lt;/strong&gt;, a volunteer organization that teaches foundational coding and data science skills to researchers worldwide (they&amp;rsquo;ve even run a workshop in Antarctica). Their lessons on 
&lt;a href=&#34;https://datacarpentry.org/lessons/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data wrangling&lt;/a&gt;, 
&lt;a href=&#34;https://software-carpentry.org/lessons/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;programming&lt;/a&gt;, and 
&lt;a href=&#34;https://librarycarpentry.org/lessons/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;for librarians&lt;/a&gt; are all open access and classroom-tested.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Become a 
&lt;a href=&#34;https://rstd.io/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;certified trainer&lt;/a&gt;.&lt;/strong&gt; In 2019, RStudio has launched an instructor training and certification program that aims to help people apply modern evidence-based teaching practices to teach data science using R and RStudio’s products, and to help people who need such training find the trainers they need. You can meet our Certified Trainers and find out more about the program and the application process 
&lt;a href=&#34;https://rstd.io/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;, and access our Instructor Training Materials 
&lt;a href=&#34;https://drive.google.com/drive/folders/13ohFt3D0EJ5PDbMaWTxnHH-hwA7G0IvY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connect with the #rstats education community.&lt;/strong&gt; The 
&lt;a href=&#34;https://community.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt; is a warm and welcoming online discussion forum to ask (and answer!) any questions about using R. But you may not know that the site has a dedicated category for all things related to 
&lt;a href=&#34;https://community.rstudio.com/c/teaching&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;teaching&lt;/a&gt;. There, you&amp;rsquo;ll find lively discussions between first-time instructors and seasoned educators about topics like how to introduce functions in R, ideas for datasets to use, or how to pronounce an R package name. To meet other R educators in person, we host a yearly 
&lt;a href=&#34;https://rstd.io/conf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;rstudio::conf&lt;/code&gt;&lt;/a&gt; that always features talks about teaching; you can browse past videos of talks in this track 
&lt;a href=&#34;https://resources.rstudio.com/teaching&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. If you do attend our conference, keep an eye on 
&lt;a href=&#34;https://community.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Community&lt;/a&gt; before you go for announcements about the 
&lt;a href=&#34;https://community.rstudio.com/tags/c/rstudio-conf/bof&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Birds of a Feather&lt;/em&gt; meetup&lt;/a&gt; for educators — this is an informal get together of like-minded R educators to talk shop and connect in person while you&amp;rsquo;re all in the same place at the same time.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Intermediates</title>
      <link>https://education.rstudio.com/learn/intermediate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/learn/intermediate/</guid>
      <description>


&lt;p&gt;Once you’ve gotten started learning R, you can expand your skills by exploring many of the specialized capabilities of R. Here are 6 of the most common areas that people who already have some experience in R find particularly rewarding to learn.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Grab some cheat sheets.&lt;/strong&gt; No one can possibly remember all the functions and arguments for every R package, which is why cheat sheets were invented. RStudio publishes a &lt;a href=&#34;https://www.rstudio.com/resources/cheatsheets/&#34;&gt;free collection of cheat sheets&lt;/a&gt; for the most popular R features and packages to help jog your memory. If you decide you’d like to collect them all, you may clone &lt;a href=&#34;https://www.rstudio.com/resources/cheatsheets/&#34;&gt;the cheat sheet github repository&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn to get help.&lt;/strong&gt; Everyone gets stuck. Learning where and how to ask for R help is a powerful skill to hone. The Tidyverse site offers some expert advice for &lt;a href=&#34;https://www.tidyverse.org/help/&#34;&gt;how to help others help you&lt;/a&gt;. One package you’ll grow to love is the &lt;a href=&#34;https://reprex.tidyverse.org&#34;&gt;reprex package&lt;/a&gt; for creating reproducible R code examples. Read through the &lt;a href=&#34;https://reprex.tidyverse.org&#34;&gt;reprex&lt;/a&gt; articles, which feature loads of animated gifs to illustrate the steps like &lt;a href=&#34;https://reprex.tidyverse.org/articles/articles/magic-reprex.html&#34;&gt;&lt;em&gt;Magic reprex&lt;/em&gt;&lt;/a&gt; and &lt;a href=&#34;https://reprex.tidyverse.org/articles/articles/datapasta-reprex.html&#34;&gt;&lt;em&gt;Using datapasta with reprex&lt;/em&gt;&lt;/a&gt;. Where to ask for help? The &lt;a href=&#34;https://community.rstudio.com/&#34;&gt;RStudio Community&lt;/a&gt; is a warm and welcoming online discussion forum to ask (and answer!) any questions about using R.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improve your visualizations.&lt;/strong&gt; You may already know how to create a basic plot using ggplot2, but can you build one that makes your audience go “Wow?” You can start by expanding your knowledge of the Grammar of Graphics and ggplot2 by reading Hadley Wickham’s &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-wickham2016ggplot2&#34;&gt;2016&lt;/a&gt;)&lt;/span&gt; book, &lt;em&gt;ggplot2: Elegant Graphics for Data Analysis&lt;/em&gt;. Paper and Kindle versions are &lt;a href=&#34;https://www.amazon.com/ggplot2-Elegant-Graphics-Data-Analysis-ebook/dp/B01GVCRF6M&#34;&gt;available on Amazon&lt;/a&gt; for the second edition of the book. The third edition is in-progress and can be viewed for &lt;a href=&#34;https://ggplot2-book.org/&#34;&gt;free online&lt;/a&gt;, with the source files on &lt;a href=&#34;https://github.com/hadley/ggplot2-book&#34;&gt;GitHub&lt;/a&gt;. If you’d like Hadley to personally explain his philosophy of using ggplot2 in his data science work, check out Hadley’s talk from OpenVisConf 2017, &lt;a href=&#34;https://youtu.be/ZdPNBF6GWBw&#34;&gt;&lt;em&gt;The Role of Visualiation in Exploratory Data Analysis&lt;/em&gt;&lt;/a&gt;. Bookmark the updated &lt;a href=&#34;https://r-graphics.org/&#34;&gt;&lt;em&gt;R Graphics Cookbook&lt;/em&gt;&lt;/a&gt; by Winston Chang &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-chang2018r&#34;&gt;2018&lt;/a&gt;)&lt;/span&gt; too; it is filled with recipes that tackle specific ggplot2 problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Develop interactive applications with htmlwidgets and Shiny.&lt;/strong&gt; One concrete way to communicate your analyses better is to make your visualizations interactive. You can learn how to add browser-based interactivity to your graphics with just a few lines of code at &lt;a href=&#34;https://www.htmlwidgets.org&#34;&gt;www.htmlwidgets.org&lt;/a&gt;. If your interactive needs demand help from R code that needs to run on a server, learn how to write Shiny applications at &lt;a href=&#34;https://shiny.rstudio.com&#34;&gt;shiny.rstudio.com&lt;/a&gt;, or follow along as &lt;span class=&#34;citation&#34;&gt;Wickham (&lt;a href=&#34;#ref-wickham2020shiny&#34;&gt;2020&lt;/a&gt;)&lt;/span&gt; writes the new &lt;a href=&#34;https://mastering-shiny.org/&#34;&gt;Mastering Shiny&lt;/a&gt; book. Both approaches can be integrated with R Markdown to create polished interactive dashboards using the &lt;a href=&#34;https://rmarkdown.rstudio.com/flexdashboard/&#34;&gt;flexdashboard package&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplify your model explorations with &lt;em&gt;tidymodels&lt;/em&gt;.&lt;/strong&gt; Much of data science involves modeling, but each modeling package seems to invent its own interface and arguments. Enter &lt;a href=&#34;https://github.com/tidymodels&#34;&gt;tidymodels&lt;/a&gt;, a meta-package for modeling and analysis that shares the underlying design philosophy, grammar, and data structures of the tidyverse. If you previously have used caret for a uniform modeling interface, the &lt;a href=&#34;https://tidymodels.github.io/parsnip/&#34;&gt;tidymodels package parsnip&lt;/a&gt; is its more up-to-date child. While this project is still under development, it promises to dramatically simplify model exploration. RStudio’s &lt;a href=&#34;https://twitter.com/theotheredgar&#34;&gt;Edgar Ruiz&lt;/a&gt; wrote up &lt;a href=&#34;https://rviews.rstudio.com/2019/06/19/a-gentle-intro-to-tidymodels/&#34;&gt;&lt;em&gt;A Gentle Introduction to tidymodels&lt;/em&gt;&lt;/a&gt; to get you started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Explore other specialized packages.&lt;/strong&gt; R attracts data scientists because of its more than 13,000 packages that address nearly every use case. If you’re interested in genomics, you’ll want to spend some time learning the &lt;a href=&#34;https://bioconductor.org/&#34;&gt;&lt;em&gt;bioconductor&lt;/em&gt; collection of packages&lt;/a&gt;. If you’re working with Big Data on Spark clusters, check out &lt;a href=&#34;https://sparklyr.rstudio.com&#34;&gt;sparklyr&lt;/a&gt;. If you want to dive into finance, you’ll probably want to start with &lt;a href=&#34;http://www.quantmod.com&#34;&gt;quantmod&lt;/a&gt;. To find out what packages you should explore, we recommend some of the topic-based package catalogs such as &lt;a href=&#34;https://awesome-r.com/&#34;&gt;Awesome R&lt;/a&gt; or the &lt;a href=&#34;https://cran.r-project.org/web/views/&#34;&gt;CRAN task views&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;Books &amp;amp; packages referenced&lt;/summary&gt;
&lt;p&gt;
&lt;div id=&#34;refs&#34; class=&#34;references&#34;&gt;
&lt;div id=&#34;ref-R-reprex&#34;&gt;
&lt;p&gt;Bryan, Jennifer, Jim Hester, David Robinson, and Hadley Wickham. 2019. &lt;em&gt;Reprex: Prepare Reproducible Example Code via the Clipboard&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=reprex&#34;&gt;https://CRAN.R-project.org/package=reprex&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-chang2018r&#34;&gt;
&lt;p&gt;Chang, Winston. 2018. &lt;em&gt;R Graphics Cookbook: Practical Recipes for Visualizing Data&lt;/em&gt;. O’Reilly Media. &lt;a href=&#34;https://r-graphics.org/&#34;&gt;https://r-graphics.org/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-shiny&#34;&gt;
&lt;p&gt;Chang, Winston, Joe Cheng, JJ Allaire, Yihui Xie, and Jonathan McPherson. 2019. &lt;em&gt;Shiny: Web Application Framework for R&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=shiny&#34;&gt;https://CRAN.R-project.org/package=shiny&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-flexdashboard&#34;&gt;
&lt;p&gt;Iannone, Richard, JJ Allaire, and Barbara Borges. 2018. &lt;em&gt;Flexdashboard: R Markdown Format for Flexible Dashboards&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=flexdashboard&#34;&gt;https://CRAN.R-project.org/package=flexdashboard&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-parsnip&#34;&gt;
&lt;p&gt;Kuhn, Max, and Davis Vaughan. 2018. &lt;em&gt;Parsnip: A Common Api to Modeling and Analysis Functions&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=parsnip&#34;&gt;https://CRAN.R-project.org/package=parsnip&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-tidymodels&#34;&gt;
&lt;p&gt;Max, Kuhn, and Hadley Wickham. 2018. &lt;em&gt;Tidymodels: Easily Install and Load the ’Tidymodels’ Packages&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=tidymodels&#34;&gt;https://CRAN.R-project.org/package=tidymodels&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-quantmod&#34;&gt;
&lt;p&gt;Ryan, Jeffrey A., and Joshua M. Ulrich. 2018. &lt;em&gt;Quantmod: Quantitative Financial Modelling Framework&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=quantmod&#34;&gt;https://CRAN.R-project.org/package=quantmod&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-wickham2016ggplot2&#34;&gt;
&lt;p&gt;Wickham, Hadley. 2016. &lt;em&gt;Ggplot2: Elegant Graphics for Data Analysis&lt;/em&gt;. Springer. &lt;a href=&#34;https://ggplot2-book.org/&#34;&gt;https://ggplot2-book.org/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-wickham2020shiny&#34;&gt;
&lt;p&gt;———. 2020. &lt;em&gt;Mastering Shiny&lt;/em&gt;. O’Reilly Media. &lt;a href=&#34;https://mastering-shiny.org/&#34;&gt;https://mastering-shiny.org/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-ggplot2&#34;&gt;
&lt;p&gt;Wickham, Hadley, Winston Chang, Lionel Henry, Thomas Lin Pedersen, Kohske Takahashi, Claus Wilke, Kara Woo, and Hiroaki Yutani. 2019. &lt;em&gt;Ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Materials for teaching</title>
      <link>https://education.rstudio.com/teach/materials/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/teach/materials/</guid>
      <description>&lt;p&gt;RStudio offers several resources to make it easier for you to teach R, ranging from semester-long courses to more intense (but much shorter) workshops.&lt;/p&gt;
&lt;em&gt;
All of these materials can be reused and remixed freely under Creative Commons licenses.
If you do so,
please include a link to the original in your content saying,
&#34;Portions of this material are derived from RStudio&#39;s &#39;[lesson title]&#39;.&#34;
Only one such link is needed:
you do not need to link from or to specific slides and do not need to include our logo.
&lt;/em&gt;




&lt;h1 id=&#34;courses&#34;&gt;Courses
  &lt;a href=&#34;#courses&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Most teachers enjoy developing their own instruction materials, but the need for exercises, homework, exams, slides, and other supporting materials make this a big job. Below are some open source materials developed at RStudio and elsewhere that you can freely adapt and use for your R teaching.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Get a complete 
&lt;a href=&#34;https://datasciencebox.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data science course in a box&lt;/a&gt;.&lt;/strong&gt; 
&lt;a href=&#34;https://datasciencebox.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science in a Box&lt;/a&gt; contains the complete materials for teaching a semester-long introductory data science course. The &amp;ldquo;box&amp;rdquo; contains materials for an undergraduate level introductory data science course, such as slide decks, homework assignments, guided labs, sample exams, a final project assignment, as well as materials for instructors such as pedagogical tips, information on computing infrastructure, technology stack, and course logistics. The 
&lt;a href=&#34;https://datasciencebox.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;website&lt;/a&gt; exposes the source materials that live in a 
&lt;a href=&#34;https://github.com/rstudio-education/datascience-box&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub repository&lt;/a&gt; and use datasets from the 
&lt;a href=&#34;https://github.com/rstudio-education/dsbox&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dsbox package&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Teach with 
&lt;a href=&#34;https://stat545.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;STAT 545&lt;/a&gt;.&lt;/strong&gt;
STAT 545 is a course in data wrangling, analysis, and exploration in R with RStudio. Although the course was designed as a graduate-level, semester-long introduction to data science by 
&lt;a href=&#34;https://jennybryan.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Jennifer (Jenny) Bryan&lt;/a&gt;, the free online materials Jenny developed have been a valuable resource for self-directed learners and other educators. In Jenny&amp;rsquo;s own words, STAT 545 was designed to teach &lt;em&gt;&amp;ldquo;everything that comes up during data analysis &lt;strong&gt;except for statistical modelling and inference&lt;/strong&gt;.&amp;quot;&lt;/em&gt; The education team at RStudio has recently ported the original materials into a modern and more maintainable 
&lt;a href=&#34;https://stat545.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bookdown website&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use 
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;R for Data Science&lt;/em&gt;&lt;/a&gt; in the classroom.&lt;/strong&gt; Many educators use the free online book 
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R for Data Science&lt;/a&gt; as a course textbook. There is also an 
&lt;a href=&#34;https://github.com/rstudio-education/r4ds-instructors&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R for Data Science Instructor&amp;rsquo;s Guide&lt;/a&gt;, which contains notes for people teaching 
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R for Data Science&lt;/a&gt; with each chapter&amp;rsquo;s learning objectives and key points. The &amp;ldquo;unofficial&amp;rdquo; 
&lt;a href=&#34;https://jrnold.github.io/r4ds-exercise-solutions/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R4DS Solutions Manual&lt;/a&gt;, a community resource developed by and for educators, is also helpful if you want to use R4DS in the classroom.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1 id=&#34;workshops&#34;&gt;Workshops
  &lt;a href=&#34;#workshops&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Many of you may have taken workshops from the RStudio team, but did you know that all of RStudio&amp;rsquo;s workshop materials are available for you to use in your own workshops? Below are a few of the more popular workshop respositories proven popular with teachers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/rstudio-education/remaster-the-tidyverse/blob/master/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Teach the Tidyverse.&lt;/strong&gt;&lt;/a&gt; 
&lt;a href=&#34;https://github.com/rstudio-education/remaster-the-tidyverse/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Master the Tidyverse&lt;/a&gt; is an award-winning two-day introduction to doing data science with the 
&lt;a href=&#34;https://www.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tidyverse&lt;/a&gt;. This repository contains instructor materials (Keynote slides and exercises) for teaching this workshop. You can teach the workshop as is, adapt it to your needs, or divide it into two one day workshops: &lt;em&gt;Welcome to the Tidyverse&lt;/em&gt;, which covers Exploratory Data Analysis, and &lt;em&gt;Data Wrangling with the Tidyverse&lt;/em&gt;. See the README for teaching tips.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/rstudio-education/teach-shiny&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Teach Shiny.&lt;/strong&gt;&lt;/a&gt; This workshop is designed for those who want to up their teaching Shiny game, and is particularly aimed at training partners who want to qualify as an RStudio Certified Shiny Instructor and at those who are R and Shiny advocates in their organizations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Teach R Markdown.&lt;/strong&gt; If you want to teach R Markdown, we have designed several workshops for teaching the basics to the more advanced topics. You can find the materials for a full two-day workshop on 
&lt;a href=&#34;https://arm.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Advanced R Markdown&lt;/em&gt;&lt;/a&gt; (
&lt;a href=&#34;https://github.com/rstudio-education/arm-workshop-rsc2019&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;source&lt;/a&gt;), a four-hour introductory workshop on 
&lt;a href=&#34;https://rmd4medicine.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;R Markdown for Medicine&lt;/em&gt;&lt;/a&gt; (
&lt;a href=&#34;https://github.com/rstudio-education/rmd4medicine&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;source&lt;/a&gt;) aimed at clinical researchers, and a full-day workshop on 
&lt;a href=&#34;https://ysc-rmarkdown.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Communicating with R Markdown&lt;/em&gt;&lt;/a&gt; (
&lt;a href=&#34;https://github.com/rstudio-education/communicate-rmd-workshop&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;source&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/rstudio-education/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Teach everything else!&lt;/strong&gt;&lt;/a&gt; At the 
&lt;a href=&#34;https://github.com/rstudio-education/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Education GitHub Organization&lt;/a&gt; instructors can find the materials for all workshops taught by the RStudio Education team. All of these workshop materials are openly-licensed and freely-available for reuse. Please follow the reuse guidelines outlined in the licenses in the specific repositories, and enjoy leveraging quality teaching materials designed and developed by our team!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Experts</title>
      <link>https://education.rstudio.com/learn/expert/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/learn/expert/</guid>
      <description>


&lt;p&gt;Even once you are an expert at R code development, learning some topics in depth will both help you develop better code and share it more effectively with others.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dive into the foundations of R.&lt;/strong&gt; Most R users are not programmers, and therefore much of their R code is not as readable, fast, or efficient as it could be. The second edition of Hadley Wickham’s book, &lt;em&gt;Advanced R&lt;/em&gt; &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-wickham2019advanced&#34;&gt;2019&lt;/a&gt;)&lt;/span&gt; (available for &lt;a href=&#34;https://adv-r.hadley.nz/&#34;&gt;free online&lt;/a&gt; and as &lt;a href=&#34;https://www.amazon.com/dp/0815384572/ref=cm_sw_r_tw_dp_U_x_aJ-IDb98S6FE7&#34;&gt;an O’Reilly paperback from Amazon&lt;/a&gt;), unlocks many of the secrets behind how R works the way it does, and gives you new strategies for solving diverse problems. You may also want to bookmark &lt;a href=&#34;https://advanced-r-solutions.rbind.io/&#34;&gt;&lt;em&gt;Advanced R Solutions&lt;/em&gt;&lt;/a&gt;, which provides worked solutions to the exercises in this book.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn how to extend R.&lt;/strong&gt; While its content sometime overlaps with Hadley’s &lt;em&gt;Advanced R&lt;/em&gt;, the R Core Team offers &lt;em&gt;Writing R Extensions&lt;/em&gt; (&lt;a href=&#34;https://cran.r-project.org/doc/manuals/r-release/R-exts.html&#34;&gt;electronic version&lt;/a&gt;) on CRAN. This book is particularly useful if you wish to add your own C and C++ routines to R, but also has unique information on debugging, the R API, and runtime profiling that is difficult to find anywhere else.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build your own packages.&lt;/strong&gt; R packages allow you to share your functions with other R programmers in a modular and easy-to-integrate way. The above-mentioned &lt;em&gt;Writing R Extensions&lt;/em&gt; documents how to write packages, but you may find Hadley Wickham’s &lt;em&gt;R Packages&lt;/em&gt; book &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-wickham2015r&#34;&gt;2015&lt;/a&gt;)&lt;/span&gt; (&lt;a href=&#34;http://r-pkgs.had.co.nz/&#34;&gt;electronic here (1st edition)&lt;/a&gt; and &lt;a href=&#34;https://www.amazon.com/dp/1491910593/ref=cm_sw_su_dp?tag=r-pkgs-20&#34;&gt;an O’Reilly paperback (1st edition) from Amazon here&lt;/a&gt;) a bit easier to read and more step-by-step. The second edition of the &lt;em&gt;R Packages&lt;/em&gt; book is currently in progress, written by Hadley and co-author Jenny Bryan. You can read the in-progress book for &lt;a href=&#34;https://r-pkgs.org/&#34;&gt;free online&lt;/a&gt;. If you want your R code to reach the widest possible population of developers, you’ll want to know how to build packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Python in your analyses.&lt;/strong&gt; Anyone who insists you must choose between R and Python for doing data science is creating a false choice. R offers an easy way to incorporate Python code in the &lt;a href=&#34;https://rstudio.github.io/reticulate&#34;&gt;reticulate package&lt;/a&gt;. Sean Lopp’s webinar, &lt;a href=&#34;https://resources.rstudio.com/webinars/r-rstudio-1-2-amp-python-a-love-story-sean-lopp&#34;&gt;&lt;em&gt;R, RStudio 1.2 &amp;amp; Python—a love story&lt;/em&gt;&lt;/a&gt;, demonstrates how easily developers can integrate Python code into their R workflows and walks through the development of a reticulated Shiny app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Try your hand at Tensorflow for deep learning.&lt;/strong&gt; RStudio hosts a web site dedicated to R and Tensorflow at &lt;a href=&#34;https://tensorflow.rstudio.com&#34;&gt;tensorflow.rstudio.com&lt;/a&gt;, where you can learn how to use deep learning in your analyses.
J.J. Allaire and Francois Chollet have published a &lt;a href=&#34;https://www.amazon.com/Deep-Learning-R-Francois-Chollet/dp/161729554X&#34;&gt;&lt;em&gt;Deep Learning with R&lt;/em&gt; book&lt;/a&gt; &lt;span class=&#34;citation&#34;&gt;(&lt;a href=&#34;#ref-chollet2018deep&#34;&gt;2018&lt;/a&gt;)&lt;/span&gt;. You can hear J.J. describe the philosophy behind the system in his &lt;a href=&#34;https://www.rstudio.com/resources/videos/machine-learning-with-tensorflow-and-r/&#34;&gt;rstudio::conf 2019 video&lt;/a&gt;. For an quick overview of resources for how to get started with deep learning in R, read &lt;a href=&#34;https://blog.rstudio.com/2018/09/12/getting-started-with-deep-learning-in-r/&#34;&gt;Sigrid Keydana’s article&lt;/a&gt; and subscribe to the &lt;a href=&#34;https://blogs.rstudio.com/tensorflow/&#34;&gt;Tensorflow for R blog&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communicate with R Markdown.&lt;/strong&gt; The R Markdown family of packages enables you to create and share beautiful data science products like books, blogs, websites, and presentations. Experiment with packages like &lt;a href=&#34;https://bookdown.org/yihui/bookdown/&#34;&gt;bookdown&lt;/a&gt;, &lt;a href=&#34;https://rstudio.github.io/distill/&#34;&gt;distill&lt;/a&gt;, and &lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34;&gt;blogdown&lt;/a&gt;; each extends R Markdown to help you publish polished websites for sharing your work. If you want to present analyses or visualizations made with R code, consider making your slides with R Markdown using the &lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/xaringan.html&#34;&gt;xaringan package&lt;/a&gt;. If you’ve built an R package, the &lt;a href=&#34;https://pkgdown.r-lib.org/&#34;&gt;pkgdown&lt;/a&gt; package makes it quick and relatively painless to build a website for your package, using all the work you’ve already done to write and document your functions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;Books &amp;amp; packages referenced&lt;/summary&gt;
&lt;p&gt;
&lt;div id=&#34;refs&#34; class=&#34;references&#34;&gt;
&lt;div id=&#34;ref-R-distill&#34;&gt;
&lt;p&gt;Allaire, JJ, Rich Iannone, and Yihui Xie. 2019. &lt;em&gt;Distill: ’R Markdown’ Format for Scientific and Technical Writing&lt;/em&gt;. &lt;a href=&#34;https://github.com/rstudio/distill&#34;&gt;https://github.com/rstudio/distill&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-chollet2018deep&#34;&gt;
&lt;p&gt;Chollet, François, and J. J. Allaire. 2018. &lt;em&gt;Deep Learning with R&lt;/em&gt;. Manning Publications.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-reticulate&#34;&gt;
&lt;p&gt;Ushey, Kevin, JJ Allaire, and Yuan Tang. 2019. &lt;em&gt;Reticulate: Interface to ’Python’&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=reticulate&#34;&gt;https://CRAN.R-project.org/package=reticulate&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-wickham2015r&#34;&gt;
&lt;p&gt;Wickham, Hadley. 2015. &lt;em&gt;R Packages: Organize, Test, Document, and Share Your Code&lt;/em&gt;. O’Reilly Media, Inc. &lt;a href=&#34;https://r-pkgs.org/&#34;&gt;https://r-pkgs.org/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-wickham2019advanced&#34;&gt;
&lt;p&gt;———. 2019. &lt;em&gt;Advanced R, Second Edition&lt;/em&gt;. Chapman; Hall/CRC. &lt;a href=&#34;https://adv-r.hadley.nz/&#34;&gt;https://adv-r.hadley.nz/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-pkgdown&#34;&gt;
&lt;p&gt;Wickham, Hadley, and Jay Hesselberth. 2018. &lt;em&gt;Pkgdown: Make Static Html Documentation for a Package&lt;/em&gt;. &lt;a href=&#34;https://CRAN.R-project.org/package=pkgdown&#34;&gt;https://CRAN.R-project.org/package=pkgdown&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-blogdown&#34;&gt;
&lt;p&gt;Xie, Yihui. 2019a. &lt;em&gt;Blogdown: Create Blogs and Websites with R Markdown&lt;/em&gt;. &lt;a href=&#34;https://github.com/rstudio/blogdown&#34;&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-bookdown&#34;&gt;
&lt;p&gt;———. 2019b. &lt;em&gt;Bookdown: Authoring Books and Technical Documents with R Markdown&lt;/em&gt;. &lt;a href=&#34;https://github.com/rstudio/bookdown&#34;&gt;https://github.com/rstudio/bookdown&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-R-xaringan&#34;&gt;
&lt;p&gt;———. 2019c. &lt;em&gt;Xaringan: Presentation Ninja&lt;/em&gt;. &lt;a href=&#34;https://github.com/yihui/xaringan&#34;&gt;https://github.com/yihui/xaringan&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Tools for teaching</title>
      <link>https://education.rstudio.com/teach/tools/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/teach/tools/</guid>
      <description>&lt;p&gt;Whether you are teaching for the first time or you are a seasoned educator, you know that finding the right tools can make or break any learning experience. As professional data science educators, we offer some opinionated advice about how to choose your computing infrastructure, and which packages are worth your time for adding value to your teaching.&lt;/p&gt;




&lt;h1 id=&#34;computing-infrastructure&#34;&gt;Computing infrastructure
  &lt;a href=&#34;#computing-infrastructure&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;A common friction point for getting students (and faculty) started with computing is installation and setup. Having the right computing infrastructure in place can make life easier for you as an educator, and can help put your learners on the happy path early. We have found that paying careful attention to your technical stack &lt;em&gt;before&lt;/em&gt; you start teaching can minimize frustration and improve buy in for both students and instructors.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href=&#34;https://www.rstudio.com/pricing/academic-pricing/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sign up for RStudio Academic pricing&lt;/a&gt;.&lt;/strong&gt; RStudio offers special academic pricing discounts for our professional products to qualified academic institutions. This includes 
&lt;a href=&#34;https://rstudio.com/products/rstudio-server-pro/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Server Pro&lt;/a&gt;, 
&lt;a href=&#34;https://rstudio.com/products/connect/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Connect&lt;/a&gt;, and 
&lt;a href=&#34;https://rstudio.com/products/package-manager/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Package Manager&lt;/a&gt;. To find out if you qualify, please read more 
&lt;a href=&#34;https://www.rstudio.com/pricing/academic-pricing/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. To get academic pricing, 
&lt;a href=&#34;https://www.rstudio.com/about/contact-sales/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;contact the RStudio Sales team&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use 
&lt;a href=&#34;https://resources.rstudio.com/webinars/rstudio-cloud-in-the-classroom&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud in the Classroom&lt;/a&gt;.&lt;/strong&gt; 
&lt;a href=&#34;https://rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt; is a managed cloud instance of the RStudio IDE. This means you and your learners can use the RStudio IDE directly from your browser - there is no software to install and nothing to configure on your computer. Using RStudio Cloud early in a workshop or course allows you to circumvent the installation step and skip right to the good stuff. This webinar walks you through the steps of setting up your course on RStudio Cloud, highlighting the various functionalities for teachers and students.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Craft your course infrastructure.&lt;/strong&gt; The article 
&lt;a href=&#34;https://peerj.com/preprints/3181/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Infrastructure and tools for teaching computing throughout the statistical curriculum&lt;/em&gt;&lt;/a&gt; discusses computational infrastructure and toolkit choices for modern educators using RStudio Server and RStudio Server Pro. The authors provide links to technical notes on setting up these systems for teaching, intended for both academics and IT professionals. (Note: A peer reviewed, but pay-walled version of the article can be found 
&lt;a href=&#34;https://www.tandfonline.com/doi/full/10.1080/00031305.2017.1397549&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use version control.&lt;/strong&gt; Our team uses 
&lt;a href=&#34;https://github.com/rstudio-education&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;. A lot. We use it for version control, but also for its side benefits: GitHub makes it easier to collaborate with others and share content with learners. If you aren&amp;rsquo;t using version control yet, take a few minutes to read the article 
&lt;a href=&#34;https://peerj.com/preprints/3159/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;&amp;ldquo;Excuse me, do you have a moment to talk about version control?&amp;quot;&lt;/em&gt;&lt;/a&gt; Now that you are convinced, bookmark 
&lt;a href=&#34;https://happygitwithr.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Happy Git with R&lt;/em&gt;&lt;/a&gt; also by 
&lt;a href=&#34;https://jennybryan.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenny Bryan&lt;/a&gt;. This free online book contains battle-tested instructions for setting up Git, GitHub, and RStudio across all operating systems. Use it yourself, and send your learners there too.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1 id=&#34;packages&#34;&gt;Packages
  &lt;a href=&#34;#packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;After you get your tech stack set up, you&amp;rsquo;ll want to think about packages that can help you create and deliver your content better. Several of RStudio&amp;rsquo;s open source R packages can be very helpful when creating, organizing, and delivering your educational content.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create interactive tutorials with the 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr package&lt;/a&gt;.&lt;/strong&gt; The 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr package&lt;/a&gt; is designed to turn any 
&lt;a href=&#34;https://rmarkdown.rstudio.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Markdown document&lt;/a&gt; into an interactive tutorial. The final product can be published all of the same ways that Shiny applications can, including running locally on an end-user’s machine or running on a Shiny Server or hosting service like 
&lt;a href=&#34;https://www.shinyapps.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shinyapps.io&lt;/a&gt;. All of the 
&lt;a href=&#34;https://rstudio.cloud/learn/primers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio.cloud Primers&lt;/a&gt; are written with learnr — you can see the source code in this 
&lt;a href=&#34;https://github.com/rstudio-education/primers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Grade learnr tutorials with the 
&lt;a href=&#34;https://rstudio-education.github.io/gradethis/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gradethis package&lt;/a&gt;.&lt;/strong&gt; Once you’ve created a tutorial, you&amp;rsquo;ll probably want to evaluate learners’ solutions, and provide targeted feedback based on their input. Gradethis is a package that grades code and provides meaningful feedback in 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt;
interactive tutorials, or as a standalone code grader. It gives instructors the ability to capture code submitted by a student and checks it by comparing the final result, the actual code,
or against a set of test conditions. When gradethis is used to compare a learner&amp;rsquo;s code against solution code, it can report &lt;em&gt;how&lt;/em&gt; the answer differs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Give your teaching materials a place to live.&lt;/strong&gt; Many educators who teach R (or teach with R) have embraced the 
&lt;a href=&#34;https://bookdown.org/yihui/bookdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bookdown package&lt;/a&gt;, which helps you take a collection of R Markdown documents and knit them together into a polished website that engages learners. You can see some example books by browsing 
&lt;a href=&#34;https://bookdown.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bookdown.org&lt;/a&gt;. But you don&amp;rsquo;t &lt;em&gt;have&lt;/em&gt; to write a whole book — some of the best bookdown examples are from course or workshop notes like Columbia University&amp;rsquo;s 
&lt;a href=&#34;https://edav.info/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Exploratory Data Analysis &amp;amp; Visualization&lt;/em&gt; (edav.info)&lt;/a&gt;, 
&lt;a href=&#34;https://rmd4sci.njtierney.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;R Markdown for Scientists&lt;/em&gt;&lt;/a&gt; by 
&lt;a href=&#34;https://www.njtierney.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Nick Tierney&lt;/a&gt;, and 
&lt;a href=&#34;https://rstats.wtf/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;What They Forgot to Teach You About R&lt;/em&gt;&lt;/a&gt;. And once you&amp;rsquo;ve been bitten by the *down bug, you may not ever recover — you may start making websites for all your workshops with 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown&lt;/a&gt; and making all your 
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/xaringan.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;slides with R Markdown&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Get serious about using GitHub in your classroom.&lt;/strong&gt; The 
&lt;a href=&#34;https://rundel.github.io/ghclass/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ghclass package&lt;/a&gt; provides a suite of functions to manage courses via GitHub repositories for as few as two and as many as 400 learners. This package will help you if your aim is to teach learners how to use version control with R as part of a modern data science workflow, and you want to reduce your own and their Git pains. 
&lt;a href=&#34;https://rundel.github.io/ghclass/articles/ghclass.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;This vignette&lt;/a&gt; lays out the nitty-gritty of setting your class up in GitHub with ghclass.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Reflecting on Mentorship Experience</title>
      <link>https://education.rstudio.com/blog/2021/02/ncsu-mentorship-reflect/</link>
      <pubDate>Wed, 17 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2021/02/ncsu-mentorship-reflect/</guid>
      <description>&lt;p&gt;My name is Christian Okoth and I am a senior at NC State studying statistics and English. This past semester, I participated in a mentorship collaboration between the NC State statistics department and 
&lt;a href=&#34;https://juliasilge.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Julia Silge&lt;/a&gt; from RStudio. This project used data from the paper 
&lt;a href=&#34;https://doi.org/10.18653/v1/p19-1566&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Persuasion for Good&amp;rdquo;&lt;/a&gt;, which includes a large set of quantitative data as well as free text. The original paper attempted to collect samples for speech to teach AIs and chatbots how to better persuade people using personalized information to target their bots more efficiently. Our approach was more to understand the participants through examining the words they said and see if there were any significant or interesting relationships between word use and group qualities.&lt;/p&gt;




&lt;h2 id=&#34;debugging-and-reproducibility&#34;&gt;Debugging and reproducibility
  &lt;a href=&#34;#debugging-and-reproducibility&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I had not worked formally with a mentor up until this point, but working with Dr. Silge was incredible. Her mentoring style was highly interactive. Imagine a mix between live coding and dialogue back and forth, debug in real time (that was very cool, something you don&amp;rsquo;t realize you need to know) and I could learn from asking questions about the process of exploring tools, options, manuals, and error messages alongside her. Exploration was a key part of learning; I had just enough guidance to point me in the right direction to solve my own problems.&lt;/p&gt;
&lt;p&gt;All of this is before I learned about text processing. My R journey was largely self taught, and I hadn&amp;rsquo;t realized how much I was missing from my process. I generally don&amp;rsquo;t like to ask questions but asking questions in this environment was empowering. Working with text data was important to me, as computer text processing needs grow every day.&lt;/p&gt;




&lt;h2 id=&#34;tf-idf-and-repositioning&#34;&gt;tf-idf and repositioning
  &lt;a href=&#34;#tf-idf-and-repositioning&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I think my favorite part of the experience is when we explored the term frequency and inverse document frequency. I had just finished making several dynamic plots of the participant variables and the frequency plots all looked very good. Then Dr. Silge brought up some information about the topic and showed me how to do some analysis with tf-idf. So I spent the week looking over it, trying to make some more plots using pieces of her code, however I could not get a lot of the plots to make much sense. The next week, we realized that it wasn&amp;rsquo;t going to work.&lt;/p&gt;
&lt;p&gt;The combination of knowledge and ability it requires to change strategies is immense. First you have to try and fix what is wrong. Then if that doesn&amp;rsquo;t work, you have to understand why it&amp;rsquo;s wrong. Once you do that, you pull on knowledge from experience, knowing where to look and how to find what you need. Then you can pivot to a new strategy that will accommodate the failings of the former approach.
For tf-idf, we tried everything: regrouping the variables, completing any incomplete lines, adjusting the code approach (percent vs. absolute). That work only returned more garbled answers. Turn to the documentation: how does the tf-idf function work in R? How does it work outside of R? What are the principal assumptions and requirements of the tf-idf approach?&lt;/p&gt;
&lt;p&gt;As it turns out, tf-idf wasn&amp;rsquo;t broken, it was simply an inappropriate solution to our data. Rather than discerning which conversations centered around disaster relief or religion, tf-idf discerned which words were the most or least unique for any conversation, and &amp;ldquo;rupees&amp;rdquo; is pretty uncommon in the dataset. But even between thousands of conversations, search engine level tf-idf couldn&amp;rsquo;t identify patterns within each group of conversations, so the issue was with the relative raw counts. Dr. Silge immediately thought to another technique she was familiar with, log-odds, frequently used in logistic regression. The specific tool was a Bayesian log-odds.  This strategy was able to accommodate the raw counts by 
&lt;a href=&#34;https://juliasilge.github.io/tidylo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;weighting the likelihood of finding a word in a document adjusted&lt;/a&gt; for document size rather than a cross document unweighted comparison, and it managed to reveal some interesting relationships within the data.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;log_odds_role.png&#34; alt=&#34;roles&#34;&gt;&lt;/p&gt;




&lt;h2 id=&#34;what-i-learned&#34;&gt;What I learned
  &lt;a href=&#34;#what-i-learned&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Over the course of the semester, I learned about text processing and analysis, but I learned even more about R. There are workflows and alternative approaches, so many ways to use R that you just can&amp;rsquo;t know about without a guide through it all. This experience was unique, an approach that could not be replicated as a class. Mentoring in the R community is a pillar of what brings everyone together, and I am grateful for my opportunity to participate in it.
If you would like to know more about what we did and our conclusions, you can check out the 
&lt;a href=&#34;https://rpubs.com/cmokoth/persuasion&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;project webpage&lt;/a&gt; I created and published.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Online Educational Content Development: Pain Points &amp; the Future</title>
      <link>https://education.rstudio.com/blog/2021/02/cbds/</link>
      <pubDate>Mon, 15 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2021/02/cbds/</guid>
      <description>&lt;p&gt;This is a story about one of my favorite topics: 
&lt;a href=&#34;https://www.clouddatascience.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cloud-Based Data Science&lt;/a&gt;. We&amp;rsquo;ll talk about what it is, its development history, and a &lt;em&gt;few&lt;/em&gt; associated pain points. Ultimately, I&amp;rsquo;m writing this so that I can propose a dream platform for online educational content that learns from our mistakes/ experience, in not-so-secret hopes that someone else builds it.&lt;/p&gt;




&lt;h2 id=&#34;background&#34;&gt;Background
  &lt;a href=&#34;#background&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m now an Assistant Teaching Professor at UC San Diego. This means that I get to spend my days teaching, working with students and instructional staff members and thinking about how to do all of that better. It&amp;rsquo;s pretty awesome. Okay, I also have to do all that less-than-fun administrative stuff that goes along with teaching really large undergraduate course, but naturally using R makes even most of that a bit easier. That&amp;rsquo;s probably a different blog post though.&lt;/p&gt;
&lt;p&gt;Anyway, before I started at UC San Diego, I was in Baltimore at Johns Hopkins Bloomberg School of Public Health working with the 
&lt;a href=&#34;http://jtleek.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Leek Group&lt;/a&gt; and a 
&lt;a href=&#34;https://www.clouddatascience.org/team&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;team of incredible people&lt;/a&gt; to make Cloud-Based Data Science (CBDS) a thing. You see, we had this dream of getting people who typically had limited to no access to data science education an education in data science for free, in a short period of time, and without any requirements for previous programming or advanced math training.&lt;/p&gt;
&lt;p&gt;With the benefit of hindsight, this was kind of a wild dream. Regardless, I was all in. I spent a year solely focused on getting CBDS off the ground. Naturally, there was a whole team of people focused on making this happen, and our roles were distributed across the many moving pieces.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Given my interest in education, it was a very natural fit that I (with others!) would focus on developing the content for the courses that would become the online program.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;leanpub.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;




&lt;h2 id=&#34;cbds-goals&#34;&gt;CBDS: Goals
  &lt;a href=&#34;#cbds-goals&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;From the first discussions of this project we had a few non-negotiables. The content had to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;be completeable on a Chromebook&lt;/li&gt;
&lt;li&gt;be plain-text&lt;/li&gt;
&lt;li&gt;have videos that were &lt;em&gt;actually&lt;/em&gt; updateable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We wanted this content to be as accessible as possible. Chromebooks are available at most libraries and are &lt;em&gt;way&lt;/em&gt; more affordable than typical laptops. Jeff carried out a 
&lt;a href=&#34;https://simplystatistics.org/2017/08/29/data-science-on-a-chromebook/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;proof of concept experiment&lt;/a&gt;, working exclusively on a Chromebook for months to ensure that doing data science is possible on a Chromebook. With positive results, we were committed. So committed in fact, we initially named the program Chromebook Data Science, which was later changed to Cloud-Based Data Science &lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;. Regardless, it was settled: anyone with an Internet connection would be able to complete this program.&lt;/p&gt;
&lt;p&gt;For the second two non-negotiables, these were largely informed by our previous development of the 
&lt;a href=&#34;https://www.coursera.org/specializations/jhu-data-science&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science Specialization&lt;/a&gt; &amp;ndash; a popular MOOC hosted on the Coursera Platform.&lt;/p&gt;
&lt;p&gt;Jeff Leek tells a great story about how the Data Science Specialization team released their MOOC, only for Hadley Wickham to release &lt;code&gt;dplyr&lt;/code&gt; &lt;em&gt;right&lt;/em&gt; after their initial launch. This meant that a lot of the code and examples presented in the MOOC were (almost instantly) out-of-date.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;dplyr.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;This happens frequently with online courses because to update MOOCs, you typically have to not only interact with a proprietary platform to update content but you also have to spend hours in front of the camera to re-record and edit videos.&lt;/p&gt;
&lt;p&gt;We wanted those issues to be things of the past.&lt;/p&gt;
&lt;p&gt;For this CBDS endeavor, we planned to develop the content on a platform that allowed all of the content to be plain text. This would thus enable us to generate automated videos that would be re-compileable in an instant, rather than re-recorded in a painful and time-consuming manner.&lt;/p&gt;
&lt;p&gt;For the plain text, we turned to 
&lt;a href=&#34;https://leanpub.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Leanpub&lt;/a&gt;. While their experience has historically been as an online publisher of books, they were developing their courses platform at the same time we were developing CBDS. Their platform allowed everything to be written in 
&lt;a href=&#34;https://leanpub.com/markua/read&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Markua&lt;/a&gt;, which is a slightly-specialized Markdown syntax.&lt;/p&gt;
&lt;p&gt;As for the videos, that didn&amp;rsquo;t exist yet. Pain point number 1.&lt;/p&gt;




&lt;h2 id=&#34;pain-points&#34;&gt;Pain Points
  &lt;a href=&#34;#pain-points&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;With eye on our goal (make the thing!) and our non-negotiables determined (plain text, no recording videos, and could be completed on a Chromebook), we were ready to start building. And, that&amp;rsquo;s really what this blog post sets out to discuss. For some context, this post is largely borne out of a conversation that 
&lt;a href=&#34;https://alison.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alison Hill&lt;/a&gt; and I had a few months back where we discussed the pains of developing and maintaining online educational content. We both love teaching and have both, on completely separate platforms for completely different projects, run into very similar issues.&lt;/p&gt;
&lt;p&gt;This post aims to discuss those issues, explaining all the moving pieces and pain points that surround developing the educational content we&amp;rsquo;re most interested in developing. After discussing and explaining these pain points, I&amp;rsquo;ll lay out what my dream for educational content development would be. (Y&amp;rsquo;all I&amp;rsquo;m not-so-secretly laying out these pain points along with my dream in hopes that someone who is a better engineer than I am reads this and builds my dream. If you do, I ask for no credit, but I want a heads up, so I can start using/testing it. As they say, if you dream it, they will build it. That&amp;rsquo;s the saying, right?)&lt;/p&gt;




&lt;h3 id=&#34;pain-point-1---automated-videos-ari&#34;&gt;Pain Point #1 - Automated videos: &lt;code&gt;ari&lt;/code&gt;
  &lt;a href=&#34;#pain-point-1---automated-videos-ari&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The first pain point was solved fairly early in the process by 
&lt;a href=&#34;http://seankross.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sean Kross&lt;/a&gt; when he developed 
&lt;a href=&#34;https://github.com/jhudsl/ari&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;ari&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We knew we didn&amp;rsquo;t want to stand in front of a camera and record videos. We knew we wanted them to be generated computationally. That just wasn&amp;rsquo;t &lt;em&gt;actually&lt;/em&gt; possible.&lt;/p&gt;
&lt;p&gt;Then, in what seemed like a weekend, we went from musing about being able to take images and text that automatically generate a video to Sean developing &lt;code&gt;ari&lt;/code&gt;, which did precisely that.&lt;/p&gt;
&lt;p&gt;While discussing this solution, I&amp;rsquo;ll note however that working with a new technology is never without hurdles of its own. A dependency on 
&lt;a href=&#34;https://ffmpeg.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;ffmpeg&lt;/code&gt;&lt;/a&gt; led to 
&lt;a href=&#34;https://johnmuschelli.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;John Muschelli&lt;/a&gt; and I (okay, mostly John) staring at errors and reading documentation to figure out what was going on and how &lt;code&gt;ffmpeg&lt;/code&gt; had to be installed to actually work on my machine. Something about an autoencoder. Or a compiler. I can&amp;rsquo;t remember. I saw a lot of error messages, and John worked his magic to fix them.&lt;/p&gt;




&lt;h3 id=&#34;pain-point-2---plain-text-compilation&#34;&gt;Pain Point #2 - Plain-text compilation
  &lt;a href=&#34;#pain-point-2---plain-text-compilation&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;In realizing our plain-text educational content development dream, we worked with Leanpub, which was &lt;em&gt;wonderful&lt;/em&gt;. I don&amp;rsquo;t know a team of more helpful and responsive &lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. Despite their awesomeness, as noted above, when things are new, they&amp;rsquo;re new.&lt;/p&gt;
&lt;p&gt;For us, this meant that everything worked well, as long as I didn&amp;rsquo;t make any mistakes. If I missed a &lt;code&gt;?&lt;/code&gt; in quiz development or a &lt;code&gt;{&lt;/code&gt; somewhere to specify the course settings, compilation of the course would fail. Leanpub would let me know that it failed, but their error messages were not always the most helpful. I wouldn&amp;rsquo;t always know in which file the error was encountered, let alone the line. So, it involved a lot of me staring at files until I figured out which one was causing the problem.&lt;/p&gt;
&lt;p&gt;For sure in time (and much already has) Leanpub will improve these error messages, but it was early on. We wanted to use a new platform. With this, we gained a ton of flexibility but also a few bumps in the road. While plain-text development became a reality (yay!), we had to work through some compilation headaches (worth it.).&lt;/p&gt;




&lt;h3 id=&#34;pain-point-3---tracking-all-the-things&#34;&gt;Pain Point #3 - Tracking all the things
  &lt;a href=&#34;#pain-point-3---tracking-all-the-things&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I&amp;rsquo;ll note that issues with the Markua syntax during development were not the only compilation issues. Our compilation issues were by &lt;em&gt;no means&lt;/em&gt; only on Leanpub. I haven&amp;rsquo;t &lt;em&gt;quite&lt;/em&gt; made clear yet just how many pieces there were for each course.&lt;/p&gt;
&lt;p&gt;For each course, there are approximately 12 lessons.&lt;/p&gt;
&lt;p&gt;Each lesson contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the text that becomes the lesson on Leanpub&lt;/li&gt;
&lt;li&gt;the text that becomes the words in the video&lt;/li&gt;
&lt;li&gt;the images that are used in the video and the lesson on Leanpub&lt;/li&gt;
&lt;li&gt;the compiled video&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Assuming that there are 15 images in a lesson (a conservative estimate for sure), for each course there would be ~24 different text files, 180 images, and 12 videos.&lt;/p&gt;
&lt;p&gt;And there were 12 courses. So, 288 text files, 2,000+ images, and 144 videos.&lt;/p&gt;
&lt;p&gt;Every time we found a typo, text was edited, videos were recompiled and re-uploaded to YouTube, and the lessons were recompiled on Leanpub.&lt;/p&gt;
&lt;p&gt;There were a lot of moving parts, and we needed a way to keep track of everything.&lt;/p&gt;
&lt;p&gt;For example, let&amp;rsquo;s think about the videos. If the text in a video file has been updated since the last time the video was compiled, then the video needs to be recompiled. If the video has been recompiled since the last time it was uploaded to YouTube, it has to be re-uploaded to YouTube. Then, once that happens, we need to be sure the URL for the YouTube video in the lesson is updated, so that the right video shows up in the lesson, which means, we need to recompile on Leanpub.&lt;/p&gt;
&lt;p&gt;And, that&amp;rsquo;s just the videos.&lt;/p&gt;
&lt;p&gt;There was a lot to keep track of.&lt;/p&gt;
&lt;p&gt;Enter: 
&lt;a href=&#34;https://johnmuschelli.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;John Muschelli&lt;/a&gt; (again) and 
&lt;a href=&#34;https://github.com/jhudsl/didactr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;didactr&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;John Muschelli developed &lt;code&gt;didactr&lt;/code&gt; after I had been building content for three months, so I know &lt;em&gt;just&lt;/em&gt; how helpful &lt;code&gt;didactr&lt;/code&gt; was. &lt;code&gt;didactr&lt;/code&gt; was initially developed to help track all the pieces of a course. This means it was used to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;determine if all images mentioned in a lesson actually exist&lt;/li&gt;
&lt;li&gt;check to see if the images and text for a video line up&lt;/li&gt;
&lt;li&gt;use images from Google Slides&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; for videos&lt;/li&gt;
&lt;li&gt;generate videos if needed&lt;/li&gt;
&lt;li&gt;upload videos to YouTube&lt;/li&gt;
&lt;li&gt;update YouTube links in lessons&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The pain point was tracking all the pieces. John addressed that with &lt;code&gt;didactr&lt;/code&gt;. Then, YouTube gave us the big ole&amp;rsquo; no ma&amp;rsquo;am when it capped the amount of videos that can be uploaded in a day. Whenever we do a large update now, using YouTube&amp;rsquo;s API is not an option. We&amp;rsquo;ll call that pain point #3.5. It&amp;rsquo;s still a pain point. I manually updated all the videos for our last large update. And, because I&amp;rsquo;m human, I&amp;rsquo;m sure I made some mistakes. I trust the Internet will let me know. The Internet &lt;em&gt;always&lt;/em&gt; lets you know.&lt;/p&gt;




&lt;h3 id=&#34;pain-point-4---delivering-on-non-negotiable-1&#34;&gt;Pain Point #4 - Delivering on non-negotiable #1
  &lt;a href=&#34;#pain-point-4---delivering-on-non-negotiable-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Remember that theme of using new things? Well, what made CBDS possible at all, was RStudio&amp;rsquo;s release of 
&lt;a href=&#34;https://login.rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt;, which was in alpha when we started CBDS development. Like Leanpub, the RStudio Cloud team was &lt;em&gt;amazing&lt;/em&gt;. They were totally on board when we pitched CBDS to them, in which we said something along the lines of: &amp;ldquo;Well, we don&amp;rsquo;t really have any idea of how many users we&amp;rsquo;ll have. Could be 10. Could be 10,000.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;RStudio Cloud was not a pain point in and of itself. I think RStudio Cloud is a &lt;em&gt;game changer&lt;/em&gt;. But, while cloud-based products get rid of the need to deal with software installations and general 
&lt;a href=&#34;http://www.pgbovine.net/command-line-bullshittery.htm&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;command line bullshittery&lt;/a&gt;, you&amp;rsquo;re at the mercy of the application. When RStudio Cloud is down, it&amp;rsquo;s &lt;em&gt;down&lt;/em&gt;. There&amp;rsquo;s no getting around it. This happens less and less over time as the product gains stability, but early on, this was a pain point.&lt;/p&gt;
&lt;p&gt;It was particularly problematic when we were doing in-person tutoring for our adjacent 
&lt;a href=&#34;https://www.clouddatascience.org/forlearners&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CBDS+&lt;/a&gt; program. For these, we provided scholars with Chromebooks to complete the program. When RStudio Cloud was down, work was down.&lt;/p&gt;




&lt;h3 id=&#34;pain-point-5---bug-fixes&#34;&gt;Pain Point #5 - Bug Fixes
  &lt;a href=&#34;#pain-point-5---bug-fixes&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s just continue with my new thing theme. CBDS is still new. This means &lt;em&gt;we&lt;/em&gt;, like all the new technologies mentioned so far, have bugs too. I&amp;rsquo;ve done my very best to keep up with them (as the whole team has). I&amp;rsquo;ve fixed typos (including my infuriating inability to correctly type the word individual more times than I can count). I&amp;rsquo;ve fixed quiz errors. I&amp;rsquo;ve removed content. I&amp;rsquo;ve added content.&lt;/p&gt;
&lt;p&gt;And, maybe most frustratingly, I fixed the bug caused when the new version of R&amp;rsquo;s &lt;code&gt;sample()&lt;/code&gt; function was not backward-compatible. With a single update, ~80% of our quizzes were rendered unable to be completed, as they would mark the correct answer as incorrect every time. Cloud-based products are awesome, but you don&amp;rsquo;t get to necessarily control when updates occur. Nor, do you always remember to test things immediately after updates. Come to think of this, I should have way more tests in place than I actually do&amp;hellip;&lt;/p&gt;




&lt;h3 id=&#34;pain-point-6---assessment&#34;&gt;Pain Point #6 - Assessment
  &lt;a href=&#34;#pain-point-6---assessment&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I mentioned the breaking &lt;code&gt;sample()&lt;/code&gt; change that occurred with the R update. The reason this was so problematic is because we have a sub-optimal approach to assessing learning.&lt;/p&gt;
&lt;p&gt;We originally used a third-party company for extra programming practice. This means that learners would answer quiz questions on Leanpub and would have the option to get outside practice on a different (paid) platform. It was free to participants in our CBDS+ program, but not to the rest of the world.&lt;/p&gt;
&lt;p&gt;This means you could (initially) complete the program without &lt;em&gt;really&lt;/em&gt; getting true practice with the hands-on portion of the curriculum. Certainly less than ideal.&lt;/p&gt;
&lt;p&gt;We scrapped the outside company in favor of a system where learners get practice using 
&lt;a href=&#34;https://swirlstats.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;swirl&lt;/code&gt;&lt;/a&gt; on RStudio Cloud. This involves learners completing a swirl module and then, upon completion, receiving a code. This code is then the &amp;ldquo;answer&amp;rdquo; to the quiz on Leanpub.&lt;/p&gt;
&lt;p&gt;While this has been a huge improvement to our initial approach, it&amp;rsquo;s still not seamless. Learners have to leave the course material, go to RStudio Cloud, complete the practice, copy the code, and get the credit. Not. Ideal.&lt;/p&gt;




&lt;h2 id=&#34;the-dream&#34;&gt;The Dream
  &lt;a href=&#34;#the-dream&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Y&amp;rsquo;all I&amp;rsquo;m writing all of this down to spell out the fact that I absolutely still &lt;em&gt;love&lt;/em&gt; this project &lt;em&gt;in spite of&lt;/em&gt; these hurdles. I think we&amp;rsquo;ve built something really special. I think the speed at which we were able to develop it all is impressive &lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;.  &lt;em&gt;All that said&lt;/em&gt;, it is &lt;em&gt;so&lt;/em&gt; far from perfect, but it is special. CBDS is doing something hard. Teaching programming online is tough. Teaching data science to people with no background is important. And, we&amp;rsquo;re doing that.&lt;/p&gt;
&lt;p&gt;But&amp;hellip;BUT&amp;hellip;we can do it better. Here&amp;rsquo;s my dream of what that would look like from the development side.&lt;/p&gt;
&lt;p&gt;My dream platform would be a platform with which I&amp;rsquo;m already familiar (::cough:: RStudio ::cough::) because who wants to learn another NEW platform? Developing in RStudio is my happy place, and this is my dream. So, I&amp;rsquo;d want this to be developed within RStudio.&lt;/p&gt;
&lt;p&gt;Within this dream platform, there would be a way to develop &lt;strong&gt;adaptive content&lt;/strong&gt; for lessons. For example, for people struggling with a certain concept, they would get additional detail and extra practice questions before moving on to the next section. People who have got the concept down pat would move on directly. This would be specified within a text-based format.&lt;/p&gt;
&lt;p&gt;This platform would allow &lt;strong&gt;code to be run and tested (think quiz questions) directly within the lesson on the platform&lt;/strong&gt; as learners are taking it. No separate platform. Code would be written and feedback provided right then and there.&lt;/p&gt;
&lt;p&gt;It would also allow larger projects to happen as they would in the wild. For example, &lt;strong&gt;projects would be completed in a separate RStudio Cloud Workspace&lt;/strong&gt; to ensure learners were getting comfortable outside of the educational platform in what they&amp;rsquo;ll be using after they complete the course. These projects would also provide learners with magical feedback that helps them improve going forward.&lt;/p&gt;
&lt;p&gt;Videos of production-quality would be created and edited in some magically short period of time. Okay, maybe that&amp;rsquo;s gone too far. Maybe we would just be able to &lt;strong&gt;include &lt;code&gt;ari&lt;/code&gt; videos&lt;/strong&gt;. That would be acceptable in my dream.&lt;/p&gt;
&lt;p&gt;Images would be able to be inserted with each and maybe even &lt;strong&gt;dragged and dropped into place&lt;/strong&gt;. (Yeah. I said it.) In this dream world, they would magically self-organize.&lt;/p&gt;
&lt;p&gt;During development, there would be a &lt;strong&gt;Viewer preview of what the compiled course&lt;/strong&gt; would look like. This would allow for interaction and testing directly within RStudio (have I convinced you future developer that this platform has to be RStudio yet?). Error messages during compilation would be brilliantly precise, pointing me directly to where my fingers led me astray during development. (It&amp;rsquo;s probably got something to do with my inability to type individual.)&lt;/p&gt;
&lt;p&gt;Beyond development (because this is my dream), this platform would &lt;strong&gt;track user habits and pain points&lt;/strong&gt;, to make bug fixes and educational improvement more seamless. Right now, I&amp;rsquo;m pretty limited to quiz scores and bug reports. Granted, Leanpub has more, but I don&amp;rsquo;t have access to that. As an educator, I want to improve my stuff, so having access to this information would be super helpful. (And maybe a dashboard per course summarizing user information would be great&amp;hellip;.that may be going too far?) I&amp;rsquo;ve gone too far. I&amp;rsquo;ll stop my dreaming there.&lt;/p&gt;
&lt;p&gt;So&amp;hellip;if we could make this dream into a reality, I would &lt;em&gt;happily&lt;/em&gt; test it out and find all the pain points to write about in a future dream-realized blog post.&lt;/p&gt;
&lt;section class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;Note that this blog post focuses on the education technology aspect of this project and doesn&amp;rsquo;t even &lt;em&gt;touch&lt;/em&gt; on the incredible work being carried out by Ashley Johnson (Program Administrator) and Simone Sawyer (Scholar Advocate), who deserve &lt;em&gt;so&lt;/em&gt; much credit for managing and supporting the program and scholars since its launch, nor does it highlight the importance of HEBCAC (The Historic East Baltimore Community Action Coalition) and Edward Sabatino (Executive Director, HEBCAC), whose collaboration and insight have been critical for its success. For those interested, more has been write about the program implementation side 
&lt;a href=&#34;https://magazine.jhsph.edu/2019/data-science-careers-baltimores-underserved-community-members&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. &lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;We&amp;rsquo;re not marketers. We didn&amp;rsquo;t really consider the fact that Chromebook Data Science makes it sound like you &lt;em&gt;need&lt;/em&gt; a Chromebook, not just that it&amp;rsquo;s &lt;em&gt;possible&lt;/em&gt; to complete a Chromebook. This probably should have been more obvious to us. &lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;On a train ride from Baltimore to Boston I found a bug that caused our lesson on how to write functions to show code for precisely zero functions. I reported this bug on our slack channel with our awesome Leanpub people, not realizing it was Thanksgiving in Canada, where the Leanpub team lives and works. Upon realizing that, I asked the team not to worry about the bug, but they assured me that they were done with their family time and had finished their celebrations. The bug was fixed that day. &lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;Did I not mention we used Google Slides for our images? It was the best way we knew how to keep images in order, and it allowed us to link to the images directly rather than hosting all our bazillion images on GitHub. &lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:5&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;This is me bragging on the rest of the team, not on myself. &lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
    </item>
    
    <item>
      <title>Distill it down</title>
      <link>https://education.rstudio.com/blog/2021/02/distill-it-down/</link>
      <pubDate>Mon, 08 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2021/02/distill-it-down/</guid>
      <description>



&lt;h2 id=&#34;introduction&#34;&gt;Introduction
  &lt;a href=&#34;#introduction&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This post describes my journey to creating a personal website using the distill package. Along the way, I took some detours using R Markdown to create webpages and a website for a course I teach. This is not a how-to tutorial (although I will provide links to resources I used to help me along the way) but rather a reflection on why I made the choices I made. I hope this might help some of you decide which tools you might use in creating your own website.&lt;/p&gt;




&lt;h2 id=&#34;my-blogdown-fail&#34;&gt;My blogdown fail
  &lt;a href=&#34;#my-blogdown-fail&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;My journey with using the distill package to make a website began back in March of 2019 with the fancier, more customizable blogdown package. I had just gone through the 
&lt;a href=&#34;https://education.rstudio.com/trainers/#info&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Studio instructor training&lt;/a&gt; and was about to be on spring break from my job teaching at Macalester College. The instructor training had me motivated to finally build a website and that break seemed like a perfect time to do it. At the time, the only tool I had heard of for doing such a thing was blogdown&lt;/p&gt;
&lt;p&gt;Then, like many in the US and other parts of the world experienced, the news came that I would be teaching online for the rest of the semester, my husband would be working from home, and we&amp;rsquo;d have our elementary school kids home learning, too. So, creating my website took a backseat. I gave myself about 2 hours one afternoon to try to get a blogdown site up and running, but I kept getting bogged down in the details and quickly gave up.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src=&#34;images/blogdown_start.png&#34; alt=&#34;My blogdown attempt&#34;&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;I just looked back at my attempt and it&amp;rsquo;s not as terrible as I initially thought. But, for me, the blogdown site was more than I needed. Ideally, I wanted something simpler, but what else was there?&lt;/p&gt;




&lt;h2 id=&#34;hello-r-markdown-and-netlify&#34;&gt;Hello R Markdown and Netlify!
  &lt;a href=&#34;#hello-r-markdown-and-netlify&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Around that same time, I saw an advertisement for an R Studio webinar by Alison Hill and Desirée De Leon titled 
&lt;a href=&#34;https://rstudio.com/resources/webinars/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sharing on Short Notice: How to Get Your Materials Online With R Markdown&lt;/a&gt;. Wow! The description sounded like just what I needed both for getting my personal website up and running and to help put R-related materials on the web in an easy way for my students. At the time, I was feeling overwhelmed with life (who wasn&amp;rsquo;t?), so I didn&amp;rsquo;t watch the webinar right away. Instead, I kept it open on a tab and tweeted out a reminder to myself:&lt;/p&gt;
&lt;center&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;I want to use this now but just can&amp;#39;t find the time. But thanks for sharing. I&amp;#39;ve added it to the summer to-do list. &lt;a href=&#34;https://t.co/aDfLkivOkr&#34;&gt;https://t.co/aDfLkivOkr&lt;/a&gt;&lt;/p&gt;&amp;mdash; Dr. Lisa Lendway (@lisalendway) &lt;a href=&#34;https://twitter.com/lisalendway/status/1245139228113227776?ref_src=twsrc%5Etfw&#34;&gt;April 1, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;
&lt;/center&gt;
&lt;p&gt;Fast forward to mid-May 2020. My summer break had started, and one of the first things I did was finally watch the &lt;em&gt;Sharing on Short Notice&lt;/em&gt; webinar. I loved their analogy of &amp;ldquo;Climbing R Markdown Mountain&amp;rdquo; and was surprised to learn that the two tools I had heard of, bookdown and blogdown, were two of the more complex tools. This webinar was also where I heard of 
&lt;a href=&#34;https://www.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netlify&lt;/a&gt; (a platform for easily deploying a website) for the first time.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;img src=&#34;images/rmarkdown_mountain.png&#34; alt=&#34;Illustration from Sharing on Short Notice, A. Hill &amp; D. De Leon&#34;&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;It wasn&amp;rsquo;t until August when I finally put the tools to action. I was in the thick of prepping course materials for my Introductory Data Science course. I knew I wanted to put them online both to make them easier for my students to access and to make them accessible to people other than my students. In the past, I had just uploaded either R Markdown files or knitted html files (with the Download Rmd option) to the course moodle site (moodle is a course management system).&lt;/p&gt;
&lt;p&gt;After watching the &lt;em&gt;Sharing on Short Notice&lt;/em&gt; webinar a few more times, I decided to start at the base of the mountain, not even entering the website realm, by creating a single webpage from an R Markdown document. I did this for each topic in the course, ending up with five separate webpages for the course.You can see an example of my first site 
&lt;a href=&#34;https://ggplot-dplyr-intro.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. This is NOT fancy, but it worked well for me for a couple reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;It was EASY! The only new skill I had to learn was how to deploy to Netlify. The process goes like this: Create an R Project (I also put it on GitHub) &amp;ndash;&amp;gt; make the R Markdown document &amp;ndash;&amp;gt; knit to html &amp;ndash;&amp;gt; drop the project folder on Netlify (or, link to GitHub repo). It was very similar to what I had already been doing - uploading the files to moodle. To be honest, it was even easier! I only had to put a link to the Netlify webpage on the moodle page. And, because the Netlify page was deployed through my GitHub repository, changes to the document were automatically updated on the webpage when I pushed them out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I didn&amp;rsquo;t need to think a lot about website design because each topic was just a single webpage. I did make sure to use the same theme throughout, but that was about as much as I thought about web design. This keeps the YAML simple, which I like for my intro students since many of them download the R Markdown code for the files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I could easily compartmentalize the different course topics because they were their own projects (separate folders) and their own webpages. After the first few weeks of the quarter, I was prepping course material in a just-in-time fashion, usually finishing the same day the students needed to use it. Having separate projects made it easy to forget about an old topic and move onto a new one.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This list of pros for using R Markdown webpages has many similarities to the corresponding list of cons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Being able to easily compartmentalize topics meant making 5 (actually 6, if I include an R Basics page I use for multiple courses) different webpages! Yikes, that&amp;rsquo;s a lot of webpages to manage and still required me to use the course management system to unite all the material together. Although I have folders organized fairly well, there are six smaller projects rather than one large project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The webpages feel a little &amp;ldquo;plain&amp;rdquo;. This was purposeful because I wanted a simple YAML but perhaps a bit sad :(&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;an-r-markdown-site&#34;&gt;An R Markdown site
  &lt;a href=&#34;#an-r-markdown-site&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;By the end of my first quarter of teaching, I was happy with the material I had produced and glad it was online where I could share it with a larger group, but I wanted to better unite the material. To do this, I started climbing &amp;ldquo;R Markdown Mountain&amp;rdquo;. I chose the easiest hike and created an R Markdown website: 
&lt;a href=&#34;https://ds112-lendway.netlify.app/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my course website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although I was again tempted by some of the other options, I decided against them for the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Both blogdown and distill were going to require more thought than I had time for, including potentially making changes to the R Markdown file. I also wanted to keep the same theme (albeit a bit plain) for anyone who was already using the webpages, especially my students, which might require changing some CSS - I wasn&amp;rsquo;t ready to delve into that yet, either.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using the bookdown package seemed like a good option, but it would also require some changes to the R Markdown files and I could not figure out how to nicely add the code download button at the top of each chapter so students (and others) could download the R Markdown file for each topic.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Truthfully, I also did quite a bit of &amp;ldquo;cheating&amp;rdquo; in my R Markdown website. One of the bad parts of an R Markdown website is that you can&amp;rsquo;t have subfolders. Since my individual topic webpage projects each already had many files in them, this would have led to a very messy folder full of files. So, I just used the R Markdown site to unite all my individual webpages. Each topic still has its own webpage that is linked in the R Markdown website. I was able to create this site in well under an hour (yay!) and it serves its purpose for now.&lt;/p&gt;
&lt;center&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;I’ve finally put all my Intro Data Science materials in one place! It may not be the cutest website but it was quick to make. I hope the material might be useful to new &lt;a href=&#34;https://twitter.com/hashtag/RStats?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#RStats&lt;/a&gt; users or people using R to teach data science. &lt;a href=&#34;https://t.co/JkJMti8AEi&#34;&gt;https://t.co/JkJMti8AEi&lt;/a&gt;&lt;/p&gt;&amp;mdash; Dr. Lisa Lendway (@lisalendway) &lt;a href=&#34;https://twitter.com/lisalendway/status/1330994486944600069?ref_src=twsrc%5Etfw&#34;&gt;November 23, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;
&lt;/center&gt;
&lt;p&gt;When time allows, I will reinvestigate the organization of this website to try to make it more cohesive.&lt;/p&gt;




&lt;h2 id=&#34;distill-it-down&#34;&gt;Distill it down
  &lt;a href=&#34;#distill-it-down&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Remember, this journey began with me wanting to create a personal website. I felt a little overwhelmed with a blogdown site when I first tried it but also felt like that was the route I needed to go since many of the R blogs I visited were built using blogdown. A couple of things changed my mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Watching the distill portion of &lt;em&gt;Sharing on Short Notice&lt;/em&gt; a couple more times illustrated how simple it was to create a site.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reading some of the 
&lt;a href=&#34;https://rstudio.github.io/distill/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;distill documentation&lt;/a&gt; confirmed that it was fairly easy to do.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Other distill sites I perused looked really nice! Two of my favorites are by 
&lt;a href=&#34;https://ijeamaka-anyene.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ijeamaka Anyene&lt;/a&gt; and 
&lt;a href=&#34;https://www.pipinghotdata.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shannon Pileggi, aka Piping Hot Data&lt;/a&gt;. Shannon even tweeted about using distill!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;I love the distill package! 🙌 🎊Distill empowered me to start sharing &lt;a href=&#34;https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#rstats&lt;/a&gt; content 💪without the learning curve of blogdown/hugo 🗻. You can check out my distill backed blog at &lt;a href=&#34;https://t.co/dLa6zI1iSb&#34;&gt;https://t.co/dLa6zI1iSb&lt;/a&gt;. &lt;a href=&#34;https://t.co/Q0CzNl6oEm&#34;&gt;https://t.co/Q0CzNl6oEm&lt;/a&gt;&lt;/p&gt;&amp;mdash; Shannon Pileggi (@PipingHotData) &lt;a href=&#34;https://twitter.com/PipingHotData/status/1336132591791996934?ref_src=twsrc%5Etfw&#34;&gt;December 8, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;
&lt;/center&gt;
&lt;ul&gt;
&lt;li&gt;There was enough I could change about the website to make it look unique, but the defaults were a good start. My procrastination also seemed to pay off because new updates to the distill package made theming (customization, ie. font/title/background/navbar/etc. colors, sizes, styles, etc.) even easier with the &lt;code&gt;create_theme()&lt;/code&gt; function. This function creates a CSS file with commonly used CSS selectors that you can easily change. You can change other CSS selectors, too, but you may need to know a little more about CSS to do that. If you&amp;rsquo;re like me and are very unfamiliar with CSS, I would recommend only changing the defined ones first - there is plenty there!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After making the decision to go with distill to build my website, it was time to visit more resources. These are the ones I used most:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Alison Hill and Desirée De Leon&amp;rsquo;s 
&lt;a href=&#34;https://rstudio.com/resources/webinars/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sharing on Short Notice&lt;/a&gt;. I&amp;rsquo;ve probably talked about this enough, but it is an amazing resource.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The distill 
&lt;a href=&#34;https://rstudio.github.io/distill/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;documentation&lt;/a&gt;, which also happens to be a &amp;hellip; distill website!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thomas Mock&amp;rsquo;s 
&lt;a href=&#34;https://themockup.blog/posts/2020-08-01-building-a-blog-with-distill/#step-7-add-to-git&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;distill how-to&lt;/a&gt;, which I wish I would have seen &lt;em&gt;before&lt;/em&gt; starting to build my site rather than in the middle of it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Alison Hill&amp;rsquo;s 
&lt;a href=&#34;https://blog.rstudio.com/2020/12/07/distill/#theming&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recent updates on theming&lt;/a&gt;, if you want to change the default theme. And read it thoroughly (I may not have done that the first time)!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Other people&amp;rsquo;s GitHub repos for their distill sites. The two I visited a lot were the corresponding repos for the sites I pointed out earlier: 
&lt;a href=&#34;https://github.com/Ijeamakaanyene/ijeamaka-anyene&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ijeamaka Anyene&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/shannonpileggi/pipinghotdata_distill&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shannon Pileggi, aka Piping Hot Data&lt;/a&gt;. This was a good way for me to dig into the code in more detail, and I could often copy, paste, and modify slightly to fit my needs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With these resources at hand and open in my web browser, I was able to get started on buildng the site. The first time I tried, I got stuck on the CSS theming (hence the recommendation to only modify the easy-to-modify selectors at first). Then, I re-read the 
&lt;a href=&#34;https://rstudio.github.io/distill/website.html#create-theme&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Create theme documentation&lt;/a&gt; (remember when I said to read that carefully the first time?), got a little help from 
&lt;a href=&#34;https://twitter.com/spcanelon/status/1336320295129534464?s=20&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;@spcanelon&lt;/code&gt;&lt;/a&gt; on Twitter, and made a step-by-step guide for myself. The next day, I tried again, and had the website up and running within an hour! I documented this in detail on my first 
&lt;a href=&#34;https://lisalendway.netlify.app/posts/2020-12-09-buildingdistill/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog post&lt;/a&gt; on my distill website. The post also has embedded screencasts of me creating the site.&lt;/p&gt;
&lt;p&gt;I took some time after the video to further play around with customization, especially colors, most of which are inspired by William Morris&amp;rsquo;s 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Strawberry_Thief_%28William_Morris%29&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Strawberry Thief&lt;/a&gt; textile. I&amp;rsquo;m happy with the website&amp;rsquo;s unique look combined with the simplicity. Each blog post has its own folder of files, so it is easy to stay organized. I like that blog posts are not re-rendered when the website is built. So, you need to knit each blog post and build the site in order for that blog to be updated, but you don&amp;rsquo;t have to worry about code in an old blog post breaking the website. I am starting to think that distill may be the tool I use for future course websites for all these reasons.&lt;/p&gt;
&lt;p&gt;In conclusion, I hope I have given you some reason to check out distill for creating a website. Or maybe I&amp;rsquo;ve even helped you decide to use some of the simpler tools available. Either way, I wish you luck on your journey.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Learning R Coding by Building Something Cool</title>
      <link>https://education.rstudio.com/blog/2021/01/aaron-durham-mentorship-wrapup/</link>
      <pubDate>Thu, 28 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2021/01/aaron-durham-mentorship-wrapup/</guid>
      <description>&lt;p&gt;In the fall semester of 2020, RStudio piloted a program to provide mentorship to Black, Latinx, and Indigenous students in data science.
I had the opportunity to participate in this program, and used it to focus on learning and developing my skills with R.
Over the course of three months I worked closely with Janeka Handford of RStudio, who went the extra mile ensuring that I not only reached the goals outlined via the mentorship but also gained a much deeper understanding of R coding processes in general.
Through our combined efforts, I was able to build a small interactive shiny app that explored the geographic data of wildlife-vehicle collisions in North Carolina between 2014 - 2018.
With the shiny app dashboard, we were able to sort our data by county and year allowing for specificity.
Shiny has really shown me how vast amounts of data can be easily filtered and used in geographic visualizations, and how much fun it can be to learn by building.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshot.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in December 2020</title>
      <link>https://education.rstudio.com/blog/2020/12/december-2020-instructors/</link>
      <pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/12/december-2020-instructors/</guid>
      <description>&lt;p&gt;We welcomed 10 new instructors to our community in December 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/creed&amp;#43;jordan&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jordan Creed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/mistry&amp;#43;mandip&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mandip Mistry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/naidoo&amp;#43;vebashini&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Vebashini Naidoo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/ozgumus&amp;#43;turkuler&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Türküler Özgümüş&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/radermacher&amp;#43;astrid&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Astrid Radermacher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/robinson&amp;#43;amanyiraho&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amanyiraho Robinson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/schloerke&amp;#43;barret&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Barret Schloerke&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/scott&amp;#43;dorris&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dorris Scott&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/sollberger&amp;#43;derek&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Derek Sollberger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/storopoli&amp;#43;jose&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;José Storopoli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 186
(including our first in Uganda),
and the number certified for Shiny to 33.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;It has been a difficult year,
and as it ends,
many of us will be thinking of family, friends, and colleagues who are no longer with us.
We hope you and yours are safe and well,
and we wish you the best for 2021.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./flags.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Building capacities to teach data science in Latin America</title>
      <link>https://education.rstudio.com/blog/2020/12/metadocencia/</link>
      <pubDate>Fri, 18 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/12/metadocencia/</guid>
      <description>



&lt;h2 id=&#34;what&#34;&gt;What?
  &lt;a href=&#34;#what&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;On March 16th, 2020, all in-person classes and training opportunities were canceled in Argentina due to the pandemic with no clear indication on when they will resume. Hence a group of academics, researchers, and teachers with deep ties to the Latin American research and teaching community that have been working in the R community together co-founded 
&lt;a href=&#34;https://www.metadocencia.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;MetaDocencia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;MetaDocencia means &lt;em&gt;MetaTeaching&lt;/em&gt; in Spanish. Our mission is to nurture a community of Spanish-speaking educators by teaching concrete, evidence-based, and student-centered educational methods.&lt;/p&gt;
&lt;p&gt;We collaboratively develop open, reusable, and accessible resources to foster effective training practices.&lt;/p&gt;
&lt;p&gt;You can read more about our mission and materials (in both Spanish and English) on our website &lt;a href=&#34;https://www.metadocencia.org/&#34;&gt;https://www.metadocencia.org/&lt;/a&gt;:
&lt;a href=&#34;https://www.metadocencia.org/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;es-en.png&#34; width=&#34;100%&#34; /&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;why&#34;&gt;Why?
  &lt;a href=&#34;#why&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Despite the existence of open educational communities throughout the world, they are mostly English-speaking and language is an enormous barrier in Latin America. Translations of contents are necessary but not enough for culturally-responsible teaching. Meeting our learners where they are in Latin America means to not make assumptions about the knowledge of technologies such as Zoom, Slack, or Google docs and being conscious about internet access and accessibility differences.&lt;/p&gt;
&lt;p&gt;There is a ton of terrain leveling work needed before meaningful international integration is feasible. Communities of practice are still a new concept in our region and tools like active classrooms powered by minimal technology such as peer instruction, shared note-taking, or a code of conduct, are far from being standard in online classrooms throughout Latin America. Nor are tools such as licenses for sharing educational material known. We work at MetaDocencia to help bridge this gap by empowering educators from underserved countries.&lt;/p&gt;




&lt;h2 id=&#34;how&#34;&gt;How?
  &lt;a href=&#34;#how&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We have largely focused on a 3-hour workshop called 
&lt;a href=&#34;https://www.metadocencia.org/cursos/abc-online/intro-abc/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to Online Teaching Essentials&lt;/a&gt;. This hands-on workshop builds on open educational resources to teach how to run a synchronous classroom and includes practical evidence-based tips for delivering an engaging online class that we learn from 
&lt;a href=&#34;https://carpentries.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The Carpentries&lt;/a&gt; and 
&lt;a href=&#34;https://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Instructor training&lt;/a&gt;. This is a first-steps workshop where we introduce the key aspects from our teaching philosophy (e.g., code of conduct, open licensing, community building, active teaching). Participants experience each of our tips and advices starting at 
&lt;a href=&#34;https://docs.google.com/forms/d/e/1FAIpQLSddnptIAMdRgJYH0Vm6cNrk63x5f969Rd4pbuoGKmDgN02xFw/viewform&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pre-registration&lt;/a&gt; and stay in touch afterwards through our 
&lt;a href=&#34;https://join.slack.com/t/metadocencia/shared_invite/zt-ek8a0rup-MQB_5qUKhr9zIGKQAUImXA&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slack&lt;/a&gt;. Since March 27th, 2020, we taught this workshop 38 times to a large fraction of the 1,250+ Spanish speaking teachers from 19 countries, who registered their interest, with over 90% completion rate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;world_map.png&#34; alt=&#34;map showing the countries where our students come from&#34;&gt;&lt;/p&gt;
&lt;p&gt;We are piloting a 2-hour hands-on workshop about 
&lt;a href=&#34;https://www.metadocencia.org/cursos/herramientas/zoom/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;how to use Zoom to teach online&lt;/a&gt;, which is the most common request from our participants. We are also creating a 3-hour workshop for 
&lt;a href=&#34;https://youtu.be/n6IaftU1yjM&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;creating interactive tutorials to teach to code with R using the R package learnr&lt;/a&gt; that will be part of a longer track on how to teach programming.&lt;/p&gt;
&lt;p&gt;We foster a community through a 100% Spanish-speaking 
&lt;a href=&#34;https://join.slack.com/t/metadocencia/shared_invite/zt-ek8a0rup-MQB_5qUKhr9zIGKQAUImXA&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slack workspace&lt;/a&gt;, where the 350+ members are encourage to share their material, resources and experiences. We are also active 
&lt;a href=&#34;https://twitter.com/metadocencia&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tweeps&lt;/a&gt; and 
&lt;a href=&#34;https://www.metadocencia.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;asynchronous content creators&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;with-whom&#34;&gt;With whom?
  &lt;a href=&#34;#with-whom&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We also build community by working together with other communities and institutions at local, regional, and international levels. For example, our current materials have been repurposed to suit audiences of 
&lt;a href=&#34;https://www.metadocencia.org/post/redintajoven/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;early career researchers&lt;/a&gt; at the 
&lt;a href=&#34;https://www.metadocencia.org/post/curso_corto_inta/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;National Agricultural Technology Institute in Argentina&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;communities.png&#34; alt=&#34;logos of the communities we have worked with&#34;&gt;&lt;/p&gt;
&lt;p&gt;We taught tutorials for 
&lt;a href=&#34;https://latin-r.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;LatinR&lt;/a&gt;, a Latin American conference for the use of R in research and development. We also repurposed our materials to encourage the 
&lt;a href=&#34;https://youtu.be/lZICjcX7O0U&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Spanish-speaking R-Ladies community&lt;/a&gt; worldwide to continue having events, gatherings, and teaching online through pandemic times.&lt;/p&gt;
&lt;p&gt;We also translate to Spanish educational and technical material like the book 
&lt;a href=&#34;https://teachtogether.tech/es/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Teaching Teach Together&lt;/a&gt; by Greg Wilson.&lt;/p&gt;
&lt;p&gt;Finally, thanks to the generous support of the Carpentries, we hosted an à la carte instructor training workshop in Spanish that had a 95% checkout rate.&lt;/p&gt;




&lt;h2 id=&#34;who&#34;&gt;Who?
  &lt;a href=&#34;#who&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We achieve our mission with the work of a fast-growing 
&lt;a href=&#34;https://www.metadocencia.org/en/#equipo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;group of volunteers&lt;/a&gt; with experience in teaching technical skills, delivering online classes, and working remotely, both locally and globally. Our team now includes 11 collaborators in 3 countries and 6 different cities in Argentina. They are RStudio Certified instructors, Carpentries instructors, and/or regionally-knowledgeable accessibility experts.&lt;/p&gt;
&lt;p&gt;All MetaDocencia&amp;rsquo;s activities are free and 
&lt;a href=&#34;https://github.com/MetaDocencia&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;open&lt;/a&gt; and are carried out through 100% volunteer work, with a small grant by Open Bioinformatics Foundation to cover infrastructure costs.&lt;/p&gt;
&lt;p&gt;We are also blessed by an international advisory team that is guiding us in our goal of &lt;em&gt;thinking globally while acting locally&lt;/em&gt;.&lt;/p&gt;




&lt;h2 id=&#34;what-we-learn&#34;&gt;What we learn?
  &lt;a href=&#34;#what-we-learn&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Teach with the example:&lt;/em&gt; use in your courses and in your community all the tools and advice that you teach.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Excelente el curso de hoy, súper claro, didáctico, aplicable, una recomendación buena tras otra, cierra por todos lados. Recomendable 100%. Y además, grátis! Infinitas gracias por tanta dedicación, empatía, y compromiso&lt;/p&gt;
&lt;p&gt;&amp;mdash; Fernando Torres (@torresf1973) 
&lt;a href=&#34;https://twitter.com/torresf1973/status/1249007107153821696?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;April 11, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Tweet translation: &lt;em&gt;Excellent today&amp;rsquo;s course, super clear, didactic, applicable, one good recommendation after another, everything so usefull. 100% recommendable. And also, free! Infinite thanks for so much dedication, empathy, and commitment.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Remix, reuse, reshare:&lt;/em&gt; materials with licenses that allow derivative works, such as translations and remixing of courses, reduce the time to generate content, increase quality resources and ensure a successful teaching-learning experience, because are proven materials.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Compartir material y mantener la autoria. Todos se ven beneficiados! Buenisima la iniciativa y los consejos de 
&lt;a href=&#34;https://twitter.com/metadocencia?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@metadocencia&lt;/a&gt; &lt;a href=&#34;https://t.co/tGyMSEOhJ4&#34;&gt;https://t.co/tGyMSEOhJ4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;mdash; Virginia García Alonso (@VA_GarciaAlonso) 
&lt;a href=&#34;https://twitter.com/VA_GarciaAlonso/status/1316133568150732801?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;October 13, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Tweet translation: &lt;em&gt;Share material and maintain authorship. Everyone benefits! Very good initiative and advice from @metadocencia&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Every crisis brings an oportunity:&lt;/em&gt; the pandemic and the concern of its students forced many teachers to teach online. The tools we teach are also useful for in person classes and more learners will experience an active and interactive education: a better way to learn and teach.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;a href=&#34;https://twitter.com/metadocencia?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@metadocencia&lt;/a&gt; 
&lt;a href=&#34;https://twitter.com/mariela_rajng?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@mariela_rajng&lt;/a&gt; 
&lt;a href=&#34;https://twitter.com/yabellini?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@yabellini&lt;/a&gt; En relación a &amp;ldquo;Intro al ABC para enseñar on-line&amp;rdquo;&lt;br&gt;
Les quiero felicitar, una maravilla tode, excelente lo q hacen x todes&lt;br&gt;
En estos momentos de crisis, su ayuda es el camino para salir adelante&lt;br&gt;
No bajen los brazos. Este mundo necesita d uds!&lt;/p&gt;
&lt;p&gt;&amp;mdash; Cristian Rodriguez (@Cristia42038941) 
&lt;a href=&#34;https://twitter.com/Cristia42038941/status/1312051133687492610?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;October 2, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Tweet translation: &lt;em&gt;In relation to &amp;ldquo;Intro to ABC to teach on-line&amp;rdquo; I want to congratulate you, everything is wonderful, excellent what you do for everyone. In these moments of crisis, your help is the way forward. Do not give up. This world needs you.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Shared pain is lessened, shared joy increased:&lt;/em&gt; our most important capital: the community, the support of fellow teachers in our language through sharing advices, experiences, materials, frustrations and successes build a strong community that make everything less hard.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Recién terminado! Espectacular, sumamente interesante y constructivo. Muchas gracias por compartir su experiencia y conocimiento, en esto que para muchos es nuevo y que ademas de todo requiere de creatividad, humildad y generosidad (las 3 estuvieron en el taller). &lt;a href=&#34;https://t.co/V3bBSXGV71&#34;&gt;https://t.co/V3bBSXGV71&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;mdash; Lorena Laffitte (@lorelaffitte) 
&lt;a href=&#34;https://twitter.com/lorelaffitte/status/1248992029037809664?ref_src=twsrc%5Etfw&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;April 11, 2020&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Tweet translation: &lt;em&gt;Just finished! Spectacular, extremely interesting and constructive. Thank you very much for sharing your experience and knowledge, in this [situation] that is new for many of us, and in addition to everything else, requires creativity, humility and generosity (3 things that were present in the workshop).&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2 id=&#34;stay-in-touch&#34;&gt;Stay in touch
  &lt;a href=&#34;#stay-in-touch&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;If you like this initiative, if you want to take one of the courses, if you want to help, or even you want to replicate this experience in your country, we are always happy to welcome more people in MetaDocencia. There are 
&lt;a href=&#34;https://www.metadocencia.org/post/como-colaborar/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;many ways to participate&lt;/a&gt;, 
&lt;a href=&#34;https://www.metadocencia.org/#contact&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;drop us a line&lt;/a&gt; and 
&lt;a href=&#34;https://twitter.com/metadocencia&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;follow us&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Supporting the Carpentries</title>
      <link>https://education.rstudio.com/blog/2020/12/carpentries-support/</link>
      <pubDate>Mon, 07 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/12/carpentries-support/</guid>
      <description>&lt;p&gt;
&lt;a href=&#34;https://carpentries.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The Carpentries&lt;/a&gt; is a volunteer organization
dedicated to teaching foundational coding and data science skills to researchers.
Over 73,000 people have attended Carpentries workshops since 2012,
and despite the disruption caused by COVID-19,
they taught over 200 workshops in 2020 alone.
They have helped a lot of people get more done in less time and with less pain,
and RStudio is proud to support their work through a donation to their

&lt;a href=&#34;https://carpentries.org/blog/2020/11/a-call-to-action-donate-to-the-carpentries/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fundraising campaign&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in November 2020</title>
      <link>https://education.rstudio.com/blog/2020/12/november-2020-instructors/</link>
      <pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/12/november-2020-instructors/</guid>
      <description>&lt;p&gt;We welcomed 6 new instructors to our ranks in November 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/yu&amp;#43;lijian&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Lijian Yu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/glanz&amp;#43;hunter&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hunter Glanz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/niemann&amp;#43;uli&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Uli Niemann&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/lendway&amp;#43;lisa&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Lisa Lendway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/diedrichs&amp;#43;ana_laura&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ana Laura Diedrichs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/johnson&amp;#43;devin&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Devin Johnson&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 179,
and the number certified for Shiny to 32.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes are now full for the time being,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>#BlackInDataWeek 2020</title>
      <link>https://education.rstudio.com/blog/2020/11/blackindataweek/</link>
      <pubDate>Mon, 16 Nov 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/11/blackindataweek/</guid>
      <description>&lt;p&gt;Today marks the first day of a week-long celebration called 
&lt;a href=&#34;https://blkindata.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackinDataWeek&lt;/code&gt;&lt;/a&gt;. Its aim is to amplify Black voices in &lt;code&gt;#informatics&lt;/code&gt;, &lt;code&gt;#datascience&lt;/code&gt;, and &lt;code&gt;#coding&lt;/code&gt; around the world. The goals are to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Providing community and a support system for Black people in data across the Black diaspora.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Encouraging growth in our professional and academic learning paths.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Elevating the voices and experiences of Black people working in data fields.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Read on to find out more about what events are planned, and how you can engage with 
&lt;a href=&#34;https://blkindata.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackinDataWeek&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;events&#34;&gt;Events
  &lt;a href=&#34;#events&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;style&gt;html {
  font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Oxygen, Ubuntu, Cantarell, &#39;Helvetica Neue&#39;, &#39;Fira Sans&#39;, &#39;Droid Sans&#39;, Arial, sans-serif;
}

#btlzqaqdaq .gt_table {
  display: table;
  border-collapse: collapse;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 16px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
}

#btlzqaqdaq .gt_heading {
  background-color: #FFFFFF;
  text-align: center;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#btlzqaqdaq .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}

#btlzqaqdaq .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 0;
  padding-bottom: 4px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}

#btlzqaqdaq .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#btlzqaqdaq .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
}

#btlzqaqdaq .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 6px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}

#btlzqaqdaq .gt_column_spanner_outer {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 4px;
  padding-right: 4px;
}

#btlzqaqdaq .gt_column_spanner_outer:first-child {
  padding-left: 0;
}

#btlzqaqdaq .gt_column_spanner_outer:last-child {
  padding-right: 0;
}

#btlzqaqdaq .gt_column_spanner {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 6px;
  overflow-x: hidden;
  display: inline-block;
  width: 100%;
}

#btlzqaqdaq .gt_group_heading {
  padding: 8px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
}

#btlzqaqdaq .gt_empty_group_heading {
  padding: 0.5px;
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  vertical-align: middle;
}

#btlzqaqdaq .gt_from_md &gt; :first-child {
  margin-top: 0;
}

#btlzqaqdaq .gt_from_md &gt; :last-child {
  margin-bottom: 0;
}

#btlzqaqdaq .gt_from_md p {
  line-height: 1em;
  margin-bottom: 0em;
  margin-top: 0em;
}

#btlzqaqdaq .gt_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 1px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 1px;
  border-right-color: #D3D3D3;
  vertical-align: middle;
  overflow-x: hidden;
}

#btlzqaqdaq .gt_stub {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: initial;
  text-transform: inherit;
  border-right-style: solid;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
  padding-left: 12px;
}

#btlzqaqdaq .gt_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#btlzqaqdaq .gt_first_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}

#btlzqaqdaq .gt_grand_summary_row {
  color: #333333;
  background-color: #FFFFFF;
  text-transform: inherit;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}

#btlzqaqdaq .gt_first_grand_summary_row {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-style: double;
  border-top-width: 6px;
  border-top-color: #D3D3D3;
}

#btlzqaqdaq .gt_striped {
  background-color: rgba(128, 128, 128, 0.05);
}

#btlzqaqdaq .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}

#btlzqaqdaq .gt_footnotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#btlzqaqdaq .gt_footnote {
  margin: 0px;
  font-size: 90%;
  padding: 4px;
}

#btlzqaqdaq .gt_sourcenotes {
  color: #333333;
  background-color: #FFFFFF;
  border-bottom-style: none;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-left-width: 2px;
  border-left-color: #D3D3D3;
  border-right-style: none;
  border-right-width: 2px;
  border-right-color: #D3D3D3;
}

#btlzqaqdaq .gt_sourcenote {
  font-size: 90%;
  padding: 4px;
}

#btlzqaqdaq .gt_left {
  text-align: left;
}

#btlzqaqdaq .gt_center {
  text-align: center;
}

#btlzqaqdaq .gt_right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

#btlzqaqdaq .gt_font_normal {
  font-weight: normal;
}

#btlzqaqdaq .gt_font_bold {
  font-weight: bold;
}

#btlzqaqdaq .gt_font_italic {
  font-style: italic;
}

#btlzqaqdaq .gt_super {
  font-size: 65%;
}

#btlzqaqdaq .gt_footnote_marks {
  font-style: italic;
  font-size: 65%;
}
&lt;/style&gt;
&lt;div id=&#34;btlzqaqdaq&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;date&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;hashtag&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;purpose&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-16&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindatarollcall/&#34;&gt;#BlackInDataRollCall&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Giving Black people in data a space to introduce themselves and their work. Introducing and valuing intersecting parts of their identities. We welcome contributions from a wide spectrum of Data Fields including but not limited to Informatics, Technology, Data Science, Coding, Social Science and Data Analytics.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-17&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindatajourney/&#34;&gt;#BlackInDataJourney&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Further fostering community for Black people in data, by encouraging them to share their varied journeys in data.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-18&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindataskills/&#34;&gt;#BlackInDataSkills&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Discussing the skills Black people in data have learned, communal sharing of resources and advice for skills development.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-19&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindataviz/&#34;&gt;#BlackInDataViz&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Creating space for Black people in data to share their work in the form of favourite data visualisation images.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-20&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindatajustice/&#34;&gt;#BlackInDataJustice&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Hosting forums for learning and discussion of bias in the data field (and possible paths to address biases in data).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;2020-11-21&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://blkindata.github.io/project/blackindatacommunity/&#34;&gt;#BlackInDataMentorship&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;Join us for career development and mentorship events!&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2 id=&#34;how-to-engage-in-blackindataweek&#34;&gt;How to engage in &lt;code&gt;#BlackInDataWeek&lt;/code&gt;
  &lt;a href=&#34;#how-to-engage-in-blackindataweek&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;



&lt;h3 id=&#34;day-1-monday-blackindatarollcall&#34;&gt;Day 1, Monday: &lt;code&gt;#BlackInDataRollCall&lt;/code&gt;
  &lt;a href=&#34;#day-1-monday-blackindatarollcall&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you identify as Black, join in the roll call today by introducing yourself and sharing what you do in data. Include the hashtag 
&lt;a href=&#34;https://twitter.com/hashtag/BlackInDataRollCall&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackInDataRollCall&lt;/code&gt;&lt;/a&gt; and tag 
&lt;a href=&#34;https://twitter.com/BlkInData&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;@BlkInData&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you do not, use today to amplify the voices in the 
&lt;a href=&#34;https://twitter.com/hashtag/BlackInDataRollCall&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackInDataRollCall&lt;/code&gt;&lt;/a&gt; hashtag by following and retweeting!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you haven&amp;rsquo;t already, follow the 
&lt;a href=&#34;https://twitter.com/WeAreRLadies&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;@WeAreRLadies&lt;/code&gt;&lt;/a&gt; rotating curator account. This week, 
&lt;a href=&#34;https://blkindata.github.io/author/markia-smith/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Markia Smith&lt;/a&gt; will take over (Nov 16-20th) and 
&lt;a href=&#34;https://twitter.com/thedamialex&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Damilola Alex&lt;/a&gt; will be taking over next week (Nov 23-27).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can also follow the 
&lt;a href=&#34;https://twitter.com/miR_community&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;@miR_community&lt;/code&gt;&lt;/a&gt; account. 
&lt;a href=&#34;https://medium.com/@doritolay/introducing-mir-a-community-for-underrepresented-users-of-r-7560def7d861&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;MiR&lt;/a&gt; is a community for underrepresented minority users of R, founded by 
&lt;a href=&#34;https://twitter.com/Dorris_Scott&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dorris Scott&lt;/a&gt; and 
&lt;a href=&#34;https://twitter.com/smallperks&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Danielle Smalls-Perkins&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&#34;mir_logo.png&#34; title=&#34;MiR Community logo designed by Allison Horst&#34; alt=&#34;MiR Community logo designed by Allison Horst&#34; width=&#34;250&#34;/&gt;




&lt;h3 id=&#34;day-2-tuesday-blackindatajourney&#34;&gt;Day 2, Tuesday: &lt;code&gt;#BlackInDataJourney&lt;/code&gt;
  &lt;a href=&#34;#day-2-tuesday-blackindatajourney&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;There are three events on this day, check them out 
&lt;a href=&#34;https://blkindata.github.io/project/blackindatajourney/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. Note that there will not be a 
&lt;a href=&#34;https://github.com/rfordatascience/tidytuesday/blob/master/data/2020/2020-11-17/readme.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#TidyTuesday&lt;/code&gt;&lt;/a&gt; this week in order to create space and engage with the &lt;code&gt;#BlackInDataViz&lt;/code&gt; hashtag on Twitter.&lt;/p&gt;




&lt;h3 id=&#34;day-3-wednesday-blackindataskills&#34;&gt;Day 3, Wednesday: &lt;code&gt;#BlackInDataSkills&lt;/code&gt;
  &lt;a href=&#34;#day-3-wednesday-blackindataskills&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;A great day filled with 
&lt;a href=&#34;https://blkindata.github.io/project/blackindataskills/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learning-oriented events&lt;/a&gt;, and don&amp;rsquo;t miss the 1-hour 
&lt;a href=&#34;https://blkindata.github.io/talk/intro2r2020/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to R&lt;/a&gt; with 
&lt;a href=&#34;https://twitter.com/DrBlankson&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. A Nayena Blankson&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you want to dive deeper into the tidyverse, the 
&lt;a href=&#34;https://medium.com/@doritolay/introducing-mir-a-community-for-underrepresented-users-of-r-7560def7d861&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;MiR Community&lt;/a&gt; recently hosted an hour-long introduction to the 
&lt;a href=&#34;https://dplyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dplyr package&lt;/a&gt; by 
&lt;a href=&#34;https://twitter.com/thisisdaryn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Daryn Ramsden&lt;/a&gt;. You can view the webinar on 
&lt;a href=&#34;https://www.youtube.com/watch?v=rlQNyBZ03AY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;YouTube&lt;/a&gt;, and view his 
&lt;a href=&#34;https://thisisdaryn.github.io/MiR_dplyr/overview_dplyr/overview_dplyr_plus.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;slides here&lt;/a&gt; (
&lt;a href=&#34;https://github.com/MiR-Community/MiR_dplyr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;source files here&lt;/a&gt;).&lt;/p&gt;




&lt;h3 id=&#34;day-4-thursday-blackindataviz&#34;&gt;Day 4, Thursday: &lt;code&gt;#BlackInDataViz&lt;/code&gt;
  &lt;a href=&#34;#day-4-thursday-blackindataviz&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Again, several great 
&lt;a href=&#34;https://blkindata.github.io/project/blackindataviz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;events and talks&lt;/a&gt;, as well as a 
&lt;a href=&#34;https://blkindata.github.io/talk/datavizdaycomp2020/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Black In Data Visualisation Challenge&lt;/a&gt;. The challenge, presented in collaboration with the 
&lt;a href=&#34;https://www.datavisualizationsociety.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Visualization Society&lt;/a&gt;, will &amp;ldquo;highlight data that shows Black people in a positive light.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blkindata.github.io/talk/datavizdaycomp2020/featured.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;




&lt;h3 id=&#34;day-5-friday-blackindatajustice&#34;&gt;Day 5, Friday: &lt;code&gt;#BlackInDataJustice&lt;/code&gt;
  &lt;a href=&#34;#day-5-friday-blackindatajustice&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;
&lt;a href=&#34;https://blkindata.github.io/project/blackindatajustice/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Webinars&lt;/a&gt; feature timely topics around algorithmic fairness and bias. The 
&lt;a href=&#34;https://blkindata.github.io/talk/codedbias-2020/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;last event&lt;/a&gt; is a live viewing/tweeting of 
&lt;a href=&#34;https://www.saltlakefilmsociety.org/comingsoon/coded-bias&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#CodedBias&lt;/code&gt;&lt;/a&gt; in honour of #BlackinDataJustice hosted by Anna Gifty, 
&lt;a href=&#34;https://twitter.com/itsafronomics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;@itsafronomics&lt;/code&gt;&lt;/a&gt;, a researcher interested in data bias and algorithmic fairness.&lt;/p&gt;
&lt;p&gt;You can access the screening here: &lt;a href=&#34;https://www.saltlakefilmsociety.org/comingsoon/coded-bias&#34;&gt;https://www.saltlakefilmsociety.org/comingsoon/coded-bias&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Note: tickets are not free, but you can follow along with the live tweeting without watching.)&lt;/em&gt;&lt;/p&gt;




&lt;h3 id=&#34;day-6-saturday-blackindatamentorship&#34;&gt;Day 6, Saturday: &lt;code&gt;#BlackInDataMentorship&lt;/code&gt;
  &lt;a href=&#34;#day-6-saturday-blackindatamentorship&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The final day is all about careers and mentorship. Read more about the events 
&lt;a href=&#34;https://blkindata.github.io/project/blackindatacommunity/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;To sign up for events, click 
&lt;a href=&#34;https://www.eventbrite.com/e/blackindataweek-2020-tickets-127652703673&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;! To learn more about 
&lt;a href=&#34;https://twitter.com/search?q=%23BlackInDataWeek&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackInDataWeek&lt;/code&gt;&lt;/a&gt;, please see 
&lt;a href=&#34;https://blkindata.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;their website&lt;/a&gt;, 
&lt;a href=&#34;https://twitter.com/BlkInData&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;twitter account&lt;/a&gt;, and follow along via the 
&lt;a href=&#34;https://twitter.com/search?q=%23BlackInDataWeek&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;#BlackInDataWeek&lt;/code&gt;&lt;/a&gt; hashtag.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in October 2020</title>
      <link>https://education.rstudio.com/blog/2020/10/october-2020-instructors/</link>
      <pubDate>Fri, 30 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/10/october-2020-instructors/</guid>
      <description>&lt;p&gt;We welcomed 17 new instructors to our ranks in October 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/aderinto&amp;#43;bilikisu_wunmi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bilikisu Wunmi Aderinto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/canelon&amp;#43;silvia&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Silvia Canelón&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/glanz&amp;#43;hunter&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hunter Glanz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/kiprop&amp;#43;brian&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Brian Kiprop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/kuriwaki&amp;#43;shiro&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shiro Kuriwaki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/liao&amp;#43;yuqi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Yuqi Liao&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/liu&amp;#43;sifan&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sifan Liu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/milz&amp;#43;beatriz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Beatriz Milz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/mussenden&amp;#43;sean&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sean Mussenden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/ogundepo&amp;#43;ezekiel_adebayo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ezekiel Adebayo Ogundepo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/picoral&amp;#43;adriana&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Adriana Picoral&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/rizvi&amp;#43;abbas&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Abbas Rizvi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/rogers&amp;#43;sam&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sam Rogers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/stepniak&amp;#43;jakub&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jakub Stepniak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/thomas&amp;#43;michael&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Michael Thomas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/toet&amp;#43;samantha&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Samantha Toet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/tumanyants&amp;#43;artemiy&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Artemiy Tumanyants&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 173,
and the number certified for Shiny to 27,
including our first instructors in Nigeria and Russia.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes are now full for the time being,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;certificates.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Learner Personas</title>
      <link>https://education.rstudio.com/blog/2020/10/learner-personas/</link>
      <pubDate>Wed, 07 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/10/learner-personas/</guid>
      <description>&lt;p&gt;A &lt;em&gt;
&lt;a href=&#34;http://teachtogether.tech/en/process/#s:process-personas&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learner persona&lt;/a&gt;&lt;/em&gt;
is a short description of a typical learner
that helps instructors figure out who they&amp;rsquo;re trying to teach
and communicate that understanding to each other and to learners.
Like the personas used in user experience design,
each one includes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the learner&amp;rsquo;s general background,&lt;/li&gt;
&lt;li&gt;their relevant prior knowledge or experience,&lt;/li&gt;
&lt;li&gt;what they think they want to learn (as opposed to what the instructor thinks they ought to), and&lt;/li&gt;
&lt;li&gt;any special considerations such as accessibility needs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Last year the Education team at RStudio drafted nine personas
to capture key characteristics of the people we&amp;rsquo;d like to help with our classes and materials.
If you regularly teach someone who &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; fit one of these, please let us know.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;All images © 
&lt;a href=&#34;https://openclipart.org/artist/anarres&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;anarres&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;h2 id=&#34;anya-academic&#34;&gt;Anya Academic
  &lt;a href=&#34;#anya-academic&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./anya-academic.png&#34; alt=&#34;Anya Academic&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Anya, a professor of neuropsychology, studies color perception in
infants. She is also responsible for teaching an introduction to statistics
to 1100 first-year students every year. (Students complain that the Stats
department&amp;rsquo;s introductory course is too theoretical and requires more
programming knowledge than they have.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anya runs several experiments on 50–100 infant subjects each year. She used
to analyze the results with SPSS, but is switching to R (which she taught
herself during a sabbatical). She has never taken a programming course, and
suffers from impostor syndrome in discussions about things like GitHub and R
Markdown.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anya would like to learn more about time series analysis to support her
research, and about tools like Git and R Markdown. She also wants guidance
using R to teach her intro stats course, which currently uses a mixture of
Excel and SPSS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anya is juggling half a dozen responsibilities at work, and doesn&amp;rsquo;t want to
look uninformed in front of her colleagues and students.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Anya needs workshops (so that she can allocate focused time) and how-to guides
(for her research). She would like ready-to-use lesson material she could remix
for her students and some orientation material to demystify jargon (what the
hell is a &amp;ldquo;pull request&amp;rdquo;?). Finally, it&amp;rsquo;s important that she be able to use the
same tools in her research as in her teaching in order to amortize learning
costs and stay in practice.&lt;/p&gt;




&lt;h2 id=&#34;celine-certified&#34;&gt;Celine Certified
  &lt;a href=&#34;#celine-certified&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./celine-certified.png&#34; alt=&#34;Celine Certified&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Celine has an MBA in finance and is now a certified RStudio instructor
working for a full service solution provider. She spends her time developing
new training material in airports and delivering them between flights.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;R is the only language Celine has ever learned well, but she has learned it
very well. She is proficient with a variety of packages for modeling and time
series analysis, and knows more than any sane person should about extracting
data from Excel. She regularly contributes small fixes to a dozen of the
packages she teaches most often, and tries to answer one Stack Overflow
question every working day.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Celine is always interested in seeing other people&amp;rsquo;s teaching material, but
what she appreciates most is up-to-date examples she can recycle and build
her own lessons around.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Celine is sometimes frustrated by how little developers think about the
learnability or usability of their packages, and wishes she had more control
over what she&amp;rsquo;s going to be asked to teach.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Celine needs vignettes, worked examples, and cookbooks that she can mine to
create training to meet her audience&amp;rsquo;s needs. She would also like pointers to
material on better teaching practices.&lt;/p&gt;




&lt;h2 id=&#34;exton-excel&#34;&gt;Exton Excel
  &lt;a href=&#34;#exton-excel&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./exton-excel.png&#34; alt=&#34;Exton Excel&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Exton taught business at a community college for several years, and now does
community management for an event management company. He still teaches
Marketing 101 every year to help people with backgrounds like his.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exton uses Excel to keep track of who is registered for webinars, workshops,
and training sessions. He doesn&amp;rsquo;t think of himself as a programmer, but
spends hours creating complicated lookup tables to figure out how many
webinar attendees turn into community contributors, who answers forum posts
most frequently, and so on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exton knows there are better ways to do what he&amp;rsquo;s doing, but feels
overwhelmed by the blog posts, tweets, and &amp;ldquo;helpful&amp;rdquo; recommendations from the
company&amp;rsquo;s engineering team.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exton is a single parent; the one evening a week he spends teaching is the
only out-of-work time he&amp;rsquo;s able to take away from family responsibilities.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Exton wants an overview that will tell him what laptop-scale data science is all
about, what tools to learn first, how they&amp;rsquo;re going to help him, and where he
should look for introductory tutorials. He doesn&amp;rsquo;t care if these are the best
answers so long as they are clear, concise, and consistent. He would also
benefit from side-by-side comparisons of Excel and R.&lt;/p&gt;




&lt;h2 id=&#34;jacqui-ofalltrades&#34;&gt;Jacqui Ofalltrades
  &lt;a href=&#34;#jacqui-ofalltrades&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./jacqui-ofalltrades.png&#34; alt=&#34;Jacqui Ofalltrades&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Jacqui works for a three-person consulting company that does everything from
training to installation and administration to building dashboards for
clients. She is fluent in Spanish and Portuguese as well as English, and much
of her business is with Latin American firms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jacqui has been using Python and Pandas for several years, and just finished
working through R for Data Science for the second time in preparation for
teaching the tidyverse. She has built a couple of Shiny dashboards for
clients, and hopes to get a package accepted by CRAN some day.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jacqui wants updates on what&amp;rsquo;s new in RStudio products and related data
science packages and tools, and advanced guides for making Shiny faster,
integrated with no-SQL databases, and other high-value topics. She finds most
self-paced tutorials frustrating because they&amp;rsquo;re answering questions she
doesn&amp;rsquo;t have today.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jacqui believes that time is money: every minute she spends learning
something new has to pay off sooner rather than later.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Jacqui wants how-to guides and reference material for her day-to-day work,
webinars to give her a sense of where the industry is going, and short,
intensive online training for very specific topics.&lt;/p&gt;




&lt;h2 id=&#34;katrin-keener&#34;&gt;Katrin Keener
  &lt;a href=&#34;#katrin-keener&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./katrin-keener.png&#34; alt=&#34;Katrin Keener&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Katrin did a Master&amp;rsquo;s in neuropsychology and a 12-week data science bootcamp
before getting a job analyzing logistics for a health care
services company. She has a wide range of interests and loves learning new
things.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Katrin uses R, Python, and SQL daily, and recently talked one of the IT staff
into teaching her Docker. She has done several online mini-courses in machine
learning.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Katrin wants to level up her understanding of just about everything. She
needs cookbooks and worked examples to show her how to accomplish specific
tasks or to fill in specific gaps in her knowledge.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;While she is enjoying her new job, Katrin misses the camaraderie of grad
school and her Insight fellowship: she prefers learning with others to
studying on her own. She recently found out about R-Ladies and has enjoyed
the two meetups she has been to.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Katrin wants workshops (as an opportunity to meet people) and self-paced lessons
(so that she can learn new things on her own). She has a complete set of
cheatsheets taped up on her wall, but usually checks Stack Overflow before
looking at reference manuals.&lt;/p&gt;




&lt;h2 id=&#34;larry-legacy&#34;&gt;Larry Legacy
  &lt;a href=&#34;#larry-legacy&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./larry-legacy.png&#34; alt=&#34;Larry Legacy&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Larry got a job with a pharmaceutical company the day after he graduated and
has been with them through two mergers and an acquisition. He refers to
company officers by their first names, and is always happy to explain what
they&amp;rsquo;re doing wrong. He was offered the chance to go to rstudio::conf last
year, but gave the spot to one of his younger colleagues because &amp;ldquo;they&amp;rsquo;d
probably enjoy it more&amp;rdquo;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Larry has been using SAS for 25 years and regards it as a perfectly fine
tool, thank you very much.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Larry has never used R, but has decades of experience with statistics, messy
data, and reporting. He prefers very structured learning environments and
clear objectives, and his most common question, &amp;ldquo;How would I…&amp;rdquo; followed by a
summary of something he has been doing for years in SAS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Larry is a reluctant learner: he recognizes that he has to learn R now that
management has decided to adopt Shiny for all its reporting tools, but with
just eight years to go until early retirement, the thought makes him
weary. He is very uncomfortable with anything outside his normal working
environment: he needs to see how to use an IDE step by step (preferably in a
one-on-one tutorial) to get over his paralysis.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Larry finds tutorials long-winded (&amp;ldquo;Just show me what function I need to call!&amp;quot;)
or confusing (&amp;ldquo;Why would they do it that way?&amp;quot;). Cheatsheets showing him how to
map his understanding of SAS to equivalent code in R would be his preferred
starting point.&lt;/p&gt;




&lt;h2 id=&#34;mshelle-manager&#34;&gt;M&amp;rsquo;shelle Manager
  &lt;a href=&#34;#mshelle-manager&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./mshelle-manager.png&#34; alt=&#34;M&#39;shelle Manager&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;A programmer who moved into customer support and then into product
management, M&amp;rsquo;shelle is now in charge of a ten-person analytics group. She is
responsible for getting her team trained and purchasing the tools they need
to do their work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;M&amp;rsquo;shelle thinks in Java; she used base R to develop models and generate
reports several years ago, but was promoted before the tidyverse became
popular.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;M&amp;rsquo;shelle wants to improve her team&amp;rsquo;s processes, particularly around packaging
code and making work more reproducible. The new VP of engineering has also
asked her to turn everything into a web service. While all of this is going
on, she needs to decide how much budget she needs for new software that she
will personally never use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;M&amp;rsquo;shelle has to work within a strict training budget, and it can sometimes
take months to get approval for off-site training (and even longer for
on-site).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;M&amp;rsquo;shelle needs tutorials, reference material, and how-to guides for everything
that isn&amp;rsquo;t data science, including testing, packaging, and Shiny. (Her team is
satisfied with the existing tutorials on data manipulation and modeling.)&lt;/p&gt;




&lt;h2 id=&#34;nang-newbie&#34;&gt;Nang Newbie
  &lt;a href=&#34;#nang-newbie&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./nang-newbie.png&#34; alt=&#34;Nang Newbie&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Nang is 18 years old and in the first year of an undergraduate degree in
urban planning. He&amp;rsquo;s read lots of gushing articles about data science, and
was excited by the prospect of learning how to do it, but dropped his CS 101
course after six weeks because nothing made sense. He&amp;rsquo;s doing better in Anya
Academic&amp;rsquo;s course (which he is taking as an elective), but still spends most
of his time copying, pasting, and swearing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nang did well in his high school math classes, and built himself a home page
with HTML and CSS in a weekend workshop in grade 11. He has accounts on nine
different social media site, and attends all of his morning classes online.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nang wants self-paced tutorials with practice exercises, plus forums where he
can ask for help.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nang is reluctant to reveal his ignorance—he would rather get a low grade and
blame it on partying than let his classmates see that he&amp;rsquo;s floundering.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nang needs short overviews to orient him and introductory tutorials that include
videos or animated GIFs showing exactly how to drive the tools, and that use
datasets he can relate to.&lt;/p&gt;




&lt;h2 id=&#34;toshi-techsupport&#34;&gt;Toshi Techsupport
  &lt;a href=&#34;#toshi-techsupport&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;./toshi-techsupport.png&#34; alt=&#34;Toshi Techsupport&#34; width=&#34;100px&#34; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Toshi does internal tech support in a company with 500 staff. While others on
their team take care of resetting passwords, they debug setup issues and figures
out why the dashboard is displaying nonsense. (It&amp;rsquo;s usually something to do
with date formatting.) They often wind up writing bits of code from Stack
Overflow to glue things together.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Toshi speaks Perl, Python, and JavaScript, but hardly any R. They switch back
and forth between Linux, Windows, and Mac every day. They often finds themself
running hour-long internal training seminars, and would now like to learn
some data science to support their users and out of personal interest. They
wish people would take a few hours and learn more about the software
they are using, but in practice, they often only have a 30-minute call in which
to diagnose the problem and explain a solution.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A growing number of analysts inside Toshi&amp;rsquo;s company use R Markdown to prepare
parameterized reports. Some are also using flexdashboard and Shiny, so they
would like to learn enough about them to be useful.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Toshi lives in Hawaii, so most of their work is done remotely.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Toshi needs examples and reference material for themself that they can paraphrase
for the people they are supporting—they know most of what they need, but requires
something bite-sized for others to consume. They also need tutorials they can remix
for hour-long internal training webinars.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Glosario Sprint</title>
      <link>https://education.rstudio.com/blog/2020/10/glosario-sprint/</link>
      <pubDate>Mon, 05 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/10/glosario-sprint/</guid>
      <description>&lt;p&gt;In July we announced 
&lt;a href=&#34;https://carpentries.github.io/glosario/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Glosario&lt;/a&gt;,
an open source, multilingual glossary of data science terms that now contains more than 500 terms in multiple languages.
We hope it will help lesson developers and maintainers make their materials more findable
as well as helping learners directly.&lt;/p&gt;
&lt;p&gt;This month,
as part of 
&lt;a href=&#34;https://hacktoberfest.digitalocean.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hacktoberfest&lt;/a&gt;,
we&amp;rsquo;re encouraging all members of our community to help expand Glosario.
So far, it includes definitions in English, French, Portuguese, and Spanish,
but it has been designed to include definitions in any language.
We&amp;rsquo;d love to see our international community come together to provide definitions and translations
to increase the value of this resource for everyone.&lt;/p&gt;
&lt;p&gt;You don&amp;rsquo;t need to know any particular programming language to contribute to Glosario:
anyone who is familiar with the GitHub web interface can get involved.
There is a detailed contributors&amp;rsquo; guide 
&lt;a href=&#34;https://github.com/carpentries/glosario&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;in the repo&lt;/a&gt;,
and contributions are welcome in &lt;strong&gt;any&lt;/strong&gt; language, not only those we already have.
To ensure that your contributions are included in Hacktoberfest
and count towards you planting a tree or receiving a free t-shirt,
remember to register on 
&lt;a href=&#34;https://hacktoberfest.digitalocean.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the Hacktoberfest website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article is cross-published on 
&lt;a href=&#34;https://carpentries.org/blog/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the Carpentries blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Writing Data Science in Education Using R in the Open</title>
      <link>https://education.rstudio.com/blog/2020/10/ds-in-edu/</link>
      <pubDate>Mon, 05 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/10/ds-in-edu/</guid>
      <description>



&lt;h2 id=&#34;introduction&#34;&gt;Introduction
  &lt;a href=&#34;#introduction&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When we wrote 
&lt;a href=&#34;https://datascienceineducation.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Data Science in Education Using R (DSIEUR)&lt;/em&gt;&lt;/a&gt;, we knew it
would be easy to assume that new learners would have more prior
knowledge about R than they actually did&amp;ndash;a phenomenon called &amp;ldquo;
&lt;a href=&#34;https://en.wikipedia.org/wiki/Curse_of_knowledge&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the
curse of knowledge&lt;/a&gt;&amp;quot;.
We knew this intuitively as more experienced R users because we only
vaguely associated feelings of triumph and frustration with the memory
of running that first chunk of R code. The details of where we got stuck
in our learning were harder to remember.&lt;/p&gt;
&lt;p&gt;Over time, we traded in fresh memories of these learning pain points for
experience and ease of use. That led to a design problem we had to solve
while writing DSIEUR: How do we write with empathy for new learners when
our own memories of learning R have gotten foggier?&lt;/p&gt;
&lt;p&gt;To better identify with the learning experiences of others, we needed to
identify where our blind spots were. To identify our blind spots, we
needed strategies to empower others to give us feedback by sharing.
Bringing our strengths to this collaboration but checking that we
understand one another&amp;rsquo;s work, writing in the open, and using a project
workflow to support creativity were our strategies to do just this.&lt;/p&gt;




&lt;h2 id=&#34;collaborate-with-people-from-different-perspectives-to-help-you-identify-your-blind-spots&#34;&gt;Collaborate with people from different perspectives to help you identify your blind spots
  &lt;a href=&#34;#collaborate-with-people-from-different-perspectives-to-help-you-identify-your-blind-spots&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;As we neared the end of writing the DSIEUR manuscript, we set out to
review each chapter and edit it for readability. To create an
opportunity for fresh eyes to read our work, we each reviewed a chapter
we hadn&amp;rsquo;t written. Ryan picked chapter 13, which is on using multilevel
models to analyze student survey responses about their online classes.
Having a new perspective on experiencing the chapter&amp;mdash;particularly when
the chapter includes lots of technical explanations&amp;mdash;turned out to be a
great way to discover blind spots in our work.&lt;/p&gt;
&lt;p&gt;Here were Ryan&amp;rsquo;s thoughts after reviewing chapter 13:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I don&amp;rsquo;t use
multilevel models regularly in my work, so I could tell right away I was
going to learn something new. I read through the sections to make small
edits, but also took breaks every so often to check my comprehension of
the concepts.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;About halfway through the chapter review, we started a great,
back-and-forth conversation and brainstorm about conveying how
standardizing coefficients works in multilevel models. Thinking back, we
see that our different experiences with multilevel models were critical
for accomplishing two things: identifying areas where the writing could
be clearer and more accessible and also staying true to the technical
parts of the topic.&lt;/p&gt;
&lt;p&gt;We read through the chapter and picked out sections that didn&amp;rsquo;t seem
clear. Then, we had conversations to clarify how standardizing
coefficients work in multilevel models. We wrote out some initial
thoughts to convey where we-together-ended up in our conversation. Then,
we read the section again. And round and round we went, until finally we
arrived at an execution we were happy with.&lt;/p&gt;
&lt;img src=&#34;Screen Shot 2020-07-14 at 7.32.58 AM.png&#34; width=&#34;1496&#34;/&gt;
&lt;p&gt;In this way, we supercharged the iterative writing process with two
elements of collaboration. First, differing backgrounds gave us an
opportunity to find blind spots. Josh has used, taught, and written
about multilevel models regularly for years. Ryan had a basic
understanding of the concepts, but less experience using them. And
second, a collective goal&amp;mdash;in this case, writing a book
together&amp;mdash;motivated us to communicate openly and experiment with
different ways to create a great experience for our readers.&lt;/p&gt;




&lt;h2 id=&#34;write-and-revise-in-the-open-to-get-feedback-from-readers&#34;&gt;Write and revise in the open to get feedback from readers
  &lt;a href=&#34;#write-and-revise-in-the-open-to-get-feedback-from-readers&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;There are all kinds of ways to build empathy for new learners, like
&amp;ldquo;listening&amp;rdquo; on social media, interviewing members of the R community,
and regularly trying to learn new things ourselves. Creating in the open
is another approach&amp;mdash;one that the R community and others have embraced.

&lt;a href=&#34;https://rviews.rstudio.com/2020/07/01/open-source-authorship-of-data-science-in-education-using-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Open source educational resources, software, and science make code
available to readers to encourage collaboration and
accountability&lt;/a&gt;.
But can open source writing also help us check our biases about what
learners need by including the learners themselves in the development of
the content?&lt;/p&gt;
&lt;p&gt;When data scientists share their writing and code through sites like
GitHub and Kaggle, that sharing comes with an unspoken invitation to
communicate with the creators. Most of the time, that communication is
about improving code. When the open source project is designed to teach
something new, the communication can also be about improving the
learning experience.&lt;/p&gt;
&lt;p&gt;Consider a scenario where a classroom teacher asks their students to
complete worksheets&amp;mdash;an example of (tacitly) closed source education
materials. Not only do worksheets hide the underlying thinking behind
their creation: they also invite compliance more than they invite
conversation about what the learner needs.&lt;/p&gt;
&lt;p&gt;On the other hand, providing the code for our book at every stage of
writing empowered us to share &lt;em&gt;how&lt;/em&gt; we thought through an analysis. It
also set the tone for conversation on social media platforms and GitHub
about how we can improve the book. For example, in Chapter 8 we created
a visualization to explore scores from student classwork assignments.
For this post, we added &lt;code&gt;reorder()&lt;/code&gt; to change the order of values in the
x-axis:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Scatterplot of continuous variable&lt;/span&gt;
classwork_df &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;reorder&lt;/span&gt;(classwork_number, &lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;score, median),
             y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; score,
             fill &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; classwork_number)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_boxplot&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;labs&lt;/span&gt;(title &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Distribution of Classwork Scores&amp;#34;&lt;/span&gt;,
       x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Classwork&amp;#34;&lt;/span&gt;,
       y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Scores&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_fill_dataedu&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;theme_dataedu&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;theme&lt;/span&gt;(
    &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# removes legend&lt;/span&gt;
    legend.position &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# angles the x axis labels&lt;/span&gt;
    axis.text.x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;element_text&lt;/span&gt;(angle &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;45&lt;/span&gt;, hjust &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;)
    )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://education.rstudio.com/blog/2020-10-05-ds-in-edu/index_files/figure-html/plot-1.png&#34; width=&#34;672&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;By making the code for this plot

&lt;a href=&#34;https://github.com/data-edu/rstudio_edu_post&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available&lt;/a&gt;, we invited
readers (implicitly by being openly available but also explicitly by
requesting feedback on Twitter) to tell us where we could do more to
scaffold the lesson. For example, a reader might tell us they need more
explanation of how &lt;code&gt;reorder()&lt;/code&gt; is used to arrange the boxplots by median
scores.&lt;/p&gt;
&lt;p&gt;In other cases, readers let us know when the writing itself didn&amp;rsquo;t make
sense. For example, one community member read the 
&lt;a href=&#34;https://datascienceineducation.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;online version of
DSIEUR&lt;/a&gt; and emailed to tell us a
plot that showed the importance of different variables for predicting a
student&amp;rsquo;s final grade didn&amp;rsquo;t match the interpretation we wrote. It turns
out we made revisions to the analysis that changed the plot, but we
hadn&amp;rsquo;t updated the plot&amp;rsquo;s interpretation. We tracked this feedback and
others in a 
&lt;a href=&#34;https://github.com/data-edu/data-science-in-education/issues/525&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub
issue&lt;/a&gt;
and corrected it.&lt;/p&gt;
&lt;p&gt;Indeed, while writing DSIEUR, sharing the book and its code led to

&lt;a href=&#34;https://twitter.com/rrherr/status/1254208054008205314&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;conversations&lt;/a&gt;
and opportunities for improvement we might not have had if we didn&amp;rsquo;t
write in the open.&lt;/p&gt;




&lt;h2 id=&#34;use-the-structure-provided-by-a-writing-project-to-encounter-blind-spots&#34;&gt;Use the structure provided by a writing project to encounter blind spots
  &lt;a href=&#34;#use-the-structure-provided-by-a-writing-project-to-encounter-blind-spots&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When we structure our creative endeavors like a formal
project&amp;mdash;including setting a deadline and working toward a product&amp;mdash;we
create many opportunities to encounter our oversights and blind spots.&lt;/p&gt;
&lt;p&gt;One way to do this is to write for an audience (of any size). If you&amp;rsquo;ve
written a blog or social media post before, you might recognize the
experience of doing so: As soon as you publish the post, you find gaps
(or typos!) in your writing you feel motivated to fix. Moreover, if you
write a blog post in 
&lt;a href=&#34;https://rmarkdown.rstudio.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Markdown&lt;/a&gt;, the
process of publishing the post will expose issues, warnings, or messages
related to the code&amp;mdash;issues you may wish to address before (or after)
publishing the post. Knowing someone will read your work gives that
extra bit of productive pressure to offer value to your readers. Indeed,
the audience has a role to pay in the creative process because they
aren&amp;rsquo;t just reading, they&amp;rsquo;re participating. Conversations can start in
the comment section or on social media. These conversations help you
learn how well you&amp;rsquo;ve connected with the audience and help you uncover
what&amp;rsquo;s important to your readers.&lt;/p&gt;
&lt;p&gt;Another part of structuring creative endeavors is creating opportunities
to have your work reviewed, either by you or by someone else. In the
context of book writing, working through the copy-edits with our
publisher helped (or forced!) us to encounter other parts of our writing
we hadn&amp;rsquo;t considered: We realized late in the process that we used both
the singular and plural form of &amp;lsquo;data&amp;rsquo; throughout the manuscript
(without expressed reasons for doing so!). Even an early 
&lt;a href=&#34;https://github.com/data-edu/data-science-in-education/issues/20&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub
issue&lt;/a&gt;
about this very topic hadn&amp;rsquo;t prompted the same level of urgency as the
copy-edits did. While more particular than the broader blind spots
discovered through collaboration and writing in the open, these blind
spots are critical for creating a clear, professional, and readable book
for the audience. Whether reviewing your own work or having others
review for you, an intentional revision process can uncover missed
opportunities for improvements.&lt;/p&gt;
&lt;p&gt;Finally, deadlines can help. The due date for the manuscript motivated
us to improve how we communicated with each other. In &lt;em&gt;Change By
Design&lt;/em&gt;, Tim Brown writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Curse deadlines all you want, but remember
that time can be our most creative constraint.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Indeed, the frequency of
team calls and the commitment to revising and finalizing our manuscript
together grew as our deadline approached. Thus, our publisher&amp;rsquo;s deadline
provided a structure that encouraged organization, efficient
decision-making, problem-solving, and collaboration. With the deadline
looming, we got to the essential question as quickly as possible: Does
what we wrote connect meaningfully with the audience and if not, how can
we speak to them better?&lt;/p&gt;




&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
  &lt;a href=&#34;#conclusion&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In the end, the solution for writing the best book we could for new R
users in the education field was to empower the community with tools to
look at our work and share their reactions with us. Writing &lt;em&gt;Data
Science in Education Using R&lt;/em&gt; in the open was a way for us to express
what we&amp;rsquo;ve learned, but also a way for us to keep learning.&lt;/p&gt;
&lt;p&gt;You can reach us and our co-authors on Twitter: Emily

&lt;a href=&#34;https://twitter.com/ebovee09&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ebovee09&lt;/a&gt;, Jesse

&lt;a href=&#34;https://twitter.com/kierisi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@kierisi&lt;/a&gt;, Joshua

&lt;a href=&#34;https://twitter.com/jrosenberg6432&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jrosenberg6432&lt;/a&gt;, Isabella

&lt;a href=&#34;https://twitter.com/ivelasq3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ivelasq3&lt;/a&gt;, Ryan

&lt;a href=&#34;https://twitter.com/RyanEs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@RyanEs&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Sample Shiny exam</title>
      <link>https://education.rstudio.com/blog/2020/10/example-shiny-exam/</link>
      <pubDate>Fri, 02 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/10/example-shiny-exam/</guid>
      <description>&lt;p&gt;To help everyone who is preparing to certify as a Shiny instructor,
here are examples of the kinds of questions we have used in the past.
Candidates can use any reference material they want (books, online resources, old code, or YouTube videos),
but may not ask another person for help, and must complete the exams in 90 minutes each.&lt;/p&gt;




&lt;h2 id=&#34;question-1&#34;&gt;Question 1
  &lt;a href=&#34;#question-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In this question you will be asked to debug and improve an app that uses a subset of the diamonds dataset from the ggplot2 package. While familiarity with the variables in the dataset is not required for successfully completing this question, the help file for this dataset contains a codebook that might be helpful.&lt;/p&gt;
&lt;p&gt;The app code is provided in an RStudio Cloud project.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;There is one bug in the app: The summary under the &amp;ldquo;Overall&amp;rdquo; heading should be a full sentence that reads &lt;code&gt;There are ___ diamonds that match your selection criteria.&lt;/code&gt; Instead it just reads &lt;code&gt;nrow&lt;/code&gt;. Debug the app to correct this mistake.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improve the code in the server function by removing repeated instances of the following lines of code and making use of reactive expressions:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;diamonds %&amp;gt;%
  filter(
    cut %in% input$selected_cut,
    color %in% input$selected_color
  )
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then, describe in 1-2 sentences how the reactive graph with the improvements you implemented will change.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Revamp the app by replacing the standard HTML table under the &amp;ldquo;Data&amp;rdquo; heading with &lt;code&gt;shiny::dataTableOutput()&lt;/code&gt; which uses the DataTables Javascript library to create an interactive table with more features.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refactor the app so that the three outputs (Overall, Variable Summary, and Data) are in separate tabs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;question-2&#34;&gt;Question 2
  &lt;a href=&#34;#question-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;ui.R&lt;/code&gt;, &lt;code&gt;server.R&lt;/code&gt;, and &lt;code&gt;global.R&lt;/code&gt; files shown on the next page are used to build an app. Answer the following questions without actually running the app.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;What error will running the app using the &amp;ldquo;Run app&amp;rdquo; button or with the &lt;code&gt;runApp()&lt;/code&gt; function yield? How would you resolve this error?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Suppose you resolve the error in part (a). Now that the app is running successfully, you deploy the app. The four timestamps are printed in order from Time 1 to Time 4, but the times displayed are as followed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Time 4 is always the earliest time&lt;/li&gt;
&lt;li&gt;Time 1 is always next&lt;/li&gt;
&lt;li&gt;Time 2 is always next after that&lt;/li&gt;
&lt;li&gt;Time 3 is always the latest time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Explain why these timestamps show up in exactly this order.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You then share the URL of your deployed app with your friend, who immediately visits the app as well on their own computer. The two of you compare what you&amp;rsquo;re seeing on your screens. Which of the four time stamps will be the same across your screens? Which will be different? Explain why.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You take a screenshot of your app and save it. Then, you reload the deployed app (without redeploying it) by hitting the refresh button on your browser, and compare the app you&amp;rsquo;re viewing in your browser to the screenshot you took before you reloaded. Which of the four time stamps will be the same between the app in your browser and the screenshot? Which will be different? Explain why.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# ui.R
library(shiny)
library(magrittr)

time_1 &amp;lt;- Sys.time() %&amp;gt;% format_custom()
Sys.sleep(10)

ui &amp;lt;- fluidPage(  
    h4(paste(&amp;quot;Time 1:&amp;quot;, time_1)), 
    h4(paste(&amp;quot;Time 2:&amp;quot;, Sys.time() %&amp;gt;% format_custom())),
    h4(textOutput(paste(&amp;quot;Time 3:&amp;quot;, time_3))),
    h4(paste(&amp;quot;Time 4:&amp;quot;, time_4))
)
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;# server.R
server &amp;lt;- function(input, output) {   
    # Time 3 ----
    output$time_3 &amp;lt;- renderText({
        paste(&amp;quot;Time 3:&amp;quot;, Sys.time() %&amp;gt;% format_custom())
    }) 
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;# global.R
format_custom &amp;lt;- function(x){
  format(x, &amp;quot;%d %b %Y %H:%M:%S&amp;quot;)
}

time_4 &amp;lt;- Sys.time() %&amp;gt;% format_custom()
Sys.sleep(10)
&lt;/code&gt;&lt;/pre&gt;



&lt;h2 id=&#34;question-3&#34;&gt;Question 3
  &lt;a href=&#34;#question-3&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The following are conceptual questions that come up often when teaching Shiny. Please respond to each in two or three sentences as if you were responding to an email from a student.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The Reactivity overview article on the Shiny Dev Center states &amp;ldquo;observers [&amp;hellip;] don&amp;rsquo;t return a value; they are used for their side effects.&amp;rdquo; Explain what a side effect means in this context and how this relates to the differences between reactives and observers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In what context should one use  &lt;code&gt;eventReactive()&lt;/code&gt; vs.   &lt;code&gt;observeEvent()&lt;/code&gt;?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Suppose you have written an app that is slow to launch and slow to react to user actions. What are the first three things you would check to find the cause, and how would you do this?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Why does each Shiny module need to start with the statement &lt;code&gt;ns &amp;lt;- NS(id)&lt;/code&gt;, and what purpose does this statement serve in Shiny modules?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;question-4&#34;&gt;Question 4
  &lt;a href=&#34;#question-4&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In this question you are asked to re-create a Shiny app based on the deployed app as well as a verbal description. The deployed app can be found online, and is described below. You can use the CSV sent to you before this exam file (which contains data from the mtcars data frame) to test the app, and are welcome to view online examples and re-use code from them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The app is comprised of three columns with the titles &amp;ldquo;Data upload&amp;rdquo;, &amp;ldquo;Data viewer&amp;rdquo;, and &amp;ldquo;Data download&amp;rdquo;. The middle column is twice as wide as the columns in the left and right.&lt;/li&gt;
&lt;li&gt;The app&amp;rsquo;s title is &amp;ldquo;Upload / Download&amp;rdquo; however note that the name shown in the browser tab where you view the deployed app is different than the title shown in the app.&lt;/li&gt;
&lt;li&gt;On the left hand side the user can upload a CSV file, and has the option to randomly sample observations from the data file you uploaded. If the user checks this option, a new widget where the sample size can be set pops up. The minimum allowed sample size is 1 and the maximum allowed is 32.&lt;/li&gt;
&lt;li&gt;Data should be displayed in the middle column with a DataTables style table output immediately after the upload is complete. The displayed data should be updated if the user selects to take a random sample.&lt;/li&gt;
&lt;li&gt;On the right hand side the user can download a CSV file. This is either the same file they uploaded, or a random sample from it. The name of the downloaded file should be identical to the name of the uploaded file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;screenshot.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in September 2020</title>
      <link>https://education.rstudio.com/blog/2020/09/september-2020-instructors/</link>
      <pubDate>Wed, 30 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/09/september-2020-instructors/</guid>
      <description>&lt;p&gt;We welcomed 12 new instructors to our ranks in September 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/aydin&amp;#43;selcan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Selcan Aydın&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/bjorkholt&amp;#43;solveig/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Solveig Bjørkholt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/janssens&amp;#43;jeroen/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jeroen Janssens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/kiprop&amp;#43;brian/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Brian Kiprop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/lanera&amp;#43;corrado/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Corrado Lanera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/marks&amp;#43;karina/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Karina Marks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/michem&amp;#43;thomas/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Thomas Michem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/pius&amp;#43;riinu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Riinu Pius&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/riederer&amp;#43;emily/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Emily Riederer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/schmidt&amp;#43;christoph/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Christoph Scmidt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/schoebitz&amp;#43;lars/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Lars Schöbitz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/vestesson&amp;#43;emma/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Emma Vestesson&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 157,
and the number certified for Shiny to 23.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes are now full for the remainder of 2020,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How to deliver learnr tutorials in a package</title>
      <link>https://education.rstudio.com/blog/2020/09/delivering-learnr-tutorials-in-a-package/</link>
      <pubDate>Mon, 28 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/09/delivering-learnr-tutorials-in-a-package/</guid>
      <description>&lt;p&gt;Packages are not just for functions and data &amp;ndash; you can create a package to deliver interactive tutorials to an audience, too.&lt;/p&gt;
&lt;p&gt;If you want to share your 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr tutorial&lt;/a&gt; with a large group of users (e.g. large courses where many students will likely run the same tutorials simultaneously), putting your tutorial inside of a package may actually be one of the best ways to get your content to your audience. Why? Because after the package has been installed, users can run your tutorial &lt;em&gt;locally&lt;/em&gt;&amp;ndash; which means that &lt;em&gt;you&lt;/em&gt; don&amp;rsquo;t have to worry about potential bandwidth limits and issues that might otherwise arise when learnr tutorials are hosted on external servers.&lt;/p&gt;
&lt;p&gt;Putting your learnr tutorial in a package is also free&amp;ndash; and always will be, which means you can also sidestep costs associated with hosting services! Your package doesn&amp;rsquo;t have to be on CRAN, and it doesn&amp;rsquo;t have to contain functions or data (but it can if you want).&lt;/p&gt;
&lt;p&gt;Never made a package before? No sweat! In this post, we&amp;rsquo;ll guide you through the process.&lt;/p&gt;




&lt;h2 id=&#34;tldr&#34;&gt;tl;dr
  &lt;a href=&#34;#tldr&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Here&amp;rsquo;s how you put an interactive learnr tutorial in a package:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In a GitHub-connected RStudio project, run &lt;code&gt;usethis::create_package(&amp;quot;&amp;lt;path_to_folder/name_of_package&amp;gt;&amp;quot;)&lt;/code&gt; to make a basic package.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;usethis::use_tutorial(&amp;quot;&amp;lt;name-of-learnr-file&amp;gt;&amp;quot;, &amp;quot;&amp;lt;Title You&#39;d Like the User to See&amp;gt;&amp;quot;)&lt;/code&gt; to create the learnr tutorial. Customize with your content. Repeat for additional tutorials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to &lt;em&gt;Build&lt;/em&gt; &amp;gt; &lt;em&gt;Install and Restart&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optionally, run &lt;code&gt;usethis::use_dev_package(&amp;quot;gradethis&amp;quot;)&lt;/code&gt; to add package dependencies for in-development packages, like gradethis.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optionally, run &lt;code&gt;usethis::use_package(&amp;quot;palmerpenguins&amp;quot;)&lt;/code&gt; to add package dependencies for packages that are on CRAN, like palmerpenguins.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optionally, edit the &lt;code&gt;DESCRIPTION&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;usethis::use_readme_rmd()&lt;/code&gt; to add a README. Knit when you&amp;rsquo;re done.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push to GitHub and have folks install with &lt;code&gt;devtools::install_github(&amp;quot;&amp;lt;your-repo&amp;gt;/&amp;lt;package-name&amp;gt;&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to &lt;em&gt;Tutorial pane&lt;/em&gt; of IDE to run the tutorial.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeat steps 2, 3, and 7 anytime you update your tutorial package.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;pkg-illo.jpg&#34; alt=&#34;Creating a tutorial package in a nutshell&#34; width=&#34;100%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Creating a tutorial package in a nutshell&lt;/p&gt;
&lt;/div&gt;




&lt;h2 id=&#34;how-to-make-a-package-for-a-learnr-tutorial&#34;&gt;How to make a package for a learnr tutorial
  &lt;a href=&#34;#how-to-make-a-package-for-a-learnr-tutorial&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We will walk through the steps for creating the bare-minimum package that you can use to house and deliver your interactive learnr tutorials to your users. This post is not meant to be a comprehensive guide for creating a package nor a guide for creating a tutorial package that is CRAN-ready. However, it &lt;em&gt;is&lt;/em&gt; meant to get you up and running with a working tutorial package in a fuss-free way, so that you can share your package &lt;em&gt;now&lt;/em&gt; and fine tune &lt;em&gt;later&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Our final goal is to create a package that is &amp;ldquo;downloadable&amp;rdquo; by users. The most straightforward way to do this is to host the package in a GitHub repository; however, it is also possible to achieve the same outcome using other hosting services like GitLab or by distributing the package source code via other means. One caveat is that if students wanted to, they’d be able to find the source code and solutions in your repository (or, with some spelunking, in the folder that houses all their R packages locally). But this would take some extra effort on the part of students.&lt;/p&gt;
&lt;p&gt;If a solution like this works for your purposes, then read onwards!&lt;/p&gt;




&lt;h3 id=&#34;pre-requisites&#34;&gt;Pre-requisites
  &lt;a href=&#34;#pre-requisites&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;We assume the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You have a GitHub account and are comfortable 
&lt;a href=&#34;https://happygitwithr.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;using GitHub from within RStudio&lt;/a&gt; (but you don&amp;rsquo;t need to be more than a GitHub novice)&lt;/li&gt;
&lt;li&gt;You are comfortable with the basics of using R and RStudio&lt;/li&gt;
&lt;li&gt;You understand how R projects work&lt;/li&gt;
&lt;li&gt;You are already familiar with creating learnr tutorials&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now let&amp;rsquo;s get set up all to create a learnr tutorial package!&lt;/p&gt;




&lt;h3 id=&#34;packages&#34;&gt;Packages
  &lt;a href=&#34;#packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Make sure you&amp;rsquo;ve installed and loaded the following packages:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#install.packages(c(&amp;#34;devtools&amp;#34;, &amp;#34;roxygen2&amp;#34;, &amp;#34;learnr&amp;#34;))&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(devtools)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(usethis)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(roxygen2)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(learnr)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;create-a-github-repository&#34;&gt;Create a GitHub repository
  &lt;a href=&#34;#create-a-github-repository&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;If you&amp;rsquo;re already familiar with the ins and outs of connecting an R Project to a GitHub repository, you can skip this section.&lt;/p&gt;
&lt;p&gt;There are two workflows to choose from for getting started:&lt;/p&gt;




&lt;h4 id=&#34;workflow-1&#34;&gt;Workflow 1
  &lt;a href=&#34;#workflow-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;We recommend following the tips on 
&lt;a href=&#34;https://happygitwithr.com/new-github-first.html#make-a-repo-on-github-2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Happy Git with R&lt;/a&gt; and starting in GitHub before switching to RStudio.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://happygitwithr.com/new-github-first.html#make-a-repo-on-github-2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Create a new repository on GitHub&lt;/strong&gt;&lt;/a&gt; for your work.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The repository name you choose will also end up being the name of your package, so choose wisely! For the examples in this guide, we&amp;rsquo;ll go with &amp;ldquo;tutorialpackage&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Copy the repository URL&lt;/strong&gt; to your clipboard.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do this by clicking the green Clone or Download button.&lt;/li&gt;
&lt;li&gt;Copy the HTTPS URL (looks like: &lt;code&gt;https://github.com/{yourname}/{yourrepo}.git&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open RStudio&lt;/strong&gt; and 
&lt;a href=&#34;https://happygitwithr.com/new-github-first.html#new-rstudio-project-via-git-clone&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;create a new RStudio Project via git clone&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do this by clicking File &amp;gt; New Project &amp;gt; Version Control &amp;gt; Git.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Paste the copied URL.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Be intentional about where you tell RStudio to create this new Project.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Click Create Project.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your R Project is now connected to GitHub!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h4 id=&#34;workflow-2&#34;&gt;Workflow 2
  &lt;a href=&#34;#workflow-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;It is possible to first make a package project in RStudio and then connect it to GitHub afterwards. This workflow requires that you have a 
&lt;a href=&#34;https://usethis.r-lib.org/articles/articles/usethis-setup.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Git Personal Access Token (PAT)&lt;/a&gt; established:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;em&gt;File&lt;/em&gt; &amp;gt; &lt;em&gt;New Project&lt;/em&gt; &amp;gt; &lt;em&gt;New Directory&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scroll down and select &lt;em&gt;R Package&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a package name and click &lt;em&gt;Create Project&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Then run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_git&lt;/span&gt;()
usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_github&lt;/span&gt;() &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# you have to have a PAT setup&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The files and directories necessary for a package are now in place, and you&amp;rsquo;ve connected your project with GitHub. You can skip the next section of this post and go directly to &amp;ldquo;Add files and directories for a tutorial&amp;rdquo;.&lt;/p&gt;




&lt;h3 id=&#34;add-files-and-directories-for-a-package&#34;&gt;Add files and directories for a package
  &lt;a href=&#34;#add-files-and-directories-for-a-package&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Now we&amp;rsquo;ll create the infrastructure to turn this R project into a &lt;em&gt;package&lt;/em&gt;. A handful of new files need to be created, but luckily we can outsource this heavy lifting to the &lt;code&gt;create_package()&lt;/code&gt; function from the 
&lt;a href=&#34;https://usethis.r-lib.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;usethis&lt;/a&gt; package.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://www.allisonhorst.com/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;usethis.png&#34; alt=&#34;Illustration by Allison Horst&#34; width=&#34;65%&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Illustration by Allison Horst&lt;/p&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create the necessary package infrastructure&lt;/strong&gt; when you run the following code to make a basic package in your current working directory:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;create_package&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;&amp;lt;path_to_folder/name_of_package&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Not sure what your current working directory is? You can always run &lt;code&gt;getwd()&lt;/code&gt; to check.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The console output will ask if you’d like to overwrite the pre-existing R project. &lt;strong&gt;Select &lt;em&gt;No&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;pkg-overwrite.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A second session of RStudio will open – this session has a &lt;em&gt;Build&lt;/em&gt; tab in the pane which also has the tabs Environment, History, etc. This tab is specific for building packages, and we will use it later. &lt;strong&gt;You can close the first RStudio instance&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;pkg-build.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your project directory should end up looking something like this:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;pkg-directory.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;add-files-and-directories-for-a-tutorial&#34;&gt;Add files and directories for a tutorial
  &lt;a href=&#34;#add-files-and-directories-for-a-tutorial&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Now that the package structure is in place, it&amp;rsquo;s time to add tutorial content. Again, the usethis package will do the dirty work for us to create the folders and files we need for a learnr tutorial within our package.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create the learnr tutorial&lt;/strong&gt; and open it for editing when you run &lt;code&gt;usethis::use_tutorial(&amp;quot;&amp;lt;tutorial-name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;Tutorial Title&amp;gt;&amp;quot;)&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_tutorial&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;lesson1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Your First Lesson&amp;#34;&lt;/span&gt;, open &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;interactive&lt;/span&gt;())
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The first argument is the filename for the learnr R Markdown file you are creating without the &lt;code&gt;.Rmd&lt;/code&gt; extension.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The second argument is what you want the user-facing title of the tutorial to be.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This creates an &lt;code&gt;inst/&lt;/code&gt; directory with some subfolders. If you&amp;rsquo;re not new to creating learnr tutorials, the folder structure here will look familiar to you &amp;ndash; there&amp;rsquo;s nothing different about learnr tutorial directories inside and outside of packages.&lt;/p&gt;
&lt;p&gt;You can open up &lt;code&gt;inst/&lt;/code&gt; and its subsequent subfolders until you reach the &lt;code&gt;.Rmd&lt;/code&gt; file you created:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/inst/tutorials/&amp;lt;tutorial-name&amp;gt;/&amp;lt;tutorial-name.Rmd&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;pkg-inst.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Edit the open &lt;code&gt;.Rmd&lt;/code&gt; file&lt;/strong&gt; and write your tutorial as you normally would.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Repeat&lt;/strong&gt; for each additional tutorial you want to include in this package.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;build-install-and-use-your-tutorial-package&#34;&gt;Build, install, and use your tutorial package
  &lt;a href=&#34;#build-install-and-use-your-tutorial-package&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Time to build the package and install it in your R system library.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Navigate to the &lt;em&gt;Build&lt;/em&gt; pane&lt;/strong&gt; of your RStudio IDE. Then &lt;strong&gt;click &lt;em&gt;Install and Restart&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Alternatively, run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;devtools&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;install&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Believe it or not, you&amp;rsquo;ve now made a package with a learnr tutorial inside of it!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You should test that your package has been properly created by loading your tutorial from your installed package:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Navigate to the &lt;em&gt;Tutorial&lt;/em&gt; pane&lt;/strong&gt; of your RStudio IDE. All installed learnr tutorials in your R Library will be automatically indexed and displayed here.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;pkg-run-tutorial.png&#34; width=&#34;90%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Click Start Tutorial&lt;/strong&gt; to open the tutorial from inside the tutorial pane (which can then be made bigger or popped out to a browser window) &amp;ndash; 🎉 woot!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Alternatively, you can run your tutorial by using &lt;code&gt;learnr::run_tutorial(&amp;quot;&amp;lt;tutorial-name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;package-name&amp;gt;&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;learnr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;run_tutorial&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;lesson1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tutorialpackage&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The tutorial name here refers to the name of the &lt;code&gt;.Rmd&lt;/code&gt; file, not the user-facing title.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The live tutorial will open up in a local browser window.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;optionally-add-dependencies&#34;&gt;(Optionally) Add dependencies
  &lt;a href=&#34;#optionally-add-dependencies&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;If your tutorial uses external packages (for example, packages for exercise-checking like 
&lt;a href=&#34;https://rstudio-education.github.io/gradethis/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gradethis&lt;/a&gt;), or external packages that need to be made available to learners as they complete exercises (for example, data packages like palmerpenguins), you&amp;rsquo;ll need to make sure this package gets installed along with your custom package.&lt;/p&gt;




&lt;h4 id=&#34;external-packages-in-development&#34;&gt;External packages in development
  &lt;a href=&#34;#external-packages-in-development&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;If the package you want to use is not on CRAN (as gradethis currently is not), the development version of the package will need to be included as a &lt;code&gt;Remotes&lt;/code&gt; dependency in the &lt;code&gt;DESCRIPTION&lt;/code&gt; file. (&lt;em&gt;Note:&lt;/em&gt; Including external packages that are still in development does complicate matters if you plan on submitting your tutorial package to CRAN.)&lt;/p&gt;
&lt;p&gt;Once again, the usethis package will make this easier for us to do:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt; &lt;code&gt;usethis::use_dev_package(&amp;quot;&amp;lt;external-package&amp;gt;&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_dev_package&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;gradethis&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This function is even smart enough to figure out the &lt;code&gt;OWNER/REPO&lt;/code&gt; of the GitHub remote that the external package comes from if you have it install locally. See the 
&lt;a href=&#34;https://usethis.r-lib.org/reference/use_package.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;usethis pkgdown site&lt;/a&gt; for optional arguments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can confirm the package has been added under &lt;code&gt;Remotes&lt;/code&gt; when you open the &lt;code&gt;DESCRIPTION&lt;/code&gt; file in your project root.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h4 id=&#34;external-packages-on-cran&#34;&gt;External packages on CRAN
  &lt;a href=&#34;#external-packages-on-cran&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;If you&amp;rsquo;re using other packages in your tutorial that &lt;em&gt;are&lt;/em&gt; on CRAN (e.g. tidyverse or palmerpenguins), these must also added to the &lt;code&gt;DESCRIPTION&lt;/code&gt; file, but they need only be listed under &lt;code&gt;Imports&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt; &lt;code&gt;usethis::use_package(&amp;quot;&amp;lt;external-package&amp;gt;&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_dev_package&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;palmerpenguins&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can confirm the package has been added under &lt;code&gt;Imports&lt;/code&gt; when you open the &lt;code&gt;DESCRIPTION&lt;/code&gt; file in your project root.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;optionally-edit-your-package-metadata&#34;&gt;(Optionally) Edit your package metadata
  &lt;a href=&#34;#optionally-edit-your-package-metadata&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;This step is not necessary to have a working, usable package, but it creates a nicer experience for users interested in learning more about the contents of your package and how to use them.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open the &lt;code&gt;DESCRIPTION&lt;/code&gt; file&lt;/strong&gt; in your project root.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Edit the file&lt;/strong&gt; with your own information. Not sure what to write for each field? See 
&lt;a href=&#34;https://r-pkgs.org/description.html#pkg-description&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this resource&lt;/a&gt; for suggestions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finally, make sure to &lt;strong&gt;&lt;em&gt;Build&lt;/em&gt; &amp;gt; &lt;em&gt;Install and Restart&lt;/em&gt;&lt;/strong&gt; your package again to include these changes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;getting-your-tutorial-to-your-audience&#34;&gt;Getting your tutorial to your audience
  &lt;a href=&#34;#getting-your-tutorial-to-your-audience&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Your tutorial package has (finally!) been built, now it&amp;rsquo;s time to get it out there!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href=&#34;https://happygitwithr.com/rstudio-git-github.html#make-local-changes-save-commit&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Commit&lt;/a&gt; and 
&lt;a href=&#34;https://happygitwithr.com/rstudio-git-github.html#push-your-local-changes-online-to-github&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;push&lt;/a&gt;&lt;/strong&gt; to GitHub to share your tutorial package with the world.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have users &lt;em&gt;install&lt;/em&gt; your package&lt;/strong&gt; from GitHub with: &lt;code&gt;devtools::install_github(“&amp;lt;your-repo&amp;gt;/&amp;lt;package-name&amp;gt;&amp;quot;)&lt;/code&gt;. (They will also need to install the learnr package.)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;devtools&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;install_github&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;dcossyleon/tutorialpackage&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have users &lt;em&gt;run&lt;/em&gt; your tutorial&lt;/strong&gt; by navigating to the &lt;em&gt;Tutorial pane&lt;/em&gt; of their RStudio IDE and clicking &lt;em&gt;Start Tutorial&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Alternatively, users could also run the following code to open the tutorial: &lt;code&gt;learnr::run_tutorial(&amp;quot;&amp;lt;tutorial-name&amp;gt;&amp;quot;, &amp;quot;&amp;lt;package-name&amp;gt;&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;learnr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;run_tutorial&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;lesson1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tutorialpackage&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We recommend including these latter two instructions in a README file, which we introduce below.&lt;/p&gt;




&lt;h3 id=&#34;create-a-readme-file&#34;&gt;Create a README file
  &lt;a href=&#34;#create-a-readme-file&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;You can include additional information in a &lt;code&gt;README.Rmd&lt;/code&gt; file for your package. At a minimum, we recommend you include a line about how users can install and load the tutorials.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt; &lt;code&gt;use_readme_rmd()&lt;/code&gt; to create and open a README file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;use_readme_rmd&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt; the README to meet your needs. Need ideas of what to include? Check out 
&lt;a href=&#34;https://r-pkgs.org/whole-game.html#use_readme_rmd&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this resource&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Click Knit&lt;/strong&gt; so that it creates a corresponding &lt;code&gt;README.md&lt;/code&gt; file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Or, alternatively, run:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;usethis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;build_readme&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Commit and push&lt;/strong&gt; your changes to GitHub.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;updating-your-package&#34;&gt;Updating your package
  &lt;a href=&#34;#updating-your-package&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;After your package has been installed by your users, you can continue to update or add tutorials. Each time you make changes to the contents of your package, you must &lt;em&gt;Build&lt;/em&gt; then &lt;em&gt;Install and Restart&lt;/em&gt; the package locally before pushing your changes to GitHub.&lt;/p&gt;
&lt;p&gt;Users can then access the updated content by simply re-installing your package.&lt;/p&gt;




&lt;h2 id=&#34;thats-a-wrap&#34;&gt;That&amp;rsquo;s a wrap!
  &lt;a href=&#34;#thats-a-wrap&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Congratulations, you&amp;rsquo;ve created a tutorial package!&lt;/p&gt;
&lt;p&gt;From here, there are many ways to extend what you&amp;rsquo;ve done. For example, you could decide to bundle up custom data sets in your package, as explained in the 
&lt;a href=&#34;https://r-pkgs.org/data.html#data-sysdata&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Packages&lt;/a&gt; book. And you might consider adding 
&lt;a href=&#34;https://r-pkgs.org/man.html#man-packages&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;package documentation&lt;/a&gt;. It&amp;rsquo;s also worth mentioning that if you are teaching using RStudio Cloud or RStudio Server,  you can install the tutorial package in your workspace or project as the instructor, and make the student experience even simpler &amp;ndash;  all students would need to do is go to the website, push a button, and start the tutorial.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d like to see an example of a tutorial package &amp;ldquo;in the wild&amp;rdquo;, check out the GitHub repository for the 
&lt;a href=&#34;https://github.com/tidymodels/learntidymodels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learntidymodels package&lt;/a&gt; or the companion R package for the 
&lt;a href=&#34;https://github.com/rstudio-education/dsbox&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science Course in a Box&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Finally, you may also be interested in exploring mybinder.org as a platform for delivering interactive learnr tutorials to users, which you can learn more about with this 
&lt;a href=&#34;http://laderast.github.io/2020/09/15/getting-learnr-tutorials-to-run-on-mybinder-org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;helpful post&lt;/a&gt; by 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/laderas&amp;#43;ted/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ted Laderas, PhD.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy tutorial-ing!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Data Latam: A community of data practitioners</title>
      <link>https://education.rstudio.com/blog/2020/09/data-latam/</link>
      <pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/09/data-latam/</guid>
      <description>&lt;p&gt;When we started with the first 
&lt;a href=&#34;http://www.datalatam.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Latam Podcast&lt;/a&gt; in May 2016
we thought that it would be a great idea to have a source of information about data science in Spanish.
Our goal was to make available not only a source of information, but also of inspiration.
We believe that having role models is important in a field where so many of us are self-taught,
and all of us need to learn continuously to stay abreast of advances in each of our fields.&lt;/p&gt;
&lt;p&gt;This is why we always ask our interviewees: &amp;ldquo;How did you get where you are?&amp;quot;, and the diversity of stories has been enormous.
The podcast has documented role models for those members of the audience who want to start or continue their own career in data science.
We have been amazed and happy with the reach that the podcasts have had:
to date we have published 53 podcasts with more than 3000 people listening in each month in different countries in Latin America.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Picture1.png&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;data-latam-events&#34;&gt;Data Latam Events
  &lt;a href=&#34;#data-latam-events&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Soon after the podcasts we started organizing in-person training events, always followed by a lunch.
In this way we highlighted the importance of creating an opportunity for networking
in a group that shares an interest in data science with R.
We have also organized the following courses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/datalatam/pruebas-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Automated tests in R&lt;/a&gt; (2018)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/datalatam/dataductos-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data pipelines in R with dplyr&lt;/a&gt; (2018)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/datalatam/docker&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Deploy data products with Docker&lt;/a&gt; (2018)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/datalatam/shiny-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Interactive Dashboards in R with Shiny&lt;/a&gt; (2019)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/datalatam/visualizacion&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Visualizing data in R&lt;/a&gt; (2019)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the nice things that happened with the in-person events is that
more people got involved in the execution of the training sessions
and came up with their own ideas.
This month we will do the first remote training about migrating to R from Excel.&lt;/p&gt;




&lt;h2 id=&#34;data-latam-webinars&#34;&gt;Data Latam Webinars
  &lt;a href=&#34;#data-latam-webinars&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Around the same time as the training events we started the Data Latam online webinars on the last Thursday of every month.
In fact, we inherited these events from the 
&lt;a href=&#34;https://www.meetup.com/San-Carlos-R-User-Group/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;San Carlos R User Group&lt;/a&gt;,
who were being threatened by Meetup.com with deletion from their platform if they continued posting online events.
This brought a new group of people into the Data Latam community and for the first year we always began with a round of introductions:
where are you, how do you use R?&lt;/p&gt;
&lt;p&gt;Starting the webinars with a full round of introductions has become more difficult with the numbers of people currently assisting.
We regularly get 200-300 inscriptions for each webinar, and have started to max out our Zoom capacity of 100 (so get there early!).

&lt;a href=&#34;https://youtube.com/c/datalatam&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;We publish a recording of each monthly webinar on YouTube&lt;/a&gt;
where we have more than 26,000 views of the content.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Picture2.png&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;data-latam-future&#34;&gt;Data Latam Future
  &lt;a href=&#34;#data-latam-future&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Thanks to the participation and effort of many people,
Data Latam is a Latin American community of professionals and academics who apply data science in their day to day work.
In our events, training sessions, and extension programs we will continue to explore technologies,
learn about data science,
talk about trends and relevant events in industry and share new developments in the field.
We are thrilled that the community is still growing
and that more people using it as a platform to organize community activities they have thought of.
So if you speak Spanish and you have an interest in R and data science please know that you are welcome to participate!
We look forward to meeting you in one of the next events.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Concept Maps</title>
      <link>https://education.rstudio.com/blog/2020/09/concept-maps/</link>
      <pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/09/concept-maps/</guid>
      <description>&lt;p&gt;We introduce 
&lt;a href=&#34;https://teachtogether.tech/en/index.html#s:memory-concept-maps&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;concept maps&lt;/a&gt;
as a tool to help people figure out what they&amp;rsquo;re trying to teach
early in the 
&lt;a href=&#34;https://docs.google.com/presentation/d/1k45SqyM-w4DtK7dmedeX7pk_r8B9Aq0FKKCxC04pTRM/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructor training course&lt;/a&gt;.
Over the past few months,
a group of certified instructors have been creating concept maps for re-use
and to serve as examples for people who are trying to draw their own.
We have collected some of these in &lt;a href=&#34;https://github.com/rstudio/concept-maps/&#34;&gt;https://github.com/rstudio/concept-maps/&lt;/a&gt; under a Creative Commons license;
we hope you&amp;rsquo;ll find them useful,
and we welcome comments, improvements, and additions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;./dplyr.png&#34;&gt;&lt;img src=&#34;./dplyr.png&#34; alt=&#34;dplyr concept map&#34; style=&#34;border: 1px gray solid;&#34; width=&#34;75%&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;./filter.png&#34;&gt;&lt;img src=&#34;./filter.png&#34; alt=&#34;filter concept map&#34; style=&#34;border: 1px gray solid;&#34; width=&#34;75%&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;./regular-expressions.png&#34;&gt;&lt;img src=&#34;./regular-expressions.png&#34; alt=&#34;regular expressions concept map&#34; style=&#34;border: 1px gray solid;&#34; width=&#34;75%&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;./regular-expressions.png&#34;&gt;&lt;img src=&#34;./pipe-operator.png&#34; alt=&#34;pipe operator concept map&#34; style=&#34;border: 1px gray solid;&#34; width=&#34;75%&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Shiny Solutions</title>
      <link>https://education.rstudio.com/blog/2020/09/shiny-solutions/</link>
      <pubDate>Thu, 10 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/09/shiny-solutions/</guid>
      <description>&lt;p&gt;We are collaborating on creating a solutions manual to accompany Hadley Wickham&amp;rsquo;s new book &lt;em&gt;
&lt;a href=&#34;https://mastering-shiny.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mastering Shiny&lt;/a&gt;&lt;/em&gt;.
It&amp;rsquo;s still in development and we welcome contributions to the repo&amp;mdash;check it out at &lt;a href=&#34;http://mastering-shiny-solutions.org&#34;&gt;http://mastering-shiny-solutions.org&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in August 2020</title>
      <link>https://education.rstudio.com/blog/2020/08/august-2020-instructors/</link>
      <pubDate>Mon, 31 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/08/august-2020-instructors/</guid>
      <description>&lt;p&gt;We welcomed ten new instructors to our ranks in August 2020,
including our first in Oman and South Africa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/attalides&amp;#43;nicolas/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Nicolas Attalides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/chen&amp;#43;daniel/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Daniel Chen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/collier&amp;#43;andrew/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andrew Collier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/cullen&amp;#43;brendan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Brendan Cullen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/iftikhar&amp;#43;ahsan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ahsan Iftikhar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/niemann&amp;#43;uli/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Uli Niemann&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/quiroga&amp;#43;riva/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Riva Quiroga&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/schmoll&amp;#43;florian/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Florian Schmoll&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/tyner&amp;#43;samantha/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Samantha Tyner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/wolen&amp;#43;aaron/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Aaron Wolen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 147,
and the number certified for Shiny to 21.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes in September and October are now full,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>More sample exams</title>
      <link>https://education.rstudio.com/blog/2020/08/more-example-exams/</link>
      <pubDate>Tue, 18 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/08/more-example-exams/</guid>
      <description>&lt;p&gt;To help everyone who is preparing to certify as an RStudio instructor,
here are examples of the kinds of questions we have been using recently.
Candidates can use any reference material they want (books, online resources, old code, or YouTube videos),
but may not ask another person for help, and must complete the exams in 90 minutes each.
(Most people schedule them at least a couple of weeks apart rather than back to back.)&lt;/p&gt;




&lt;h2 id=&#34;tidyverse-exam&#34;&gt;Tidyverse Exam
  &lt;a href=&#34;#tidyverse-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/cullen&amp;#43;brendan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Brendan Cullen&lt;/a&gt;
has posted 
&lt;a href=&#34;https://tidyverse-exam-v2-solutions.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a solution guide&lt;/a&gt;
with 
&lt;a href=&#34;https://github.com/brendanhcullen/tidyverse-sample-exam-v2.0&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;source available on GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;h3 id=&#34;basic-operations&#34;&gt;Basic Operations
  &lt;a href=&#34;#basic-operations&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Read the file 
&lt;a href=&#34;./person.csv&#34;&gt;&lt;code&gt;person.csv&lt;/code&gt;&lt;/a&gt; and store the result in a tibble called &lt;code&gt;person&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a tibble containing only family and personal names, in that order. You do not need to assign this tibble or any others to variables unless explicitly asked to do so. However, as noted in the introduction, you &lt;em&gt;must&lt;/em&gt; use the pipe operator &lt;code&gt;%&amp;gt;%&lt;/code&gt; and code that follows the tidyverse style guide.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new tibble containing only the rows in which family names come &lt;em&gt;before&lt;/em&gt; the letter &lt;code&gt;M&lt;/code&gt;. Your solution should work for tables with more rows than the example, i.e., you cannot rely on row numbers or select specific names.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Display all the rows in &lt;code&gt;person&lt;/code&gt; sorted by family name length with the longest name first.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;cleaning-and-counting&#34;&gt;Cleaning and Counting
  &lt;a href=&#34;#cleaning-and-counting&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Read the file 
&lt;a href=&#34;./measurements.csv&#34;&gt;&lt;code&gt;measurements.csv&lt;/code&gt;&lt;/a&gt; to create a tibble called &lt;code&gt;measurements&lt;/code&gt;. (The strings &lt;code&gt;&amp;quot;rad&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;sal&amp;quot;&lt;/code&gt;, and &lt;code&gt;&amp;quot;temp&amp;quot;&lt;/code&gt; in the &lt;code&gt;quantity&lt;/code&gt; column stand for &amp;ldquo;radiation&amp;rdquo;, &amp;ldquo;salinity&amp;rdquo;, and &amp;ldquo;temperature&amp;rdquo; respectively.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a tibble containing only rows where &lt;em&gt;none&lt;/em&gt; of the values are &lt;code&gt;NA&lt;/code&gt; and save in a tibble called &lt;code&gt;cleaned&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Count the number of measurements of each type of quantity in &lt;code&gt;cleaned&lt;/code&gt;. Your result should have one row for each quantity &lt;code&gt;&amp;quot;rad&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;sal&amp;quot;&lt;/code&gt;, and &lt;code&gt;&amp;quot;temp&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Display the minimum and maximum value of &lt;code&gt;reading&lt;/code&gt; separately for each quantity in &lt;code&gt;cleaned&lt;/code&gt;. Your result should have one row for each quantity &lt;code&gt;&amp;quot;rad&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;sal&amp;quot;&lt;/code&gt;, and &lt;code&gt;&amp;quot;temp&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a tibble in which all salinity (&lt;code&gt;&amp;quot;sal&amp;quot;&lt;/code&gt;) readings greater than 1 are divided by 100. (This is needed because some people wrote percentages as numbers from 0.0 to 1.0, but others wrote them as 0.0 to 100.0.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;combining-data&#34;&gt;Combining Data
  &lt;a href=&#34;#combining-data&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Read 
&lt;a href=&#34;./visited.csv&#34;&gt;&lt;code&gt;visited.csv&lt;/code&gt;&lt;/a&gt; and drop rows containing any &lt;code&gt;NA&lt;/code&gt;s, assigning the result to a new tibble called &lt;code&gt;visited&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use an inner join to combine &lt;code&gt;visited&lt;/code&gt; with &lt;code&gt;cleaned&lt;/code&gt; using the &lt;code&gt;visit_id&lt;/code&gt; column for matches.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the highest radiation (&lt;code&gt;&amp;quot;rad&amp;quot;&lt;/code&gt;) reading at each site. (Sites are identified by values in the &lt;code&gt;site_id&lt;/code&gt; column.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the date of the highest radiation reading at each site.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;plotting&#34;&gt;Plotting
  &lt;a href=&#34;#plotting&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The code below is supposed to read the file 
&lt;a href=&#34;./home-range-database.csv&#34;&gt;&lt;code&gt;home-range-database.csv&lt;/code&gt;&lt;/a&gt; to create a tibble called &lt;code&gt;hra_raw&lt;/code&gt;, but contains a bug. Describe and fix the problem. (There are several ways to fix it: please use whichever you prefer.)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hra_raw &amp;lt;- read_csv(here::here(&amp;quot;data&amp;quot;, &amp;quot;home-range-database.csv&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Convert the &lt;code&gt;class&lt;/code&gt; column (which is text) to create a factor column &lt;code&gt;class_fct&lt;/code&gt; and assign the result to a tibble &lt;code&gt;hra&lt;/code&gt;. Use &lt;code&gt;forcats&lt;/code&gt; to order the factor levels as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;mammalia&lt;/li&gt;
&lt;li&gt;reptilia&lt;/li&gt;
&lt;li&gt;aves&lt;/li&gt;
&lt;li&gt;actinopterygii&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a scatterplot showing the relationship between &lt;code&gt;log10.mass&lt;/code&gt; and &lt;code&gt;log10.hra&lt;/code&gt; in &lt;code&gt;hra&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Colorize the points in the scatterplot by &lt;code&gt;class_fct&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Display a scatterplot showing only data for birds (class &lt;code&gt;aves&lt;/code&gt;) and fit a linear regression to that data using the &lt;code&gt;lm&lt;/code&gt; function.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;functional-programming&#34;&gt;Functional Programming
  &lt;a href=&#34;#functional-programming&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Write a function called &lt;code&gt;summarize_table&lt;/code&gt; that takes a title string and a tibble as input and returns a string that says something like, &amp;ldquo;&lt;em&gt;title&lt;/em&gt; has &lt;em&gt;#&lt;/em&gt; rows and &lt;em&gt;#&lt;/em&gt; columns&amp;rdquo;. For example, &lt;code&gt;summarize_table(&#39;our table&#39;, person)&lt;/code&gt; should return the string &lt;code&gt;&amp;quot;our table has 5 rows and 3 columns&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Write another function called &lt;code&gt;show_columns&lt;/code&gt; that takes a string and a tibble as input and returns a string that says something like, &amp;ldquo;&lt;em&gt;table&lt;/em&gt; has columns &lt;em&gt;name&lt;/em&gt;, &lt;em&gt;name&lt;/em&gt;, &lt;em&gt;name&lt;/em&gt;&amp;quot;. For example, &lt;code&gt;show_columns(&#39;person&#39;, person)&lt;/code&gt; should return the string &lt;code&gt;&amp;quot;person has columns person_id, personal_name, family_name&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The function &lt;code&gt;rows_from_file&lt;/code&gt; returns the first &lt;em&gt;N&lt;/em&gt; rows from a table in a CSV file given the file&amp;rsquo;s name and the number of rows desired. Modify it so that if no value is specified for the number of rows, a default of 3 is used.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rows_from_file &amp;lt;- function(filename, num_rows) {
  readr::read_csv(filename) %&amp;gt;% head(n = num_rows)
}

rows_from_file(&amp;quot;measurements.csv&amp;quot;) # should show 3 rows
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The function &lt;code&gt;long_name&lt;/code&gt; checks whether a string is longer than 4 characters. Use this function and a function from &lt;code&gt;purrr&lt;/code&gt; to create a logical vector that contains the value &lt;code&gt;TRUE&lt;/code&gt; where family names in the tibble &lt;code&gt;person&lt;/code&gt; are longer than 4 characters, and &lt;code&gt;FALSE&lt;/code&gt; where they are 4 characters or less.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;long_name &amp;lt;- function(name) {
  stringr::str_length(name) &amp;gt; 4
}
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;wrapping-up&#34;&gt;Wrapping Up
  &lt;a href=&#34;#wrapping-up&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Modify the YAML header of this file so that a table of contents is automatically created each time this document is knit, and fix any errors that are preventing the document from knitting cleanly.
&lt;pre&gt;&lt;code&gt;---
title: &amp;quot;Tidyverse Exam Version 2.0&amp;quot;
output:
html_document:
    theme: flatly
---
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;teaching-exam&#34;&gt;Teaching Exam
  &lt;a href=&#34;#teaching-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;



&lt;h3 id=&#34;demonstration-lesson&#34;&gt;Demonstration Lesson
  &lt;a href=&#34;#demonstration-lesson&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Present the demonstration lesson you have developed for this
examination.&lt;/p&gt;




&lt;h3 id=&#34;formative-assessment&#34;&gt;Formative Assessment
  &lt;a href=&#34;#formative-assessment&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;You are teaching a one-day introductory workshop on the tidyverse to learners
with little or no previous programming experience. You have shown them how to
create a dplyr pipeline and how to use the basic verbs &lt;code&gt;select&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, and
&lt;code&gt;mutate&lt;/code&gt;, as well as how to create simple plots using ggplot. The next step in
your lesson shows them &lt;code&gt;group_by&lt;/code&gt; and &lt;code&gt;summarize&lt;/code&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a multiple choice question to test their understanding of these two
functions. Include one right answer and at least two wrong answers, and
explain clearly what misconceptions the wrong answers are intended to
diagnose.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a short fill-in-the-blanks coding exercise to test their ability to
use these two functions in a dplyr pipeline. Provide the explanatory text
you would give the learners and the template code they would fill in, and
explain what answers you expect and what errors you expect learners to make.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;teaching-methods&#34;&gt;Teaching Methods
  &lt;a href=&#34;#teaching-methods&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;To support a popular online class for people who are learning how to use regular
expressions in R, your colleague has suggested having the learners grade each
other&amp;rsquo;s exercises.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Each learner submits their code by pasting it into an online system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They are then shown the submissions of 3 other learners, one at a
time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For each submission, they are able to put a &lt;code&gt;+&lt;/code&gt; or &lt;code&gt;-&lt;/code&gt; beside each line of
code to indicate whether they like it or don&amp;rsquo;t like it. (They don&amp;rsquo;t have to
mark or comment on lines, but are not able to submit their review unless
they have marked at least 5 lines.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They are also able to add an overall paragraph-length comment on each
submission.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please describe two strengths and two weaknesses of this tool from the point of
view of the learner and from the point of view of the teacher. Please connect
your points to specific aspects of educational theory where you can.&lt;/p&gt;




&lt;h3 id=&#34;mental-models&#34;&gt;Mental Models
  &lt;a href=&#34;#mental-models&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;You are preparing a lesson on handling missing values in data science.  Draw a
concept map with 4-5 concepts and 6-8 links.&lt;/p&gt;




&lt;h3 id=&#34;being-an-ally&#34;&gt;Being an Ally
  &lt;a href=&#34;#being-an-ally&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;For each of the scenarios below, describe three things you would do in
escalation order (i.e., the first thing you would try, then what you would do if
that didn&amp;rsquo;t work, and then your final option).&lt;/p&gt;




&lt;h4 id=&#34;scenario-1&#34;&gt;Scenario 1
  &lt;a href=&#34;#scenario-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;You have been sent to a company to deliver a week-long introduction to R
and the tidyverse to a team of 8 statisticians who have been using SAS
for many years. Most of them seem interested, but one is obviously not:
they are answering email during lessons, not bothering to do exercises,
shrugging off questions, etc.&lt;/p&gt;
&lt;p&gt;You spoke with them at the end of the first day to say that their
behavior is demotivating other learners. After telling you that they
don&amp;rsquo;t think the class is worthwhile&amp;mdash;they can do everything they need
to in SAS and they don&amp;rsquo;t see why the company is forcing them to
switch&amp;mdash;they promised to do better. However, it is now mid-morning on
day 2 and if anything their behavior is worse. What are the next three
steps you would take, assuming that they continue to promise to make
changes but actually don&amp;rsquo;t?&lt;/p&gt;




&lt;h4 id=&#34;scenario-2&#34;&gt;Scenario 2
  &lt;a href=&#34;#scenario-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;You are co-teaching a workshop at a conference with a senior (relatively
famous) data scientist you have never met in person before. After an
hour, you notice that they only ever ask male students to share their
work with the class. You have pointed this out as gently as you can and
they have become very defensive. What are the next steps you would take,
assuming that each step makes them even more defensive or argumentative?&lt;/p&gt;




&lt;h3 id=&#34;feedback&#34;&gt;Feedback
  &lt;a href=&#34;#feedback&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Watch 4 minutes of the video embedded below and list feedback you would give the
presenter about what they&amp;rsquo;re doing well and what they could improve.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://youtu.be/whmLRd5nibc?t=1265&#34;&gt;https://youtu.be/whmLRd5nibc?t=1265&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Content&lt;/th&gt;
&lt;th&gt;Presentation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Positive&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Negative&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
    <item>
      <title>Spreadsheet workflows in R</title>
      <link>https://education.rstudio.com/blog/2020/08/spreadsheets-using-r/</link>
      <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/08/spreadsheets-using-r/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s so much to discover and learn when working with spreadsheets.
As a summer intern at RStudio my project has focused on creating a resource that lies at the intersection between spreadsheets and R, aimed at users who either exclusively use one or the other or whose work lives in the intersection of the two.
This project has focused on a plethora of topics from comparing numerous R package functionalities that work with spreadsheets, to writing about tips and tricks on best practices for working in both a spreadsheet software and in R.&lt;/p&gt;
&lt;p&gt;In this post I&amp;rsquo;d like to share a part of this work, specifically focused on the R versions of common spreadsheet workflows.
To do that we&amp;rsquo;ll assume the role of a data analyst in two hypothetical scenarios and walk through the tidyverse equivalent of common analyses and tasks one is likely to come across when working with data stored in spreadsheets.&lt;/p&gt;
&lt;p&gt;For our first story, it&amp;rsquo;s day one as a new data analyst and our boss has asked us to take a look at the company&amp;rsquo;s finances.
They send you a spreadsheet, available in an Excel workbook, and ask you to analyze spending patterns over the current year and give your assessment into where spending is going overboard.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve decided to run our analysis in R to take advantage of data wrangling and visualization functions from the tidyverse as well as to create a reproducible workflow in case we want to revisit this analysis later.
First, let&amp;rsquo;s load in our data and take a look at it in R&lt;/p&gt;
&lt;p&gt;If you would like to follow along, you can download the Excel file called &lt;code&gt;spending.xlsx&lt;/code&gt; 
&lt;a href=&#34;https://drive.google.com/file/d/1_euqWVOt2lx79POl0upk5oQKXG_70dsS/view?usp=sharing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; by clicking on the Download icon (arrow pointing down) on the top right corner.
Note that in the code chunk below we are reading this file from a folder called &lt;code&gt;data&lt;/code&gt; so we recommend you create such a folder in your working directory and place the file you downloaded there.
You can also follow along with the analysis on RStudio Cloud 
&lt;a href=&#34;https://rstudio.cloud/project/1523407&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(readxl)

spending &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_excel&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/spending.xlsx&amp;#34;&lt;/span&gt;)
spending
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 48 x 5
##    month expense  amount num_of_expenses budget
##    &amp;lt;chr&amp;gt; &amp;lt;chr&amp;gt;     &amp;lt;dbl&amp;gt;           &amp;lt;dbl&amp;gt;  &amp;lt;dbl&amp;gt;
##  1 Jan   lawsuits   9916              17   6422
##  2 Feb   lawsuits   9575              16   3125
##  3 Mar   lawsuits   5760              33   3913
##  4 Apr   lawsuits   3828              36   4062
##  5 May   lawsuits   5322              25   6347
##  6 Jun   lawsuits   6809              32    643
##  7 Jul   lawsuits   8568              37   5985
##  8 Aug   lawsuits   7562              34  10709
##  9 Sep   lawsuits   5682              26   9719
## 10 Oct   lawsuits   3689              16   7887
## # … with 38 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We take note of the month column as well as amount spent, budget, and, expense type.
We&amp;rsquo;ll hold off on looking at the column &lt;code&gt;num_of_expenses&lt;/code&gt;, it may prove useful down the line but not pressing for a quick look into the data.&lt;/p&gt;




&lt;h2 id=&#34;if-statements-with-nested-logic&#34;&gt;IF statements with nested logic
  &lt;a href=&#34;#if-statements-with-nested-logic&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;One advantage of spreadsheets is that we can use formulas to dictate what should happen in a specific cell and, in a broader application of this, apply them to an entire column.
Back to our spending sheet, while data for all 12 months is useful for our summary we want to take a look at spending by quarter, something not provided in the initial data set, so we&amp;rsquo;ll need to make our own quarter variable.
We can see how this process works in spreadsheets, manipulating our data in an Excel workbook.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/nested-logic.png&#34; width=&#34;100%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a bit difficult to see the formula bar in the image above, so the formula to create used for creating the quarter column is provided below.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-{}&#34; data-lang=&#34;{}&#34;&gt;=IF(OR(A2=&amp;quot;Jan&amp;quot;,A2=&amp;quot;Feb&amp;quot;,A2=&amp;quot;Mar&amp;quot;),&amp;quot;Q1&amp;quot;,IF(OR(A2=&amp;quot;Apr&amp;quot;,A2=&amp;quot;May&amp;quot;,A2=&amp;quot;Jun&amp;quot;),&amp;quot;Q2&amp;quot;,IF(OR(A2=&amp;quot;Jul&amp;quot;,A2=&amp;quot;Aug&amp;quot;,A2=&amp;quot;Sep&amp;quot;),&amp;quot;Q3&amp;quot;,IF(OR(A2=&amp;quot;Oct&amp;quot;,A2=&amp;quot;Nov&amp;quot;,A2=&amp;quot;Dec&amp;quot;),&amp;quot;Q4&amp;quot;,&amp;quot;NA&amp;quot;))))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For our tidyverse comparison, When creating a column that requires multiple or &lt;em&gt;nested&lt;/em&gt; logical conditions, we can take advantage of the &lt;code&gt;case_when()&lt;/code&gt; function from dplyr.
Similar to a CASE statement in SQL, we can set parameters for what a given value should be based on conditions from other rows or columns in our data.
To do this we can create a new column using the &lt;code&gt;mutate()&lt;/code&gt; function and apply &lt;code&gt;case_when()&lt;/code&gt; within that call.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;spending_quarter &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; spending &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(quarter &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;case_when&lt;/span&gt;(
    month &lt;span style=&#34;color:#666&#34;&gt;%in%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Jan&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Feb&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Mar&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Q1&amp;#34;&lt;/span&gt;,
    month &lt;span style=&#34;color:#666&#34;&gt;%in%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Apr&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;May&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Jun&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Q2&amp;#34;&lt;/span&gt;,
    month &lt;span style=&#34;color:#666&#34;&gt;%in%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Jul&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Aug&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Sep&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Q3&amp;#34;&lt;/span&gt;,
    month &lt;span style=&#34;color:#666&#34;&gt;%in%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Oct&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Nov&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Dec&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Q4&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;NA&amp;#34;&lt;/span&gt;
  ))

spending_quarter
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 48 x 6
##    month expense  amount num_of_expenses budget quarter
##    &amp;lt;chr&amp;gt; &amp;lt;chr&amp;gt;     &amp;lt;dbl&amp;gt;           &amp;lt;dbl&amp;gt;  &amp;lt;dbl&amp;gt; &amp;lt;chr&amp;gt;  
##  1 Jan   lawsuits   9916              17   6422 Q1     
##  2 Feb   lawsuits   9575              16   3125 Q1     
##  3 Mar   lawsuits   5760              33   3913 Q1     
##  4 Apr   lawsuits   3828              36   4062 Q2     
##  5 May   lawsuits   5322              25   6347 Q2     
##  6 Jun   lawsuits   6809              32    643 Q2     
##  7 Jul   lawsuits   8568              37   5985 Q3     
##  8 Aug   lawsuits   7562              34  10709 Q3     
##  9 Sep   lawsuits   5682              26   9719 Q3     
## 10 Oct   lawsuits   3689              16   7887 Q4     
## # … with 38 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Excellent! We&amp;rsquo;ve got our new quarter column set up.
Here we specified which months make up each quarter and as in our spreadsheet formula for good measure added an NA condition in the event we&amp;rsquo;ve missed something.
We can do a quick sanity check for our &lt;code&gt;case_when()&lt;/code&gt; statement by examining our data and seeing if any NA values show up in the new column we generated, which would indicate if a month is spelled differently than what&amp;rsquo;s listed in our conditions or if there&amp;rsquo;s an error in our code.&lt;/p&gt;




&lt;h2 id=&#34;pivot-tables&#34;&gt;Pivot tables
  &lt;a href=&#34;#pivot-tables&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Pivot tables are a powerful tool spreadsheets offer, allowing us to generate summaries of large quantities of data.
Let&amp;rsquo;s take a look at how we create our basic Pivot table in spreadsheets and then see how we can create summary tables using functions from the &lt;code&gt;tidyverse&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;First we&amp;rsquo;ll create a separate sheet for our pivot table, specifying the range of the data we want it to be based on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/pivot-set-up.png&#34; width=&#34;100%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;And then, it&amp;rsquo;s as simple as dragging and dropping our variables of interest into specific order with &lt;code&gt;expense&lt;/code&gt; and &lt;code&gt;quarter&lt;/code&gt; in rows and &lt;code&gt;budget&lt;/code&gt; and &lt;code&gt;amount&lt;/code&gt; in values, specifying a &lt;em&gt;sum&lt;/em&gt; calculation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/pivot-table.png&#34; width=&#34;100%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;For our tidyverse comparison, we can create summary tables as well.
Let&amp;rsquo;s take a look total expenses and budget by expense type and quarter.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;spending_table &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; spending_quarter &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;group_by&lt;/span&gt;(expense, quarter) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(
    total_expenses &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(num_of_expenses),
    total_expense_amt &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(amount),
    total_budget_amt &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(budget),
    .groups &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;drop&amp;#34;&lt;/span&gt;
    )

spending_table
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 16 x 5
##    expense           quarter total_expenses total_expense_amt total_budget_amt
##    &amp;lt;chr&amp;gt;             &amp;lt;chr&amp;gt;            &amp;lt;dbl&amp;gt;             &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;
##  1 consulting        Q1                  70             16266            17949
##  2 consulting        Q2                  33             11329            22345
##  3 consulting        Q3                  93             17997            17460
##  4 consulting        Q4                  82             16622            17358
##  5 lawsuits          Q1                  66             25251            13460
##  6 lawsuits          Q2                  93             15959            11052
##  7 lawsuits          Q3                  97             21812            26413
##  8 lawsuits          Q4                  56             14829            17939
##  9 office happy hour Q1                  32             17749            18688
## 10 office happy hour Q2                  56              7879            17658
## 11 office happy hour Q3                  39             16876            12384
## 12 office happy hour Q4                  38             14752            18058
## 13 office supplies   Q1                  83             13460            25251
## 14 office supplies   Q2                  45             12517            19140
## 15 office supplies   Q3                  67              7527            21819
## 16 office supplies   Q4                  91              9401            14342
&lt;/code&gt;&lt;/pre&gt;



&lt;h2 id=&#34;new-variables&#34;&gt;New variables
  &lt;a href=&#34;#new-variables&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Sometimes we make a table and realize we can use the summary data to create new variables that can better answer our question.
Coming back to our finance example, let&amp;rsquo;s say we want to examine how much money is left over from each quarter based off of budget and amount spent.
A quick work around could be to manually add in a formula in a cell adjacent to our table and drag it down to each respective row, a process depicted below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/left-over-calculation.png&#34; width=&#34;80%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Alternatively, using the &lt;code&gt;mutate()&lt;/code&gt; function from dplyr, we can create a new column in our summary table and save that as a new data frame.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;left_over &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; spending_table &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(left_over &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; total_budget_amt &lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt; total_expense_amt) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;arrange&lt;/span&gt;(left_over)

left_over
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 16 x 6
##    expense    quarter total_expenses total_expense_a… total_budget_amt left_over
##    &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;     &amp;lt;dbl&amp;gt;
##  1 lawsuits   Q1                  66            25251            13460    -11791
##  2 lawsuits   Q2                  93            15959            11052     -4907
##  3 office ha… Q3                  39            16876            12384     -4492
##  4 consulting Q3                  93            17997            17460      -537
##  5 consulting Q4                  82            16622            17358       736
##  6 office ha… Q1                  32            17749            18688       939
##  7 consulting Q1                  70            16266            17949      1683
##  8 lawsuits   Q4                  56            14829            17939      3110
##  9 office ha… Q4                  38            14752            18058      3306
## 10 lawsuits   Q3                  97            21812            26413      4601
## 11 office su… Q4                  91             9401            14342      4941
## 12 office su… Q2                  45            12517            19140      6623
## 13 office ha… Q2                  56             7879            17658      9779
## 14 consulting Q2                  33            11329            22345     11016
## 15 office su… Q1                  83            13460            25251     11791
## 16 office su… Q3                  67             7527            21819     14292
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Great! Using the &lt;code&gt;arrange()&lt;/code&gt; function we can also bring the largest instances of overspending to the top of our table to focus our attention.
In Excel, this is something you&amp;rsquo;d normally do via &lt;em&gt;Data &amp;gt; Sort&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We can also filter our table if we&amp;rsquo;re interested in a specific expense type.
In Excel, you could to this via &lt;em&gt;Data &amp;gt; Filter&lt;/em&gt;.
Let&amp;rsquo;s hone in on spending for office happy hours.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;left_over &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;filter&lt;/span&gt;(expense &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;office happy hour&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 6
##   expense     quarter total_expenses total_expense_a… total_budget_amt left_over
##   &amp;lt;chr&amp;gt;       &amp;lt;chr&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;     &amp;lt;dbl&amp;gt;
## 1 office hap… Q3                  39            16876            12384     -4492
## 2 office hap… Q1                  32            17749            18688       939
## 3 office hap… Q4                  38            14752            18058      3306
## 4 office hap… Q2                  56             7879            17658      9779
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Hmm, a lot of &lt;em&gt;over&lt;/em&gt;spending in Quarter 3, which might make sense as these are the summer months.
Alternatively, we can take advantage of Sort and Filter in spreadsheets to accomplish the same thing.&lt;/p&gt;




&lt;h2 id=&#34;vlookups-and-joins&#34;&gt;VLOOKUPs and joins
  &lt;a href=&#34;#vlookups-and-joins&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We don&amp;rsquo;t always have all of the information we need in a single data file and many times we need to bring in data from other sources to supplement and augment our existing data in the course of an analysis.&lt;/p&gt;
&lt;p&gt;For our second scenario, we&amp;rsquo;ll leave the finance world and move on to something that is perhaps a little more exciting: superheroes!&lt;/p&gt;
&lt;p&gt;Below is a data set containing information on various comic book characters with our first sheet providing some basic information on each character.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/heroes.png&#34; width=&#34;65%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;And a second sheet containing information on each character&amp;rsquo;s alter ego.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/alter-egos.png&#34; width=&#34;60%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Over time this data set has been expanded on with multiple sheets including new information.
Before we start exploring, we&amp;rsquo;ll need to join the relevant data from the two sheets so we can conduct some fun analyses.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s first walk through the spreadsheet approach and utilize a VLOOKUP to bring together these data.
In each sheet, we notice there is a &lt;code&gt;hero&lt;/code&gt; column that allows us to match data from one sheet to the other.
The example below shows the process of pulling the &lt;code&gt;alter_ego&lt;/code&gt; column from our alter egos sheet into our initial heroes data set.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/VLOOKUP.png&#34; width=&#34;100%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Starting our tidyverse comparison, we&amp;rsquo;ll first load our data.
Our data set contains two sheets so we&amp;rsquo;ll load them in separately as two distinct data frames.&lt;/p&gt;
&lt;p&gt;If you would like to follow along, you can download the Excel file called &lt;code&gt;superheroes.xlsx&lt;/code&gt; 
&lt;a href=&#34;https://drive.google.com/file/d/1KAOAMA_iRdMrl0erYd2DTm7uUKCsDuM9/view?usp=sharing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and remember that you can also follow along with the analysis on RStudio Cloud 
&lt;a href=&#34;https://rstudio.cloud/project/1523407&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;superheroes &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_excel&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/superheroes.xlsx&amp;#34;&lt;/span&gt;, sheet &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;heroes&amp;#34;&lt;/span&gt;)
identities &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_excel&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/superheroes.xlsx&amp;#34;&lt;/span&gt;, sheet &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;alter_egos&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s take a look at the sheet with data on superheroes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;superheroes
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 26 x 4
##    hero            universe has_powers first_appearance   
##    &amp;lt;chr&amp;gt;           &amp;lt;chr&amp;gt;    &amp;lt;chr&amp;gt;      &amp;lt;dttm&amp;gt;             
##  1 Superman        DC       yes        1938-04-18 00:00:00
##  2 Batman          DC       no         1939-03-30 00:00:00
##  3 Spider-Man      Marvel   yes        1962-08-01 00:00:00
##  4 Green Lantern   DC       yes        1971-12-01 00:00:00
##  5 Daredevil       Marvel   no         1964-04-01 00:00:00
##  6 Wonder Woman    DC       yes        1941-10-01 00:00:00
##  7 Black Widow     Marvel   no         1964-04-01 00:00:00
##  8 Captain America Marvel   yes        1941-03-01 00:00:00
##  9 Hulk            Marvel   yes        1962-05-01 00:00:00
## 10 Thor            Marvel   yes        1962-08-01 00:00:00
## # … with 16 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And now let&amp;rsquo;s take a look at the sheet listing the alter ego of each character.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;identities
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 26 x 3
##    hero            alter_ego        is_secret
##    &amp;lt;chr&amp;gt;           &amp;lt;chr&amp;gt;            &amp;lt;chr&amp;gt;    
##  1 Superman        Clark Kent       yes      
##  2 Batman          Bruce Wayne      yes      
##  3 Spider-Man      Peter Parker     yes      
##  4 Green Lantern   John Stewart     yes      
##  5 Daredevil       Matt Murdock     yes      
##  6 Wonder Woman    Diana Prince     yes      
##  7 Black Widow     Natasha Romanova no       
##  8 Captain America Steve Rogers     no       
##  9 Hulk            Bruce Banner     no       
## 10 Thor            Donald Blake     yes      
## # … with 16 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Using &lt;code&gt;left_join()&lt;/code&gt; from the dplyr package, we can bring in the data from the identities data frame into our superheroes data frame.&lt;/p&gt;
&lt;p&gt;To do this we&amp;rsquo;ll call &lt;code&gt;left_join()&lt;/code&gt; on superheroes, putting the identities data set as our first argument and specify our common variable with the &lt;code&gt;by&lt;/code&gt; argument.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;superhero_identities &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; superheroes &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;left_join&lt;/span&gt;(identities, by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;hero&amp;#34;&lt;/span&gt;)

superhero_identities
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 26 x 6
##    hero          universe has_powers first_appearance    alter_ego     is_secret
##    &amp;lt;chr&amp;gt;         &amp;lt;chr&amp;gt;    &amp;lt;chr&amp;gt;      &amp;lt;dttm&amp;gt;              &amp;lt;chr&amp;gt;         &amp;lt;chr&amp;gt;    
##  1 Superman      DC       yes        1938-04-18 00:00:00 Clark Kent    yes      
##  2 Batman        DC       no         1939-03-30 00:00:00 Bruce Wayne   yes      
##  3 Spider-Man    Marvel   yes        1962-08-01 00:00:00 Peter Parker  yes      
##  4 Green Lantern DC       yes        1971-12-01 00:00:00 John Stewart  yes      
##  5 Daredevil     Marvel   no         1964-04-01 00:00:00 Matt Murdock  yes      
##  6 Wonder Woman  DC       yes        1941-10-01 00:00:00 Diana Prince  yes      
##  7 Black Widow   Marvel   no         1964-04-01 00:00:00 Natasha Roma… no       
##  8 Captain Amer… Marvel   yes        1941-03-01 00:00:00 Steve Rogers  no       
##  9 Hulk          Marvel   yes        1962-05-01 00:00:00 Bruce Banner  no       
## 10 Thor          Marvel   yes        1962-08-01 00:00:00 Donald Blake  yes      
## # … with 16 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Great, we&amp;rsquo;ve joined the data frames with no problem!&lt;/p&gt;
&lt;p&gt;There are, of course, instances in which we&amp;rsquo;ll need to pull in data from multiple sheets, and the superheroes data set is no exception.
We&amp;rsquo;ve been informed there are an additional two sheets that have recently been added.
One containing information on the main power or skill of each character,&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;powers &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_excel&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/superheroes.xlsx&amp;#34;&lt;/span&gt;, sheet &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;powers&amp;#34;&lt;/span&gt;)
powers
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 26 x 2
##    hero            main_power           
##    &amp;lt;chr&amp;gt;           &amp;lt;chr&amp;gt;                
##  1 Superman        flight               
##  2 Batman          inexhaustable wealth 
##  3 Spider-Man      wall-crawling        
##  4 Green Lantern   power ring           
##  5 Daredevil       echo-location        
##  6 Wonder Woman    super strength       
##  7 Black Widow     training             
##  8 Captain America peak physical fitness
##  9 Hulk            super strength       
## 10 Thor            magic hammer         
## # … with 16 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and the other containing the occupation of the alter ego of each superhero.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;occupation &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_excel&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/superheroes.xlsx&amp;#34;&lt;/span&gt;, sheet &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;occupation&amp;#34;&lt;/span&gt;)
occupation
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 26 x 2
##    name             occupation          
##    &amp;lt;chr&amp;gt;            &amp;lt;chr&amp;gt;               
##  1 Clark Kent       Reporter            
##  2 Bruce Wayne      CEO                 
##  3 Peter Parker     Photogragpher       
##  4 John Stewart     U.S. Marine         
##  5 Matt Murdock     Lawyer              
##  6 Diana Prince     Intelligence Officer
##  7 Natasha Romanova Spy/Assassin        
##  8 Steve Rogers     Solider             
##  9 Bruce Banner     Scientist           
## 10 Donald Blake     Doctor              
## # … with 16 more rows
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We see that the powers sheet has a &lt;code&gt;hero&lt;/code&gt; column allowing for another simple left join.
However, the occupation sheet doesn&amp;rsquo;t have a common column by that specific name, but we do recognize that the information in the &lt;code&gt;name&lt;/code&gt; column is the same for the &lt;code&gt;alter_ego&lt;/code&gt; column from our identities spreadsheet.
We can take advantage of this relationship to bring these data frames together as shown in the code below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;heroes_full &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; superhero_identities &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;left_join&lt;/span&gt;(powers, by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;hero&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;left_join&lt;/span&gt;(occupation, by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;alter_ego&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here we conduct a simple left join bringing in the data from the powers data set, and then another left join to bring in the data from the occupation spreadsheet.
In the &lt;code&gt;by&lt;/code&gt; argument we specify that the column &lt;code&gt;alter_ego&lt;/code&gt; should be matched to the &lt;code&gt;name&lt;/code&gt; column from the occupation data frame.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve expanded our dataset quite a bit.
Let&amp;rsquo;s take an alternative approach to view it using the &lt;code&gt;glimpse()&lt;/code&gt; function from dplyr.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;glimpse&lt;/span&gt;(heroes_full)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Rows: 26
## Columns: 8
## $ hero             &amp;lt;chr&amp;gt; &amp;quot;Superman&amp;quot;, &amp;quot;Batman&amp;quot;, &amp;quot;Spider-Man&amp;quot;, &amp;quot;Green Lantern&amp;quot;,…
## $ universe         &amp;lt;chr&amp;gt; &amp;quot;DC&amp;quot;, &amp;quot;DC&amp;quot;, &amp;quot;Marvel&amp;quot;, &amp;quot;DC&amp;quot;, &amp;quot;Marvel&amp;quot;, &amp;quot;DC&amp;quot;, &amp;quot;Marvel&amp;quot;…
## $ has_powers       &amp;lt;chr&amp;gt; &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;yes&amp;quot;,…
## $ first_appearance &amp;lt;dttm&amp;gt; 1938-04-18, 1939-03-30, 1962-08-01, 1971-12-01, 196…
## $ alter_ego        &amp;lt;chr&amp;gt; &amp;quot;Clark Kent&amp;quot;, &amp;quot;Bruce Wayne&amp;quot;, &amp;quot;Peter Parker&amp;quot;, &amp;quot;John S…
## $ is_secret        &amp;lt;chr&amp;gt; &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;no&amp;quot;…
## $ main_power       &amp;lt;chr&amp;gt; &amp;quot;flight&amp;quot;, &amp;quot;inexhaustable wealth&amp;quot;, &amp;quot;wall-crawling&amp;quot;, &amp;quot;…
## $ occupation       &amp;lt;chr&amp;gt; &amp;quot;Reporter&amp;quot;, &amp;quot;CEO&amp;quot;, &amp;quot;Photogragpher&amp;quot;, &amp;quot;U.S. Marine&amp;quot;, &amp;quot;…
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For doing this same task in Excel, we can continue to utilize VLOOKUPS for each additional column of data we want to pull into our main sheet.
To bring in our occupation data we simply adjust the initial reference point in our formula from column A2 which houses hero name to E2 which houses alter egos which was also added via a VLOOKUP.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;screenshots/full-join.png&#34; width=&#34;100%&#34; /&gt;&lt;/p&gt;
&lt;p&gt;There we have it, a fully combined data set ready for analysis!
Hmmm, now that we think about it, let&amp;rsquo;s hope we aren&amp;rsquo;t sharing this data with any super villains.
We may be an ace at working with spreadsheet data but we&amp;rsquo;re also an ethical data analyst!&lt;/p&gt;
&lt;p&gt;I hope you&amp;rsquo;ve found this blog post useful and enjoyed reading through each example.
It&amp;rsquo;s been such a pleasure working with Jenny Bryan and Mine Çetinkaya-Rundel on this project and we&amp;rsquo;re excited to share more of the Spreadsheets Using R resource with readers in the future.
Until then, no matter what tools you&amp;rsquo;re using to work with your data, happy analyzing!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in July 2020</title>
      <link>https://education.rstudio.com/blog/2020/08/july-2020-instructors/</link>
      <pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/08/july-2020-instructors/</guid>
      <description>&lt;p&gt;July was a slow month for instructor certification thanks to some much-needed holiday time,
but we still managed to add six new names to our roster,
including our first instructor in Finland and our first Telugu speaker:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/baxter&amp;#43;andrew/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andrew Baxter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/green&amp;#43;eric/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Eric Green&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/kandala&amp;#43;bhargava/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bhargava Kandala&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/lober&amp;#43;lukas/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Lukas Löber&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/navarrete&amp;#43;oswaldo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Oswaldo Navarrete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/rueger&amp;#43;sina/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sina Rüeger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 136.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes in August and September are now full,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Hippocratic License</title>
      <link>https://education.rstudio.com/blog/2020/08/hippocratic-license/</link>
      <pubDate>Mon, 03 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/08/hippocratic-license/</guid>
      <description>&lt;p&gt;Over the past few years,
more and more people have become concerned with
the ethical implications of work in data science and machine learning.
From algorithmic bias to facial recognition,
the tools we teach people to build and use have the potential to do great harm;
as teachers,
we have a responsibility to make our students aware of the issues
in the same way that the medical profession teaches nurses and doctors
to think about the human implications of what they do.&lt;/p&gt;
&lt;p&gt;One example of how we can do this comes up when we discuss software licensing and intellectual property.
Until recently,
researchers had three principal options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Make their work closed source, so that others could not use it without permission.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the 
&lt;a href=&#34;https://opensource.org/licenses/MIT&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;MIT License&lt;/a&gt; or something equivalent,
which allows users to do whatever they want.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the 
&lt;a href=&#34;https://www.gnu.org/licenses/gpl-3.0.en.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GNU Public License&lt;/a&gt; (GPL),
which allows users to do what they want
but also requires them to share the source of any project
that modifies or incorporates GPL&amp;rsquo;d software.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A fourth option has recently been developed
by 
&lt;a href=&#34;https://where.coraline.codes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Coraline Ada Ehmke&lt;/a&gt;
(best known until now for creating the 
&lt;a href=&#34;https://www.contributor-covenant.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Contributor Covenant&lt;/a&gt;
used by many open source projects).
Like other open licenses,
the 
&lt;a href=&#34;https://firstdonoharm.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hippocratic License&lt;/a&gt; allows people to use and share the software,
but where the GPL requires them to share their own work,
the Hippocratic License prevents anyone from using the software to do harm.
To avoid wrangling over what exactly that means,
the license specifically forbids anyone from using software in ways that violate
the 
&lt;a href=&#34;https://www.un.org/en/universal-declaration-human-rights/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;United Nations Universal Declaration of Human Rights&lt;/a&gt;
and the 
&lt;a href=&#34;https://www.unglobalcompact.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;United Nations Global Compact&lt;/a&gt;.
These are regarded as landmarks in the history of human rights,
and more practically,
have been ratified by many countries
and argued over by lawyers and scholars
so that their scope and meaning is clear.&lt;/p&gt;
&lt;p&gt;Making students aware of the Hippocratic License
and adopting it for our own projects
is a small step toward a better world,
but it &lt;em&gt;is&lt;/em&gt; a step.
From a teaching point of view,
discussing it and its implications can turn an otherwise abstract lecture on ethics
into a lively debate,
and can give students practice discussing what they &lt;em&gt;should&lt;/em&gt; do
rather than what they &lt;em&gt;could&lt;/em&gt; do.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;d like to read more, 
&lt;a href=&#34;https://twitter.com/askdrstats&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Nick Horton&lt;/a&gt; wrote a 
&lt;a href=&#34;https://teachdatascience.com/oath/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;post&lt;/a&gt; about this license on the 
&lt;a href=&#34;https://teachdatascience.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Teach Data Science&amp;rdquo; blog&lt;/a&gt;. And here is a list of adopters as of the time of this post, with links to their projects:&lt;/p&gt;
&lt;!--html_preserve--&gt;&lt;style&gt;html {
&lt;p&gt;font-family: -apple-system, BlinkMacSystemFont, &amp;lsquo;Segoe UI&amp;rsquo;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;lsquo;Helvetica Neue&amp;rsquo;, &amp;lsquo;Fira Sans&amp;rsquo;, &amp;lsquo;Droid Sans&amp;rsquo;, Arial, sans-serif;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_table {
display: table;
border-collapse: collapse;
max-width: 100%;
margin-left: auto;
margin-right: auto;
color: #333333;
font-size: 16px;
font-weight: normal;
font-style: normal;
background-color: #FFFFFF;
width: auto;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #A8A8A8;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #A8A8A8;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_heading {
background-color: #FFFFFF;
text-align: center;
border-bottom-color: #FFFFFF;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_title {
color: #333333;
font-size: 125%;
font-weight: initial;
padding-top: 4px;
padding-bottom: 4px;
border-bottom-color: #FFFFFF;
border-bottom-width: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_subtitle {
color: #333333;
font-size: 85%;
font-weight: initial;
padding-top: 0;
padding-bottom: 4px;
border-top-color: #FFFFFF;
border-top-width: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_bottom_border {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_col_headings {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_col_heading {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 6px;
padding-left: 5px;
padding-right: 5px;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_column_spanner_outer {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
padding-top: 0;
padding-bottom: 0;
padding-left: 4px;
padding-right: 4px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_column_spanner_outer:first-child {
padding-left: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_column_spanner_outer:last-child {
padding-right: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_column_spanner {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 6px;
overflow-x: hidden;
display: inline-block;
width: 100%;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_group_heading {
padding: 8px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_empty_group_heading {
padding: 0.5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_from_md &amp;gt; :first-child {
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_from_md &amp;gt; :last-child {
margin-bottom: 0;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_from_md p {
line-height: 1em;
margin-bottom: 0em;
margin-top: 0em;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
margin: 10px;
border-top-style: solid;
border-top-width: 1px;
border-top-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_stub {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 12px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_first_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_grand_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_first_grand_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: double;
border-top-width: 6px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_striped {
background-color: rgba(128, 128, 128, 0.05);
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_table_body {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_footnotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_footnote {
margin: 0px;
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_sourcenotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_sourcenote {
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_left {
text-align: left;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_center {
text-align: center;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_right {
text-align: right;
font-variant-numeric: tabular-nums;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_font_normal {
font-weight: normal;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_font_bold {
font-weight: bold;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_font_italic {
font-style: italic;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_super {
font-size: 65%;
}&lt;/p&gt;
&lt;p&gt;#wlgxzwuigd .gt_footnote_marks {
font-style: italic;
font-size: 65%;
}
&lt;/style&gt;&lt;/p&gt;
&lt;div id=&#34;wlgxzwuigd&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Project&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;URL&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Animus&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/SplittyDev/Animus&#34;&gt;https://github.com/SplittyDev/Animus&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;cachish&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/thusoy/cachish&#34;&gt;https://github.com/thusoy/cachish&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;DCAN&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/DecentralizedCAN/CAN&#34;&gt;https://github.com/DecentralizedCAN/CAN&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;DimeNet&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/klicperajo/dimenet&#34;&gt;https://github.com/klicperajo/dimenet&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;FODA Card Game&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rafaelcastrocouto/foda&#34;&gt;https://github.com/rafaelcastrocouto/foda&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;format_parser&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://rubygems.org/gems/format_parser&#34;&gt;https://rubygems.org/gems/format_parser&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Functional Programming for Mortals with Cats in Scala (book)&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://leanpub.com/fpmortals-cats&#34;&gt;https://leanpub.com/fpmortals-cats&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Gryphon&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/vinivendra/Gryphon&#34;&gt;https://github.com/vinivendra/Gryphon&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Honeycomb Serilog Sink&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/evilpilaf/HoneycombSerilogSink&#34;&gt;https://github.com/evilpilaf/HoneycombSerilogSink&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Kommit&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/kommitapp/kom-web&#34;&gt;https://github.com/kommitapp/kom-web&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Launchlet&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/launchlet/launchlet&#34;&gt;https://github.com/launchlet/launchlet&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;leisure&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://leisure.tdreyno.com&#34;&gt;https://leisure.tdreyno.com&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;libhoney-kotlin&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/imavroukakis/libhoney-kotlin&#34;&gt;https://github.com/imavroukakis/libhoney-kotlin&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;NLPIA-bot Chatbot&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/nlpia/nlpia-bot&#34;&gt;https://github.com/nlpia/nlpia-bot&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;postgres-mitm&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/thusoy/postgres-mitm&#34;&gt;https://github.com/thusoy/postgres-mitm&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;rack-read_only&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://rubygems.org/gems/rack-read_only&#34;&gt;https://rubygems.org/gems/rack-read_only&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;suo&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/dieseltravis/suo&#34;&gt;https://github.com/dieseltravis/suo&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;TidyBlocks&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;http://tidyblocks.tech&#34;&gt;http://tidyblocks.tech&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;VCR&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/vcr/vcr&#34;&gt;https://github.com/vcr/vcr&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;zip_tricks&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/wetransfer/zip_tricks&#34;&gt;https://github.com/wetransfer/zip_tricks&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;logitechd&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/FFY00/logitechd&#34;&gt;https://github.com/FFY00/logitechd&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;dbus-objects&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/FFY00/dbus-objects&#34;&gt;https://github.com/FFY00/dbus-objects&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;python-install&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/FFY00/python-install&#34;&gt;https://github.com/FFY00/python-install&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;!--/html_preserve--&gt;
</description>
    </item>
    
    <item>
      <title>Announcing Glosario</title>
      <link>https://education.rstudio.com/blog/2020/07/announcing-glosario/</link>
      <pubDate>Tue, 28 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/announcing-glosario/</guid>
      <description>&lt;p&gt;
&lt;a href=&#34;https://github.com/carpentries/glosario&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;glosario&lt;/code&gt;&lt;/a&gt; is an open source glossary of terms used in data science
that is 
&lt;a href=&#34;https://carpentries.github.io/glosario/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available online&lt;/a&gt;
and also as a library in both 
&lt;a href=&#34;https://github.com/carpentries/glosario-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R&lt;/a&gt;
and 
&lt;a href=&#34;https://github.com/carpentries/glosario-py/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Python&lt;/a&gt;.
Authors can add glossary keys to a lesson&amp;rsquo;s metadata to indicate
what the lesson teaches,
what learners ought to know before they start,
and where they can go to find that knowledge.
Authors can also use the library&amp;rsquo;s functions to insert consistent hyperlinks for terms in their lessons
in any of several (human) languages,
and anyone who has installed the library can use it interactively to look things up while they&amp;rsquo;re programming.&lt;/p&gt;




&lt;h2 id=&#34;defining-terms&#34;&gt;Defining Terms
  &lt;a href=&#34;#defining-terms&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The main 
&lt;a href=&#34;https://github.com/carpentries/glosario&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;glosario&lt;/a&gt; repository has a file called &lt;code&gt;glossary.yml&lt;/code&gt;
that contains entries like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- slug: plus_one
  ref:
    - upvote
  en:
    term: &amp;quot;+1&amp;quot;
    def: &amp;gt;
      A vote in favor of something.
  fr:
    term: &amp;quot;+1&amp;quot;
    def: &amp;gt;
      Un vote en faveur de quelque chose.
  es:
    term: &amp;quot;+1&amp;quot;
    def: &amp;gt;
      Un voto a favor de alguna cosa.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The value of the &lt;code&gt;slug&lt;/code&gt; key gives the entry a unique identifier,
while the values under &lt;code&gt;ref&lt;/code&gt; create &amp;ldquo;see also&amp;rdquo; cross-references
and the other top-level keys give the term and its definition in various languages.&lt;/p&gt;




&lt;h2 id=&#34;use-cases&#34;&gt;Use Cases
  &lt;a href=&#34;#use-cases&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We envision that &lt;code&gt;glosario&lt;/code&gt; will be used in several ways.&lt;/p&gt;




&lt;h3 id=&#34;finding-lessons&#34;&gt;Finding lessons
  &lt;a href=&#34;#finding-lessons&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Amari is writing a lesson in R Markdown.
She adds glossary data to its YAML header as shown below
to indicate that the lesson introduces the idea of least squares,
but requires learners to already know about correlation and linear models.
Those terms will be added to the head of the HTML page for her lesson,
and other instructors can use tools provided with &lt;code&gt;glosario&lt;/code&gt;
to search for lessons that define the concepts this one requires.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;glossary:
  sources:
  - http://carpentries.org/glosario/
  language: fr
  requires:
  - correlation
  - linear_model
  defines:
  - least_squares
&lt;/code&gt;&lt;/pre&gt;



&lt;h3 id=&#34;summarizing-a-lesson&#34;&gt;Summarizing a lesson
  &lt;a href=&#34;#summarizing-a-lesson&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Amari can also add a code chunk to the end of her lesson
that includes a call to &lt;code&gt;glosario::summarize_terms()&lt;/code&gt;.
When she knits the document to HTML,
this code chunk inserts a definition list &lt;code&gt;dl&lt;/code&gt; at that point.
Its entries are the definitions of
all of the terms listed under the &lt;code&gt;glossary/defines&lt;/code&gt; key
in the page&amp;rsquo;s YAML header
in alphabetical order by term according to the rules for &lt;code&gt;glossary/language&lt;/code&gt;.&lt;/p&gt;




&lt;h3 id=&#34;linking-to-definitions&#34;&gt;Linking to definitions
  &lt;a href=&#34;#linking-to-definitions&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Amari adds an inline code block &lt;code&gt;`r gdef(&#39;linear_model&#39;, &#39;modéle linéaire&#39;)`&lt;/code&gt; to her lesson.
When she knits her document the code block produces the HTML:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&amp;lt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#7d9029&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;http://carpentries.org/glosario/fr/#linear-model&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#7d9029&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;glossary-definition&amp;#34;&lt;/span&gt;&amp;gt;modéle linéaire&amp;lt;/&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;a&lt;/span&gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;checking-a-lesson&#34;&gt;Checking a lesson
  &lt;a href=&#34;#checking-a-lesson&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Beatriz has made some changes to a lesson she inherited from Amari and wants to check that it is still consistent.
She runs a tool provided with &lt;code&gt;glosario&lt;/code&gt; that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reads the R Markdown file.&lt;/li&gt;
&lt;li&gt;Extracts the terms under the &lt;code&gt;glossary/defines&lt;/code&gt; key.&lt;/li&gt;
&lt;li&gt;Searches the body of the document for calls to &lt;code&gt;gdef(...)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Checks that every term listed in &lt;code&gt;glossary/defines&lt;/code&gt; is referenced in the document body,
and that every term referenced in the document body is mentioned in &lt;code&gt;glossary/defines&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;how-to-contribute&#34;&gt;How to Contribute
  &lt;a href=&#34;#how-to-contribute&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;There are lots of way to contribute:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add definitions or translate and fix the ones already there.
If you are comfortable editing YAML and using Git,
you can send us a pull request.
If you&amp;rsquo;re not,
please file an issue that includes the key of the term and the change you want to make.
(Please don&amp;rsquo;t include multiple changes in a single issue:
they&amp;rsquo;re a lot easier to manage if they aren&amp;rsquo;t bundled together.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Work on the supporting tools in the 
&lt;a href=&#34;https://carpentries.github.io/glosario/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;glosario&lt;/a&gt;,

&lt;a href=&#34;https://github.com/carpentries/glosario-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R&lt;/a&gt;,
or 
&lt;a href=&#34;https://github.com/carpentries/glosario-py/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Python&lt;/a&gt; repositories.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add glossary metadata and definitions to your favorite lessons.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;faq&#34;&gt;FAQ
  &lt;a href=&#34;#faq&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Why not just use Wikipedia?&lt;/strong&gt;
We expect that many glossary definitions will link to Wikipedia,
but its articles are explanations, not definitions.
(This is why we don&amp;rsquo;t support diagrams in glossary entries.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;YAML is hard for people to edit&amp;mdash;why not use something else for the glossary file?&lt;/strong&gt;
Because other formats are just as hard to edit (e.g., JSON)
or make one-to-many relationships hard to express (e.g., CSV).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;This article is cross-published on 
&lt;a href=&#34;https://carpentries.org/blog/2020/07/announcing-glosario/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the Carpentries blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Release the penguins</title>
      <link>https://education.rstudio.com/blog/2020/07/palmerpenguins-cran/</link>
      <pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/palmerpenguins-cran/</guid>
      <description>&lt;p&gt;We are thrilled to share that the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;palmerpenguins package&lt;/a&gt; is now available on 
&lt;a href=&#34;https://cloud.r-project.org/package=palmerpenguins&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CRAN&lt;/a&gt;! &lt;a href=&#39;https://allisonhorst.github.io/palmerpenguins/&#39;&gt;&lt;img src=&#34;penguins_cran.png&#34; align=&#34;right&#34; height=&#34;200&#34; style=&#34;padding-left:20px;&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;palmerpenguins&lt;/code&gt; R package contains two datasets that we believe are a viable alternative to Anderson&amp;rsquo;s &lt;strong&gt;Iris&lt;/strong&gt; data (via 
&lt;a href=&#34;https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/iris.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;datasets::iris&lt;/code&gt;&lt;/a&gt;). And just in time for fall, the penguins have landed on CRAN 🎉 They are pretty excited about this (as you can tell). Now, it will be easier for you and your students to get to know them. We also hope it makes it easier for educators and software developers to 
&lt;a href=&#34;https://www.garrickadenbuie.com/blog/lets-move-on-from-iris/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;move on from &lt;code&gt;iris&lt;/code&gt;&lt;/a&gt;. Here is just one example, plotting the lengths of penguin flippers versus their bills:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;figs/flipper-bill-1.png&#34; width=&#34;75%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;You can install the released version of palmerpenguins from 
&lt;a href=&#34;https://CRAN.R-project.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CRAN&lt;/a&gt; with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;install.packages&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;palmerpenguins&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In this post, we&amp;rsquo;ll share some highlights that we think make palmerpenguins fun for teaching data science and statistics. We&amp;rsquo;ll use functions from the tidyverse to demonstrate:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(palmerpenguins)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/3og0IO5z8Rd30ktV6g/giphy.gif&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; these are not Antarctic penguins; these are Magellanic penguins from the 
&lt;a href=&#34;https://www.montereybayaquarium.org/visit/exhibits/splash-zone/meet-our-penguins&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Monterey Bay Aquarium&lt;/a&gt; 🐧 But we love them anyway. And these South African penguins want to see what all the fuss about too.&lt;/p&gt;




&lt;h2 id=&#34;meet-the-penguins&#34;&gt;Meet the penguins
  &lt;a href=&#34;#meet-the-penguins&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;palmerpenguins&lt;/code&gt; data contains size measurements, clutch observations, and blood isotope ratios for three penguin species observed on three islands in the Palmer Archipelago, Antarctica over a study period of three years.&lt;/p&gt;
&lt;img src=&#34;gorman-penguins.jpg&#34; alt=&#34;The 3 Antarctic penguin species&#34; style=&#34;text-align: &amp;apos;center&amp;apos;&#34; width=&#34;500&#34;/&gt;
&lt;p&gt;These data were collected from 2007 - 2009 by Dr. Kristen Gorman with the 
&lt;a href=&#34;https://pal.lternet.edu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Palmer Station Long Term Ecological Research Program&lt;/a&gt;, part of the 
&lt;a href=&#34;https://lternet.edu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;US Long Term Ecological Research Network&lt;/a&gt;. The data were imported directly from the 
&lt;a href=&#34;https://environmentaldatainitiative.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Environmental Data Initiative&lt;/a&gt; (EDI) Data Portal, and are available for use by CC0 license (&amp;ldquo;No Rights Reserved&amp;rdquo;) in accordance with the 
&lt;a href=&#34;https://pal.lternet.edu/data/policies&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Palmer Station Data Policy&lt;/a&gt;. We gratefully acknowledge Palmer Station LTER and the US LTER Network. Special thanks to Marty Downs (Director, LTER Network Office) for help regarding the data license &amp;amp; use. Here is our intrepid package co-author, Dr. Gorman, in action collecting some penguin data:&lt;/p&gt;
&lt;img src=&#34;penguin-expedition.jpg&#34; alt=&#34;Dr Kristen Gorman collecting penguin data&#34; style=&#34;text-align: &amp;apos;center&amp;apos;&#34; width=&#34;500&#34;/&gt;
&lt;p&gt;You can find this photo and others in a 
&lt;a href=&#34;https://bit.ly/palmerpenguinspics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shared Google slideshow&lt;/a&gt;, meant to help you teach with this data.&lt;/p&gt;
&lt;p&gt;Here is a map of the study site:&lt;/p&gt;
&lt;img src=&#34;antarctica-map.png&#34; alt=&#34;3 study sites on a map of Antarctic Peninsula&#34; style=&#34;text-align: &amp;apos;center&amp;apos;&#34; width=&#34;500&#34;/&gt;




&lt;h2 id=&#34;the-palmerpenguins-package&#34;&gt;The &lt;strong&gt;palmerpenguins&lt;/strong&gt; package
  &lt;a href=&#34;#the-palmerpenguins-package&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This package contains two datasets:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The raw data is available as &lt;code&gt;penguins_raw&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A curated subset of the raw data in the package named &lt;code&gt;penguins&lt;/code&gt;, which can serve as an out-of-the-box alternative to &lt;code&gt;datasets::iris&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you first call either of these datasets, what you see depends on whether or not you have the 
&lt;a href=&#34;https://tibble.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tibble package&lt;/a&gt; installed on your local workstation. If you &lt;em&gt;do&lt;/em&gt; have the tibble package installed, then you will see the first 10 rows of data print as a nice tidy tibble. If not, you&amp;rsquo;ll see the full dataset print to your console, just as &lt;code&gt;iris&lt;/code&gt; does. This allowed us to keep palmerpenguins as lightweight as possible for all users, and yet still user-friendly for tidyverse beginners. A big thank you to Hadley Wickham for contributing this 
&lt;a href=&#34;https://github.com/allisonhorst/palmerpenguins/blob/master/data/penguins.R&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;creative solution&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;The curated &lt;code&gt;palmerpenguins::penguins&lt;/code&gt; dataset contains 8 variables (n = 344 penguins). You can read more about the variables by typing &lt;code&gt;?penguins&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # A tibble: 344 x 8&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    &amp;lt;fct&amp;gt;   &amp;lt;fct&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;int&amp;gt;       &amp;lt;int&amp;gt;&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  1 Adelie  Torge…           39.1          18.7              181        3750&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  2 Adelie  Torge…           39.5          17.4              186        3800&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  3 Adelie  Torge…           40.3          18                195        3250&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  4 Adelie  Torge…           NA            NA                 NA          NA&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  5 Adelie  Torge…           36.7          19.3              193        3450&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  6 Adelie  Torge…           39.3          20.6              190        3650&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  7 Adelie  Torge…           38.9          17.8              181        3625&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  8 Adelie  Torge…           39.2          19.6              195        4675&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  9 Adelie  Torge…           34.1          18.1              193        3475&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 10 Adelie  Torge…           42            20.2              190        4250&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # … with 334 more rows, and 2 more variables: sex &amp;lt;fct&amp;gt;, year &amp;lt;int&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;highlights&#34;&gt;Highlights
  &lt;a href=&#34;#highlights&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We don&amp;rsquo;t want to ruin all the fun exploration, visualization, and potential analyses, so below are just a few examples to get you quickly waddling along with &lt;em&gt;penguins&lt;/em&gt;. You can check out more in the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/intro.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Get started&amp;rdquo;&lt;/a&gt; and the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/examples.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Examples&amp;rdquo; vignettes&lt;/a&gt;.&lt;/p&gt;
&lt;img src=&#34;https://allisonhorst.github.io/palmerpenguins/reference/figures/lter_penguins.png&#34; alt=&#34;Allison Horst illustration of 3 penguin species&#34; style=&#34;display:block; margin-left: auto; margin-right: auto;&#34; width=&#34;40%&#34;/&gt;
&lt;p&gt;If you are teaching correlation and simple linear regression, penguin flipper length and body mass show a positive association for each of the 3 species:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Scatterplot example 1: penguin flipper length versus body mass&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; flipper_length_mm, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass_g)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species, 
                 shape &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species),
             size &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_color_manual&lt;/span&gt;(values &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;darkorange&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;darkorchid&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;cyan4&amp;#34;&lt;/span&gt;)) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-5-1.png&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Penguin bill length and depth also show some interesting patterns. If you ignore species, you might think there is a negative correlation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Scatterplot example 2: penguin bill length versus bill depth&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; bill_length_mm, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; bill_depth_mm)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;(size &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_smooth&lt;/span&gt;(method &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;lm&amp;#34;&lt;/span&gt;, se &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-6-1.png&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;But, if you look at the correlations within species, bill length and depth are actually positive correlated. This is a nice &amp;ldquo;in the wild&amp;rdquo; example of 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Simpson%27s_paradox&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Simpson&amp;rsquo;s paradox&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Scatterplot example 3: penguin bill length versus bill depth&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; bill_length_mm, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; bill_depth_mm)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species, 
                 shape &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species),
             size &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;geom_smooth&lt;/span&gt;(method &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;lm&amp;#34;&lt;/span&gt;, se &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_color_manual&lt;/span&gt;(values &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;darkorange&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;darkorchid&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;cyan4&amp;#34;&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-7-1.png&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;At this point, you may be also want to know how bill length and depth were actually measured. Luckily, 
&lt;a href=&#34;https://www.allisonhorst.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Allison Horst&lt;/a&gt; drew up some illustrations to help explain this. Here is one for bill measurement:&lt;/p&gt;
&lt;img src=&#34;https://allisonhorst.github.io/palmerpenguins/reference/figures/culmen_depth.png&#34; alt=&#34;Allison Horst illustration of bill length and depth&#34; width=&#34;500&#34;/&gt;
&lt;p&gt;You can download this and other palmerpenguins art (useful for teaching with the data) directly from the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/art.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;package website&lt;/a&gt;. If you use this artwork, please cite with: &amp;ldquo;Artwork by 
&lt;a href=&#34;https://www.allisonhorst.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@allison_horst&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;Finally, you can get a pretty clear separation between all three species by looking at flipper length versus bill length:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; flipper_length_mm, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; bill_length_mm, colour &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species, shape &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_colour_manual&lt;/span&gt;(values &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;darkorange&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;purple&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;cyan4&amp;#34;&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-8-1.png&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;This ends up leading to some nice results using principal components analysis, which is commonly done with &lt;code&gt;iris&lt;/code&gt; as a &amp;ldquo;hello world&amp;rdquo; PCA example. We provide code to do a simple PCA using 
&lt;a href=&#34;https://www.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt; in the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/pca.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;PCA with penguins and recipes&amp;rdquo; vignette&lt;/a&gt;.&lt;/p&gt;
&lt;img src=&#34;https://allisonhorst.github.io/palmerpenguins/articles/figs/pca-loadings-plot.png&#34; alt=&#34;Results of principal components analysis&#34; width=&#34;500&#34;/&gt;
&lt;p&gt;We are also pleased to report that the penguins enjoy clustering as well. Here is an example using 
&lt;a href=&#34;https://www.tidymodels.org/learn/statistics/k-means/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;K-means clustering&lt;/a&gt; with two tidymodels packages, 
&lt;a href=&#34;https://broom.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;broom&lt;/a&gt; and 
&lt;a href=&#34;https://recipes.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recipes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-9-1.png&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;One more thing! If you want to give your students experience importing and wrangling data, we made a function that allows you to access the &lt;code&gt;.csv&lt;/code&gt; files from within the package. Here is an example of how you use it:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;raw_csv &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; readr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;read_csv&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;path_to_file&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;penguins_raw.csv&amp;#34;&lt;/span&gt;))
raw_csv
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # A tibble: 344 x 17&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    studyName `Sample Number` Species Region Island Stage `Individual ID`&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    &amp;lt;chr&amp;gt;               &amp;lt;dbl&amp;gt; &amp;lt;chr&amp;gt;   &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt; &amp;lt;chr&amp;gt;          &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  1 PAL0708                 1 Adelie… Anvers Torge… Adul… N1A1           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  2 PAL0708                 2 Adelie… Anvers Torge… Adul… N1A2           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  3 PAL0708                 3 Adelie… Anvers Torge… Adul… N2A1           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  4 PAL0708                 4 Adelie… Anvers Torge… Adul… N2A2           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  5 PAL0708                 5 Adelie… Anvers Torge… Adul… N3A1           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  6 PAL0708                 6 Adelie… Anvers Torge… Adul… N3A2           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  7 PAL0708                 7 Adelie… Anvers Torge… Adul… N4A1           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  8 PAL0708                 8 Adelie… Anvers Torge… Adul… N4A2           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  9 PAL0708                 9 Adelie… Anvers Torge… Adul… N5A1           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 10 PAL0708                10 Adelie… Anvers Torge… Adul… N5A2           &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # … with 334 more rows, and 10 more variables: `Clutch Completion` &amp;lt;chr&amp;gt;, `Date&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; #   Egg` &amp;lt;date&amp;gt;, `Culmen Length (mm)` &amp;lt;dbl&amp;gt;, `Culmen Depth (mm)` &amp;lt;dbl&amp;gt;,&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; #   `Flipper Length (mm)` &amp;lt;dbl&amp;gt;, `Body Mass (g)` &amp;lt;dbl&amp;gt;, Sex &amp;lt;chr&amp;gt;, `Delta 15 N&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; #   (o/oo)` &amp;lt;dbl&amp;gt;, `Delta 13 C (o/oo)` &amp;lt;dbl&amp;gt;, Comments &amp;lt;chr&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can see the files available by using the &lt;code&gt;path_to_file()&lt;/code&gt; function without any arguments:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;path_to_file&lt;/span&gt;()
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; [1] &amp;#34;penguins_raw.csv&amp;#34; &amp;#34;penguins.csv&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Credit goes to Jenny Bryan for this 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/reference/path_to_file.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;function&lt;/a&gt;, inspired by a similar function in the 
&lt;a href=&#34;https://readxl.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;readxl package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And as a reminder, you can always read the data in from a url as well:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;peng_url &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; readr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;read_csv&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;https://raw.githubusercontent.com/allisonhorst/palmerpenguins/master/inst/extdata/penguins.csv&amp;#34;&lt;/span&gt;)
peng_url
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # A tibble: 344 x 8&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;    &amp;lt;chr&amp;gt;   &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  1 Adelie  Torge…           39.1          18.7              181        3750&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  2 Adelie  Torge…           39.5          17.4              186        3800&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  3 Adelie  Torge…           40.3          18                195        3250&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  4 Adelie  Torge…           NA            NA                 NA          NA&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  5 Adelie  Torge…           36.7          19.3              193        3450&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  6 Adelie  Torge…           39.3          20.6              190        3650&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  7 Adelie  Torge…           38.9          17.8              181        3625&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  8 Adelie  Torge…           39.2          19.6              195        4675&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;  9 Adelie  Torge…           34.1          18.1              193        3475&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 10 Adelie  Torge…           42            20.2              190        4250&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # … with 334 more rows, and 2 more variables: sex &amp;lt;chr&amp;gt;, year &amp;lt;dbl&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;.csv&lt;/code&gt; files are located in the 
&lt;a href=&#34;https://github.com/allisonhorst/palmerpenguins&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;package GitHub repository&lt;/a&gt; in the 
&lt;a href=&#34;https://github.com/allisonhorst/palmerpenguins/tree/master/inst/extdata&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;inst/extdata/&lt;/code&gt;&lt;/a&gt; folder.&lt;/p&gt;




&lt;h2 id=&#34;penguin-sightings&#34;&gt;Penguin sightings
  &lt;a href=&#34;#penguin-sightings&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;You can access the palmerpenguins data outside of R too! Our sincere thanks to all the contributors who made the penguins popular. Here are some other places you might spot the palmerpenguins:&lt;/p&gt;




&lt;h3 id=&#34;python&#34;&gt;Python
  &lt;a href=&#34;#python&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Python users can access the penguins data in the 
&lt;a href=&#34;https://github.com/mwaskom/seaborn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;seaborn data visualization library&lt;/a&gt;. Example code to load the data in Python:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;seaborn&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;as&lt;/span&gt; &lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;sns&lt;/span&gt;
df &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; sns&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;load_dataset(&lt;span style=&#34;&#34;&gt;‘&lt;/span&gt;penguins&lt;span style=&#34;&#34;&gt;’&lt;/span&gt;) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;julia&#34;&gt;Julia
  &lt;a href=&#34;#julia&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Julia users can access the penguins data in the 
&lt;a href=&#34;https://github.com/devmotion/PalmerPenguins.jl&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PalmerPenguins.jl&lt;/a&gt; package. Example code to import the penguins data through PalmerPenguins.jl:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;julia&lt;span style=&#34;color:#666&#34;&gt;&amp;gt;&lt;/span&gt; using PalmerPenguins
julia&lt;span style=&#34;color:#666&#34;&gt;&amp;gt;&lt;/span&gt; table &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;PalmerPenguins.load&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;openml&#34;&gt;OpenML
  &lt;a href=&#34;#openml&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;
&lt;a href=&#34;https://openml.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;openml.org&lt;/a&gt; is a public repository for machine learning data and experiments. Find the penguins here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.openml.org/d/42585&#34;&gt;https://www.openml.org/d/42585&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also download the penguins from the 
&lt;a href=&#34;https://openml.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;openml.org&lt;/a&gt; repository with Python using 
&lt;a href=&#34;https://scikit-learn.org/stable/datasets/index.html#openml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;scikit-learn&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;sklearn.datasets&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;import&lt;/span&gt; fetch_openml
penguins &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; fetch_openml(name&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;penguins&amp;#39;&lt;/span&gt;, version&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;tidy-tuesday&#34;&gt;Tidy Tuesday
  &lt;a href=&#34;#tidy-tuesday&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The penguins are chuffed to be the dataset &lt;em&gt;this week&lt;/em&gt;! Check out the announcement here: &lt;a href=&#34;https://github.com/rfordatascience/tidytuesday/blob/master/data/2020/2020-07-28/readme.md&#34;&gt;https://github.com/rfordatascience/tidytuesday/blob/master/data/2020/2020-07-28/readme.md&lt;/a&gt;&lt;/p&gt;




&lt;h3 id=&#34;kaggle&#34;&gt;Kaggle
  &lt;a href=&#34;#kaggle&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://www.kaggle.com/parulpandey/palmer-archipelago-antarctica-penguin-data&#34;&gt;https://www.kaggle.com/parulpandey/palmer-archipelago-antarctica-penguin-data&lt;/a&gt;&lt;/p&gt;




&lt;h3 id=&#34;makeover-monday&#34;&gt;Makeover Monday
  &lt;a href=&#34;#makeover-monday&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;
&lt;a href=&#34;https://www.makeovermonday.co.uk/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Makeover Monday&lt;/a&gt; featured the penguins on 
&lt;a href=&#34;https://data.world/makeovermonday/2020w28&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;2020/07/13&lt;/a&gt;.&lt;/p&gt;




&lt;h3 id=&#34;meetups--talks&#34;&gt;Meetups &amp;amp; talks
  &lt;a href=&#34;#meetups--talks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Here are recent highlights on our penguin radar!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Di Cook: 
&lt;a href=&#34;https://www.dicook.org/files/visec2020/slides_tourr#1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Going beyond 2D and 3D to visualise higher dimensions, for ordination, clustering and other models&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;penguin-tour.gif&#34; alt=&#34;Di Cook\&#39;s tourr package gif&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Samantha Toet: 
&lt;a href=&#34;https://www.meetup.com/rladies-charlottesville/events/270748602/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Building dashboards with flexdashboard and Shiny&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;penguin-dashboard.jpeg&#34; alt=&#34;Sam Toet\&#39;s penguin flexdashboard&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3 id=&#34;contribute-your-own-examples&#34;&gt;Contribute your own examples
  &lt;a href=&#34;#contribute-your-own-examples&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;If you use palmerpenguins, please consider sharing with us and add it to our 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/user_contributions.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;user-contributed examples&lt;/a&gt;. And don&amp;rsquo;t forget about the 
&lt;a href=&#34;https://bit.ly/palmerpenguinspics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;photos&lt;/a&gt; and 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/articles/art.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;art&lt;/a&gt; to help you teach with the palmerpenguins!&lt;/p&gt;




&lt;h2 id=&#34;penguin-citation&#34;&gt;Penguin citation
  &lt;a href=&#34;#penguin-citation&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Please cite the palmerpenguins R package using:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;citation&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;palmerpenguins&amp;#34;&lt;/span&gt;)
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; To cite palmerpenguins in publications use:&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   Horst AM, Hill AP, Gorman KB (2020). palmerpenguins: Palmer&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   Archipelago (Antarctica) penguin data. R package version 0.1.0.&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   https://allisonhorst.github.io/palmerpenguins/. doi:&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   10.5281/zenodo.3960218.&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; A BibTeX entry for LaTeX users is&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   @Manual{,&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     title = {palmerpenguins: Palmer Archipelago (Antarctica) penguin data},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     author = {Allison Marie Horst and Alison Presmanes Hill and Kristen B Gorman},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     year = {2020},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     note = {R package version 0.1.0},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     doi = {10.5281/zenodo.3960218},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;     url = {https://allisonhorst.github.io/palmerpenguins/},&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src=&#34;https://allisonhorst.github.io/palmerpenguins/reference/figures/palmerpenguins.png&#34; alt=&#34;Palmer penguins hex logo&#34; style=&#34;display:block; margin-left: auto; margin-right: auto;&#34; width=&#34;30%&#34;/&gt;
&lt;p&gt;Have fun with the Palmer Archipelago penguins!&lt;/p&gt;




&lt;h2 id=&#34;references&#34;&gt;References
  &lt;a href=&#34;#references&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Data originally published in:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gorman KB, Williams TD, Fraser WR (2014). Ecological sexual dimorphism and environmental variability within a community of Antarctic penguins (genus &lt;em&gt;Pygoscelis&lt;/em&gt;). PLoS ONE 9(3):e90081. &lt;a href=&#34;https://doi.org/10.1371/journal.pone.0090081&#34;&gt;https://doi.org/10.1371/journal.pone.0090081&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Individual datasets:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Individual data can be accessed directly via the 
&lt;a href=&#34;https://environmentaldatainitiative.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Environmental Data Initiative&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Palmer Station Antarctica LTER and K. Gorman, 2020. Structural size measurements and isotopic signatures of foraging among adult male and female Adélie penguins (&lt;em&gt;Pygoscelis adeliae&lt;/em&gt;) nesting along the Palmer Archipelago near Palmer Station, 2007-2009 ver 5. Environmental Data Initiative. &lt;a href=&#34;https://doi.org/10.6073/pasta/98b16d7d563f265cb52372c8ca99e60f&#34;&gt;https://doi.org/10.6073/pasta/98b16d7d563f265cb52372c8ca99e60f&lt;/a&gt; (Accessed 2020-06-08).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Palmer Station Antarctica LTER and K. Gorman, 2020. Structural size measurements and isotopic signatures of foraging among adult male and female Gentoo penguin (&lt;em&gt;Pygoscelis papua&lt;/em&gt;) nesting along the Palmer Archipelago near Palmer Station, 2007-2009 ver 5. Environmental Data Initiative. &lt;a href=&#34;https://doi.org/10.6073/pasta/7fca67fb28d56ee2ffa3d9370ebda689&#34;&gt;https://doi.org/10.6073/pasta/7fca67fb28d56ee2ffa3d9370ebda689&lt;/a&gt; (Accessed 2020-06-08).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Palmer Station Antarctica LTER and K. Gorman, 2020. Structural size measurements and isotopic signatures of foraging among adult male and female Chinstrap penguin (&lt;em&gt;Pygoscelis antarcticus&lt;/em&gt;) nesting along the Palmer Archipelago near Palmer Station, 2007-2009 ver 6. Environmental Data Initiative. &lt;a href=&#34;https://doi.org/10.6073/pasta/c14dfcfada8ea13a17536e73eb6fbe9e&#34;&gt;https://doi.org/10.6073/pasta/c14dfcfada8ea13a17536e73eb6fbe9e&lt;/a&gt; (Accessed 2020-06-08).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;acknowledgements&#34;&gt;Acknowledgements
  &lt;a href=&#34;#acknowledgements&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A big thank you to all palmerpenguins contributors: 
&lt;a href=&#34;https://github.com/allisonhorst&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@allisonhorst&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/amrrs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@amrrs&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/apreshill&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@apreshill&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/brunj7&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@brunj7&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/devmotion&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@devmotion&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/eddelbuettel&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@eddelbuettel&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/friendly&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@friendly&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/hadley&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@hadley&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jannikbuhr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jannikbuhr&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jhk0530&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jhk0530&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/john-sandall&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@john-sandall&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/karaesmen&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@karaesmen&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/markvanderloo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@markvanderloo&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/trang1618&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@trang1618&lt;/a&gt;, and 
&lt;a href=&#34;https://github.com/ttimbers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ttimbers&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Presentation-Ready Summary Tables with gtsummary</title>
      <link>https://education.rstudio.com/blog/2020/07/gtsummary/</link>
      <pubDate>Mon, 20 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/gtsummary/</guid>
      <description>&lt;p&gt;We are thrilled to introduce you to the 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gtsummary package&lt;/a&gt;!&lt;a href=&#39;https://github.com/ddsjoberg/gtsummary&#39;&gt;&lt;img src=&#39;logo.png&#39; align=&#34;right&#34; height=&#34;200&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The gtsummary package provides an elegant and flexible way to create publication-ready analytical and summary tables in R.&lt;/p&gt;
&lt;p&gt;The motivation behind the package stems from our work as statisticians, where every day we summarize datasets and regression models in R, share these results with collaborators, and eventually include them in published manuscripts. Many of our colleagues had our own scripts to create the tables we needed, and even then would often need to modify the formatting in a document editor later, which did not lead to &lt;strong&gt;reproducible results&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;At the time we created the package, we had several ideas in mind for our ideal table summary package. We also wanted our tables to be able to take advantage of all the features in RStudio&amp;rsquo;s newly released 
&lt;a href=&#34;https://gt.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gt&lt;/a&gt; package, which offers a variety of table customization options like spanning column headers, table footnotes, stubhead label, row group labels and more. So, gtsummary was born!&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what you can do with gtsummary:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/tbl_summary.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Summarize data frames or tibbles&lt;/strong&gt;&lt;/a&gt; to present descriptive statistics, compare group demographics (e.g creating a Table 1 for medical journals), and more!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/tbl_regression.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Summarize regression models&lt;/strong&gt;&lt;/a&gt;. Using &lt;code&gt;broom::tidy()&lt;/code&gt; in the background, gtsummary plays nicely with many model types (lm, glm, coxph, glmer etc.). You may also use custom functions to summarize regression models that do not currently have 
&lt;a href=&#34;https://broom.tidymodels.org/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;broom&lt;/a&gt; tidiers.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/index.html#section-general-formatting-styling-functions&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Customize gtsummary tables&lt;/strong&gt;&lt;/a&gt; using a growing list of formatting/styling functions: everything from which statistics and tests to use to how many decimal places to round to, bolding labels, indenting categories and more!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/tbl_summary.html#inline_text&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Report statistics inline&lt;/strong&gt;&lt;/a&gt; from summary tables and regression summary tables in &lt;strong&gt;R markdown&lt;/strong&gt;. Make your reports completely reproducible!&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/rmarkdown.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Leverage compatibility with multiple R Markdown outputs&lt;/strong&gt;&lt;/a&gt; to create beautiful, reproducible reports in a variety of formats (HTML, PDF, Word, RTF)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Install gtsummary from CRAN with the following code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;install.packages&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;gtsummary&amp;#34;&lt;/span&gt;)  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;stats&#34;&gt;Summarize descriptive statistics
  &lt;a href=&#34;#stats&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Throughout the post we will use an example dataset of 200 subjects treated with either Drug A or Drug B, with a mix of categorical, dichotomous, and continuous demographic and response data. The dataset has label attributes (using the 
&lt;a href=&#34;http://larmarange.github.io/labelled/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;labelled&lt;/a&gt; package) for column names.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;sm_trial &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; trial &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;select&lt;/span&gt;(trt, age, response, grade)

&lt;span style=&#34;color:#00f&#34;&gt;head&lt;/span&gt;(sm_trial)
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; # A tibble: 6 x 4&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   trt      age response grade&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt;   &amp;lt;chr&amp;gt;  &amp;lt;dbl&amp;gt;    &amp;lt;int&amp;gt; &amp;lt;fct&amp;gt;&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 1 Drug A    23        0 II   &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 2 Drug B     9        1 I    &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 3 Drug A    31        0 II   &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 4 Drug A    NA        1 III  &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 5 Drug A    51        1 III  &lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;#&amp;gt; 6 Drug B    39        0 I&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In &lt;strong&gt;one line of code&lt;/strong&gt; we can summarize the overall demographics of the dataset!&lt;/p&gt;
&lt;p&gt;Notice some nice default behaviors:&lt;br&gt;
💜 Detects variable types of input data and calculates descriptive statistics&lt;br&gt;
💜 Variables coded as 0/1, TRUE/FALSE, and Yes/No are presented dichotomously&lt;br&gt;
💜 Recognizes &lt;code&gt;NA&lt;/code&gt; values as &amp;ldquo;missing&amp;rdquo; and lists them as unknown&lt;br&gt;
💜 Label attributes automatically printed&lt;br&gt;
💜 Variable levels indented and footnotes added&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;tbl_summary_1 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;tbl_summary&lt;/span&gt;(sm_trial)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_summary_1.png&#34; width=30%&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Start customizing by adding arguments and functions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Next you can start to customize the table by using arguments of the &lt;code&gt;tbl_summary()&lt;/code&gt; function, as well as pipe the table through additional gtsummary functions to add more information, like p-value to compare across groups and overall demographic column.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;tbl_summary_2 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; sm_trial &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tbl_summary&lt;/span&gt;(by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; trt) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;add_p&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;add_overall&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;bold_labels&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_summary_2.png&#34; width=60%&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Customize further using formula syntax and tidy selectors&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most arguments to &lt;code&gt;tbl_summary()&lt;/code&gt; and &lt;code&gt;tbl_regression()&lt;/code&gt; require formula syntax:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;select variables ~ specify what you want to do&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;To select, use quoted or unquoted variables, or minus sign to negate (e.g. &lt;code&gt;age&lt;/code&gt; or &lt;code&gt;&amp;quot;age&amp;quot;&lt;/code&gt; to select, &lt;code&gt;-age&lt;/code&gt; to deselect)&lt;/li&gt;
&lt;li&gt;Or use any {tidyselect} functions, e.g. &lt;code&gt;contains(&amp;quot;stage&amp;quot;) ~ ...&lt;/code&gt;, including type selectors&lt;/li&gt;
&lt;li&gt;To specify what you want to do, some arguments use 
&lt;a href=&#34;https://github.com/tidyverse/glue&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;{glue}&lt;/a&gt; syntax where whatever is in the curly brackets gets evaluated and passed directly into the string. e.g &lt;code&gt;statistic = ... ~ &amp;quot;{mean} ({sd})&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;tbl_summary_3 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; sm_trial &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tbl_summary&lt;/span&gt;(
    by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; trt,
    statistic &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;list&lt;/span&gt;(
      &lt;span style=&#34;color:#00f&#34;&gt;all_continuous&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;{mean} ({sd})&amp;#34;&lt;/span&gt;,
      &lt;span style=&#34;color:#00f&#34;&gt;all_categorical&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;{n} / {N} ({p}%)&amp;#34;&lt;/span&gt;), 
    label &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; age &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Patient Age&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;add_p&lt;/span&gt;(test &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;all_continuous&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;t.test&amp;#34;&lt;/span&gt;,
        pvalue_fun &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;function&lt;/span&gt;(x) &lt;span style=&#34;color:#00f&#34;&gt;style_pvalue&lt;/span&gt;(x, digits &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_summary_3.png&#34; width=50%&gt;&lt;/p&gt;




&lt;h2 id=&#34;models&#34;&gt;Summarize regression models
  &lt;a href=&#34;#models&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;First, create a logistic regression model to use in examples.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;m1 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;glm&lt;/span&gt;(response &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; trt &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; grade &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; age, 
          data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; trial,
          family &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; binomial) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;tbl_regression()&lt;/code&gt; accepts regression model object as input. Uses {broom} in the background, outputs table with nice defaults:&lt;/p&gt;
&lt;p&gt;💜 Reference groups added to the table&lt;br&gt;
💜 Sensible default number rounding and formatting&lt;br&gt;
💜 Label attributes printed&lt;br&gt;
💜 Common model types detected and appropriate header added with footnote&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;tbl_reg_1 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;tbl_regression&lt;/span&gt;(m1, exponentiate &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_regression_1.png&#34; width=40%&gt;&lt;/p&gt;
&lt;p&gt;We have a growing list of 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/vetted_models.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;vetted models&lt;/a&gt; that can be passed to &lt;code&gt;tbl_regression()&lt;/code&gt;. You may also pass a 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/vetted_models.html#custom-tidiers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;custom tidier&lt;/a&gt; for model types that are not yet officially supported!&lt;/p&gt;




&lt;h2 id=&#34;join&#34;&gt;Join two or more tables
  &lt;a href=&#34;#join&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Oftentimes we must present results for multiple outcomes of interest, and there are many other reasons you might want to join two summary tables together. We&amp;rsquo;ve got you covered!&lt;/p&gt;
&lt;p&gt;In this example we can use &lt;code&gt;tbl_merge()&lt;/code&gt; to merge two gtsummary objects side-by-side. There is also a &lt;code&gt;tbl_stack()&lt;/code&gt; function to place tables on top of each other.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(survival)

tbl_reg_3 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;coxph&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;Surv&lt;/span&gt;(ttdeath, death) &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; trt &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; grade &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; age, 
        data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; trial) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tbl_regression&lt;/span&gt;(exponentiate &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;)

tbl_reg_4 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tbl_merge&lt;/span&gt;(
    tbls &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;list&lt;/span&gt;(tbl_reg_1, tbl_reg_3), 
    tab_spanner &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;**Tumor Response**&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;**Time to Death**&amp;#34;&lt;/span&gt;) 
  ) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_regression_4.png&#34; width=60%&gt;&lt;/p&gt;




&lt;h2 id=&#34;inline&#34;&gt;Report results inline
  &lt;a href=&#34;#inline&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Tables are important, but we often need to report results in-line in a report. Any statistic reported in a gtsummary table can be extracted and reported in-line in a R Markdown document with the &lt;code&gt;inline_text()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;inline_text(tbl_reg_1, variable = trt, level = &amp;quot;Drug B&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;1.13 (95% CI 0.60, 2.13; p=0.7)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The pattern of what is reported can be modified with the &lt;code&gt;pattern = &lt;/code&gt; argument.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Default is &lt;code&gt;pattern = &amp;quot;{estimate} ({conf.level*100}% CI {conf.low}, {conf.high}; {p.value})&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;rmd&#34;&gt;gtsummary + R Markdown
  &lt;a href=&#34;#rmd&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The &lt;strong&gt;gtsummary&lt;/strong&gt; package was written to be a companion to the &lt;strong&gt;gt&lt;/strong&gt; package from RStudio.
But not all output types are supported by the &lt;strong&gt;gt&lt;/strong&gt; package (yet!).
Therefore, we have made it possible to print &lt;strong&gt;gtsummary&lt;/strong&gt; tables with various engines.&lt;/p&gt;
&lt;p&gt;Review the &lt;strong&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/rmarkdown.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gtsummary + R Markdown&lt;/a&gt;&lt;/strong&gt; vignette for details.&lt;/p&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/rmarkdown.html&#34;&gt;
&lt;img src=&#34;gt_output_formats.PNG&#34; width=&#34;55%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;
&lt;/a&gt;




&lt;h2 id=&#34;custom&#34;&gt;Using external customization functions
  &lt;a href=&#34;#custom&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;It&amp;rsquo;s natural a gtsummary package user would want to customize the aesthetics of the table with some of the many functions available in the print engines listed above.&lt;/p&gt;
&lt;p&gt;Once you convert a gtsummary object to another kind of object (e.g. gt), every function compatible that object will be available to use!&lt;/p&gt;
&lt;p&gt;Example workflow and code using gt customization:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a gtsummary table.&lt;/li&gt;
&lt;li&gt;Convert the table to a gt object with the 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/as_gt.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;as_gt()&lt;/code&gt;&lt;/a&gt; function. (Also available: 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/as_flextable.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;as_flextable()&lt;/code&gt;&lt;/a&gt;, 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/as_kable_extra.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;as_kable_extra()&lt;/code&gt;&lt;/a&gt;&amp;hellip;&lt;/li&gt;
&lt;li&gt;Continue formatting as a gt table with any 
&lt;a href=&#34;https://gt.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gt&lt;/a&gt; function.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;tbl_summary_5 &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; sm_trial &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# create a gtsummary table&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tbl_summary&lt;/span&gt;(by &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; trt) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# convert from gtsummary object to gt object&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;as_gt&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# modify with gt functions&lt;/span&gt;
  gt&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;tab_header&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Table 1: Baseline Characteristics&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  gt&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;tab_spanner&lt;/span&gt;(
    label &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Randomization Group&amp;#34;&lt;/span&gt;,  
    columns &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;stat_&amp;#34;&lt;/span&gt;)
  ) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  gt&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;tab_options&lt;/span&gt;(
    table.font.size &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;small&amp;#34;&lt;/span&gt;,
    data_row.padding &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; gt&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;px&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;)) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;tbl_summary_5.png&#34; width=50%&gt;&lt;/p&gt;




&lt;h2 id=&#34;more&#34;&gt;Additional features
  &lt;a href=&#34;#more&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;There are a few other functions we&amp;rsquo;d like you to know about!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/tbl_uvregression.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tbl_uvregression()&lt;/code&gt;&lt;/a&gt; to make tables summarizing univariable regression models (input a dataset, specify model and parameters&amp;hellip; make a UVA regression table easily!)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/tbl_survfit.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tbl_survfit()&lt;/code&gt;&lt;/a&gt; function to summarize survival models&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/tbl_cross.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tbl_cross()&lt;/code&gt;&lt;/a&gt; to make beautiful cross tables&lt;/li&gt;
&lt;li&gt;Use 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/dev/articles/themes.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;themes&lt;/a&gt; to format your table for specific journal/aesthetic requirements!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Additional customization options&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;See the full list of gtsummary functions 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. You can use them to do all sorts of things to your tables, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;custom functions&lt;/strong&gt; for calculating p-values and reporting any statistic for continuous variables (including user-written functions)&lt;/li&gt;
&lt;li&gt;Bold and italicize labels and levels&lt;/li&gt;
&lt;li&gt;Present &lt;strong&gt;missing data&lt;/strong&gt; in various ways&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sort variables&lt;/strong&gt; by significance (&lt;code&gt;sort_p()&lt;/code&gt;); sort categorical variables by frequency&lt;/li&gt;
&lt;li&gt;Calculate &lt;strong&gt;cell percents and row percents&lt;/strong&gt; (default is column-wide)&lt;/li&gt;
&lt;li&gt;Report p-values for select variables (&lt;code&gt;add_p(include = ...)&lt;/code&gt;); report q-values (like false discovery rate)&lt;/li&gt;
&lt;li&gt;Set global &lt;strong&gt;rounding options&lt;/strong&gt; with themes (for estimates, confidence intervals, and p-values)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is a growing 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/gallery.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gallery of tables&lt;/a&gt; which highlights some of the many customization options!&lt;/p&gt;




&lt;h2 id=&#34;wrap-up&#34;&gt;Wrap-up
  &lt;a href=&#34;#wrap-up&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The gtsummary package website contains 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;well-documented functions&lt;/a&gt;, detailed 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tutorials&lt;/a&gt;, and 
&lt;a href=&#34;http://www.danieldsjoberg.com/gtsummary/articles/gallery.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;examples&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;If you have any questions on usage, please post to StackOverflow and use the 
&lt;a href=&#34;https://stackoverflow.com/questions/tagged/gtsummary?tab=Newest&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gtsummary tag&lt;/a&gt;. We try to answer questions ASAP! You can also report bugs or make feature requests by submitting an issue on 
&lt;a href=&#34;https://github.com/ddsjoberg/gtsummary/issues&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;May your code be short, your tables beautiful, and your reports fully reproducible!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/13AcmSNW5O7WV2/giphy.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;




&lt;h2 id=&#34;acknowledgements&#34;&gt;Acknowledgements
  &lt;a href=&#34;#acknowledgements&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A big thank you to all gtsummary contributors:

&lt;a href=&#34;https://github.com/ablack3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ablack3&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/ahinton-mmc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ahinton-mmc&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/barthelmes&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@barthelmes&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/calebasaraba&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@calebasaraba&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/CodieMonster&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@CodieMonster&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/davidgohel&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@davidgohel&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/davidkane9&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@davidkane9&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/dax44&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@dax44&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/ddsjoberg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ddsjoberg&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/DeFilippis&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@DeFilippis&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/emilyvertosick&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@emilyvertosick&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/gorkang&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@gorkang&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/GuiMarthe&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@GuiMarthe&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/hughjonesd&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@hughjonesd&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jalavery&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jalavery&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jeanmanguy&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jeanmanguy&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jemus42&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jemus42&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jennybc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jennybc&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/JesseRop&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@JesseRop&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jflynn264&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jflynn264&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/joelgautschi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@joelgautschi&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/jwilliman&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@jwilliman&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/karissawhiting&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@karissawhiting&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/khizzr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@khizzr&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/larmarange&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@larmarange&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/leejasme&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@leejasme&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/ltin1214&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ltin1214&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/margarethannum&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@margarethannum&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/matthieu-faron&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@matthieu-faron&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/michaelcurry1123&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@michaelcurry1123&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/moleps&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@moleps&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/MyKo101&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@MyKo101&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/oranwutang&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@oranwutang&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/proshano&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@proshano&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/ryzhu75&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ryzhu75&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/sammo3182&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@sammo3182&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/sbalci&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@sbalci&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/simonpcouch&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@simonpcouch&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/slb2240&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@slb2240&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/slobaugh&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@slobaugh&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/tormodb&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@tormodb&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/UAB-BST-680&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@UAB-BST-680&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/zabore&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@zabore&lt;/a&gt;, and 
&lt;a href=&#34;https://github.com/zeyunlu&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@zeyunlu&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teaching the Tidyverse in 2020 - Part 4: When to purrr?</title>
      <link>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-4-when-to-purrr/</link>
      <pubDate>Sun, 19 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-4-when-to-purrr/</guid>
      <description>&lt;p&gt;Welcome to the fourth (and final!) post in the &amp;ldquo;Teaching the Tidyverse in 2020&amp;rdquo; series. So far we have covered 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-1-getting-started/&#34; title=&#34;Teaching the Tidyverse in 2020: Getting started&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;getting started&lt;/a&gt;, 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-2-data-visualisation/&#34; title=&#34;Teaching the Tidyverse in 2020: Data visualisation&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data visualisation&lt;/a&gt;, and 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data wrangling and tidying&lt;/a&gt;. Today the focus will be on when to introduce the 
&lt;a href=&#34;https://purrr.tidyverse.org/&#34; title=&#34;Link to purrr package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;purrr&lt;/a&gt; package, or more widely, the notion of iteration and functional programming.&lt;/p&gt;
&lt;p&gt;In a nutshell, &lt;em&gt;purrr enhances R&amp;rsquo;s functional programming toolkit by providing a complete and consistent set of tools for working with functions and vectors&lt;/em&gt;. Its attractive features include informative naming of functions (even if you don&amp;rsquo;t know anything about purrr or functional programming you can probably guess that &lt;code&gt;map_chr()&lt;/code&gt; is about characters vs. &lt;code&gt;map_int()&lt;/code&gt; is about integers) and type consistency. purrr is useful for solving iterative problems in R, and the 
&lt;a href=&#34;https://purrr.tidyverse.org/reference/map.html&#34; title=&#34;Family of map() functions&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;family of &lt;code&gt;map()&lt;/code&gt; functions&lt;/a&gt; is what finally broke my habit of writing for loops to solve iterative problems in R.&lt;/p&gt;
&lt;p&gt;At rstudio::conf(2020), Hadley Wickham gave a talk titled 
&lt;a href=&#34;https://rstudio.com/resources/rstudioconf-2020/state-of-the-tidyverse/&#34; title=&#34;State of the Tidyverse video&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;State of the Tidyverse&lt;/em&gt;&lt;/a&gt; and among the list of things he is particularly excited about for 2020, he listed &amp;ldquo;less purrr for data science&amp;rdquo;. In this post we take a look at a few common data science tasks that are iterative in nature, part of the introductory data science curriculum (or should be!), and that can be carried out using tools others than purrr in the tidyverse.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;reading-in-many-files-at-once&#34;&gt;Reading in many files at once
  &lt;a href=&#34;#reading-in-many-files-at-once&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The 
&lt;a href=&#34;https://vroom.r-lib.org/&#34; title=&#34;Link to vroom package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;vroom&lt;/a&gt; package is designed for reading data into R &lt;em&gt;fast&lt;/em&gt;, but it also offers a very handy functionality for reading in many data files at once without the need for a for loop or a &lt;code&gt;map()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s return back to the 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/&#34; title=&#34;Link to palmerpenguins package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;palmerpenguins&lt;/a&gt; package for this example. Let&amp;rsquo;s artificially create multiple files we want to read in at once by splitting the &lt;code&gt;penguins&lt;/code&gt; dataset into three csv files, one for each species, named as &lt;code&gt;[NAME OF SPECIES].csv&lt;/code&gt;, and save them in the &lt;code&gt;data/&lt;/code&gt; folder.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(palmerpenguins)

penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;group_by&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;group_walk&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;write_csv&lt;/span&gt;(.x, &lt;span style=&#34;color:#00f&#34;&gt;paste0&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/&amp;#34;&lt;/span&gt;, .y&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;species, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;.csv&amp;#34;&lt;/span&gt;)))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s inspect the &lt;code&gt;data&lt;/code&gt; directory and confirm the files look as we expect them to. We&amp;rsquo;ll make use of the 
&lt;a href=&#34;https://fs.r-lib.org/&#34; title=&#34;Link to fs package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fs&lt;/a&gt; package for this, specifically the &lt;code&gt;dir_ls()&lt;/code&gt; function to get information on the contents of a directory.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(fs)

&lt;span style=&#34;color:#00f&#34;&gt;dir_ls&lt;/span&gt;(path &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;, glob &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;*csv&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## data/Adelie.csv    data/Chinstrap.csv data/Gentoo.csv
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We can read each of these files with &lt;code&gt;read_csv()&lt;/code&gt; and bind the rows to create a single data frame.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;adelie    &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_csv&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/Adelie.csv&amp;#34;&lt;/span&gt;)
chinstrap &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_csv&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/Chinstrap.csv&amp;#34;&lt;/span&gt;)
gentoo    &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_csv&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/Gentoo.csv&amp;#34;&lt;/span&gt;)
all_three &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;bind_rows&lt;/span&gt;(adelie, chinstrap, gentoo, .id &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;species&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can imagine this could get tedious quickly if there were a large number of files to be read in. To do this programmatically, we first need a list of the files we want to read in.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;files &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;dir_ls&lt;/span&gt;(path &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;, glob &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;*csv&amp;#34;&lt;/span&gt;)
files
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## data/Adelie.csv    data/Chinstrap.csv data/Gentoo.csv
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The purrr solution to this problem is as follows. It seems pretty straight forward, but it requires understanding what mapping a function over each item of a given vector means.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;map_dfr&lt;/span&gt;(files, read_csv, .id &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;species&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 344 x 7
##    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g
##    &amp;lt;chr&amp;gt;   &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
##  1 data/A… Torge…           39.1          18.7              181        3750
##  2 data/A… Torge…           39.5          17.4              186        3800
##  3 data/A… Torge…           40.3          18                195        3250
##  4 data/A… Torge…           NA            NA                 NA          NA
##  5 data/A… Torge…           36.7          19.3              193        3450
##  6 data/A… Torge…           39.3          20.6              190        3650
##  7 data/A… Torge…           38.9          17.8              181        3625
##  8 data/A… Torge…           39.2          19.6              195        4675
##  9 data/A… Torge…           34.1          18.1              193        3475
## 10 data/A… Torge…           42            20.2              190        4250
## # … with 334 more rows, and 1 more variable: sex &amp;lt;chr&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Alternatively, this can be achieved with the &lt;code&gt;vroom()&lt;/code&gt; function from the package with the same name.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(vroom)

&lt;span style=&#34;color:#00f&#34;&gt;vroom&lt;/span&gt;(files, id &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;species&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 344 x 7
##    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g
##    &amp;lt;chr&amp;gt;   &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
##  1 data/A… Torge…           39.1          18.7              181        3750
##  2 data/A… Torge…           39.5          17.4              186        3800
##  3 data/A… Torge…           40.3          18                195        3250
##  4 data/A… Torge…           NA            NA                 NA          NA
##  5 data/A… Torge…           36.7          19.3              193        3450
##  6 data/A… Torge…           39.3          20.6              190        3650
##  7 data/A… Torge…           38.9          17.8              181        3625
##  8 data/A… Torge…           39.2          19.6              195        4675
##  9 data/A… Torge…           34.1          18.1              193        3475
## 10 data/A… Torge…           42            20.2              190        4250
## # … with 334 more rows, and 1 more variable: sex &amp;lt;chr&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This feels a lot more like the &lt;code&gt;read_csv()&lt;/code&gt; function your students would undoubtedly be familiar with before they set out to read many csv files at once. The species variable needs to be cleaned up a bit, which we can achieve with character manipulation.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;vroom&lt;/span&gt;(files, id &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;species&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(
    species &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;str_remove&lt;/span&gt;(species, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/&amp;#34;&lt;/span&gt;),
    species &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;str_remove&lt;/span&gt;(species, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;\\.csv&amp;#34;&lt;/span&gt;)
    )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 344 x 7
##    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g
##    &amp;lt;chr&amp;gt;   &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
##  1 Adelie  Torge…           39.1          18.7              181        3750
##  2 Adelie  Torge…           39.5          17.4              186        3800
##  3 Adelie  Torge…           40.3          18                195        3250
##  4 Adelie  Torge…           NA            NA                 NA          NA
##  5 Adelie  Torge…           36.7          19.3              193        3450
##  6 Adelie  Torge…           39.3          20.6              190        3650
##  7 Adelie  Torge…           38.9          17.8              181        3625
##  8 Adelie  Torge…           39.2          19.6              195        4675
##  9 Adelie  Torge…           34.1          18.1              193        3475
## 10 Adelie  Torge…           42            20.2              190        4250
## # … with 334 more rows, and 1 more variable: sex &amp;lt;chr&amp;gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;h2 id=&#34;working-with-list-columns&#34;&gt;Working with list columns
  &lt;a href=&#34;#working-with-list-columns&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In the 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/&#34; title=&#34;Teaching the Tidyverse in 2020: Data wrangling and tidying&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;previous post&lt;/a&gt; on data wrangling and tidying we worked with a wide data frame of repeated observations stored across columns. We&amp;rsquo;ll return back to this data frame, except this time let&amp;rsquo;s store the repeated observations in a single list column called &lt;code&gt;body_mass&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;tribble&lt;/span&gt;(
  &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;name,        &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;sex,     &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;body_mass, 
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Mumble&amp;#34;&lt;/span&gt;,     &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;male&amp;#34;&lt;/span&gt;,   &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;4801&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;5699&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;5743&lt;/span&gt;),         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Gloria&amp;#34;&lt;/span&gt;,     &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;female&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;4785&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;3092&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;4220&lt;/span&gt;),         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Memphis&amp;#34;&lt;/span&gt;,    &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;male&amp;#34;&lt;/span&gt;,   &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;3349&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;4186&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;4454&lt;/span&gt;),         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Norma Jean&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;female&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;4235&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;3220&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;4019&lt;/span&gt;)        
)

penguins_madeup_list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 3
##   name       sex    body_mass
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;list&amp;gt;   
## 1 Mumble     male   &amp;lt;dbl [3]&amp;gt;
## 2 Gloria     female &amp;lt;dbl [3]&amp;gt;
## 3 Memphis    male   &amp;lt;dbl [3]&amp;gt;
## 4 Norma Jean female &amp;lt;dbl [3]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Our goal is to find the average body mass for penguin based on these measurements. We can do this using purrr as follows.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(body_mass_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; purrr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;map_dbl&lt;/span&gt;(body_mass, mean))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 4
##   name       sex    body_mass body_mass_avg
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;list&amp;gt;            &amp;lt;dbl&amp;gt;
## 1 Mumble     male   &amp;lt;dbl [3]&amp;gt;         5414.
## 2 Gloria     female &amp;lt;dbl [3]&amp;gt;         4032.
## 3 Memphis    male   &amp;lt;dbl [3]&amp;gt;         3996.
## 4 Norma Jean female &amp;lt;dbl [3]&amp;gt;         3825.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But with a combination of &lt;code&gt;rowwise()&lt;/code&gt; and &lt;code&gt;summarise()&lt;/code&gt; it&amp;rsquo;s also possible to accomplish this task without purrr.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;rowwise&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(body_mass_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 4
## # Rowwise: 
##   name       sex    body_mass body_mass_avg
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;list&amp;gt;            &amp;lt;dbl&amp;gt;
## 1 Mumble     male   &amp;lt;dbl [3]&amp;gt;         5414.
## 2 Gloria     female &amp;lt;dbl [3]&amp;gt;         4032.
## 3 Memphis    male   &amp;lt;dbl [3]&amp;gt;         3996.
## 4 Norma Jean female &amp;lt;dbl [3]&amp;gt;         3825.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;With this structure it&amp;rsquo;s also possible to create a list column that has many elements, e.g. more than one summary statistic.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;rowwise&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(body_mass_summary &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;list&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;summary&lt;/span&gt;(body_mass)))

penguins_madeup_list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 4
## # Rowwise: 
##   name       sex    body_mass body_mass_summary
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;list&amp;gt;    &amp;lt;list&amp;gt;           
## 1 Mumble     male   &amp;lt;dbl [3]&amp;gt; &amp;lt;table [6]&amp;gt;      
## 2 Gloria     female &amp;lt;dbl [3]&amp;gt; &amp;lt;table [6]&amp;gt;      
## 3 Memphis    male   &amp;lt;dbl [3]&amp;gt; &amp;lt;table [6]&amp;gt;      
## 4 Norma Jean female &amp;lt;dbl [3]&amp;gt; &amp;lt;table [6]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To confirm that the &lt;code&gt;body_mass_summary&lt;/code&gt; column indeed has the summary statistics we asked for, we can unnest that column.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_list &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_wider&lt;/span&gt;(body_mass_summary)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 9
##   name       sex    body_mass  Min. `1st Qu.` Median  Mean `3rd Qu.`  Max.
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;list&amp;gt;    &amp;lt;dbl&amp;gt;     &amp;lt;dbl&amp;gt;  &amp;lt;dbl&amp;gt; &amp;lt;dbl&amp;gt;     &amp;lt;dbl&amp;gt; &amp;lt;dbl&amp;gt;
## 1 Mumble     male   &amp;lt;dbl [3]&amp;gt;  4801     5250    5699 5414.     5721   5743
## 2 Gloria     female &amp;lt;dbl [3]&amp;gt;  3092     3656    4220 4032.     4502.  4785
## 3 Memphis    male   &amp;lt;dbl [3]&amp;gt;  3349     3768.   4186 3996.     4320   4454
## 4 Norma Jean female &amp;lt;dbl [3]&amp;gt;  3220     3620.   4019 3825.     4127   4235
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;What is this unnest magic, you ask? Let&amp;rsquo;s look at that in a bit more detail next.&lt;/p&gt;




&lt;h2 id=&#34;data-rectangling&#34;&gt;Data rectangling
  &lt;a href=&#34;#data-rectangling&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;JSON is a commonly used hierarchical data type and it is especially commonly used on the web. Reading in data from JSON files and turning them into rectangular (tabular) data is an important skill for most data scientists to have, and with today&amp;rsquo;s tooling in the tidyverse, it&amp;rsquo;s feasible to teach this skill in data science courses at any level.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s take a look at our made up penguin data, this time stored in JSON format with a few additional variables. We&amp;rsquo;ll read in the data using the 
&lt;a href=&#34;https://jeroen.cran.dev/jsonlite/&#34; title=&#34;Link to jsonlite package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;jsonlite&lt;/a&gt; package.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(jsonlite)

penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;read_json&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;data/penguins_madeup.json&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s take a look at the first entry to get a sense of the structure of each the data.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;toJSON&lt;/span&gt;(penguins_madeup_json[1], pretty &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## [
##   {
##     &amp;quot;gender&amp;quot;: [&amp;quot;male&amp;quot;],
##     &amp;quot;first_name&amp;quot;: [&amp;quot;Mumble&amp;quot;],
##     &amp;quot;measurements&amp;quot;: [
##       {
##         &amp;quot;date&amp;quot;: [&amp;quot;2007-11-11&amp;quot;],
##         &amp;quot;body_mass&amp;quot;: [4801],
##         &amp;quot;flipper_length&amp;quot;: [181]
##       },
##       {
##         &amp;quot;date&amp;quot;: [&amp;quot;2007-11-16&amp;quot;],
##         &amp;quot;body_mass&amp;quot;: [5699],
##         &amp;quot;flipper_length&amp;quot;: [182]
##       },
##       {
##         &amp;quot;date&amp;quot;: [&amp;quot;2007-11-19&amp;quot;],
##         &amp;quot;body_mass&amp;quot;: [5743],
##         &amp;quot;flipper_length&amp;quot;: [181]
##       }
##     ]
##   }
## ]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;purrr is a great solution for working with lists, and hence for flattening JSON files. There are a couple ways we can solve this problem with purrr. I&amp;rsquo;ll start with the less verbose approach.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;map_dfr&lt;/span&gt;(
    
    &lt;span style=&#34;color:#00f&#34;&gt;function&lt;/span&gt;(penguin) {
      penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;measurements &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;bind_rows&lt;/span&gt;(penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;measurements)
      &lt;span style=&#34;color:#00f&#34;&gt;bind_cols&lt;/span&gt;(penguin)
    }
    
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    gender first_name date       body_mass flipper_length
##    &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;          &amp;lt;int&amp;gt;          &amp;lt;int&amp;gt;
##  1 male   Mumble     2007-11-11      4801            181
##  2 male   Mumble     2007-11-16      5699            182
##  3 male   Mumble     2007-11-19      5743            181
##  4 female Gloria     2007-11-11      4785            186
##  5 female Gloria     2007-11-14      3092            182
##  6 female Gloria     2007-11-19      4220            183
##  7 male   Memphis    2007-11-11      3349            190
##  8 male   Memphis    2007-11-15      4186            188
##  9 male   Memphis    2007-11-17      4454            191
## 10 female Norma Jean 2007-11-11      4235            193
## 11 female Norma Jean 2007-11-12      3220            191
## 12 female Norma Jean 2007-11-18      4019            194
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;While this works, it is certainly not trivial code to parse through. A slightly simpler approach with purrr involves being more expressive with how we extract each column of data.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;map_dfr&lt;/span&gt;(
    &lt;span style=&#34;color:#00f&#34;&gt;function&lt;/span&gt;(penguin) {
      
      &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(
        gender         &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;gender,
        first_name     &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;first_name,
        date           &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;map_chr&lt;/span&gt;(penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;measurements, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;),
        body_mass      &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;map_chr&lt;/span&gt;(penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;measurements, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;),
        flipper_length &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;map_chr&lt;/span&gt;(penguin&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;measurements, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;flipper_length&amp;#34;&lt;/span&gt;)
      )
      
    }
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    gender first_name date       body_mass flipper_length
##    &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;     &amp;lt;chr&amp;gt;         
##  1 male   Mumble     2007-11-11 4801      181           
##  2 male   Mumble     2007-11-16 5699      182           
##  3 male   Mumble     2007-11-19 5743      181           
##  4 female Gloria     2007-11-11 4785      186           
##  5 female Gloria     2007-11-14 3092      182           
##  6 female Gloria     2007-11-19 4220      183           
##  7 male   Memphis    2007-11-11 3349      190           
##  8 male   Memphis    2007-11-15 4186      188           
##  9 male   Memphis    2007-11-17 4454      191           
## 10 female Norma Jean 2007-11-11 4235      193           
## 11 female Norma Jean 2007-11-12 3220      191           
## 12 female Norma Jean 2007-11-18 4019      194
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I think this is easier to read for an introductory audience, but it still requires understanding how anonymous functions work, which is not trivial.&lt;/p&gt;
&lt;p&gt;Enter tidyr, and the family of &lt;code&gt;unnest_*()&lt;/code&gt; functions. Let&amp;rsquo;s go step by step.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Step 1: Place list object resulting from reading in the JSON file into a tibble.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(penguins_madeup &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; .)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 1
##   penguins_madeup 
##   &amp;lt;list&amp;gt;          
## 1 &amp;lt;named list [3]&amp;gt;
## 2 &amp;lt;named list [3]&amp;gt;
## 3 &amp;lt;named list [3]&amp;gt;
## 4 &amp;lt;named list [3]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Step 2: Unnest the list object by turning each element of a list-column into a column with &lt;code&gt;unnest_wider()&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(penguins_madeup &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; .) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_wider&lt;/span&gt;(penguins_madeup)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 3
##   gender first_name measurements
##   &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;list&amp;gt;      
## 1 male   Mumble     &amp;lt;list [3]&amp;gt;  
## 2 female Gloria     &amp;lt;list [3]&amp;gt;  
## 3 male   Memphis    &amp;lt;list [3]&amp;gt;  
## 4 female Norma Jean &amp;lt;list [3]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Step 3: Unnest the measurements column by turning each element into a row with &lt;code&gt;unnest_longer()&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(penguins_madeup &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; .) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_wider&lt;/span&gt;(penguins_madeup) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_longer&lt;/span&gt;(measurements)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 3
##    gender first_name measurements    
##    &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;list&amp;gt;          
##  1 male   Mumble     &amp;lt;named list [3]&amp;gt;
##  2 male   Mumble     &amp;lt;named list [3]&amp;gt;
##  3 male   Mumble     &amp;lt;named list [3]&amp;gt;
##  4 female Gloria     &amp;lt;named list [3]&amp;gt;
##  5 female Gloria     &amp;lt;named list [3]&amp;gt;
##  6 female Gloria     &amp;lt;named list [3]&amp;gt;
##  7 male   Memphis    &amp;lt;named list [3]&amp;gt;
##  8 male   Memphis    &amp;lt;named list [3]&amp;gt;
##  9 male   Memphis    &amp;lt;named list [3]&amp;gt;
## 10 female Norma Jean &amp;lt;named list [3]&amp;gt;
## 11 female Norma Jean &amp;lt;named list [3]&amp;gt;
## 12 female Norma Jean &amp;lt;named list [3]&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Step 4: Unnest the measurements column again, this time turning each element in the list into a column with &lt;code&gt;unnest_wider()&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(penguins_madeup &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; .) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_wider&lt;/span&gt;(penguins_madeup) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_longer&lt;/span&gt;(measurements)&lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_wider&lt;/span&gt;(measurements)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    gender first_name date       body_mass flipper_length
##    &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;          &amp;lt;int&amp;gt;          &amp;lt;int&amp;gt;
##  1 male   Mumble     2007-11-11      4801            181
##  2 male   Mumble     2007-11-16      5699            182
##  3 male   Mumble     2007-11-19      5743            181
##  4 female Gloria     2007-11-11      4785            186
##  5 female Gloria     2007-11-14      3092            182
##  6 female Gloria     2007-11-19      4220            183
##  7 male   Memphis    2007-11-11      3349            190
##  8 male   Memphis    2007-11-15      4186            188
##  9 male   Memphis    2007-11-17      4454            191
## 10 female Norma Jean 2007-11-11      4235            193
## 11 female Norma Jean 2007-11-12      3220            191
## 12 female Norma Jean 2007-11-18      4019            194
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The purrr solution may be more flexible, but if all you want to do is to unnest list columns to create rectangular data, I think this approach can be a lot more accessible for an introductory audience. And if you don&amp;rsquo;t want to think about whether you need to go wider or longer, you can also use &lt;code&gt;unnest_auto()&lt;/code&gt; first and let tidyr choose for you!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_json &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;tibble&lt;/span&gt;(penguins_madeup &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; .) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_auto&lt;/span&gt;(penguins_madeup) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_auto&lt;/span&gt;(measurements) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;unnest_auto&lt;/span&gt;(measurements)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Using `unnest_wider(penguins_madeup)`; elements have 3 names in common
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## Using `unnest_longer(measurements)`; no element has names
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## Using `unnest_wider(measurements)`; elements have 3 names in common
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    gender first_name date       body_mass flipper_length
##    &amp;lt;chr&amp;gt;  &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;          &amp;lt;int&amp;gt;          &amp;lt;int&amp;gt;
##  1 male   Mumble     2007-11-11      4801            181
##  2 male   Mumble     2007-11-16      5699            182
##  3 male   Mumble     2007-11-19      5743            181
##  4 female Gloria     2007-11-11      4785            186
##  5 female Gloria     2007-11-14      3092            182
##  6 female Gloria     2007-11-19      4220            183
##  7 male   Memphis    2007-11-11      3349            190
##  8 male   Memphis    2007-11-15      4186            188
##  9 male   Memphis    2007-11-17      4454            191
## 10 female Norma Jean 2007-11-11      4235            193
## 11 female Norma Jean 2007-11-12      3220            191
## 12 female Norma Jean 2007-11-18      4019            194
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you want to learn more about the family of &lt;code&gt;unnest_*()&lt;/code&gt; functions, I recommend the 
&lt;a href=&#34;https://tidyr.tidyverse.org/articles/rectangle.html&#34; title=&#34;Rectangling vignette on the tidyr package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rectangling vignnette&lt;/a&gt; in the tidyr package, and if you want to learn more about using purrr for such a task, I recommend 
&lt;a href=&#34;https://github.com/cwickham/purrr-tutorial&#34; title=&#34;Charlotte Wickham’s purrr tutorial&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Charlotte Wickham&amp;rsquo;s purrr tutorial&lt;/a&gt; if you prefer to browse through slides and 
&lt;a href=&#34;https://jennybc.github.io/purrr-tutorial/ls13_list-columns.html&#34; title=&#34;Jenny Bryan’s purrr tutorial&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenny Bryan&amp;rsquo;s purrr tutorial&lt;/a&gt; if you prefer written examples.&lt;/p&gt;




&lt;h2 id=&#34;so-when-to-purrr&#34;&gt;So&amp;hellip; when to purrr?
  &lt;a href=&#34;#so-when-to-purrr&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;So far I&amp;rsquo;ve discussed when not to purrr, and provided alternative solutions to using packages like dplyr, tidyr, and vroom. This approach allows you to solve more data wrangling and import tasks before teaching functions, iteration, and mapping, i.e. get through more of your data science curriculum before diving into topics that are more traditionally programming than data science. So, when would be a good time in the introductory science curriculum to introduce these topics? I would recommend doing so after covering data visualisation, wrangling, and import, but before going into modeling and inference. And I would recommend doing with a motivating example of webscraping, where the webscraping task involves bringing together data from multiple pages that are all formatted the same way (e.g. IMDB pages on movies, voting records for each state). The recipe you might follow is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use rvest to scrape a single page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Introduce functions, and functionalize the code you wrote for scraping a single page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the function to scrape three pages, one by one, and bind the data together&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Introduce iteration, and map the function you wrote across many pages&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find an example of this approach in a paper I recently published with Mine Dogucu 
&lt;a href=&#34;https://github.com/mdogucu/web-scrape&#34; title=&#34;Web Scraping in the Statistics and Data Science Curriculum: Challenges and Opportunities&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;, where we follow the recipe I outlined above to scrape data from 
&lt;a href=&#34;https://www.opensecrets.org/&#34; title=&#34;OpenSecrets.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;OpenSecrets&lt;/a&gt;. We have also made the code available in 
&lt;a href=&#34;https://rstudio.cloud/project/797118&#34; title=&#34;Link to RStudio Cloud project with web scraping code&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;an RStudio Cloud project&lt;/a&gt; to make it easier for readers to try it out.&lt;/p&gt;
&lt;p&gt;Before we wrap up this post I want to expand a bit more on why I think it&amp;rsquo;s worthwhile to discuss the mechanics of iteration prior to introducing statistical inference, especially if you&amp;rsquo;re teaching simulation-based inference where there is lots of &amp;ldquo;resampling over and over&amp;rdquo;. A few years ago I was introducing students to for loops at the same time as I was introducing them to the concept of bootstrapping, i.e. motivating the computational mechanics with statistical inference. But statistical inference is hard to wrap one&amp;rsquo;s head around, and for loops aren&amp;rsquo;t necessarily easy for novice programmers either. By introducing the mechanics of iteration (whether via for loops or via functional programming with purrr) I feel like I can spend more time on the &lt;em&gt;why&lt;/em&gt; of simulation-based statistical inference rather than the &lt;em&gt;how&lt;/em&gt;. After a few examples on bootstrapping where we explicitly write the code for how to resample, I introduce the 
&lt;a href=&#34;https://infer.netlify.com/&#34; title=&#34;Link to infer package website&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;infer&lt;/a&gt; package and offload the computational details to its functions while keeping the focus in the class on the statistical ideas.&lt;/p&gt;
&lt;p&gt;I think I can summarise this post on &amp;ldquo;when to purrr?&amp;rdquo; in four bullet points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are many ways to solve iterative problems in R.&lt;/li&gt;
&lt;li&gt;Some ways need more scaffolding than others.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s worth considering how much of purrr fits into your introductory data science curriculum, especially if you&amp;rsquo;re feeling like your syllabus is crammed and you need to make room for other topics or for more practice.&lt;/li&gt;
&lt;li&gt;For a more advanced data science or statistical programming course, purrr is a great introduction to functional programming.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;That&amp;rsquo;s the end of the &amp;ldquo;Teaching the Tidyverse in 2020&amp;rdquo; series, thank you for sticking with me! Over the four posts in the series we talked a lot about tooling. Before we wrap things up I also want to give a list (in no particular order) of resources that can enhance and supplement your teaching materials:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;Allison%20Horst%27s&#34; title=&#34;Allison Horst&amp;#39;s illustrations os statistical topics and R packages&#34;&gt;Illustrations os statistical topics and R packages&lt;/a&gt; by Allison Horst&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.garrickadenbuie.com/project/tidyexplain/&#34; title=&#34;Garrick Aden-Buie&amp;#39;s animations of tidyverse verbs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Animations of tidyverse verbs using R, the tidyverse, and gganimate&lt;/a&gt; by Garrick Aden-Buie&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://twitter.com/search?q=%23TwoFunctionsMostDays%20from%3Asharlagelfand&amp;amp;src=recent_search_click&amp;amp;f=live&#34; title=&#34;Two functions most days by Sharla Gelfand&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#TwoFunctionsMostDays&lt;/a&gt; by Sharla Gelfand (not actively updated, but lots of gems nonetheless!)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rfordatascience/tidytuesday&#34; title=&#34;Tidy Tuesday by the R for Data Science Community&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;TidyTuesday&lt;/a&gt; by the R for Data Science Community&lt;/li&gt;
&lt;li&gt;The 
&lt;a href=&#34;https://www.youtube.com/c/RLadiesGlobal/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R-Ladies Global channel&lt;/a&gt; on YouTube as well as many other 
&lt;a href=&#34;https://www.youtube.com/c/RLadiesGlobal/channels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R-Ladies channels&lt;/a&gt; on YouTube (many of which have videos in languages other than English!)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.youtube.com/channel/UC_R5smHVXRYGhZYDJsnXTwg/videos&#34; title=&#34;Videos by the R Consortium&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;All the useR! 2020 videos&lt;/a&gt; (and videos from the past useR! conferences) by the R Consortium&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And of course, the 
&lt;a href=&#34;https://twitter.com/search?q=%23rstats&amp;amp;src=typed_query&amp;amp;f=live&#34; title=&#34;#rstats hashtag on Twitter&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#rstats hashtag on Twitter&lt;/a&gt; for a constant stream of R inspiration!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teaching the Tidyverse in 2020 - Part 3: Data wrangling and tidying</title>
      <link>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/</link>
      <pubDate>Fri, 17 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/</guid>
      <description>&lt;p&gt;This is the third blog post in the &amp;ldquo;Teaching the Tidyverse in 2020&amp;rdquo; series. The first post was on 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-1-getting-started/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;getting started&lt;/a&gt;, the second on 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-2-data-visualisation/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data visualisation&lt;/a&gt;, and today our focus is data wrangling and tidying. In this post, I&amp;rsquo;ll highlight of the some new(ish) features of 
&lt;a href=&#34;https://dplyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dplyr&lt;/a&gt; and 
&lt;a href=&#34;https://tidyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyr&lt;/a&gt;. Over the past year there has been a lot of exciting updates to both of these packages and these updates are well documented in the 
&lt;a href=&#34;https://www.tidyverse.org/blog/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse blog&lt;/a&gt;. My goal here is to highlight updates that apply to introductory data science or statistics curricula.&lt;/p&gt;
&lt;p&gt;Throughout this post we&amp;rsquo;ll be using the tidyverse package, so let&amp;rsquo;s go ahead and load it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;reshaping-data&#34;&gt;Reshaping data
  &lt;a href=&#34;#reshaping-data&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A common task in data analysis is going from wide data (e.g. where repeated measurements on a subject are recorded in a single row across consecutive columns) to long data (where each measurement is represented as a row), or vice versa. We&amp;rsquo;ll stick with penguins in this post, but make up some (realistic) data that lends itself to reshaping from wide to long. Suppose we have 4 penguins in our sample, and we take measure the body mass of each penguin 3 times. We also record their names, sex, and whether they tap dance (yup, you heard that right!).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;tribble&lt;/span&gt;(
  &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;name,        &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;sex,     &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;tap_dance, &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;body_mass_1, &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;body_mass_2, &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt;body_mass_3, 
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Mumble&amp;#34;&lt;/span&gt;,     &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;male&amp;#34;&lt;/span&gt;,   &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;,       &lt;span style=&#34;color:#666&#34;&gt;4801&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;5699&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;5743&lt;/span&gt;,         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Gloria&amp;#34;&lt;/span&gt;,     &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;female&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;,      &lt;span style=&#34;color:#666&#34;&gt;4785&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;3092&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;4220&lt;/span&gt;,         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Memphis&amp;#34;&lt;/span&gt;,    &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;male&amp;#34;&lt;/span&gt;,   &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;,      &lt;span style=&#34;color:#666&#34;&gt;3349&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;4186&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;4454&lt;/span&gt;,         
  &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Norma Jean&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;female&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;,      &lt;span style=&#34;color:#666&#34;&gt;4235&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;3220&lt;/span&gt;,         &lt;span style=&#34;color:#666&#34;&gt;4019&lt;/span&gt;        
)

penguins_madeup_wide
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 6
##   name       sex    tap_dance body_mass_1 body_mass_2 body_mass_3
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
## 1 Mumble     male   TRUE             4801        5699        5743
## 2 Gloria     female FALSE            4785        3092        4220
## 3 Memphis    male   FALSE            3349        4186        4454
## 4 Norma Jean female FALSE            4235        3220        4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now suppose we want to create the following visualisation.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index_files/figure-html/unnamed-chunk-4-1.png&#34;
         alt=&#34;Line plot of body mass measurements, where each measurement is represented by a point, and measurements from each penguin are connected with a line.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;To make this visualisation we need to get our data frame to look like the output shown below, where each point plotted corresponds to one row of the data frame and body mass measurements appear in a single column with a new columns (&lt;code&gt;measurement&lt;/code&gt;) identifying which of the three measurements the record comes from.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    name       sex    tap_dance measurement body_mass
##    &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;     &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;
##  1 Mumble     male   TRUE      1                4801
##  2 Mumble     male   TRUE      2                5699
##  3 Mumble     male   TRUE      3                5743
##  4 Gloria     female FALSE     1                4785
##  5 Gloria     female FALSE     2                3092
##  6 Gloria     female FALSE     3                4220
##  7 Memphis    male   FALSE     1                3349
##  8 Memphis    male   FALSE     2                4186
##  9 Memphis    male   FALSE     3                4454
## 10 Norma Jean female FALSE     1                4235
## 11 Norma Jean female FALSE     2                3220
## 12 Norma Jean female FALSE     3                4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Previously you might have approached this with the &lt;code&gt;gather()&lt;/code&gt;/&lt;code&gt;spread()&lt;/code&gt; functions. But there is a new pair of much more intuitive functions in town (i.e. in the tidyr package): &lt;code&gt;pivot_wider()&lt;/code&gt; for going from longer to wider data and &lt;code&gt;pivot_longer()&lt;/code&gt; for going from wider to longer data. The following animated visualisation by 
&lt;a href=&#34;https://twitter.com/dataandme/status/1175913657907253254?s=20&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mara Averick&lt;/a&gt; does a fantastic job of visually explaining what we mean by pivoting the longer (or wider).&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&#34;img/tidyr-longer-wider.gif&#34;
         alt=&#34;GIF of data frame going from wider to longer and longer to wider.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Before embarking in the code, it&amp;rsquo;s useful to ask questions about what the expected output will look like in terms or number of rows and columns, e.g. &lt;em&gt;&amp;ldquo;If the long data will have a row for each penguin/measurement combination, and there are 4 penguins and 3 measurements for each, how many rows will the desired data frame have?&amp;quot;&lt;/em&gt;. Having some expectation about what the output of a function will look like is good practice to instil in students.&lt;/p&gt;
&lt;p&gt;In this case we want to go from a wider data frame (with more columns) to a longer data frame (with fewer columns, and more rows), so we will use the &lt;code&gt;pivot_longer()&lt;/code&gt; function. We need to tell the function, at a minimum,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;which columns to pivot: any column that starts with the character string &lt;code&gt;&amp;quot;body_mass&amp;quot;&lt;/code&gt;,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;what the name of the new variable where we put the &lt;em&gt;names&lt;/em&gt; of the variables that are being pivoted should go to: &lt;code&gt;names_to = &amp;quot;measurement&amp;quot;&lt;/code&gt;, and&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;what the name of the new variable where the &lt;em&gt;values&lt;/em&gt; of the the variables that are being pivoted should go to: &lt;code&gt;values_to = &amp;quot;body_mass&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;pivot_longer&lt;/span&gt;(
    cols &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;),
    names_to &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;measurement&amp;#34;&lt;/span&gt;,
    values_to &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    name       sex    tap_dance measurement body_mass
##    &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;     &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;
##  1 Mumble     male   TRUE      body_mass_1      4801
##  2 Mumble     male   TRUE      body_mass_2      5699
##  3 Mumble     male   TRUE      body_mass_3      5743
##  4 Gloria     female FALSE     body_mass_1      4785
##  5 Gloria     female FALSE     body_mass_2      3092
##  6 Gloria     female FALSE     body_mass_3      4220
##  7 Memphis    male   FALSE     body_mass_1      3349
##  8 Memphis    male   FALSE     body_mass_2      4186
##  9 Memphis    male   FALSE     body_mass_3      4454
## 10 Norma Jean female FALSE     body_mass_1      4235
## 11 Norma Jean female FALSE     body_mass_2      3220
## 12 Norma Jean female FALSE     body_mass_3      4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is looking pretty good! But remember that the &lt;code&gt;measurement&lt;/code&gt; variable we had mapped to the x-axis of our visualisation had the values 1, 2, and 3 (not &lt;code&gt;body_mass_1&lt;/code&gt;, &lt;code&gt;body_mass_2&lt;/code&gt;, and &lt;code&gt;body_mass_3&lt;/code&gt;). We could manipulate the &lt;code&gt;measurement&lt;/code&gt; variable with a &lt;code&gt;mutate()&lt;/code&gt; after pivoting to remove the character string &lt;code&gt;&amp;quot;body_mass_&amp;quot;&lt;/code&gt; from its values, but the &lt;code&gt;pivot_*()&lt;/code&gt; functions offer additional arguments to do this sort of manipulation task at the time of pivoting. The argument we need here is &lt;code&gt;names_prefix&lt;/code&gt;, which takes a regular expression used to remove matching text from the start of each variable name. So, let&amp;rsquo;s try again with this argument added to our &lt;code&gt;pivot_longer()&lt;/code&gt; call.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_long &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;pivot_longer&lt;/span&gt;(
    cols &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;),
    names_to &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;measurement&amp;#34;&lt;/span&gt;,
    names_prefix &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass_&amp;#34;&lt;/span&gt;,
    values_to &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;
  )

penguins_madeup_long
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 12 x 5
##    name       sex    tap_dance measurement body_mass
##    &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;     &amp;lt;chr&amp;gt;           &amp;lt;dbl&amp;gt;
##  1 Mumble     male   TRUE      1                4801
##  2 Mumble     male   TRUE      2                5699
##  3 Mumble     male   TRUE      3                5743
##  4 Gloria     female FALSE     1                4785
##  5 Gloria     female FALSE     2                3092
##  6 Gloria     female FALSE     3                4220
##  7 Memphis    male   FALSE     1                3349
##  8 Memphis    male   FALSE     2                4186
##  9 Memphis    male   FALSE     3                4454
## 10 Norma Jean female FALSE     1                4235
## 11 Norma Jean female FALSE     2                3220
## 12 Norma Jean female FALSE     3                4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I think the best place to get started with the &lt;code&gt;pivot_*()&lt;/code&gt; functions is the 
&lt;a href=&#34;https://tidyr.tidyverse.org/articles/pivot.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pivoting vignette&lt;/a&gt; in the tidyr package. This vignette includes both simple examples for doing the bare minimum when pivoting and more extensive examples that use most or all of the arguments that the pivoting functions offer.&lt;/p&gt;
&lt;p&gt;Now that we have the data in the shape we want, we can recreate our visualisation.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_long &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; measurement, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass, 
             group &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name, color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_line&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index_files/figure-html/unnamed-chunk-9-1.png&#34;
         alt=&#34;Line plot of body mass measurements, where each measurement is represented by a point, and measurements from each penguin are connected with a line.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Looking good, though not ideal&amp;hellip; Remember 
&lt;a href=&#34;https://gist.github.com/jennybc/847c6b43c4e35cec2e5bb30a3f38af73&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the tip&lt;/a&gt; from the previous post in the series about reordering your legend in the same order as the data appears on your plot using &lt;code&gt;fct_reorder2()&lt;/code&gt;? It would be a useful addition here.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_long &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(name &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;fct_reorder2&lt;/span&gt;(name, measurement, body_mass)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; measurement, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass, 
             group &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name, color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_line&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index_files/figure-html/unnamed-chunk-10-1.png&#34;
         alt=&#34;Line plot of body mass measurements, where each measurement is represented by a point, and measurements from each penguin are connected with a line, and the legend is ordered according to the heights of lines in the plot.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;If you wanted to get really fancy, you can do directly label the lines with the the &lt;code&gt;geom_label_repel()&lt;/code&gt; function from the 
&lt;a href=&#34;https://ggrepel.slowkow.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggrepel&lt;/a&gt; package. Since we only want the third measurement to be labeled, we can filter the data for that measurement and label the points with the &lt;code&gt;name&lt;/code&gt;s of penguins. While we&amp;rsquo;re at it, let&amp;rsquo;s fix up all the other labels in the plot as well.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(ggrepel)

&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins_madeup_long, 
       &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; measurement, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass, group &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name, color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_line&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;guides&lt;/span&gt;(color &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_label_repel&lt;/span&gt;(data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; penguins_madeup_long &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;filter&lt;/span&gt;(measurement &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;3&lt;/span&gt;),
                   &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(label &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; name)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;labs&lt;/span&gt;(
    x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Measurement&amp;#34;&lt;/span&gt;,
    y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Body mass (g)&amp;#34;&lt;/span&gt;,
    title &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Body mass measurements of penguins&amp;#34;&lt;/span&gt;,
    subtitle &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Simulated data&amp;#34;&lt;/span&gt;,
    caption &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Do you recognize the names of these penguins? 
&lt;/span&gt;&lt;span style=&#34;color:#ba2121&#34;&gt;    See imdb.com/title/tt0366548 for a hint!&amp;#34;&lt;/span&gt;
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-17-teaching-the-tidyverse-in-2020-part-3-data-wrangling-and-tidying/index_files/figure-html/unnamed-chunk-11-1.png&#34;
         alt=&#34;Line plot of body mass measurements, where each measurement is represented by a point, and measurements from each penguin are connected with a line, and each penguin&amp;#39;s name is directly labelled on the plot.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;This has quickly turned into a lesson on data visualisation, and that is a good lesson in and of itself &amp;ndash; if you start teaching R and data science with data visualisation, which is the starting point I strongly recommend, you shouldn&amp;rsquo;t feel like you need to cover all of data visualisation before you can move on to the next topic. Often times getting your data visualisation to look a certain way is a great motivator for data wrangling and reshaping, which means that after an initial introduction to plotting basics, your data visualisation and wrangling lessons can be intertwined for a more problem-based approach to teaching.&lt;/p&gt;




&lt;h2 id=&#34;column-wise-operations&#34;&gt;Column-wise operations
  &lt;a href=&#34;#column-wise-operations&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s revisit our wide penguin measurements dataset.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 6
##   name       sex    tap_dance body_mass_1 body_mass_2 body_mass_3
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
## 1 Mumble     male   TRUE             4801        5699        5743
## 2 Gloria     female FALSE            4785        3092        4220
## 3 Memphis    male   FALSE            3349        4186        4454
## 4 Norma Jean female FALSE            4235        3220        4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Suppose you want to find the average body mass for each measurement. You can do this with &lt;code&gt;dplyr::summarise()&lt;/code&gt;, once per each measurement.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(
    body_mass_1_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass_1),
    body_mass_2_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass_2),
    body_mass_3_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass_3)
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 1 x 3
##   body_mass_1_avg body_mass_2_avg body_mass_3_avg
##             &amp;lt;dbl&amp;gt;           &amp;lt;dbl&amp;gt;           &amp;lt;dbl&amp;gt;
## 1           4292.           4049.            4609
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But that&amp;rsquo;s quite tedious, especially if you had many columns you wanted to operate on. A new addition to dplyr is the &lt;code&gt;across()&lt;/code&gt; function which makes it easy to apply the same transformation to multiple columns, allowing you to use &lt;code&gt;select()&lt;/code&gt;semantics (e.g. &lt;code&gt;starts_with()&lt;/code&gt;, &lt;code&gt;contains()&lt;/code&gt;) inside &lt;code&gt;summarise()&lt;/code&gt; and &lt;code&gt;mutate()&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;), mean))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 1 x 3
##   body_mass_1 body_mass_2 body_mass_3
##         &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
## 1       4292.       4049.        4609
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A common task in data exploration is finding means and standard deviations for many columns at once. You can use &lt;code&gt;summarise()&lt;/code&gt; along with &lt;code&gt;across()&lt;/code&gt; to calculate multiple summary statistics at once as well.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(
    sample_mean &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;), mean),
    sample_sd   &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;), sd),
    )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 1 x 2
##   sample_mean$bod… $body_mass_2 $body_mass_3 sample_sd$body_… $body_mass_2
##              &amp;lt;dbl&amp;gt;        &amp;lt;dbl&amp;gt;        &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;        &amp;lt;dbl&amp;gt;
## 1            4292.        4049.         4609             682.        1203.
## # … with 1 more variable: $body_mass_3 &amp;lt;dbl&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that I named my summary statistics with the prefix &lt;code&gt;sample_&lt;/code&gt; to distinguish them from the functions &lt;code&gt;mean&lt;/code&gt; and &lt;code&gt;sd&lt;/code&gt;. I think avoiding names that are also functions is useful for new learners, it helps them distinguish what is user input vs. what is R syntax. Unfortunately, sometimes this results in longer than desirable output.&lt;/p&gt;
&lt;p&gt;While the code above makes it very explicit that you&amp;rsquo;re calculating two summary statistics, it is a bit repetitive and would look quite cluttered if you had to calculate many more summary statistics. Instead, you can give the functions to be applied across the columns as a named list.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;across&lt;/span&gt;(
    &lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;),
    &lt;span style=&#34;color:#00f&#34;&gt;list&lt;/span&gt;(sample_mean &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; mean, sample_sd &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; sd)
  ))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 1 x 6
##   body_mass_1_sam… body_mass_1_sam… body_mass_2_sam… body_mass_2_sam…
##              &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;            &amp;lt;dbl&amp;gt;
## 1            4292.             682.            4049.            1203.
## # … with 2 more variables: body_mass_3_sample_mean &amp;lt;dbl&amp;gt;,
## #   body_mass_3_sample_sd &amp;lt;dbl&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A nice data wrangling exercise to give students at this point would be to reshape this output to look like the following.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 3 x 3
##   measurement sample_mean sample_sd
##   &amp;lt;chr&amp;gt;             &amp;lt;dbl&amp;gt;     &amp;lt;dbl&amp;gt;
## 1 1                 4292.      682.
## 2 2                 4049.     1203.
## 3 3                 4609       777.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can also use &lt;code&gt;across()&lt;/code&gt; along with &lt;code&gt;mutate()&lt;/code&gt;. Remember that &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;sex&lt;/code&gt; variables were characters. Suppose we want to convert both of them to factors.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;where&lt;/span&gt;(is.character), as.factor))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 6
##   name       sex    tap_dance body_mass_1 body_mass_2 body_mass_3
##   &amp;lt;fct&amp;gt;      &amp;lt;fct&amp;gt;  &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
## 1 Mumble     male   TRUE             4801        5699        5743
## 2 Gloria     female FALSE            4785        3092        4220
## 3 Memphis    male   FALSE            3349        4186        4454
## 4 Norma Jean female FALSE            4235        3220        4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that &lt;code&gt;across()&lt;/code&gt; supersedes the family of &lt;em&gt;scoped variants&lt;/em&gt; like &lt;code&gt;summarise_if()&lt;/code&gt;, &lt;code&gt;mutate_if()&lt;/code&gt;, &lt;code&gt;summarise_all()&lt;/code&gt;, etc. While these functions will continue to be supported, if you are teaching data wrangling in 2020, it&amp;rsquo;s best to feature &lt;code&gt;across()&lt;/code&gt; instead. You can learn more about &lt;code&gt;across()&lt;/code&gt; and column-wise operations with dyplyr in general in the 
&lt;a href=&#34;https://dplyr.tidyverse.org/articles/colwise.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;column-wise operations&lt;/a&gt; vignette.&lt;/p&gt;




&lt;h2 id=&#34;row-wise-operations&#34;&gt;Row-wise operations
  &lt;a href=&#34;#row-wise-operations&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A common data preparation task where multiple measurements have been taken on a subject is averaging these measurements. In the example we&amp;rsquo;ve been working with, this would mean averaging the three body mass measurements for each penguin and reporting this as an additional column in the data frame.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 6
##   name       sex    tap_dance body_mass_1 body_mass_2 body_mass_3
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;
## 1 Mumble     male   TRUE             4801        5699        5743
## 2 Gloria     female FALSE            4785        3092        4220
## 3 Memphis    male   FALSE            3349        4186        4454
## 4 Norma Jean female FALSE            4235        3220        4019
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;There are 
&lt;a href=&#34;http://github.com/jennybc/row-oriented-workflows&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;many ways&lt;/a&gt; of accomplishing this task in R, but the one that I think is the most intuitive is using the &lt;code&gt;rowwise()&lt;/code&gt; and &lt;code&gt;c_across()&lt;/code&gt; functions in dplyr.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;rowwise&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(body_mass_avg &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;c_across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;))))

penguins_madeup_wide
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 7
## # Rowwise: 
##   name       sex    tap_dance body_mass_1 body_mass_2 body_mass_3 body_mass_avg
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;
## 1 Mumble     male   TRUE             4801        5699        5743         5414.
## 2 Gloria     female FALSE            4785        3092        4220         4032.
## 3 Memphis    male   FALSE            3349        4186        4454         3996.
## 4 Norma Jean female FALSE            4235        3220        4019         3825.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;There are other ways of finding row means in R, e.g. &lt;code&gt;rowMeans()&lt;/code&gt;, but one nice aspect of this approach is that it&amp;rsquo;s extensible to any function, e.g. let&amp;rsquo;s find row medians instead of row means.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;rowwise&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(body_mass_median &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;median&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;c_across&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;starts_with&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;body_mass&amp;#34;&lt;/span&gt;))))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 4 x 8
## # Rowwise: 
##   name  sex   tap_dance body_mass_1 body_mass_2 body_mass_3 body_mass_avg
##   &amp;lt;chr&amp;gt; &amp;lt;chr&amp;gt; &amp;lt;lgl&amp;gt;           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;
## 1 Mumb… male  TRUE             4801        5699        5743         5414.
## 2 Glor… fema… FALSE            4785        3092        4220         4032.
## 3 Memp… male  FALSE            3349        4186        4454         3996.
## 4 Norm… fema… FALSE            4235        3220        4019         3825.
## # … with 1 more variable: body_mass_median &amp;lt;dbl&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can learn more about &lt;code&gt;rowwise()&lt;/code&gt; and row-wise operations with dyplyr in general in the 
&lt;a href=&#34;https://dplyr.tidyverse.org/articles/rowwise.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;row-wise operations&lt;/a&gt; vignette.&lt;/p&gt;




&lt;h2 id=&#34;grouped-summaries&#34;&gt;Grouped summaries
  &lt;a href=&#34;#grouped-summaries&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;One of the most attractive features of dplyr is easily obtaining grouped summaries by chaining together &lt;code&gt;group_by()&lt;/code&gt; and then &lt;code&gt;summarise()&lt;/code&gt;. Let&amp;rsquo;s use this workflow to calculate average body masses by sex and by whether or not the penguin tap dances (ok, this is not going to make sense if you haven&amp;rsquo;t seen 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Happy_Feet&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Happy Feet&lt;/a&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;group_by&lt;/span&gt;(sex, tap_dance) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(avg_bm &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass_avg))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## `summarise()` regrouping output by &#39;sex&#39; (override with `.groups` argument)
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 3 x 3
## # Groups:   sex [2]
##   sex    tap_dance avg_bm
##   &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;      &amp;lt;dbl&amp;gt;
## 1 female FALSE      3928.
## 2 male   FALSE      3996.
## 3 male   TRUE       5414.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;There is nothing new in this code, but the message &amp;quot;&lt;em&gt;&lt;code&gt;summarise()&lt;/code&gt; regrouping output by &lt;code&gt;sex&lt;/code&gt; (override with &lt;code&gt;.groups&lt;/code&gt; argument)&amp;quot;&lt;/em&gt; is new, so you might have code in your teaching materials that didn&amp;rsquo;t produce this message before that now does. If you carefully look at the output you will see that the data are still grouped by &lt;code&gt;sex&lt;/code&gt;. This behaviour has not changed, but previously wasn&amp;rsquo;t highlighted with a message, which often caused confusion for users. If you want to turn off the message, you need to decide on grouping behaviour and explicitly state this decision in a new argument in &lt;code&gt;summarise()&lt;/code&gt;: &lt;code&gt;.groups&lt;/code&gt;. Your options are &lt;code&gt;&amp;quot;drop_last&amp;quot;&lt;/code&gt; (drop last level of grouping, default behaviour), &lt;code&gt;&amp;quot;drop&amp;quot;&lt;/code&gt; (all groups are dropped), &lt;code&gt;&amp;quot;keep&amp;quot;&lt;/code&gt; (keep grouping same as the input data for the function), &lt;code&gt;&amp;quot;rowwise&amp;quot;&lt;/code&gt; (make each row its own group). For example, if you don&amp;rsquo;t want your data to be grouped at the end of this pipeline, you would used the &lt;code&gt;&amp;quot;drop&amp;quot;&lt;/code&gt; option.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins_madeup_wide &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;group_by&lt;/span&gt;(sex, tap_dance) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;summarise&lt;/span&gt;(avg_bm &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;mean&lt;/span&gt;(body_mass_avg), .groups &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;drop&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 3 x 3
##   sex    tap_dance avg_bm
##   &amp;lt;chr&amp;gt;  &amp;lt;lgl&amp;gt;      &amp;lt;dbl&amp;gt;
## 1 female FALSE      3928.
## 2 male   FALSE      3996.
## 3 male   TRUE       5414.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To learn more about this behaviour and the reasoning behind the changes, see 
&lt;a href=&#34;https://www.tidyverse.org/blog/2020/05/dplyr-1-0-0-last-minute-additions/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. If you are teaching new R users, I don&amp;rsquo;t think there is a good reason to go into the history of the message, and hopefully this message will steer new learners to be deliberate about how they use groups, as opposed to stumble into results without intentional grouping.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s all I have on teaching data wrangling and tidying in 2020. We have one post left in the series: &amp;ldquo;When to purr?&amp;rdquo; 🐈.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teaching the Tidyverse in 2020 - Part 2: Data visualisation</title>
      <link>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-2-data-visualisation/</link>
      <pubDate>Wed, 15 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-2-data-visualisation/</guid>
      <description>&lt;p&gt;This is the second blog post in the &amp;ldquo;Teaching the Tidyverse in 2020&amp;rdquo; series. The first post was on 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-1-getting-started/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;getting started&lt;/a&gt;, and today our focus is data visualisation. In this post, I&amp;rsquo;ll highlight some new(ish) features of 
&lt;a href=&#34;https://ggplot2.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggplot2&lt;/a&gt; as well as not-so-new features that I see rarely in introductory teaching materials that I think belong there.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start by loading the tidyverse and 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;palmerpenguins&lt;/a&gt; packages.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(palmerpenguins)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We&amp;rsquo;ll be using the &lt;code&gt;penguins&lt;/code&gt; data from the palmerpenguins package. You can read about the variables in the data frame 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/reference/penguins.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and a quick peek is provided below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;glimpse&lt;/span&gt;(penguins)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Rows: 344
## Columns: 7
## $ species           &amp;lt;fct&amp;gt; Adelie, Adelie, Adelie, Adelie, Adelie, Adelie, Ade…
## $ island            &amp;lt;fct&amp;gt; Torgersen, Torgersen, Torgersen, Torgersen, Torgers…
## $ bill_length_mm    &amp;lt;dbl&amp;gt; 39.1, 39.5, 40.3, NA, 36.7, 39.3, 38.9, 39.2, 34.1,…
## $ bill_depth_mm     &amp;lt;dbl&amp;gt; 18.7, 17.4, 18.0, NA, 19.3, 20.6, 17.8, 19.6, 18.1,…
## $ flipper_length_mm &amp;lt;int&amp;gt; 181, 186, 195, NA, 193, 190, 181, 195, 193, 190, 18…
## $ body_mass_g       &amp;lt;int&amp;gt; 3750, 3800, 3250, NA, 3450, 3650, 3625, 4675, 3475,…
## $ sex               &amp;lt;fct&amp;gt; male, female, female, NA, female, male, female, mal…
&lt;/code&gt;&lt;/pre&gt;



&lt;h2 id=&#34;making-a-single-box&#34;&gt;Making a single box
  &lt;a href=&#34;#making-a-single-box&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;At some point in ggplot2 history, making a box plot of a single variable required adding &lt;code&gt;factor = 1&lt;/code&gt; to the aesthetic mapping, which I never found to be easy to explain.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass_g, factor &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_boxplot&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/boxplot-old-1.png&#34;
         alt=&#34;Boxplot of body mass of penguins, using factor = 1 in the code.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;You can now (or more like for the 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/issues/2110&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;last couple years&lt;/a&gt;!) omit &lt;code&gt;factor = 1&lt;/code&gt;!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; body_mass_g)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_boxplot&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/boxplot-new-1.png&#34;
         alt=&#34;Boxplot of body mass of penguins, without using factor = 1 in the code. Same figure as the previous one, despite simpler code.&#34;/&gt; 
&lt;/figure&gt;





&lt;h2 id=&#34;no-more-coord_flip&#34;&gt;No more &lt;code&gt;coord_flip()&lt;/code&gt;
  &lt;a href=&#34;#no-more-coord_flip&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Horizontal bar plots can be really useful, especially for categorical data whose levels have long names that overlap if placed on the x-axis. Previously, making horizontal bar plots required mapping the variable to be plotted to the &lt;code&gt;x&lt;/code&gt; aesthetic and then applying a &lt;code&gt;coord_flip()&lt;/code&gt; layer to flip the axes, e.g.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_bar&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;coord_flip&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-bar-coord-flip-1.png&#34;
         alt=&#34;Barplot of species of penguins, using coord_flip in the code.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;&lt;code&gt;geom_bar()&lt;/code&gt; now works in both directions, so the categorical variable can be directly mapped to the &lt;code&gt;y&lt;/code&gt; aesthetic to achieve the horizontal box plot.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(penguins, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_bar&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-bar-1.png&#34;
         alt=&#34;Barplot of species of penguins, without using coord_flip in the code. Same figure as the previous one, despite simpler code.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;You can read more about what this change enables in other geoms 
&lt;a href=&#34;https://www.tidyverse.org/blog/2020/03/ggplot2-3-3-0/#bi-directional-geoms-and-stats&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;leverage-scales-and-forcats&#34;&gt;Leverage scales and forcats
  &lt;a href=&#34;#leverage-scales-and-forcats&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;One of the biggest strengths of ggplot2 is that it has fantastic defaults and your plots look pretty good without trying hard. This is very attractive especially for teaching introductory audiences when you just want to focus on the basics. However, when teaching data visualisation (even in the simplest sense) it is important to discuss data visualisation good practices, e.g. present data in ascending/descending order, label axes in a way that matches your narrative, etc. Packages like 
&lt;a href=&#34;http://scales.r-lib.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;scales&lt;/a&gt; and 
&lt;a href=&#34;https://forcats.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;forcats&lt;/a&gt; are incredibly helpful for implementing these small but impactful improvements to visualisations.&lt;/p&gt;
&lt;p&gt;Suppose we want to plot the percentage distribution of different species of penguins. We can first calculate these percentages in a dplyr pipeline.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;count&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(prop &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; n &lt;span style=&#34;color:#666&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(n))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 3 x 3
##   species       n  prop
##   &amp;lt;fct&amp;gt;     &amp;lt;int&amp;gt; &amp;lt;dbl&amp;gt;
## 1 Adelie      152 0.442
## 2 Chinstrap    68 0.198
## 3 Gentoo      124 0.360
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We can then feed the result to the &lt;code&gt;ggplot()&lt;/code&gt; function to be represented using &lt;code&gt;geom_col()&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;count&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(prop &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; n &lt;span style=&#34;color:#666&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(n)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; prop, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; species)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_col&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-props-bar-1.png&#34;
         alt=&#34;Relative frequency bar plot of species of penguins.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;First, let&amp;rsquo;s reorder the bars in descending order, with the penguin species with the highest proportion on top. We use &lt;code&gt;fct_reorder()&lt;/code&gt; function from the forcats package for this. We can read &lt;code&gt;fct_reorder(species, prop)&lt;/code&gt; as &amp;ldquo;reorder the levels of &lt;code&gt;species&lt;/code&gt; based on the values of &lt;code&gt;prop&lt;/code&gt;&amp;rdquo;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;count&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(prop &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; n &lt;span style=&#34;color:#666&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(n)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; prop, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;fct_reorder&lt;/span&gt;(species, prop))) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_col&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-props-bar-reorder-1.png&#34;
         alt=&#34;Relative frequency bar plot of species of penguins, with bars ordered in descending order.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;The forcats package contains a 
&lt;a href=&#34;https://forcats.tidyverse.org/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;variety of functions&lt;/a&gt; starting with the prefix &lt;code&gt;fct_&lt;/code&gt; that operate on factor levels. Perhaps unsurprisingly, they&amp;rsquo;re named pretty intuitively (at least for English speakers). (Side note: After &lt;code&gt;fct_reorder()&lt;/code&gt;, my favourite function for improving visualisations of messy survey data with factors with &lt;em&gt;many&lt;/em&gt; levels is 
&lt;a href=&#34;https://forcats.tidyverse.org/reference/fct_lump.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;fct_lump()&lt;/code&gt;&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Next, let&amp;rsquo;s think about how we would interpret this visualisation. I would probably say something like &amp;ldquo;Adelie penguins make up over 40% of the sample, followed by Gentoo penguins at roughly over 35%, and Chinstrap penguins make up the remaining 20%&amp;quot;. But the x-axis is showing proportions instead of percentages.&lt;/p&gt;
&lt;p&gt;The scales package offers a 
&lt;a href=&#34;https://scales.r-lib.org/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;variety of functions&lt;/a&gt;, starting with the prefix &lt;code&gt;label_*&lt;/code&gt; that help with this sort of task.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(scales)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The function we want here is &lt;code&gt;label_percent()&lt;/code&gt;. We can also specify the number of decimal places to show with the &lt;code&gt;accuracy&lt;/code&gt; argument.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;count&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(prop &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; n &lt;span style=&#34;color:#666&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(n)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; prop, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;fct_reorder&lt;/span&gt;(species, prop))) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_col&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_x_continuous&lt;/span&gt;(labels &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;label_percent&lt;/span&gt;(accuracy &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-props-bar-reorder-percent-1.png&#34;
         alt=&#34;Relative frequency bar plot of species of penguins, with bars ordered in descending order, and axis tick labels are in percentages.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;And finally, let&amp;rsquo;s fix up the axis labels.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;count&lt;/span&gt;(species) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(prop &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; n &lt;span style=&#34;color:#666&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;sum&lt;/span&gt;(n)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; prop, y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;fct_reorder&lt;/span&gt;(species, prop))) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_col&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_x_continuous&lt;/span&gt;(labels &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;label_percent&lt;/span&gt;(accuracy &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;labs&lt;/span&gt;(
    x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Percentage&amp;#34;&lt;/span&gt;,
    y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Species&amp;#34;&lt;/span&gt;,
    title &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Species distribution of penguins&amp;#34;&lt;/span&gt;,
    subtitle &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Adelie, Gentoo, and Chinstrap Penguins at Palmer Station LTER&amp;#34;&lt;/span&gt;,
    caption &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Source: allisonhorst.github.io/palmerpenguins&amp;#34;&lt;/span&gt;
  )
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;
    &lt;img src=&#34;https://education.rstudio.com/blog/2020-07-15-teaching-the-tidyverse-in-2020-part-2-data-visualisation/index_files/figure-html/penguins-species-props-bar-reorder-percent-labels-1.png&#34;
         alt=&#34;Relative frequency bar plot of species of penguins, with bars ordered in descending order, axis tick labels are in percentages, and with proper axis labels.&#34;/&gt; 
&lt;/figure&gt;

&lt;p&gt;Another very attractive feature of ggplot2 is that you get legends for free. But sometimes the factor levels displayed in the legends may not be optimally ordered. In these cases &lt;code&gt;fct_reorder2()&lt;/code&gt; might be helpful. See 
&lt;a href=&#34;https://gist.github.com/jennybc/847c6b43c4e35cec2e5bb30a3f38af73&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this gist&lt;/a&gt; from Jenny Bryan for an example using this function to reorder levels displayed on a legend of a line plot.&lt;/p&gt;
&lt;p&gt;ggplot2 is a vast package, and I don&amp;rsquo;t think it&amp;rsquo;s feasible to teach the complete functionality of the package within an intro stats or data science curriculum. That being said, I think it is important to not just teach how to make plots, but how to make good plots that follow data visualisation best practices. Leveraging packages like forcats and scales allows you to do that without adding too much cognitive burden on the learners.&lt;/p&gt;




&lt;h2 id=&#34;the-rest-of-the-gg-verse&#34;&gt;The rest of the gg-verse
  &lt;a href=&#34;#the-rest-of-the-gg-verse&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;There are many packages that extend ggplot2 (e.g. 
&lt;a href=&#34;https://gganimate.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gganimate&lt;/a&gt;, 
&lt;a href=&#34;https://wilkelab.org/ggridges/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggridges&lt;/a&gt;, 
&lt;a href=&#34;https://ggrepel.slowkow.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggrepel&lt;/a&gt;, 
&lt;a href=&#34;https://ggobi.github.io/ggally/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GGally&lt;/a&gt;) and just like it&amp;rsquo;s not possible to cover all of ggplot2 in an intro course, it&amp;rsquo;s definitely not possible to cover the entire gg-verse. However, it is useful to introduce your students to some of these packages so they are aware of the existence of the larger ecosystem.&lt;/p&gt;
&lt;p&gt;A particularly good place to start is when you find a pain point with ggplot2 and the solution is using one of these other packages (e.g. ggrepel for labelling data points on a plot without overlapping text).&lt;/p&gt;
&lt;p&gt;Another good approach for introducing these packages are assignments where students independently explore packages you haven&amp;rsquo;t explicitly taught them. I like doing this using the following two assignments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;You gotta pick a package or two:&lt;/strong&gt; Provide a list of fun and/or easy to onboard packages and ask students to read the package documentation and use the package to do something.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mirror, mirror on the wall, who&amp;rsquo;s the ugliest of them all?&lt;/strong&gt; I got the idea for this assignment Give a simple plot and ask students to make the plot as ugly as possible. I like doing this with a disclaimer that says &amp;ldquo;&lt;em&gt;I realize that ugly is subjective, so we&amp;rsquo;re mostly looking to see if you can figure out how to change the look of a plot using help files of functions you haven&amp;rsquo;t learned before. As you do, try to make your plot as visually unappealing as possible.&lt;/em&gt;&amp;ldquo;I got the idea for this assignment from Drew Steen, who shared 
&lt;a href=&#34;https://twitter.com/biogeobiochem/status/1172547837046820864&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;on Twitter&lt;/a&gt; sample student plots that are, well, awful, in the best way possible. Alison Horst also has a lovely blog post where she shares her experience with a similar assignment 
&lt;a href=&#34;https://www.allisonhorst.com/post/do-your-worst/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find a more detailed write up of these assignments 
&lt;a href=&#34;https://introds.org/hw/hw-10/hw-10-wrap-up.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it for today, next up on the &amp;ldquo;Teaching the Tidyverse in 2020&amp;rdquo; series is data wrangling and tidying.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Upcoming changes to RStudio Cloud pricing</title>
      <link>https://education.rstudio.com/blog/2020/07/cloud-plans/</link>
      <pubDate>Tue, 14 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/cloud-plans/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;RStudio Cloud spans across multiple teams at RStudio, so this is a joint post from the RStudio education, marketing, and Cloud teams.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After an extensive alpha/beta period, 
&lt;a href=&#34;https://rstudio.com/products/cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt; will be generally available for use and purchase in the fall. If you are not familiar with 
&lt;a href=&#34;https://rstudio.com/products/cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt;, it is a managed cloud instance of the RStudio IDE. For educators, this means you and your learners can use the RStudio IDE directly from your browser - there is no software to install and nothing to configure on your computer.&lt;/p&gt;
&lt;p&gt;While RStudio Cloud will always offer a free plan for individuals, beginning August 3, 2020, we will also offer paid premium plans for individuals, instructors, and organizations. At RStudio, we&amp;rsquo;re committed to supporting educators using R. That is why we offer 
&lt;a href=&#34;https://education.rstudio.com/teach/tools/#computing-infrastructure&#34;&gt;our professional products&lt;/a&gt;  for free. We&amp;rsquo;d love to also make RStudio Cloud free for everyone, but unfortunately RStudio Cloud is fundamentally different from our other professional products because it is not just software, but also computing. During the beta period, we provided 3.5 million hours of compute time for free. Unfortunately, we just can&amp;rsquo;t afford to keep doing that — we need to cover our ongoing hosting costs so that we can continue to offer the service. In short: the fees help us offset the cost of operating the service, and enable us to continue to provide a free plan for individuals.&lt;/p&gt;




&lt;h2 id=&#34;teachers&#34;&gt;What are my options for teaching?
  &lt;a href=&#34;#teachers&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The monthly pricing plans are available at &lt;a href=&#34;https://rstudio.cloud/plans/&#34;&gt;https://rstudio.cloud/plans/&lt;/a&gt;. Typically, 
&lt;a href=&#34;#learners&#34;&gt;your learners&lt;/a&gt; will sign up for the 
&lt;a href=&#34;https://rstudio.cloud/plans/free&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Free Plan&lt;/strong&gt;&lt;/a&gt;, and you as an educator will shoulder all the costs for your learners (called &amp;ldquo;members&amp;rdquo; in the plans). Here, we break down your options with a focus on teaching classes or workshops:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://rstudio.cloud/plans/free&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Free Plan&lt;/strong&gt;&lt;/a&gt;: You can have one shared space at a time, with up to 5 learners and up to 15 total projects in the shared space. You &lt;em&gt;and&lt;/em&gt; your learners will need to be able to do all the work in the cloud needed in 15 project hours per month. With the max of 5 learners, this would add up to about 2.5-3 compute hours per person (there are additional restrictions on CPU and RAM). This plan is best-suited for educators who offer short, small group trainings that are spaced a month apart.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The next plan up does not have any restrictions on the number of spaces, learners, or projects, and there is more CPU and RAM available. You do have 160 included project hours to divvy up now between learners instead of 15, although you&amp;rsquo;ll likely need to add even more. Any usage over 160 hours would be added on at 20¢/hour. Pricing for this plan depends on a few factors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you are not a qualified instructor&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; or an 
&lt;a href=&#34;https://education.rstudio.com/trainers&#34;&gt;RStudio Certified Instructor&lt;/a&gt;, this is called a 
&lt;a href=&#34;https://rstudio.cloud/plans/premium&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Premium Plan&lt;/strong&gt;&lt;/a&gt; and starts at \$99/month. However, discounted plans range from \$25-\$50/month, so be sure to check to see if your organization falls into one of the discounted categories listed at the bottom of the plan page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you are a qualified instructor (either teaching at an accredited institution that meets certain qualifications&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, or you are an 
&lt;a href=&#34;https://education.rstudio.com/trainers&#34;&gt;RStudio Certified Instructor&lt;/a&gt;), this is called a 
&lt;a href=&#34;https://rstudio.cloud/plans/instructor&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Instructor Plan&lt;/strong&gt;&lt;/a&gt; and starts at \$15/month.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to avoid overage charges, this plan is probably best-suited for folks who offer single or multi-day workshops about once a month, or educators who want to start off using the Cloud, but then transition learners to working locally inside the RStudio IDE.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://rstudio.cloud/plans/instructor&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Custom Cloud Instructor Plan&lt;/strong&gt;&lt;/a&gt;: If you are teaching multiple workshops in a month or a quarter/semester length course, you are likely looking at burning through those 160 included project hours pretty quickly and are probably worried about racking up overage charges. For example, in a typical 3-credit course, you may expect learners to log upwards of 10 hours per week. This would mean you could only have 4 learners—which is probably not a realistic scenario. If you don&amp;rsquo;t want any surprises, an alternative plan is to sign up for a fixed price per class for both instructors and learners with no usage overage fees. With this plan, you will need to request a quote. Tell us how many learners you will have, and for how long, and we can give you a custom quote for the entire cost.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://rstudio.cloud/plans/organization&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Organization Plan&lt;/strong&gt;&lt;/a&gt;: All of the above options are great for individual educators, but if you are a member of a larger group, an organization plan is a good option for getting Cloud access to a bunch of users within a department, university, or a commercial organization. This plan grants all organization users Cloud Premium features, plus Single Sign On integration via SAML, so that users can log into Cloud using their organization credentials. This plan is also a good option if you would like a site license for your organization. You will also need to request a quote for this plan.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;learners&#34;&gt;What about options for learners?
  &lt;a href=&#34;#learners&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In most cases, your learners can rely on the 
&lt;a href=&#34;https://rstudio.cloud/plans/free&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Cloud Free Plan&lt;/strong&gt;&lt;/a&gt;. If you as the educator opt for any of the paid plans:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Learners work off of project copies in &lt;strong&gt;your&lt;/strong&gt; shared space. When you create a project in your shared space as an assignment, learners make a copy to work from, but the projects stay in the shared space. This means that the limit on the number of projects in the free plan (15) will not kick in &lt;em&gt;unless&lt;/em&gt; a learner manually moves their projects out of the shared space and into their personal space.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Similarly, when learners accumulate project hours, those apply to &lt;strong&gt;your&lt;/strong&gt; shared space. All learner project hours count toward your 160 project hours on a paid plan (unless you are using a 
&lt;a href=&#34;https://rstudio.cloud/plans/instructor&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Custom Cloud Instructor Plan&lt;/strong&gt;&lt;/a&gt;). This means that the limits on the number of project hours in the free plan (15) will not kick in &lt;em&gt;unless&lt;/em&gt; a learner manually moves their projects out of the shared space and into their personal space.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;questions--feedback&#34;&gt;Questions &amp;amp; feedback
  &lt;a href=&#34;#questions--feedback&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;If you have any questions about RStudio Cloud pricing, please contact &lt;a href=&#34;mailto:sales@rstudio.cloud&#34;&gt;&lt;a href=&#34;mailto:sales@rstudio.cloud&#34;&gt;sales@rstudio.cloud&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Visit the RStudio Cloud community page at &lt;a href=&#34;https://community.rstudio.com/c/rstudio-cloud&#34;&gt;https://community.rstudio.com/c/rstudio-cloud&lt;/a&gt; to ask questions, provide feedback, and interact with other RStudio Cloud users.&lt;/p&gt;
&lt;p&gt;Thank you to all members of the R community who have used and provided feedback about RStudio Cloud. We are aware that budgets are very tight, particularly at this time. We will continue to do what we can to make Cloud as affordable as possible for instructional use. We will also continue to add important features and improve performance, reliability, and availability of RStudio Cloud.&lt;/p&gt;
&lt;section class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;To view the list of qualifications, scroll down to bottom of 
&lt;a href=&#34;https://rstudio.cloud/plans/instructor&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this page&lt;/a&gt;. &lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
    </item>
    
    <item>
      <title>Teaching the Tidyverse in 2020 - Part 1: Getting started</title>
      <link>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-1-getting-started/</link>
      <pubDate>Mon, 13 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/teaching-the-tidyverse-in-2020-part-1-getting-started/</guid>
      <description>&lt;p&gt;The &amp;ldquo;official&amp;rdquo; tidyverse has existed 
&lt;a href=&#34;https://twitter.com/hadleywickham/status/959507805282582528?s=20&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;since 2016&lt;/a&gt; but most of its components have a much longer history, for example ggplot2 is the older package and has been around 
&lt;a href=&#34;https://qz.com/1007328/all-hail-ggplot2-the-code-powering-all-those-excellent-charts-is-10-years-old/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;for more than 13 years&lt;/a&gt;!
The tidyverse continues to evolve and some of the recent updates to tidyverse packages are specifically designed to make it easier for new learners to get started with doing data science in R.
Whether you&amp;rsquo;ve been teaching the tidyverse for years or you&amp;rsquo;re new to it, it&amp;rsquo;s useful to periodically catch up with what&amp;rsquo;s new in the tidyverse.&lt;/p&gt;
&lt;p&gt;This week&amp;rsquo;s theme on the blog is &amp;ldquo;teaching the tidyverse in 2020&amp;rdquo; and we will be covering it in four blog posts throughout this week: (1) Getting Started, (2) Data visualisation, (3) Data wrangling and tidying, and (4) When to purrr?&lt;/p&gt;
&lt;p&gt;In each of the posts we will highlight recent updates to the tidyverse that educators might want to have on their radar, sprinkled with suggestions for incorporating them into your teaching.&lt;/p&gt;
&lt;p&gt;A few housekeeping items before we get started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;This series of blog posts, and especially this first one, assumes that you are an educator who is teaching R at the introductory level to students who are new to statistics, data science, R, and/or programming in general.
Some of the tips in the upcoming posts will be useful for more advanced courses as well, but this first post post is, well, exactly as its name suggests, is most useful for audiences that are just getting started.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For many of the code examples I will use the &lt;code&gt;penguins&lt;/code&gt; dataset from the awesome 
&lt;a href=&#34;https://allisonhorst.github.io/palmerpenguins/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;palmerpenguins&lt;/a&gt; package. So let&amp;rsquo;s go ahead and load it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# devtools::install_github(&amp;#34;allisonhorst/palmerpenguins&amp;#34;)&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(palmerpenguins)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s get started!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;So, what is the tidyverse?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The 
&lt;a href=&#34;https://tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse&lt;/a&gt; is an opinionated collection of R packages designed for data science.
All packages share an underlying design philosophy, grammar, and data structures. 
&lt;a href=&#34;https://tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re a tidyverse user and/or an avid reader of this blog, you probably already know this.
But how about your students?
Do these words mean anything to your students the first time they hear them?
How do you introduce your students to the tidyverse, especially if they are also new to R?&lt;/p&gt;




&lt;h2 id=&#34;start-with-the-core-packages&#34;&gt;Start with the core packages
  &lt;a href=&#34;#start-with-the-core-packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Start with the 
&lt;a href=&#34;https://www.tidyverse.org/packages/#core-tidyverse&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;core packages&lt;/a&gt;, by briefly stating the primary purpose of each, in the order that students will encounter them in your course, e.g.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ggplot2&lt;/strong&gt;: data visualisation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dplyr&lt;/strong&gt;: data wrangling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;readr&lt;/strong&gt;: reading data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tibble&lt;/strong&gt;: modern data frames&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;stringr&lt;/strong&gt;: string manipulation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;forcats&lt;/strong&gt;: dealing with factors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tidyr&lt;/strong&gt;: data tidying&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;purrr&lt;/strong&gt;: functional programming&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is the order I recommend and the order that follows the curriculum outlined in 
&lt;a href=&#34;https://datasciencebox.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science in a Box&lt;/a&gt;.
Start with visualisation (ggplot2) and delay introducing functional programming (purrr) until later. (More on why and how to delay introducing purrr in the last post in the series!)&lt;/p&gt;
&lt;p&gt;I like introducing the tidyverse with a visual showcasing the pretty hex logos.
I cannot say that this necessarily adds to student learning, but it sure draws students in!&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;img/tidyverse-packages.png&#34; alt=&#34;Hex logos for the eight core tidyverse packages and their primary purposes.&#34; width=&#34;70%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Hex logos for the eight core tidyverse packages and their primary purposes.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The important thing to note here is that I don&amp;rsquo;t recommend bringing up the 
&lt;a href=&#34;https://www.tidyverse.org/packages/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;non-core packages&lt;/a&gt;, i.e. those installed with the tidyverse, but not loaded along with it.
Regardless of the level at which you&amp;rsquo;re teaching, chances are you won&amp;rsquo;t be using &lt;em&gt;all&lt;/em&gt; of those packages in a single course.
I recommend introducing other packages used in your course (whether they are a part of the tidyverse or not) as they become relevant to the topic you&amp;rsquo;re covering, and simply highlight that the packages from the wider tidyverse share the design philosophy, grammar, and data structures as the core packages, e.g. the 
&lt;a href=&#34;rvest.tidyverse.org&#34;&gt;rvest&lt;/a&gt; package for web scraping plays nicely with pipes.&lt;/p&gt;




&lt;h2 id=&#34;use-librarytidyverse&#34;&gt;Use &lt;code&gt;library(tidyverse)&lt;/code&gt;
  &lt;a href=&#34;#use-librarytidyverse&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Load all packages with &lt;code&gt;library(tidyverse)&lt;/code&gt; instead of loading the core packages individually.
This is especially useful if you are taking the 
&lt;a href=&#34;https://youtu.be/fQ4t7p6ZXDg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;let them eat cake first&amp;rdquo;&lt;/a&gt; approach and presenting interesting and complex examples on day one of the course.
It also means that your students need to only remember the name of one package, as opposed to multiple packages.&lt;/p&gt;
&lt;p&gt;You would, of course, want to mention the names of individual packages that make up the tidyverse as you teach specific topics that are best solved with those packages (e.g. provide a proper introduction to ggplot2 when teaching data visualisation and to stringr when teaching string manipulation) but &lt;code&gt;library(tidyverse)&lt;/code&gt; will allow you to harness all that the tidyverse has to offer at once, without having to provide a lengthy introduction to each package on the first day of class.&lt;/p&gt;
&lt;p&gt;A useful side-effect of this is that you get access to the 
&lt;a href=&#34;https://tidyverse.tidyverse.org/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;few functions in the tidyverse meta package&lt;/a&gt;.
The &lt;code&gt;tidyverse_sitrep()&lt;/code&gt; function (which gives a situation report on the tidyverse packages, i.e. a list of all installed tidyverse packages and their versions) and the &lt;code&gt;tidyverse_update()&lt;/code&gt; function (which updates all tidyverse packages) can be useful when debugging code, especially if a student is getting output that looks different than yours after running the same lines of code.&lt;/p&gt;




&lt;h2 id=&#34;review-the-package-loading-message&#34;&gt;Review the package loading message
  &lt;a href=&#34;#review-the-package-loading-message&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When you load the tidyverse package, it prints out the following message:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## ── Attaching packages ──────────────────────────────────────── tidyverse 1.3.0 ──
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ dplyr   1.0.0
## ✓ tidyr   1.1.0     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## ── Conflicts ─────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I recommend explicitly addressing this message in your teaching.&lt;/p&gt;
&lt;p&gt;I think this is the hardest step of them all, because &lt;em&gt;really&lt;/em&gt; understanding some of this requires understanding package versions, name spaces, and the &lt;code&gt;::&lt;/code&gt; operator, none of which are things I like to get into in the first 10 minutes of a class.
At the same time, ignoring messages/warnings/errors is also not a habit I like to model.&lt;/p&gt;
&lt;p&gt;My suggestion is to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;suppress package loading messages on the first day activity, which is straightforward if students start off with a template R Markdown document that you prepared, where the chunk where you load tidyverse has &lt;code&gt;message = FALSE&lt;/code&gt; set, and then&lt;/li&gt;
&lt;li&gt;starting on the second module/day of class go through what the message means in full, with assurances to students that they don&amp;rsquo;t need to &amp;ldquo;worry&amp;rdquo; about it, but it&amp;rsquo;s worth for them to see it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A good point in the class to come back to this message is when introducing &lt;code&gt;dplyr::filter()&lt;/code&gt;, which tends to be early on in an introductory data science or statistics course.
You can run the &lt;code&gt;filter()&lt;/code&gt; command without loading the tidyverse package and ask students to guess what the error means.&lt;/p&gt;
&lt;p&gt;For example, let&amp;rsquo;s try to filter for penguins whose species is Chinstrap, without loading the tidyverse. And assume for a second that you are running the following code in a fresh R session, prior to loading the tidyverse package.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;filter&lt;/span&gt;(species &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Chinstrap&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Error in filter(., species == &amp;quot;Chinstrap&amp;quot;): object &#39;species&#39; not found
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The error is confusing because we know there is a variable called &lt;code&gt;species&lt;/code&gt; in the &lt;code&gt;penguins&lt;/code&gt; dataset.&lt;/p&gt;
&lt;p&gt;If you have already reviewed the tidyverse package loading message earlier in your class, you can now ask students to guess why they might be getting this error.
This is a good opportunity to review the message and also an opportunity to clarify why it&amp;rsquo;s OK to not worry about the message if what you want to do is to use functions from the tidyverse.&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s try again, this time with the tidyverse package loaded.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidyverse)
penguins &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;filter&lt;/span&gt;(species &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;Chinstrap&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 68 x 7
##    species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g
##    &amp;lt;fct&amp;gt;   &amp;lt;fct&amp;gt;           &amp;lt;dbl&amp;gt;         &amp;lt;dbl&amp;gt;            &amp;lt;int&amp;gt;       &amp;lt;int&amp;gt;
##  1 Chinst… Dream            46.5          17.9              192        3500
##  2 Chinst… Dream            50            19.5              196        3900
##  3 Chinst… Dream            51.3          19.2              193        3650
##  4 Chinst… Dream            45.4          18.7              188        3525
##  5 Chinst… Dream            52.7          19.8              197        3725
##  6 Chinst… Dream            45.2          17.8              198        3950
##  7 Chinst… Dream            46.1          18.2              178        3250
##  8 Chinst… Dream            51.3          18.2              197        3750
##  9 Chinst… Dream            46            18.9              195        4150
## 10 Chinst… Dream            51.3          19.9              198        3700
## # … with 58 more rows, and 1 more variable: sex &amp;lt;fct&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et voilà! This is looking much better.&lt;/p&gt;




&lt;h2 id=&#34;help-them-get-help&#34;&gt;Help them get help
  &lt;a href=&#34;#help-them-get-help&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;



&lt;h3 id=&#34;anatomy-of-r-help-docs&#34;&gt;Anatomy of R help docs
  &lt;a href=&#34;#anatomy-of-r-help-docs&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;R comes with built in help documents.
And they tend to be pretty thorough.
But they are not always easy to digest, especially if you haven&amp;rsquo;t seen them before.
Kieran Healy has a very nice example of an 
&lt;a href=&#34;https://socviz.co/appendix.html#a-little-more-about-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;annotated R help page&lt;/a&gt;.
I strongly recommend showing this, or better yet, a similarly annotated page for the first help document that you show in your class.
It is also useful to tell students not just what&amp;rsquo;s on the help document, but how to read it.
Many R help documents have a lot of technical information between the description and the examples, and usually it&amp;rsquo;s best to look at those two sections first, before diving deeper into the rest of the documentation.
Skipping sections and scrolling to the bottom of the document won&amp;rsquo;t come naturally to your students, it&amp;rsquo;s a behaviour you want to model and narrate a few times, early on in your course.&lt;/p&gt;




&lt;h3 id=&#34;walkthrough-of-package-pages&#34;&gt;Walkthrough of package pages
  &lt;a href=&#34;#walkthrough-of-package-pages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Each tidyverse package has a website at &lt;code&gt;[PKGNAME].tidyverse.org&lt;/code&gt; (e.g. 
&lt;a href=&#34;https://dplyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dplyr.tidyverse.org&lt;/a&gt;, 
&lt;a href=&#34;https://ggplot2.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggplot2.tidyverse.org&lt;/a&gt;).
The functions in each package are in the Reference tab, and this is worth pointing out to new learners.
It is also worth pointing out that while the content of the function documentation on package websites mirrors the content in the help documents you can get in R with &lt;code&gt;?function&lt;/code&gt;, the package website shows the output of the code in the examples.
It can be a lot more efficient (and pleasant) to browse the documentation pages on the web, especially for plotting functions where documentation clearly shows which function you need to use to get your plot to look a certain way.&lt;/p&gt;




&lt;h3 id=&#34;googling-for-help&#34;&gt;Googling for help
  &lt;a href=&#34;#googling-for-help&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Googling how to do something is obvious, but it&amp;rsquo;s not always obvious how best to Google for help.
Appending the search phrase with &amp;ldquo;tidyverse&amp;rdquo; is almost always helpful for tidyverse specific help, but not always obvious to new learners.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;img/tidyverse-google.png&#34; alt=&#34;Search results for &#39;how to make a boxplot in R&#39; with and without &#39;tidyverse&#39; appended to the search phrase.&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Search results for &#39;how to make a boxplot in R&#39; with and without &#39;tidyverse&#39; appended to the search phrase.&lt;/p&gt;
&lt;/div&gt;




&lt;h3 id=&#34;make-time-for-reprex&#34;&gt;Make time for reprex
  &lt;a href=&#34;#make-time-for-reprex&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;What is a reprex?
It’s a &lt;strong&gt;re&lt;/strong&gt;producible &lt;strong&gt;ex&lt;/strong&gt;ample, as coined by Romain Francois.
It&amp;rsquo;s also the name of the 
&lt;a href=&#34;https://reprex.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;package&lt;/a&gt; that creates runnable code and output based on R code on the clipboard.
Teaching your students how to make reprexes will have an immense payoff for them (and for you, as you try to help them).
However making repexes is not trivial for beginners.
It&amp;rsquo;s especially not easy for students learning R starting with an R markdown document as opposed to an R script.
This means you should make time in class to teach how to make a reprex, through live coding demos (or narrated screencasts) a few times.
If you use an online discussion forum for questions (or if your students email their questions to you), you might need to coach them through making reprexes the first few times they try.
Learning how to make a reprex will empower your students to ask good questions, or better yet, help them answer their own questions as they develop the reprex.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;img/tidy-papers.png&#34; align=&#34;right&#34; height=&#34;250&#34; alt=&#34;Screenshots of the two tidyverse papers referenced in text.&#34;&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;provide-background&#34;&gt;Provide background
  &lt;a href=&#34;#provide-background&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I strongly recommend assigning (or at least suggesting) the following papers as reading early on in your course.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wickham, Hadley, et al. 
&lt;a href=&#34;https://joss.theoj.org/papers/10.21105/joss.01686&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Welcome to the Tidyverse.&amp;quot;&lt;/a&gt; Journal of Open Source Software 4.43 (2019): 1686.&lt;/li&gt;
&lt;li&gt;Wickham, Hadley. 
&lt;a href=&#34;https://www.jstatsoft.org/article/view/v059i10&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Tidy data.&amp;quot;&lt;/a&gt; Journal of Statistical Software 59.10 (2014): 1-23.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These papers give insight into the underlying scholarship and the intellectual history underpinning these tools and their development.
The first paper (Welcome to the Tidyverse) can be assigned at the beginning of the course, as you introduce the tidyverse.
I would recommend holding off on assigning the second paper (Tidy data) until you introduce the not just the concept of &lt;em&gt;tidy data&lt;/em&gt; but also tools for tidying data (i.e. functions from the 
&lt;a href=&#34;https://tidyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyr&lt;/a&gt; package).&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Certification Findings</title>
      <link>https://education.rstudio.com/blog/2020/07/instructor-certification-findings/</link>
      <pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/instructor-certification-findings/</guid>
      <description>&lt;p&gt;We recently surveyed people who have taken part in our

&lt;a href=&#34;http://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructor training and certification program&lt;/a&gt; during the past 18 months. 92 people responded, and as the figures below show (on a 1-5 Likert scale), most seemed to think it useful, though actual adoption lags a little behind enthusiasm:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://education.rstudio.com/blog/2020-07-06-instructor-certification-findings/index_files/figure-html/useful-1.png&#34; alt=&#34;How much of what you learned in the training class have you found useful?&#34; width=&#34;672&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: How much of what you learned in the training class have you found useful?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://education.rstudio.com/blog/2020-07-06-instructor-certification-findings/index_files/figure-html/applied-1.png&#34; alt=&#34;How much of what you learned in the training class have you applied in your training?&#34; width=&#34;672&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: How much of what you learned in the training class have you applied in your training?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://education.rstudio.com/blog/2020-07-06-instructor-certification-findings/index_files/figure-html/satisfied-1.png&#34; alt=&#34;How satisfied are you with the certification program overall?&#34; width=&#34;672&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: How satisfied are you with the certification program overall?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Perhaps the most important thing is that our 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Net_Promoter&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;net promoter score&lt;/a&gt; is 77, which makes us pretty happy:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://education.rstudio.com/blog/2020-07-06-instructor-certification-findings/index_files/figure-html/recommend-1.png&#34; alt=&#34;How likely are you to recommend this workshop to your friends and collagues?&#34; width=&#34;672&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 4: How likely are you to recommend this workshop to your friends and collagues?&lt;/p&gt;
&lt;/div&gt;




&lt;h2 id=&#34;qualitative-results&#34;&gt;Qualitative results
  &lt;a href=&#34;#qualitative-results&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We also asked several open-ended questions. Some people gave multiple answers for each, while others skipped some or all of them, but some patterns did emerge.&lt;/p&gt;




&lt;h3 id=&#34;what-did-you-like-best-andor-find-most-useful&#34;&gt;What did you like best and/or find most useful?
  &lt;a href=&#34;#what-did-you-like-best-andor-find-most-useful&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The ten most common responses (in order) were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learner personas&lt;/li&gt;
&lt;li&gt;Concept maps&lt;/li&gt;
&lt;li&gt;Formative assessment&lt;/li&gt;
&lt;li&gt;Online teaching methods&lt;/li&gt;
&lt;li&gt;Reverse instructional design&lt;/li&gt;
&lt;li&gt;Cognitive load&lt;/li&gt;
&lt;li&gt;Parsons Problems&lt;/li&gt;
&lt;li&gt;Faded examples&lt;/li&gt;
&lt;li&gt;Format of training course&lt;/li&gt;
&lt;li&gt;Summative assessment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Personas and concept maps are the first two topics we introduce, but that doesn&amp;rsquo;t necessarily imply people are choosing them because of that: we put them first in order to demonstrate value early.&lt;/p&gt;




&lt;h3 id=&#34;what-did-you-like-least-andor-find-least-useful&#34;&gt;What did you like least and/or find least useful?
  &lt;a href=&#34;#what-did-you-like-least-andor-find-least-useful&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Only eight items were mentioned more than once:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Concept maps (people either love &amp;lsquo;em or hate &amp;lsquo;em)&lt;/li&gt;
&lt;li&gt;Course as a whole too short&lt;/li&gt;
&lt;li&gt;Online format&lt;/li&gt;
&lt;li&gt;Lack of tips for online/asynchronous teaching&lt;/li&gt;
&lt;li&gt;Time of day&lt;/li&gt;
&lt;li&gt;No explicit coverage of Tidyverse/Shiny exam material&lt;/li&gt;
&lt;li&gt;Material on psychology of learning not new&lt;/li&gt;
&lt;li&gt;Sessions too long&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We&amp;rsquo;re going to add more material about online teaching starting in July based on 
&lt;a href=&#34;https://rstudio.com/resources/webinars/teaching-online-at-short-notice/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;these&lt;/a&gt; 
&lt;a href=&#34;https://rstudio.com/resources/webinars/teaching-r-online-with-rstudio-cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;three&lt;/a&gt; 
&lt;a href=&#34;https://rstudio.com/resources/webinars/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;webinars&lt;/a&gt;. It will mean lengthening the class by an hour, but under the current circumstances, it seems essential&lt;/p&gt;




&lt;h3 id=&#34;what-else-do-you-think-we-should-know-about-the-program-and-how-to-improve-it&#34;&gt;What else do you think we should know about the program and how to improve it?
  &lt;a href=&#34;#what-else-do-you-think-we-should-know-about-the-program-and-how-to-improve-it&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;There was even more spread here&amp;mdash;only five things were mentioned more than once:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More guidance about exam content (now addressed by providing 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/instructor-certification-exams/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;sample exams&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;More tidyverse-specific content&lt;/li&gt;
&lt;li&gt;Refresher seminars and other follow-up&lt;/li&gt;
&lt;li&gt;More about online teaching (see the comment in the previous section)&lt;/li&gt;
&lt;li&gt;Spread the course out and take more time on each part&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Regarding the last point, we&amp;rsquo;ve asked in the past about running the class as four blocks of two hours rather than two half-day blocks. People seem to like the idea in theory, but when the time comes to put it in their calendar, they seem to find the latter easier to manage.&lt;/p&gt;




&lt;h2 id=&#34;one-random-finding&#34;&gt;One random finding
  &lt;a href=&#34;#one-random-finding&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Finally, we asked the certified instructors whether their dplyr pipelines use filter then select, or select then filter:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;Response&lt;/th&gt;
&lt;th align=&#34;right&#34;&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;filter then select&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;37&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;select then filter&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;mixed/never really thought about it&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;34&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We have many theories for this, but on reflection, have decided that some things in life should remain a mystery.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Accessibility Internship</title>
      <link>https://education.rstudio.com/blog/2020/07/a11y-midterm/</link>
      <pubDate>Thu, 02 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/a11y-midterm/</guid>
      <description>&lt;p&gt;As I am now halfway through my internship, I would like to share my work and experience.&lt;/p&gt;




&lt;h2 id=&#34;internship-projects-for-accessibility&#34;&gt;Internship Projects for Accessibility
  &lt;a href=&#34;#internship-projects-for-accessibility&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;From a general viewpoint, I am working on accessibility improvements to make RStudio products usable to a wider range of people with (dis)abilities. I am a part of the RStudio IDE team under the mentorship of 
&lt;a href=&#34;https://rstudio.com/speakers/gary-ritchie/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gary Ritchie&lt;/a&gt; where I can focus on the RStudio Desktop and Server accessibility.&lt;/p&gt;
&lt;p&gt;As a blind R user and developer myself, I found most of the existing data science IDEs inaccessible to assistive technology (e.g., 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Screen_reader&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;text-to-speech screen readers&lt;/a&gt; and 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Refreshable_braille_display&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;refreshable Braille displays&lt;/a&gt;) so it had been one of my high hopes to have a reasonably usable toolbox &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. This unmet need motivated me to apply for 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/applications-for-2020-intern-program-are-now-open/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the internship program&lt;/a&gt; to turn my challenges into ways of RStudio IDE more accessible, not only for myself, but also for those with varying degrees of abilities.&lt;/p&gt;
&lt;p&gt;For the past month, I worked closely with Gary to identify and address some critical usability issues in the RStudio Server with special focus on keyboard and screen-reader access. Due to some complex technical issues &lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, we made the Server version our priority while aiming at a smooth transition towards the Desktop version. As a result, we made meaningful progress in 
&lt;a href=&#34;https://blog.rstudio.com/2020/05/27/rstudio-1-3-release/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the latest RStudio release, version 1.3&lt;/a&gt;, which supports improved accessibility options for keyboard and/or assistive technology users. As a part of this project, I have written technical articles on 
&lt;a href=&#34;https://support.rstudio.com/hc/en-us/articles/360045612413-RStudio-Screen-Reader-Support&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;how to use RStudio Server with screen readers&lt;/a&gt; and 
&lt;a href=&#34;https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;how to run the RStudio Server on Windows via WSL2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Besides the accessibility project for RStudio IDE, I have been also involved in Shiny team since June to make its interface more keyboard navigable and screen-reader-friendly. As Shiny currently lacks accessible components, I have been fixing each widget to meet accessibility standards. This project is ongoing and I plan to share my experiences in detail later on.&lt;/p&gt;




&lt;h2 id=&#34;what-i-have-learned-and-whats-next&#34;&gt;What I Have Learned and What&amp;rsquo;s Next
  &lt;a href=&#34;#what-i-have-learned-and-whats-next&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This internship has taught me two important things so far. First, at a personal level, I have learned that data science and software engineering are not far-fetched for a blind person even for collaborative work. Fortunately, most of the communication tools used at RStudio, such as Slack, GitHub, and Zoom, have been reasonably usable, so I have been able to collaborate with other senior engineers on GitHub including pull requests, code reviews, and issue tracking without noticeable challenges. What&amp;rsquo;s more, I have been enjoying chatting with other RStudio employees (with emoticons, of course :) ) via Slack and Zoom with minimal accessibility barriers. This implies a person&amp;rsquo;s abilities are limited by a tool&amp;rsquo;s accessibility level rather than their physical or sensory difficulties.&lt;/p&gt;
&lt;p&gt;Second, at a community level, I have also learned how beneficial my work with RStudio would be to other people with a wide range of abilities. What makes me push myself forward is that I have received a great deal of positive feedback from many people highlighting the importance of my role at RStudio this summer. I am very grateful that I can be a part of the meaningful changes towards a more inclusive data-science ecosystem&amp;mdash;my contribution here can improve many individuals&amp;rsquo; lives across academia and the industry.&lt;/p&gt;
&lt;p&gt;Thank you to everyone at RStudio and elsewhere for supporting my most memorable internship throughout this summer&amp;mdash;I look forward to what&amp;rsquo;s next.&lt;/p&gt;
&lt;section class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;Due to this technical limitation, I have been using and developing R packages via the out-of-the-box &lt;code&gt;R Term&lt;/code&gt; and &lt;code&gt;R CMD BATCH&lt;/code&gt; without any aid from editors. &lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;Those who wonder about the technical details of the issues can refer to 
&lt;a href=&#34;https://github.com/nvaccess/nvda/issues/10838&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this discussion&lt;/a&gt;. &lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
    </item>
    
    <item>
      <title>Learning learnr</title>
      <link>https://education.rstudio.com/blog/2020/07/learning-learnr/</link>
      <pubDate>Wed, 01 Jul 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/07/learning-learnr/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Let us change our traditional attitude to the construction of
programs: Instead of imagining that our main task is to instruct a
computer what to do, let us concentrate rather on explaining to human
beings what we want a computer to do.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ndash; Donald Knuth, &lt;em&gt;Literate Programming&lt;/em&gt; (1984)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Data scientists engage in and develop tools for literate programming. A
variant of Markdown called R Markdown has provided the foundation for
several R packages to assist in writing books (
&lt;a href=&#34;https://bookdown.org/home/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bookdown&lt;/a&gt;), blogs/websites
(
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown&lt;/a&gt;, 
&lt;a href=&#34;https://hugodown.r-lib.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;hugodown&lt;/a&gt;), scientific reports for the web (
&lt;a href=&#34;https://rstudio.github.io/distill/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;distill&lt;/a&gt;) and
presentations (
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/xaringan.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;xaringan&lt;/a&gt;). The trend with these packages and tools is to
take the base R Markdown document and &lt;em&gt;extend&lt;/em&gt; it to provide a powerful
way to write documents in a simple Markdown format, yet be able to embed
complex mixed media such as code, images, videos, and interactive
elements to better suit the type of artifact the user wants to create.
But, there is yet another level of literate programming that is now
possible for instructors who want to make interactive lessons thanks to
the 
&lt;a href=&#34;https://rstudio.github.io/learnr/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For my summer internship, Alison Hill and Greg Wilson initially tasked
me with building Python lessons using the learnr package with the
caveat that some infrastructure will need to be built. My journey
involved a lot of reading and tracing code, as well as consulting Barret
Schloerke, who provided me both knowledge about the trees and the forest
of learnr. I started making diagrams to describe the
architecture and execution flows, and this diagramming activity became a
wonderful tool to identify my gaps of knowledge. Every time I came back
to my diagrams, I had new knowledge to incorporate, which again opened
up new gaps I needed to fill. In this post, I&amp;rsquo;d like to show
you what I&amp;rsquo;ve learned so far and how I formed a working knowledge of this
intricate package; if you&amp;rsquo;d like to know more about its specific features, please see

&lt;a href=&#34;https://education.rstudio.com/blog/2020/06/summer-camp-hs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this post&lt;/a&gt; from my fellow intern Ezgi.
In the end, I hope to convey the big picture of learnr and the
technologies it combines for interactive lessons.&lt;/p&gt;




&lt;h2 id=&#34;what-is-learnr&#34;&gt;What is learnr?
  &lt;a href=&#34;#what-is-learnr&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;learnr&amp;rsquo;s

&lt;a href=&#34;https://rstudio.github.io/learnr/index.HTML#Overview&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;documentation&lt;/a&gt;
says that:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The learnr package makes it easy to turn any R Markdown document into
an interactive tutorial.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For the rest of the post, we&amp;rsquo;ll refer to the following example of a learnr
document called &lt;code&gt;addition.Rmd&lt;/code&gt; that only includes an exercise and its hint/checking
counterparts. Exercise handling is what I am most familiar with so I won&amp;rsquo;t cover
how questions are handled.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;document.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;If you have used the base R Markdown, you will be familiar with
components such as the YAML header, the setup code, and the knitr code
chunks (the triple back-quoted elements). However, the red highlights
shown here are the parts where learnr starts to diverge and &lt;em&gt;extend&lt;/em&gt; R
Markdown in the following ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The output is a &lt;code&gt;learnr::tutorial&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The runtime is &lt;code&gt;shiny_prerendered&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There are some &lt;code&gt;learnr&lt;/code&gt;-related setup code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There are &lt;code&gt;knitr&lt;/code&gt; chunks which have custom options such as &lt;code&gt;exercise&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These 4 main differences sets learnr apart from
the R Markdown that you are probably more familiar with and I&amp;rsquo;ll refer
to these in the next section covering the overall architecture of the
package.&lt;/p&gt;




&lt;h2 id=&#34;architecture-of-learnr&#34;&gt;Architecture of learnr
  &lt;a href=&#34;#architecture-of-learnr&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;rsquo;s a dangerous business, Frodo, going out your door&amp;hellip; You step
into the Road, and if you don&amp;rsquo;t keep your feet, there is no knowing
where you might be swept off to.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ndash; Bilbo Baggins&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;learnr combines many tech stacks, making it a
difficult package to understand and traverse. However, I found a simple
way to think about the package that might help you better grasp the
technologies involved. learnr can broken down into two main parts:
&lt;strong&gt;tutorial creation&lt;/strong&gt; and &lt;strong&gt;tutorial interaction&lt;/strong&gt;. These two parts
allowed me to mentally organize how learnr is working under the hood as
well as navigate associated R files involved in each part. This was also
a pragmatic approach so I could make extensions to the code only where
needed. Here is a high level view of these two parts and the
technologies involved:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;techstacks.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The rmarkdown and knitr packages process and render the document, relying on learnr
to extend behavior around knitr chunks and handle question- and exercise-related information.
The interactivity is possible on the frontend using the
familiar combination of HTML, CSS, and JS. But, there are also a few
third-party JS dependencies like the 
&lt;a href=&#34;https://ace.c9.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ace editor&lt;/a&gt;,
which is an important one because it provides the editor for exercises.
The backend R code mainly consists of http handlers responding to stateful events
like &amp;ldquo;Next Topic&amp;rdquo; and &amp;ldquo;Start Over&amp;rdquo;. There is also R code using

&lt;a href=&#34;https://shiny.rstudio.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shiny&lt;/a&gt; for handling events related to evaluating questions and exercises in
response to events such as clicking the &amp;ldquo;Run&amp;rdquo; button.&lt;/p&gt;
&lt;p&gt;From the document perspective, all you need to really know is that
learnr turns your Rmd file into an HTML file using pandoc, which I like
to think of as the bridge from the tutorial creation to the tutorial
interaction side. At this point, you may skip to my reflections on
learning learnr so far. But, those who are curious may continue to
the nitty-gritty details of what&amp;rsquo;s &lt;em&gt;really&lt;/em&gt; going on under the hood for each side.&lt;/p&gt;




&lt;h3 id=&#34;tutorial-creation&#34;&gt;Tutorial creation
  &lt;a href=&#34;#tutorial-creation&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;&lt;img src=&#34;initialization.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;After you hit &amp;ldquo;Run document&amp;rdquo; in RStudio, learnr does some prep work
and takes your &lt;code&gt;addition.Rmd&lt;/code&gt; file and uses rmarkdown and knitr to process
and shape the final document. You can think of R Markdown as &amp;ldquo;running
the show&amp;rdquo; because it is responsible for rendering the entire Rmd from
end-to-end with the help of learnr. learnr helps R Markdown by specifying
the custom output via &lt;code&gt;learnr::tutorial&lt;/code&gt;, which is a souped-up HTML
document. learnr also helps R Markdown by processing the Rmd file and
adding code chunk extensions not normally present in regular Rmd files. Finally,
learnr uses &lt;code&gt;gradethis&lt;/code&gt; to check results for exercises. Before we jump to
the interaction side, let&amp;rsquo;s briefly talk about some details on
initialization.&lt;/p&gt;




&lt;h4 id=&#34;package-and-shiny-server-initialization&#34;&gt;Package and Shiny server initialization
  &lt;a href=&#34;#package-and-shiny-server-initialization&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;learnr has two main jobs to do before we move on to the interaction side: apply
custom behavior for exercises and setup up the Shiny server. Roughly this is what
that process looks like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;server_initialization.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The knitr package is used by learnr to add the magic of exercises and
its support chunks via custom knitr hooks (&lt;code&gt;knitr-hooks.R&lt;/code&gt;) that activate during rendering.
These custom knitr hooks process the exercises and its options (for e.g.,
&lt;code&gt;exercise=TRUE&lt;/code&gt;) as well as their associated support chunks using label
suffixes like &lt;code&gt;-setup&lt;/code&gt; for setup code, &lt;code&gt;-check&lt;/code&gt; and &lt;code&gt;-solution&lt;/code&gt; chunks
for checking answers. During this process, learnr creates Shiny prerendered chunks
for each code chunk to be included in the HTML document. Finally, learnr has to register
http handlers for handling events, and starting the Shiny server.&lt;/p&gt;
&lt;p&gt;We are now ready to cross the bridge to the interaction side!&lt;/p&gt;




&lt;h3 id=&#34;tutorial-interaction&#34;&gt;Tutorial interaction
  &lt;a href=&#34;#tutorial-interaction&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Brace yourself for this next one:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;interactionloop.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Crossing the bridge over to interaction, the student can now see and
interact with the tutorial, which is an HTML document. rmarkdown
produced this document by using a custom output defined by a function in
learnr, &lt;code&gt;learnr::tutorial&lt;/code&gt;. learnr tutorials are designed to be
&lt;em&gt;interactive&lt;/em&gt; documents and are better thought of as specialized Shiny
apps, not as static documents. This is why you cannot knit a learnr Rmd
document into arbitrary formats such as a PDF.&lt;/p&gt;
&lt;p&gt;This HTML document you see here is special because it is actually a type
of Shiny app using the &lt;code&gt;shiny_rendered&lt;/code&gt; runtime. The Shiny prerendered
runtime means that some of the code are normally rendered with rmarkdown (render context),
while other code execute when the tutorial is served (server context). This is done for
performance reasons which you can read more about

&lt;a href=&#34;https://rmarkdown.rstudio.com/authoring_shiny_prerendered.HTML#Overview&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.
All you need to know here is that the Shiny prerendered scripts included
in the HTML will be used to retrieve Shiny reactive values from the backend
side (&lt;code&gt;exercise.R&lt;/code&gt;). For stateful events such as &amp;ldquo;Start Over&amp;rdquo; or
&amp;ldquo;Next Topic&amp;rdquo; button clicks, the &lt;code&gt;tutorial.js&lt;/code&gt; will respond to these
and notify &lt;code&gt;http-handlers.R&lt;/code&gt; to make changes to the internal state of the tutorial or
record events for logging.&lt;/p&gt;




&lt;h4 id=&#34;evaluating-exercises&#34;&gt;Evaluating exercises
  &lt;a href=&#34;#evaluating-exercises&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;When it comes time to evaluating an exercise,
&lt;code&gt;exercise.R&lt;/code&gt; goes, &amp;ldquo;I&amp;rsquo;m going to take all of the code text submitted
for this exercise and evaluate it in an isolated R file and the
environment it needs. Then, I&amp;rsquo;ll use knitr to produce the properly
formatted regular Markdown that rmarkdown can render, and set the
results for the Shiny reactive value.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The Shiny code within &lt;code&gt;exercise.R&lt;/code&gt; then responds with, &amp;ldquo;Great! You have given
me an html output for the exercise, I&amp;rsquo;ll let the frontend know so it can be appended.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the script tag in the HTML document that makes this interaction cycle possible:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;quot;application/shiny-prerendered&amp;quot; data-context=&amp;quot;server&amp;quot;&amp;gt;
    `tutorial-exercise-addition-result` &amp;lt;- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-addition-code-editor`)), session)
    output$`tutorial-exercise-addition-output` &amp;lt;- renderUI({
      `tutorial-exercise-addition-result`()
    })
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It essentially sets up the exercise handler and the Shiny function
&lt;code&gt;renderUI&lt;/code&gt; to retrieve html output after evaluating the exercise.
Ultimately, the output is appended under the exercise, which
could be code output from clicking the &amp;ldquo;Run&amp;rdquo; button or some feedback
from clicking the &amp;ldquo;Submit Answer&amp;rdquo; button.&lt;/p&gt;




&lt;h2 id=&#34;reflections&#34;&gt;Reflections
  &lt;a href=&#34;#reflections&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Daniel Chen had mentioned in his 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/gestalt-internship/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reflection&lt;/a&gt;
last summer that he
turned from a &amp;ldquo;a user of the R language&amp;rdquo; to a &amp;ldquo;developer&amp;rdquo;. I would say I feel the same
way so far. Although I knew how to use R packages, it wasn&amp;rsquo;t until I
had to venture into learnr that I realized that developing packages is
a whole different ball game! From a developer&amp;rsquo;s perspective, it has
been a lot of fun making improvements to learnr because building and
debugging the package is very fast and allows quick build-test cycles. I also
wouldn&amp;rsquo;t have made it this far without the guidance of Alison and Greg
with setting goals for each week and making sure I&amp;rsquo;m enjoying the work as well.
Barret has also been a tremendous help whenever I am stuck on
a problem and I&amp;rsquo;m reminded how great it is to gain tacit knowledge from
an expert. I now understand when to use vectorized operations in R such as vapply
over a for loop&amp;ndash;thanks Barret!&lt;/p&gt;
&lt;p&gt;From my learning of learnr, I&amp;rsquo;ve been able to make two pull requests adding enhancements to
learnr. 
&lt;a href=&#34;https://github.com/rstudio/learnr/pull/373&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PR #373&lt;/a&gt; was my
first easy task which involved allowing the instructor to suppress a
confusing warning message about &amp;ldquo;invisible result&amp;rdquo;. This PR gave me a
good idea of the learnr package execution flow. 
&lt;a href=&#34;https://github.com/rstudio/learnr/pull/390&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PR #390&lt;/a&gt;
was a much more difficult one which adds support for chaining setup chunks, which can
alleviate the tedious process of building up setup code for incremental
exercises as voiced by many (see issue 
&lt;a href=&#34;https://github.com/rstudio/learnr/issues/72&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#72&lt;/a&gt;). It was by far one of the most technical challenges I&amp;rsquo;ve
had to tackle so far, but I am very excited to say that this
particular PR also paves the way for a cleaner approach on non-R
exercises by changing how we process exercises. But, that&amp;rsquo;s for another
post!&lt;/p&gt;
&lt;p&gt;Although we are not there yet to make Python lessons in learnr, I look
forward to adding more infrastructure to make this a reality&amp;mdash;&lt;em&gt;eventually&lt;/em&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in June 2020</title>
      <link>https://education.rstudio.com/blog/2020/06/june-2020-instructors/</link>
      <pubDate>Tue, 30 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/june-2020-instructors/</guid>
      <description>&lt;p&gt;We are very pleased to welcome 17 new instructors in June 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;http://education.rstudio.com/trainers/people/arnold&amp;#43;martin/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Martin Arnold&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://education.rstudio.com/trainers/people/baxter&amp;#43;andrew/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andrew Baxter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/carilli&amp;#43;anthony/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Anthony Carilli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/chisholm&amp;#43;alex/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alex Chisholm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/condylios&amp;#43;steve/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Steve Condylios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/couch&amp;#43;simon/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Simon Couch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/ihaddaden&amp;#43;fodil/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mohamed El Fodil Ihaddaden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/formoso&amp;#43;jesica/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jesica Formoso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/glowacki&amp;#43;leo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Leo Glowacki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/hallgrimsson&amp;#43;hlynur/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hlynur Hallgrímsson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/hernandez&amp;#43;bea/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bea Hernandez&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/michem&amp;#43;thomas/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Thomas Michem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/patel&amp;#43;ayush/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ayush Patel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/schneider&amp;#43;martin/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Martin Schneider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/seo&amp;#43;jooyoung/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;JooYoung Seo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/van_dijck&amp;#43;annemie/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Annemie Van Dijck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/wilde&amp;#43;katherine/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Katherine Wilde&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 130,
and the number certified to teach Shiny to 21.
It was also a month of firsts,
including our first blind instructor,
our first undergraduate instructor,
and our first instructors in Iceland and India.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Our classes in July, August, and September are now full,
but if you would like to join our waiting list,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Tidymodels Internship</title>
      <link>https://education.rstudio.com/blog/2020/06/tidymodels-internship/</link>
      <pubDate>Tue, 30 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/tidymodels-internship/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been spending my summer interning with the tidymodels team at RStudio.
Amid all of the instability recently,
due both to the pandemic and much-needed surge in engagement with racial justice efforts in the U.S.,
I&amp;rsquo;ve been especially grateful for reliable and meaningful work.
The internship has involved all of the package development I had hoped for plus so much more.&lt;/p&gt;




&lt;h2 id=&#34;broom&#34;&gt;broom
  &lt;a href=&#34;#broom&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I spent the first half of my summer working on broom,
an R package that supplies functions to convert models and other statistical objects to tidy tibbles.
Familiarizing myself with the codebase was definitely a challenge:
the broom package is much larger,
has so much more history,
and is so much more widely used than any package I&amp;rsquo;ve worked on before.
I&amp;rsquo;m grateful that RStudio 1.3&amp;rsquo;s global search and replace came just in time for my internship start date!😅&lt;/p&gt;
&lt;p&gt;With the help of over 100 new contributors since the last major release,
broom 0.7.0 will soon be on CRAN:
you&amp;rsquo;ll be able to read a bit more about it on the 
&lt;a href=&#34;https://www.tidyverse.org/blog/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse blog&lt;/a&gt; once it&amp;rsquo;s released.&lt;/p&gt;




&lt;h2 id=&#34;model-stacking&#34;&gt;Model Stacking
  &lt;a href=&#34;#model-stacking&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;With the new release of broom wrapping up,
I&amp;rsquo;m transitioning to my second project:
a grammar for model stacking that aligns with the existing tidymodels framework.
This functionality was consistently one of the highest-ranked requests
in the recent 
&lt;a href=&#34;https://connect.rstudioservices.com/tidymodels-priorities-survey/README.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels community survey&lt;/a&gt;,
so it&amp;rsquo;s been really neat to be working on what seems to be a high priority for tidymodels users.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;priorities.png&#34; width=&#34;800px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been very thankful for fellow intern Ezgi&amp;rsquo;s 
&lt;a href=&#34;https://github.com/tidymodels/cloudstart&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recent work&lt;/a&gt;
on learning and teaching tidymodels as I&amp;rsquo;ve familiarized myself with parsnip, tune, dials, and recipes.
The API and implementation are still very much in their developmental stages,
but I&amp;rsquo;m excited to share more about this work as it starts to take shape.&lt;/p&gt;




&lt;h2 id=&#34;the-big-picture&#34;&gt;The Big Picture
  &lt;a href=&#34;#the-big-picture&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This internship has meant much more to me than just my projects, though.
For one,
interns had the opportunity to take part in the 
&lt;a href=&#34;http://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio instructor certification&lt;/a&gt; program.
It was unlike any learning experience I&amp;rsquo;ve had before,
and I&amp;rsquo;m really excited to get started applying what I learned while leading R and tidyverse workshops soon.&lt;/p&gt;
&lt;p&gt;Spending time with so many of my professional idols has been great too:
learning from them while also having my input taken seriously has felt really meaningful.
(Our shared appreciation for emojis has been helpful in connecting, too.☀️)
It&amp;rsquo;s also been really inspiring to talk with other interns and follow along with their projects.
Each of their skillsets are so impressive and different from my own.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m genuinely grateful for the opportunity to be interning with RStudio,
and I&amp;rsquo;m excited to see what the second half of the summer brings!🐛&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Working with Spreadsheets</title>
      <link>https://education.rstudio.com/blog/2020/06/working-with-spreadsheets/</link>
      <pubDate>Mon, 29 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/working-with-spreadsheets/</guid>
      <description>&lt;p&gt;Fancy algorithms, lots of code, and beautiful visualizations
are usually the first things that come to mind
when people think about data science.
While these things are a part of the equation,
a central piece of the puzzle (though sometimes overlooked) is the raw data itself,
where it lives,
and how to most efficiently work with it.
The focus of my internship addresses a piece of this,
namely spreadsheets and the most efficient ways to work with them using RStudio.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve worked with data no doubt you&amp;rsquo;ve worked with spreadsheets.
In starting this project the goal has been to speak to two groups:
those who work with data in spreadsheets directly
and those who work with them using RStudio.
Currently we&amp;rsquo;re developing a resource that provides
an overview of the most common packages used to handle data stored in sheets,
providing key information as to how each package deals with reading in and formatting data
as well as providing information on the current state of each package and system requirements.
In addition we&amp;rsquo;re developing a series of educational posts
focused on demonstrating the ways in which RStudio functionality can make life easier
for handling and analyzing data in sheets,
and how R users can utilize the best features of spreadsheets to inform their own work
from scripting to the development of shiny apps.
Abandoning the notion that analysts who either primarily work in R or primarily in spreadsheets
are two distinct groups that shall never meet,
the resource we&amp;rsquo;re developing aims to build a bridge
and show how blending workflows that efficiently utilize spreadsheets and RStudio
can make for powerful analyses and impactful products.&lt;/p&gt;
&lt;p&gt;Since starting I&amp;rsquo;ve thoroughly enjoyed my time at RStudio
especially in being able to work with and learn from Jenny Bryan and Mine Çetinkaya-Rundel.
Not only have I been able to lend my own experiences handling all kinds of spreadsheet data to the project,
I&amp;rsquo;ve learned much about different types of spreadsheet workflows used for data entry
and the delicate balance of sheets best maintained for human and computer use.
What I&amp;rsquo;ve enjoyed most about RStudio is the community and culture here.
While my time here has been short I&amp;rsquo;ve felt welcome since day one
and have been able to participate in company wide events and meet so many amazing people.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Data science summer camp for high schoolers</title>
      <link>https://education.rstudio.com/blog/2020/06/summer-camp-hs/</link>
      <pubDate>Wed, 24 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/summer-camp-hs/</guid>
      <description>&lt;p&gt;Instructors and learners alike have had to quickly adapt to virtual education due to the ongoing pandemic. The 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; package has become a popular tool to ease that transition (see Allison Horst&amp;rsquo;s great 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/05/learnr-for-remote/&#34;&gt;post&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Before our lives were completely changed by the pandemic, however; I was fortunate enough to conduct an introductory R session with a group of teenagers in person. I was able to create the materials for this session, 
&lt;a href=&#34;https://suchestoncampbell-lab.shinyapps.io/SummerCamp2019/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Understanding Injury Data with R&lt;/a&gt;, with the learnr package and the source code is available on 
&lt;a href=&#34;https://github.com/karaesmen/SummerCamp2019/tree/master/tutorial&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;. Although in person examples of teaching may not be the most relevant topic under these circumstances, I thought that sharing my experience of teaching a younger audience using learnr could offer a unique perspective.&lt;/p&gt;




&lt;h2 id=&#34;some-background&#34;&gt;Some background
  &lt;a href=&#34;#some-background&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I was asked to teach an introductory R session as a part of the 
&lt;a href=&#34;https://tdai.osu.edu/summer-camp/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science for Women Summer Camp&lt;/a&gt; in July 2019. The camp was organized by the Translational Data Analytics Institute at The Ohio State University (OSU). Admission was free and available for young women entering grades 8, 9, or 10 attending local high schools in the metro city area.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;GroupPic.jpg&#34; alt=&#34;Summer camp group picture with students&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Summer camp group picture with students&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;At the time I was asked to teach the session, I was still a PhD student at OSU and the co-organizer of R-Ladies Columbus (I am still today). Camp organizers had seen me present several introductory R sessions in local conferences and R-Ladies meetups, and thought I would be a great instructor for the only hands on coding session of the entire data science camp.&lt;/p&gt;
&lt;p&gt;Camp organizers asked me to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Show how to do data analytics with R&lt;/li&gt;
&lt;li&gt;Expect no statistics background from students&lt;/li&gt;
&lt;li&gt;Use a health related data set&lt;/li&gt;
&lt;li&gt;Do all of this in 50 minutes&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let me assure you, organizers didn&amp;rsquo;t come to me because they were amazed by my squeaky clean code or my vast R/statistics knowledge. They invited me because they thought I was very enthusiastic, which they believed was the missing ingredient for this session in the past. It turns out, hands-on-coding session wasn&amp;rsquo;t a favorite among students the year before.&lt;/p&gt;




&lt;h2 id=&#34;wake-up-call&#34;&gt;Wake up call
  &lt;a href=&#34;#wake-up-call&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I happily accepted to teach the R session, because I really enjoy teaching R, and thought this short 50 minute session would be easy to figure out and wouldn&amp;rsquo;t require much work.&lt;/p&gt;
&lt;p&gt;Well, I was certainly being naive. While there are many example teaching materials for R, most were designed for college students or other adults, and at the time I couldn&amp;rsquo;t find any examples for middle- or high-schoolers. Although I came across some amazing K-12 lesson plans to teach statistics on 
&lt;a href=&#34;https://www.statisticsteacher.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;statisticsteacher.org&lt;/a&gt;, these weren&amp;rsquo;t suitable for the short 50 minutes that was allotted for my session. (The wonderful 
&lt;a href=&#34;https://tinystats.github.io/teacups-giraffes-and-statistics/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Teacups, Giraffes, &amp;amp; Statistics&lt;/a&gt; project didn&amp;rsquo;t exist back then, but today it would be another wonderful resource to teach R and statistics to a young audience.)&lt;/p&gt;
&lt;p&gt;I was also worried about finding a &amp;ldquo;fun&amp;rdquo; health data set: talking about diabetes, cancer, or some other complex disease did not sound fun to me at all. Knowing about the unpopularity of the session in the previous year, I was starting to feel quite desperate. I believed my session was going to mirror the 
&lt;a href=&#34;https://www.youtube.com/watch?v=Yk3-Vb7CH-o&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bored to death classroom scenes&lt;/a&gt; from the infamous Ferris Bueller&amp;rsquo;s Day Off movie.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;bored_classroom.jpg&#34; alt=&#34;A scene from Ferris Bueller&#39;s Day Off movie&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: A scene from Ferris Bueller&#39;s Day Off movie&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Luckily, I attended 
&lt;a href=&#34;https://www.user2019.fr/static/pres/t258353.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kenia Wiedemann&amp;rsquo;s talk&lt;/a&gt; at useR!2019. 
&lt;a href=&#34;https://concord.org/about/staff/kenia-wiedemann/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kenia&lt;/a&gt; is involved with a research project called 
&lt;a href=&#34;https://concord.org/our-work/research-projects/computing-with-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CodeR4MATH&lt;/a&gt;, which aims to integrate R programming in high school math classes. While her curriculum also included multiple sessions throughout the semester, she talked about the amazing learnr package and all the cool things you can do with it. We also got a chance to chat about teaching R to teenagers and here some of the important points I remember:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Minimize any unnecessary distraction. Using RStudio Cloud or RStudio IDE in this setting might not be the best choice, as there are too many things you need to clarify before getting to the actual point. This is why learnr is perfect for this setting, you can limit what they can see and do very easily, without making it too rigid or boring.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Most teenagers are quite self-involved, you have to find a data set that they can relate to. If you want to get even some of their attention.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do not get discouraged if you don’t feel the enthusiasm and engagement you may feel with adult learners. High schoolers can wear their emotions on their sleeves, and you never know what else they are dealing with. They may be disengaged for any number of reasons, and it isn’t for you to fix or figure out.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have to admit, at this point I was genuinely terrified and still didn&amp;rsquo;t know what to talk about. But I knew the tool I had to use: learnr!&lt;/p&gt;




&lt;h2 id=&#34;and-learnr-saves-the-day&#34;&gt;And learnr saves the day!
  &lt;a href=&#34;#and-learnr-saves-the-day&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;



&lt;h3 id=&#34;easy-setup&#34;&gt;Easy setup
  &lt;a href=&#34;#easy-setup&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Beyond its pedagogical advantages, learnr is also a clean and easy way to deal with installation or subscription issues that come with dozens of laptops running Windows. In my case, the university was providing all the laptops for the session and it was up to me to set them up. Since we had an internet connection available during the session, I certainly did not want to install R locally and was planning on using RStudio Cloud. That&amp;rsquo;s great in theory, but then you have to then setup separate RStudio Cloud accounts for each machine, which includes setting up different email accounts as well (which we actually did and ended up with dozens of Gmail accounts 😱).&lt;/p&gt;
&lt;p&gt;Thanks to learnr and its 
&lt;a href=&#34;https://rstudio.github.io/learnr/publishing.html#RStudio_Connect_and_shinyappsio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;easy deployment with shinyapps.io&lt;/a&gt; I was able to simply enter the link into the browser for each laptop before the session and they were all ready to go! 🎉&lt;/p&gt;




&lt;h3 id=&#34;interactive-code-chunks&#34;&gt;Interactive code chunks
  &lt;a href=&#34;#interactive-code-chunks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I was also finally happy with my dataset. I decided to use the 
&lt;a href=&#34;https://github.com/hadley/neiss&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;neiss&lt;/a&gt; package, which provides access to the last five years of data (2013-2017) from the National Electronic Injury Surveillance System. The dataset is a sample of all accidents reported to emergency rooms in the US.&lt;/p&gt;
&lt;p&gt;Since the session was quite short, my aim wasn&amp;rsquo;t teaching them how to code in R but let them get a feel of it. I didn&amp;rsquo;t shy away from putting somewhat complicated code chunks in front of them, and expected them to find and change the arguments correctly to get the answers they needed.&lt;/p&gt;
&lt;p&gt;During the session, students talked with their neighbors about physical accidents/injuries they had at home or at school. Then they were able to adjust (fill in) the code in the tutorial with the correct variables/terms to look at the most frequently injured body parts for the overall US population, and their gender and age group in the dataset.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an example exercise chunk:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;chunk.png&#34; alt=&#34;Example code chunk&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: Example code chunk&lt;/p&gt;
&lt;/div&gt;




&lt;h3 id=&#34;hints&#34;&gt;Hints
  &lt;a href=&#34;#hints&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I was also able to 
&lt;a href=&#34;https://rstudio.github.io/learnr/exercises.html#Hints_and_Solutions&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;add hints or solutions&lt;/a&gt; to every exercise, so students didn&amp;rsquo;t get lost and suffer in silence if my instructions weren&amp;rsquo;t clear. I think the hints were helpful, because although I was in the same room and walking around, I assumed many would be too shy to ask a question.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;hint.png&#34; alt=&#34;Hint box example&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 4: Hint box example&lt;/p&gt;
&lt;/div&gt;




&lt;h3 id=&#34;quizzes&#34;&gt;Quizzes
  &lt;a href=&#34;#quizzes&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I believe adding quizzes throughout the whole session kept students less distracted and more engaged, as they were busy trying to find the answers.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;quiz_img.png&#34; alt=&#34;Example quiz from the tutorial&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 5: Example quiz from the tutorial&lt;/p&gt;
&lt;/div&gt;




&lt;h3 id=&#34;make-it-less-dry&#34;&gt;Make it less dry
  &lt;a href=&#34;#make-it-less-dry&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;While default learnr style wasn&amp;rsquo;t very aesthetically appealing to me, I didn&amp;rsquo;t have time to explore customization steps before the session. But it is possible to be creative by adding pictures and videos!&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;img_exp.png&#34; alt=&#34;Embedded picture example&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 6: Embedded picture example&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;And if you would like to go above and beyond, there are many ways to 
&lt;a href=&#34;https://rstudio.github.io/learnr/formats.html#Tutorial_Format&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;customize it further&lt;/a&gt;. Allison Horst&amp;rsquo;s 
&lt;a href=&#34;https://allisonhorst.shinyapps.io/missingexplorer/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Exploring missing values in naniar&lt;/a&gt; is a shining example of what next level customization can do.&lt;/p&gt;




&lt;h2 id=&#34;student-feedback&#34;&gt;Student feedback
  &lt;a href=&#34;#student-feedback&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Throughout the session I went through the tutorial on my laptop, which was shared on two large screens for students to see. I walked around regularly to see students&amp;rsquo; progress or answer questions. Students talked and laughed about their injuries; some shared their stories with the rest of the class. Overall, I thought the session had good participation, even though it was the first activity of the day (as some students complained about it in their feedback).&lt;/p&gt;
&lt;p&gt;I have to add that one student pretty much slept throughout the whole teaching session. She was already in the classroom, sleeping on the table when I got there an hour early to set things up at 8 AM. (I later found out that her parents had dropped her off around 7 AM.) Following the suggestion from before, I didn&amp;rsquo;t try to wake her up nor did I make a comment about it during the session. I believed she wasn&amp;rsquo;t sleeping because of my subpar teaching, but due to factors outside of the classroom, which couldn&amp;rsquo;t be resolved in the 50 minutes that we had.&lt;/p&gt;
&lt;p&gt;Naturally, I was very curious to hear what students had to say after the session. Organizers shared the survey data from first two years of the camp: in 2018 same hands-on-coding session was conducted with a pre-written, commented R script by a young professor, and it was conducted with a learnr tutorial by me in 2019. Of course, I had to compare the two sessions:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;feedback_bar.png&#34; alt=&#34;Student feedback shown as bar graph&#34; width=&#34;100%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 7: Student feedback shown as bar graph&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;My hands-on-coding activity wasn&amp;rsquo;t as popular as other camp activities that involved going to the planetarium or flying drones. 😅 However, I was very happy to see the decrease in the dislikes compared to previous year!&lt;/p&gt;
&lt;p&gt;Students were also asked to describe their experience with one word:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;wordcloud.png&#34; alt=&#34;Student feedback in wordcloud&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 8: Student feedback in wordcloud&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Again it was encouraging to see words like &amp;ldquo;fun&amp;rdquo;, &amp;ldquo;exciting&amp;rdquo;, and &amp;ldquo;wow&amp;rdquo; frequently. (I&amp;rsquo;m not exactly sure what &amp;ldquo;funkyfresh&amp;rdquo; means, but I believe &amp;ldquo;fresh&amp;rdquo; is a positive thing?)&lt;/p&gt;
&lt;p&gt;The whole point of this summer camp is about encouraging students to select analytical fields in the future. I really hope no student was discouraged of coding because of me! 🙃 I aimed to give them a glimpse of coding, showing that it requires some work but can also still be fun. 🎈&lt;/p&gt;




&lt;h2 id=&#34;final-words&#34;&gt;Final words
  &lt;a href=&#34;#final-words&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The learnr package provides a powerful framework that lets students easily interact with the code without begin overwhelmed with errors, warnings, package installations, and all other distractions. Even though learnr is mostly designed for on online self-learning setting in mind, it is highly useful for live sessions where there is limited time to introduce RStudio IDE, or for young audiences that can be easily confused and disengaged with the material. Creating content with learnr certainly takes a little more time and effort than a simple RMarkdown document. It also requires a shinyapp.io account (possibly a paid one for better performance). But in my experience, it was worth all this manageable trouble and saved me from boring students to death! 🦸&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Finding Errors in Data Analyses</title>
      <link>https://education.rstudio.com/blog/2020/06/finding-errors-in-data-analyses/</link>
      <pubDate>Tue, 23 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/finding-errors-in-data-analyses/</guid>
      <description>&lt;p&gt;While some people guide their teaching practices with anecdotal evidence,
we prefer to study these practices through a scientific lens.
The goal of my summer internship with the RStudio Education team is
to find out how and how well data scientists and data science students identify errors in data analyses.
In particular,
we want to explore how the ability to catch errors varies by level of experience
as well as familiarity to the data and type of analysis.&lt;/p&gt;
&lt;p&gt;To do this we have developed R Markdown documents
that contain analyses related to domains such as sports, elections, and property sales.
These analyses will be presented to participants who will think aloud as they go through the document and identify errors.
Before implementing the study we wanted to test our design,
so I recruited two fellow interns and two experienced data professionals as alpha testers.
We found that the interns finished the notebooks quicker than the experienced professionals,
but still caught all of the errors.
Data professionals were much more meticulous with the wording of statistical premises
(e.g., association versus effect)
and they were more meticulous about their data exploration than the interns.
However,
the interns were able to wrap their heads more quickly around code they hadn&amp;rsquo;t encountered before
than the experienced professionals.&lt;/p&gt;
&lt;p&gt;This experience also helped us refine the length and structure of the document
as some of the errors were too obvious.
We will start collecting data from real subjects in July,
and hope to publish our analysis in the fall.
If you are interested in taking part,
please contact us at &lt;a href=&#34;mailto:ian.floressiaca@rstudio.com&#34;&gt;ian.floressiaca@rstudio.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To support this study
I&amp;rsquo;m collaborating on the development of the R package 
&lt;a href=&#34;https://github.com/kbodwin/templar&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;templar&lt;/a&gt;
created by 
&lt;a href=&#34;https://www.kelly-bodwin.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Prof. Kelly Bodwin&lt;/a&gt; from California Polytechnic University,
which provides tools to create variant R Markdown documents.
Let&amp;rsquo;s say you want to create an exam for students and have three different variants,
but the narrative of the exercises will stay the same and just the code chunks will differ.
You can use &lt;code&gt;templar&lt;/code&gt; to select consistent variant code chunks
just by adding an extra argument to the chunk&amp;rsquo;s setup.
This package is still in its early stages but it will be useful for both education and research.&lt;/p&gt;
&lt;p&gt;What I&amp;rsquo;ve enjoyed most about my internship so far is the chance to meet and chat with people like Kelly,
Mine Çetinkaya-Rundel,
and Alison Hill.
RStudio as a company is great:
they provided me with a MacBook Pro (which has made me rethink my personal setup with Ubuntu and a Tuxedo laptop),
and they have provided space and dialogue about the current events regarding racism in the States.
They also follow a truly asynchronous remote culture.
My day usually starts by coding a little bit before 6am;
I then go exercise with my dog,
followed by snorkeling in the northeast of Puerto Rico (sorry not sorry),
and start my morning around 08:30am by checking Slack and email.
I work until around 14:00,
then continue after 18:30.
It has been a great learning and networking experience so far,
and I&amp;rsquo;m looking forward to the rest of my summer.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Data analysis for social justice in a Native classroom</title>
      <link>https://education.rstudio.com/blog/2020/06/native-classroom/</link>
      <pubDate>Mon, 22 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/native-classroom/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m here to share some insights from a work in progress. I began teaching an introduction to data science last year at the Southwestern Indian Polytechnic Institute 
&lt;a href=&#34;https://www.sipi.edu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;(SIPI)&lt;/a&gt;, a community college in Albuquerque, New Mexico with an exclusively Native American student-body. My professional background is in behavioral ecology, however, my passion for teaching lies in data analysis. Why? Because data literacy and analytical expertise are freely available tools to empower people and remedy many societal ills and injustices. My course datasets are therefore usually related to such ills.&lt;/p&gt;
&lt;p&gt;The material is currently delivered in an intensive 4-day workshop. Since the first round of its development and implementation, I’ve learned a number of lessons (beyond how to teach mental models that underlie ggplots). I can group these into three general areas.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Creating culturally relevant and inclusive content and structure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The importance of logistics and technology.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A teaching attitude that&amp;rsquo;s make-or-break for beginners.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;1-creating-culturally-relevant-and-inclusive-content-and-structure&#34;&gt;1. Creating culturally relevant and inclusive content and structure
  &lt;a href=&#34;#1-creating-culturally-relevant-and-inclusive-content-and-structure&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;An inclusive class must address two big issues: is the material personally relevant and is the material accessible and safe to engage with?&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Skills in coding and statistics grow through application, which happens best when students are motivated to answer a question. If one of our goals as instructors is to increase diversity in STEM and data science, then we need to become literate on a diversity of questions that people are motivated to answer.&lt;/p&gt;
&lt;p&gt;For this workshop, I&amp;rsquo;ve chosen the route of letting students choose among datasets on public health and social justice issues. These topics are too widely pertinent to Native peoples, e.g. diabetes&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, cancer&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;, suicide&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;, and gun crime&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;. Now, no group is homogeneous and it is inaccurate to think that every member of a marginalized group is interested in social justice; however, these topics do draw the interest of my students. They are also issues that the power of data literacy can help students solve in their lifetimes. In the future, I plan to incorporate datasets on other contemporary issues, such as social media usage (similar to 
&lt;a href=&#34;https://www.elsevier.com/connect/teaching-data-science-through-the-lens-of-social-justice-issues&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Girls Inc of NYC&lt;/a&gt;), as the current hard-hitting topics may turn-off some students. The provided datasets serve as the basis for group projects, in which students hone and analyze their research questions.&lt;/p&gt;
&lt;p&gt;To create a safe and engaging classroom structure, I take a few different abstract and concrete steps&amp;hellip;&lt;/p&gt;
&lt;p&gt;In the abstract, I first understand that for many Native Americans, and other historically marginalized populations, community and storytelling are a central part of life, playing massive roles in individual identity. The culture of many classrooms does not always value communities and their stories in the same way&amp;hellip; Western higher education was established in a highly individualistic culture, whose Protestant Christian roots&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; emphasize dutiful and successful work (not necessarily community) as a core component of individual identity. This culture has been introduced to the world too often via painful and dehumanizing experiences&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a href=&#34;#fn:7&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;7&lt;/a&gt;&lt;/sup&gt;. So, the elevation of the individual through hustle and perfection, which is a common ambition of higher education, does not always feel familiar to students and, if familiar, it does not always feel safe. For many students, instead, a focus on community and connections to community makes classroom material much more accessible.&lt;/p&gt;
&lt;p&gt;Second, I try to adjust my perspective as a teacher, understanding that&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;I am operating on stolen land.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;My students likely have an inseparable connection to their communities and their land.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;My students are strong and resilient in the face of intergenerational trauma.&lt;/em&gt;&lt;sup id=&#34;fnref:8&#34;&gt;&lt;a href=&#34;#fn:8&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;My own notions of health, medicine, and justice are highly individualistic and institutional.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then concretely, I put the following principles into action.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;The destination is clear&lt;/em&gt;: Roadmapping is central to effective teaching in any classroom. One of the biggest barriers for students are the tacit expectations teachers place on them, including why they are taking the class and their performance and behavior in it. Students should have a clear outline about what we&amp;rsquo;re doing throughout and at each stage of the course: what they will learn from it, how and when their performance will be evaluated, and how it will be useful to them outside the classroom. Yup, a good written syllabus + explicit and regular expression of expectations and learning objectives are foundational for inclusive classrooms. Doing this well takes time, practice, and planning.&lt;sup id=&#34;fnref:9&#34;&gt;&lt;a href=&#34;#fn:9&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Everyone is up to speed&lt;/em&gt;: At the end of any 15-20 minute lecture chunk I use low-stakes, formative assessments (e.g. ungraded quizzes&lt;sup id=&#34;fnref:10&#34;&gt;&lt;a href=&#34;#fn:10&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;10&lt;/a&gt;&lt;/sup&gt;) to focus everyone&amp;rsquo;s attention on the big picture of what we&amp;rsquo;ve just talked about and track/realign any misconceptions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Representation matters&lt;/em&gt;: For slideshows, I aim to highlight Native people that are working to solve the problems showcased in each dataset. Whenever possible, I also choose pictures of Native people applying the skills that the students are learning. Each of these gives students role models, so they can envision themselves doing data analysis for public health and social justice.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Make the connection&lt;/em&gt;: Upon choosing their data set and at mileposts during their analysis, I ask students to express how the data relates to them and their communities, and how they can share insights from the data with others. Letting students tell their stories builds trust. In the future, I plan to use a talking stick as each speaker shares.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;You have agency&lt;/em&gt;: I let students decide on their project datasets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;We&amp;rsquo;re a team&lt;/em&gt;: Working in groups begins early. In teams of 3-4, students alternate roles as &amp;ldquo;lead investigator&amp;rdquo;, &amp;ldquo;coder&amp;rdquo;, and &amp;ldquo;reporter&amp;rdquo;. The teams take time to communicate as a class via their reporters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Tell me more&lt;/em&gt;: I always end with a survey (I use SurveyMonkey). This gives students a clear chance to let me know what datasets spoke to them, what tripped them up, and what types of data they&amp;rsquo;d be interested to work with in the future (as well as the various technical skills they&amp;rsquo;ve gained).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;2-the-importance-of-logistics-and-technology&#34;&gt;2. The importance of logistics and technology
  &lt;a href=&#34;#2-the-importance-of-logistics-and-technology&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Attitudes are vital. Unfortunately, they can&amp;rsquo;t do much if technical difficulties completely hamper students&amp;rsquo; engagement with material. The students we seek to recruit and empower in STEM will often be in resource-limited institutions and this will require additional tricks and strategies from instructors.&lt;/p&gt;
&lt;p&gt;One of the easiest ways to ensure a smooth-running workshop or class is to &lt;strong&gt;limit class size&lt;/strong&gt;. I know, this doesn&amp;rsquo;t sound very inclusive, but I choose to cap workshops at 15 and only work with students that actively choose to participate. I find this ensures a baseline of motivation and allows me to be most effectively hands-on.&lt;/p&gt;
&lt;p&gt;Otherwise, &lt;em&gt;the big idea is to come prepared.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For class startup, I try to have different Wi-Fi dependent and independent options. To be clear: Wi-Fi can be a &lt;strong&gt;big&lt;/strong&gt; problem.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have a version of all materials on RStudio Cloud &lt;strong&gt;(Wi-Fi dependent)&lt;/strong&gt;. The cloud&amp;rsquo;s workspaces and projects for courses and workshops are fantastic. If you&amp;rsquo;re not already familiar with it, I recommend 
&lt;a href=&#34;https://resources.rstudio.com/webinars/rstudio-cloud-in-the-classroom&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this tutorial&lt;/a&gt; from Mine Çetinkaya-Rundel. Unfortunately, RStudio Cloud is sometimes slow, extremely slow with weak Wi-Fi, and of course simply non-existent when Wi-Fi is down.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m lucky to teach in a computer lab &amp;ndash; I can coordinate with IT ahead of time to have R and RStudio installed on every computer (yes, time and labor intensive for someone). I have my most recent exercises and assignments posted online for them to download at the start and then run Wi-Fi free &lt;strong&gt;(minimal Wi-Fi dependence)&lt;/strong&gt;. I also put my scripts on thumb drives &lt;strong&gt;(Wi-Fi independent)&lt;/strong&gt;, for the worst case scenario &amp;ndash; zero Wi-Fi.&lt;/li&gt;
&lt;li&gt;For the future, when students might bring in their own computers, I&amp;rsquo;m working on (and asking others to help) write bash scripts for different machines, which install R, Rstudio, and several base packages. I can distribute these bash scripts, and R scripts for the day&amp;rsquo;s exercises on thumb drives &lt;strong&gt;(total Wi-Fi independence)&lt;/strong&gt; and have students go through dreaded installations with minimal pain. In any case, I do some intros and demos (fun) before installations begin (not fun).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;strong&gt;presentations&lt;/strong&gt;, I have a powerful mini projector with blue tooth connection (an Anker Capsule, many thanks to NIH research funding). So regardless of the awkward shape or layout of the room available to me, or however weak the projector is, I know I have my own flexible little powerhouse whose ins-and-outs I&amp;rsquo;m intimately familiar with.&lt;/p&gt;
&lt;p&gt;There are two other workarounds (both Wi-Fi dependent) for students to watch &lt;strong&gt;live coding&lt;/strong&gt; when visibility is poor. First is an institutional Zoom account that allows me to share my screen with several students. Another is the new 
&lt;a href=&#34;https://github.com/rundel/livecode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;livecode&lt;/a&gt; package from Colin Rundel that I&amp;rsquo;m excited to try. Check out the demo from Rstudioconf::2020 
&lt;a href=&#34;https://resources.rstudio.com/rstudio-conf-2020/lightning-talk-colin-rundel&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. Essentially, your RStudio IDE is constantly creating a web page of your work, which your students can watch with the appropriate link.&lt;/p&gt;




&lt;h2 id=&#34;3-finally-a-make-or-break-attitude-for-teaching-beginners&#34;&gt;3. Finally, a make or break attitude for teaching beginners
  &lt;a href=&#34;#3-finally-a-make-or-break-attitude-for-teaching-beginners&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We generally know, but regularly need to remember&amp;hellip; When we first saw R or the RStudio IDE it was daunting and foreign.
Hours (or years) of debugging and Google searches may have made us
forget this, but we must resist the temptation to trivialize or
oversimplify in front of students. In my experience, flashy demos can
often dishearten even talented people, making knowledge and skills feel
unattainable to all but a few type-A students.&lt;/p&gt;
&lt;p&gt;One thing I love about the #rstats community is that this reminder is rarely necessary. People I encounter whose knowledge far exceeds mine most often act with humility and respect for everyone&amp;rsquo;s stage of the journey. I&amp;rsquo;m deeply grateful to the #rstats community and education department for their support and training. From my start as a conference diversity scholar, to completing the RStudio instructor certification, to this guest blog post &amp;ndash; RStudio has played an enormous part of my teaching journey.&lt;/p&gt;




&lt;h2 id=&#34;recommended-reads&#34;&gt;Recommended reads
  &lt;a href=&#34;#recommended-reads&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.theatlantic.com/education/archive/2013/11/good-teachers-embrace-their-students-cultural-backgrounds/281337/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Good Teachers Embrace Their Students&amp;rsquo; Cultural Backgrounds&amp;rdquo;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://newrepublic.com/article/156032/diversity-training-isnt-enough-pamela-newkirk-robin-diangelo-books-reviews&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Why Diversity Training Isn&amp;rsquo;t Enough&amp;rdquo;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://cesp.rutgers.edu/blog/how-teachers-can-reduce-stereotype-threat-classroom&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;How Teachers Can Reduce Stereotype Threat In The Classroom&amp;rdquo;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;acknowledgments&#34;&gt;Acknowledgments
  &lt;a href=&#34;#acknowledgments&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I thank Dr. Alfonso Heras Llanos, a math professor at SIPI, who helped me implement this workshop. I also thank my friends and colleagues Tammi Duncan and Carla Sakiestewa of the Navajo, Hopi, and Lakota Nations, who provided helpful comments and feedback while developing this workshop and this post.&lt;/p&gt;
&lt;p&gt;Twitter: 
&lt;a href=&#34;https://twitter.com/nicolealinesci&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@NicoleAlineSci&lt;/a&gt;&lt;/p&gt;
&lt;section class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://cpb-us-w2.wpmucdn.com/edblogs.columbia.edu/dist/8/1109/files/2020/02/Guide-for-Inclusive-Teaching-at-Columbia_Accessibility-Revisions_15-January-2020_FINAL.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Guide for Inclusive Teaching at Columbia&lt;/a&gt; &lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.sciencedirect.com/science/article/pii/S0168822716302467&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Call to action: A new path for improving diabetes care for Indigenous peoples, a global review&lt;/a&gt; &lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.thelancet.com/series/cancer-in-indigenous-populations&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cancer in Indigenous Populations&lt;/a&gt; &lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;:https://blog.nativehope.org/february-spotlight-native-american-identity&#34;&gt;The Native American Identity Crisis and the Rise of Suicide&lt;/a&gt; &lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:5&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.teenvogue.com/story/gun-violence-has-a-major-impact-on-native-communities-in-the-united-states&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gun Violence Has a Major Impact on Native Communities in the United States&lt;/a&gt; &lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:6&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.jstor.org/stable/pdf/1050005.pdf?refreqid=excelsior%3A2bea6bf49df970ca4232f691609d8547&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The Protestant Ethic and Higher Education in America&lt;/a&gt; &lt;a href=&#34;#fnref:6&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:7&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://education.stateuniversity.com/pages/2044/Higher-Education-in-United-States.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Higher Education in the United States&lt;/a&gt; &lt;a href=&#34;#fnref:7&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:8&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://boardingschoolhealing.org/education/impact-of-historical-trauma/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The National Native American Boarding School Healing Coalition - Impact of Historical Trauma&lt;/a&gt; &lt;a href=&#34;#fnref:8&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:9&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://tep.uoregon.edu/learning-objectives-and-backward-design&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Learning Objectives and Backward Design&lt;/a&gt; &lt;a href=&#34;#fnref:9&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:10&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;
&lt;a href=&#34;https://www.aeseducation.com/blog/formative-vs.-summative-assessments-what-do-they-mean&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Formative vs. Summative Assessments: What&amp;rsquo;s the Difference?&lt;/a&gt; &lt;a href=&#34;#fnref:10&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
    </item>
    
    <item>
      <title>My Organization&#39;s First R Package Workshop at rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/06/conf20-org-first-pkg/</link>
      <pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/conf20-org-first-pkg/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-org-pkg&#34;&gt;https://rstd.io/conf20-org-pkg&lt;/a&gt; &lt;br&gt;
🔗 &lt;a href=&#34;https://rstd.io/conf20-org-pkg&#34;&gt;https://rstd.io/conf20-org-pkg&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We were thrilled to deliver our workshop, “My Organization’s First R Package,” at &lt;code&gt;rstudio::conf(2020L)&lt;/code&gt;. Packages are the 
&lt;a href=&#34;https://r-pkgs.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fundamental unit of shareable code in R&lt;/a&gt;, and the modern ecosystem for developing and sharing packages is efficient and user-friendly. While many R packages are distributed through CRAN, they are also useful for sharing code within your organization, 
&lt;a href=&#34;https://github.com/benmarwick/rrtools&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;organizing&lt;/a&gt; 
&lt;a href=&#34;https://zenartofrpkgs.netlify.app&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;analysis&lt;/a&gt; 
&lt;a href=&#34;https://emilyriederer.netlify.app/post/rmarkdown-driven-development/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;projects&lt;/a&gt;, and 
&lt;a href=&#34;https://thinkr-open.github.io/golem/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;deploying data science products&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Many great resources exist for learning R package development, including the 
&lt;a href=&#34;https://r-pkgs.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Packages book&lt;/a&gt; and workshops like 
&lt;a href=&#34;blog/2020/02/conf20-tidy-tools/&#34;&gt;Building Tidy Tools&lt;/a&gt;. Our workshop was unique, however, in that it focused on developing R packages for use within your organization&amp;mdash;whether you’re a data science team, an academic research lab, or a lone R user in a sea of 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/conf20-r-excel/&#34;&gt;Excel users&lt;/a&gt;. We taught participants how to use devtools, usethis, and other useful package development tools to develop and share R packages for internal use. We made R packages for two fictional organizations, AVALANCHE and Intendo, to learn best practices in R development and useful tricks for internal packages.&lt;/p&gt;




&lt;h2 id=&#34;day-1&#34;&gt;Day 1
  &lt;a href=&#34;#day-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;On Day 1, we focused on R package development basics: setting up packages, writing R code, documenting and testing your code, teaching others to use your package, and adding data (and other files) to R packages. We learned how to work with packages with usethis, build and check them with devtools, document them with roxygen2, and test them with testthat.&lt;/p&gt;
&lt;p&gt;To put these tools into practice, we developed an R package for the data science team for 
&lt;a href=&#34;https://finalfantasy.fandom.com/wiki/Avalanche_%28group%29&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;AVALANCHE&lt;/a&gt;, an (alleged) eco-terrorist group looking to take down the evil 
&lt;a href=&#34;https://finalfantasy.fandom.com/wiki/Shinra_Electric_Power_Company&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shinra Inc.&lt;/a&gt;. You can see the package we developed, avalanchr, on 
&lt;a href=&#34;https://github.com/malcolmbarrett/avalanchr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also explored how R package development tools meet the needs of internal R packages. For instance, we included a data dictionary for our database with &lt;code&gt;usethis::use_data()&lt;/code&gt;, we included R Markdown report templates with &lt;code&gt;usethis::use_rmarkdown_template()&lt;/code&gt;, and we deployed a Shiny app straight from our package.&lt;/p&gt;




&lt;h2 id=&#34;day-2&#34;&gt;Day 2
  &lt;a href=&#34;#day-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;On Day 2, four sections covered several themes: working with databases, writing functions that use DB data, planning package dev within the organization, and integrating standardized reporting. The goals for this day were to review and get practice with most of the concepts learned on Day 1, and, to build a complete package based that utilizes data housed in a database (which is typical of how most organizations store their data).
To make package development more fun and provide an experience more akin to a real-world business scenario, we used a set of DB tables that belong to an imaginary game studio called &lt;em&gt;Intendo&lt;/em&gt;. We quickly got up to speed with how to access a MySQL database and how to calculate key performance indicators that were important to &lt;em&gt;Intendo&lt;/em&gt; during its brief reign in 2015 (the company had moderate success with its &lt;em&gt;Super Jetroid&lt;/em&gt; game before fizzling out in early ‘16).
The students learned how to create functions for the intendo package that: (1) facilitated data access, (2) quickly got us KPIs most relevant to the organization, and (3) were fully documented. Throughout the day, as on the first day, the package authoring workflow made great use of the easy-to-use functions available in usethis. There were five checkpoints of the intendo package that were available if any of the learners needed to get caught up.
Throughout the day, the learners asked us questions, showed us their new package functions, and ran &lt;code&gt;R CMD check&lt;/code&gt; dozens of times. They made fully-functioning packages that any organization would be lucky to have! Aside from covering everything in the instructional materials, we exchanged plenty of tips and tricks about how to solve all those little package development snafus, save time during development, and go the extra mile to make the package shine!&lt;/p&gt;




&lt;h2 id=&#34;packages&#34;&gt;Packages
  &lt;a href=&#34;#packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In the spirit of this workshop, we used plenty of packages to deliver the course!&lt;/p&gt;
&lt;p&gt;The first was the course package, 
&lt;a href=&#34;https://my-org-first-pkg-2020.netlify.app/pre/packages/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;firstrpkg&lt;/a&gt;, which let participants install the materials locally, as well as all the R packages we needed for the course.&lt;/p&gt;
&lt;p&gt;Participants also developed two R packages: avalanchr and intendo. You can follow along with their development by installing the materials with firstrpkg or by checking out the slides for each section:&lt;/p&gt;




&lt;h2 id=&#34;teaching-materials&#34;&gt;Teaching Materials
  &lt;a href=&#34;#teaching-materials&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;Day&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Session&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Taught By&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Theme&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Materials&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Welcome, Whole Game&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/welcome/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Welcome&lt;/a&gt;, 
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_whole_game2/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Whole Game&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Setup Packages&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_setup/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Setup Packages&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Write Code&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_write_code/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Write Code&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Document&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_document/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Document&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Test Code&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_test/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Test Code&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Teach Others&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_teach/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Teach Others&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Adding Data and Files&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Malcolm&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://mb-slides-mofrp.netlify.app/r_packages_add_files/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Adding Data and Files&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Working with Data in a Database&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Rich&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Databases&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/my-org-first-pkg/blob/master/materials/day_2/p_01_intendo/slides.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Databases&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package Functions&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Rich&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/my-org-first-pkg/blob/master/materials/day_2/p_02_intendo/slides.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Package Functions&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package Management&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Rich&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Organization&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/my-org-first-pkg/blob/master/materials/day_2/p_03_intendo/slides.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Package Management&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Standardized Reporting&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Rich&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;Package dev&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/my-org-first-pkg/blob/master/materials/day_2/p_03_intendo/slides.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Standardized Reporting&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;




&lt;h2 id=&#34;closing&#34;&gt;Closing
  &lt;a href=&#34;#closing&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We had a great time interacting with the learners during the two days of the workshop! Many thanks go out to our wonderful TAs, 
&lt;a href=&#34;https://my-org-first-pkg-2020.netlify.app/authors/amy/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amy Tzu-Yu Chen&lt;/a&gt;, 
&lt;a href=&#34;https://my-org-first-pkg-2020.netlify.app/authors/samantha/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Samantha Toet&lt;/a&gt;, and 
&lt;a href=&#34;https://my-org-first-pkg-2020.netlify.app/authors/greg/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Greg Lin&lt;/a&gt;. They answered dozens of questions and handled all sorts of technical issues.&lt;/p&gt;
&lt;p&gt;Learners told us during and after the workshop that they got a lot out of it, and working with this group of enthusiastic useRs was an excellent experience for us, too. We wanted to empower everyone in attendance to be able to create useful R packages. With these new R skills, both they and the organizations they represent will invariably be more successful.&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-06-instructor-training-americas/</link>
      <pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-06-instructor-training-americas/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Lucerne Workshops</title>
      <link>https://education.rstudio.com/blog/2020/06/lucerne-workshops/</link>
      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/lucerne-workshops/</guid>
      <description>&lt;p&gt;Campus Lucerne is running various R workshops in English and German language starting in September 2020. The training offered in English is designed by 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/de_angelis&amp;#43;andrea/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Andrea De Angelis&lt;/a&gt;, a certified RStudio instructor, using concepts from the instructor training program. The courses will be held at the University of Lucerne, Switzerland. For more information or to register, please visit &lt;a href=&#34;https://www.campus-luzern.ch/kurse/luzerner-r-kurse-lucerne-r-courses-hs/&#34;&gt;https://www.campus-luzern.ch/kurse/luzerner-r-kurse-lucerne-r-courses-hs/&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in May 2020</title>
      <link>https://education.rstudio.com/blog/2020/06/may-2020-instructors/</link>
      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/06/may-2020-instructors/</guid>
      <description>&lt;p&gt;We are very pleased to have welcomed eight new certified instructors in May 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/alexander&amp;#43;rohan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rohan Alexander&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/brard&amp;#43;margot/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Margot Brard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/dandrea&amp;#43;florencia/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Florencia D&amp;rsquo;Andrea&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/garrido_de_sierra&amp;#43;sebastian/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sebastián Garrido de Sierra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/hagerty&amp;#43;shannon/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shannon Hagerty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/tackett&amp;#43;maria/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Maria Tackett&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/tahi_ulubalang&amp;#43;david/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;David Tahi Ulubalang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/thomas&amp;#43;michael/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Michael Thomas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 116,
and the number certified to teach Shiny to 18.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Deep Learning Workshop at rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/05/conf20-dl/</link>
      <pubDate>Thu, 28 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/conf20-dl/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt; &lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-dl&#34;&gt;https://rstd.io/conf20-dl&lt;/a&gt; &lt;br&gt; &lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This past January I attended 
&lt;a href=&#34;https://rstd.io/conf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf(2020)&lt;/a&gt;. Seems odd to say that I attended a conference in 2020 but I did, along with over 2,000 others. This was my second rstudio::conf and if you have not attended, you definitely need to put it on your radar for future years - the people, community, resources and education are great bar none.&lt;/p&gt;
&lt;p&gt;This year I had the opportunity to teach the &lt;em&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/dl-keras-tf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Deep Learning with Keras and TensorFlow in R&lt;/a&gt;&lt;/em&gt; 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/dl-keras-tf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workshop&lt;/a&gt;. The workshop had max capacity attendence and was sold out within the first couple of months of opening up; showing a strong thirst for deep learning within the R community. With unbelievable support from TAs and RStudio, the workshop was a great success.&lt;/p&gt;
&lt;iframe src=&#34;https://rstudio-conf-2020.github.io/dl-keras-tf/01-intro.html#1&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;




&lt;h2 id=&#34;state-of-deep-learning-resources&#34;&gt;State of deep learning resources
  &lt;a href=&#34;#state-of-deep-learning-resources&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;There is no lack of deep learning resources. Almost any tech learning platform you look at (i.e. 
&lt;a href=&#34;https://www.coursera.org/courses?query=deep%20learning&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;coursera&lt;/a&gt;, 
&lt;a href=&#34;https://www.udemy.com/topic/deep-learning/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Udemy&lt;/a&gt;) is filled with deep learning courses, publishers are filling 
&lt;a href=&#34;https://www.amazon.com/slp/deep-learning/qh2mz33y5875zb7&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;virtual deep learning bookshelves&lt;/a&gt;, and deep learning blog posts are a dime a dozen. But with all these resources I often find two road blocks for people being able to understand and implement deep learning solutions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Often the material over-emphasizes algorithmic complexity and uniqueness of deep learning. However, when you simplify most deep learning methods down to their basic ingredients, people that understand basic statistical concepts and common &amp;ldquo;shallow&amp;rdquo; learning models such as linear regression can fully grasp deep learning concepts.&lt;/li&gt;
&lt;li&gt;Most material use Python and leads R programmers to think that they need to leave the comfort of their current language to do deep learning tasks.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This workshop was designed to debunk both of these myths and provide an intuitive understanding of the architectures and engines that make up deep learning models, apply a variety of deep learning algorithms (i.e. MLPs, CNNs, RNNs, LSTMs, collaborative filtering), understand when and how to tune the various hyperparameters, and be able to interpret model results&amp;hellip;all with the simplicity, comfort and beauty of R! &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;So how did we approach this?&lt;/p&gt;




&lt;h2 id=&#34;understanding-the-ingredients&#34;&gt;Understanding the ingredients
  &lt;a href=&#34;#understanding-the-ingredients&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The first 90 minutes we spent working through a 
&lt;a href=&#34;https://rstudio-conf-2020.github.io/dl-keras-tf/notebooks/01-main-ingredients.nb.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;notebook&lt;/a&gt; that illustrates how feedforward deep learning models solve very simple linear regression, binary and multi-class classification problems. We simplified these procedures to the bare minimum so folks can understand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;how the model architecture relates to common models they&amp;rsquo;ve used before,&lt;/li&gt;
&lt;li&gt;how the models learn via gradient descent,&lt;/li&gt;
&lt;li&gt;what activation functions are,&lt;/li&gt;
&lt;li&gt;the idea of learning rate and momentum,&lt;/li&gt;
&lt;li&gt;how model capacity impacts performance,&lt;/li&gt;
&lt;li&gt;why we care about batch sizes,&lt;/li&gt;
&lt;li&gt;and the importance of data prep.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wow, that seems like a lot&amp;hellip;and it was! But by working through very simple examples and illustrations the students started to realize that these concepts are not overly complicated. In fact, many started to see a very obvious relationship to non-deep learning concepts they already know.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;fig1-ingredients.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;follow-a-recipe&#34;&gt;Follow a recipe
  &lt;a href=&#34;#follow-a-recipe&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;After getting a basic understanding of key deep learning concepts and terminology, we spent the rest of the morning discussing how to strategically approach training a deep learning model. I&amp;rsquo;ve gotta admit, finding an optimal deep learning model is far more difficult and time consuming than traditional shallow models. In fact, its rare that you will actually find an optimal model!&lt;/p&gt;
&lt;p&gt;As data scientists we can accept this but we still need to have a good mental model that gives us a high probability of finding a near optimal one while reducing overall model exploratory time. For deep learning models, this can be reduced to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Prepare data&lt;/li&gt;
&lt;li&gt;Balance batch size with a default learning rate&lt;/li&gt;
&lt;li&gt;Tune the adaptive learning rate optimizer&lt;/li&gt;
&lt;li&gt;Add callbacks to control training&lt;/li&gt;
&lt;li&gt;Explore model capacity&lt;/li&gt;
&lt;li&gt;Regularize overfitting&lt;/li&gt;
&lt;li&gt;Repeat steps 1-6&lt;/li&gt;
&lt;li&gt;Evaluate final model results&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once folks understood what each one of these steps were doing and how to implement them, they definitely gained confidence in their ability to apply an initial model and then start iterating to improve model performance.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;fig2-recipe.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;a-basic-cookbook&#34;&gt;A basic cookbook
  &lt;a href=&#34;#a-basic-cookbook&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Once students had a good mental model of the basic ingredients of deep learning models and a general recipe for approaching training models, the rest of the workshop was spent building on top of a basic feedforward model and working through the concepts of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;computer vision with convolution neural networks,&lt;/li&gt;
&lt;li&gt;the idea of re-using previously trained models (aka &lt;em&gt;transfer learning&lt;/em&gt;),&lt;/li&gt;
&lt;li&gt;encoding text with word embeddings,&lt;/li&gt;
&lt;li&gt;applying a deep learning approach for collaborative filtering with customized functional models,&lt;/li&gt;
&lt;li&gt;using recurrent neural networks and long short term memory networks for analyzing sequential data (i.e. text, time series, videos).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these models builds onto the foundational knowledge with new key concepts. Along the way we trained over a dozen different types of models and data sets&amp;hellip;some small and some big. But working through these different concepts gave folks the exposure to common problems where deep learning shines and also where some models have a hard time improving over a simpler shallow classification model.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;fig3-cookbook.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;workshop-approach&#34;&gt;Workshop approach
  &lt;a href=&#34;#workshop-approach&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;As you may infer, the workshop was very hands-on and covered a lot of material using a variety of approaches. If you peruse the 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/dl-keras-tf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;repo&lt;/a&gt;, you will notice that we worked through notebooks for interactive analysis, used slides to emphasize key concepts and illustrations, and even opened up an Excel file to help demonstrate what&amp;rsquo;s going on with basic collaborative filtering and word embeddings!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;fig4-approach.png&#34; width=&#34;50%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;In fact, I knew going into the workshop that I probably had too much material. But my hopes was that the workshop provided an opportunity to explore the concepts while also allowing folks to easily work through notebooks and compare solutions on their own. So if you missed out on the workshop, all the data and code to reproduce the notebook content and slides are 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/dl-keras-tf/blob/master/README.md#schedule&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available&lt;/a&gt;. I even provide extra content that we didn&amp;rsquo;t have time to cover such as visualizing CNN models, performing grid searches, and more.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/dl-keras-tf/blob/master/README.md#schedule&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;fig5-schedule.png&#34; alt=&#34;Workshop schedule&#34; title=&#34;Workshop schedule&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Plus, all the content is licensed as 
&lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CC BY 4.0&lt;/a&gt; so people can feel free to reuse slides, notebooks, exercises and the like.&lt;/p&gt;




&lt;h2 id=&#34;appreciation&#34;&gt;Appreciation
  &lt;a href=&#34;#appreciation&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I had an absolute blast developing and delivering this workshop. The attendees were fantastic and asked valuable (and challenging!) questions; making the 2-days very interactive and personable.&lt;/p&gt;
&lt;p&gt;The workshop was also result of a fantastic TA team! I really enjoyed meeting and getting to know them:&lt;/p&gt;
&lt;iframe src=&#34;https://rstudio-conf-2020.github.io/dl-keras-tf/01-intro.html#27&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;I also could not have pulled it off without the incredible RStudio infrastructure team dedicated to supporting us (
&lt;a href=&#34;https://github.com/colearendt&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cole Arendt&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/akgold&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alex Gold&lt;/a&gt;) and the entire RStudio Education team. The infrastructure team made using AWS and GPUs as simple as making pop tarts and the education team made everything smoooth and seemless!&lt;/p&gt;
&lt;iframe src=&#34;thanks.gif&#34; width=&#34;672&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;




&lt;h2 id=&#34;enjoy&#34;&gt;Enjoy!
  &lt;a href=&#34;#enjoy&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I hope the materials developed for this workshop are useful to learners and educators alike. If they are, please 
&lt;a href=&#34;https://twitter.com/bradleyboehmke&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;let me know&lt;/a&gt;, I&amp;rsquo;d love to hear about it.&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;section class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34; role=&#34;doc-endnote&#34;&gt;
&lt;p&gt;This is not to say that some deep learning concepts don&amp;rsquo;t become extremely complex; however, I would argue that they are no more complex than advanced extensions of generalized linear models&amp;hellip;GAMs anyone??? Also, I am a huge proponent of learning multiple programming languages so this has nothing to do with the ridiculous R vs Python vs &amp;hellip; argument! In fact, the more you know about Python the easier it is to debug Tensorflow and Keras problems within R. &lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
    </item>
    
    <item>
      <title>Teach R with Interactive Courses</title>
      <link>https://education.rstudio.com/blog/2020/05/teach-interactive-course/</link>
      <pubDate>Tue, 26 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/teach-interactive-course/</guid>
      <description>&lt;p&gt;I 
&lt;a href=&#34;https://juliasilge.com/blog/tidymodels-ml-course/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recently published&lt;/a&gt; yet another version of an 
&lt;a href=&#34;https://supervised-ml-course.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;interactive supervised machine learning course&lt;/a&gt; where learners can practice their modeling skills in the browser with four case studies.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://supervised-ml-course.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;ml-course.png&#34; alt=&#34;supervised ML&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a good thing that I like these data sets and this course 😉 because I have released at least three different versions of it at this point (depending on how exactly you want to do the accounting). The latest iteration of this course focuses on how to use 
&lt;a href=&#34;https://www.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt; for predictive modeling. Undertaking another significant revision of this course has given me the opportunity to reflect on the process of building and maintaining interactive courses.&lt;/p&gt;




&lt;h2 id=&#34;were-all-in-this-together&#34;&gt;We&amp;rsquo;re all in this together
  &lt;a href=&#34;#were-all-in-this-together&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m not the only one who has built interactive courses over the past year or so. In the aftermath of 
&lt;a href=&#34;https://juliasilge.com/blog/datacamp-misconduct/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;loss of trust&lt;/a&gt; in 
&lt;a href=&#34;https://www.buzzfeednews.com/article/daveyalba/datacamp-sexual-harassment-metoo-tech-startup&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DataCamp as a learning platform&lt;/a&gt;, folks across both Python and R communities have looked into other options, especially open source options that are transparent, 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Gratis_versus_libre&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;free-as-in-speech, and/or free-as-in-beer&lt;/a&gt;. 
&lt;a href=&#34;https://ines.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ines Montani&lt;/a&gt; created a course platform for both 
&lt;a href=&#34;https://github.com/ines/course-starter-python&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Python&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/ines/course-starter-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R&lt;/a&gt;, with a front-end powered by Gatsby and Reveal.js and back-end code execution powered by 
&lt;a href=&#34;https://mybinder.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Binder&lt;/a&gt;. Ines used this course framework for her own excellent 
&lt;a href=&#34;https://course.spacy.io/en/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;course on spaCy&lt;/a&gt;, and multiple folks in the R community have built on their own courses as well. For example, Ted Laderas and the team behind the 
&lt;a href=&#34;https://r-bootcamp.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Bootcamp&lt;/a&gt; shared 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/r-bootcamp/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;their perspectives on building such a course&lt;/a&gt; here at the RStudio Education blog earlier this spring.&lt;/p&gt;
&lt;p&gt;The first person I knew who successfully got their interactive R course launched was 
&lt;a href=&#34;https://www.noamross.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Noam Ross&lt;/a&gt;; his course on generalized additive models is fantastic. 💯&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://noamross.github.io/gams-in-r-course/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;gams-course.png&#34; alt=&#34;GAMS&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All three of us (Noam, myself, and Ted Laderas) collaborated with 
&lt;a href=&#34;https://florencia.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Florencia D&amp;rsquo;Andrea&lt;/a&gt; in building our courses. Florencia is one of the most knowledgeable people out there when it comes to getting a course like this up and running! I&amp;rsquo;ve chatted informally with both Florencia and Noam about their experiences in building and maintaining interactive courses before, so I decided to ask them to gather their thoughts less casually so we could share them all together.&lt;/p&gt;




&lt;h2 id=&#34;its-time-to-build&#34;&gt;It&amp;rsquo;s time to build
  &lt;a href=&#34;#its-time-to-build&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Everyone I know who has worked on a course like this says that it is a challenge to get up and running. Part of this is probably because it involves JavaScript frameworks that we as data scientists are &lt;em&gt;not&lt;/em&gt; 🙅 experts in. &amp;ldquo;It kind of constrains my ability to maintain or extend it,&amp;rdquo; says Noam.&lt;/p&gt;
&lt;p&gt;Even aside from the JavaScript, this particular course framework involves a complex file structure for exercises, solutions, slides, and so forth that can be onerous to manage. I think I agree with Florencia, who says, &amp;ldquo;Perhaps the longest part is getting familiar with the file structures and exercises.&amp;rdquo; Florencia wrote a 
&lt;a href=&#34;https://florencia.netlify.app/2020/03/cooking-your-first-tutorial.en-us/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog post outlining these details&lt;/a&gt;, which is also 
&lt;a href=&#34;https://florencia.netlify.app/es-es/2020/03/receta-para-tu-primer-tutorial.es-es/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available in Spanish&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;On the other hand, we have all been amazed at learning more about 
&lt;a href=&#34;https://mybinder.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Binder&lt;/a&gt;, what it is, and what it can do. &amp;ldquo;The degree to which the Binder back-end just works is amazing. It&amp;rsquo;s astonishingly low maintenance, which is one reason I don&amp;rsquo;t consider moving to something I might understand better,&amp;rdquo; says Noam. The first time Florencia explained to me how you can access what you have in the repo in an RStudio IDE in a browser, I was floored! &amp;ldquo;I think it is a great tool to turn a Git repo into an executable environment in a simple way,&amp;rdquo; she says. To try it out, visit the 
&lt;a href=&#34;https://mybinder.org/v2/gh/juliasilge/supervised-ML-case-studies-course/binder&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Binder site for my course&lt;/a&gt;, wait for the container to start, then click &amp;ldquo;New&amp;rdquo; near the top right, and choose &amp;ldquo;RStudio&amp;rdquo;. You will be in an RStudio Server IDE where you have access to all of the code and data from the course.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://mybinder.org/v2/gh/juliasilge/supervised-ML-case-studies-course/binder&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;binder.png&#34; alt=&#34;binder&#34;&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;no-free-lunch&#34;&gt;No free lunch
  &lt;a href=&#34;#no-free-lunch&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Building and maintaining courses like these are not without costs, of time ⏳ and money 💰. Both Noam and I sometimes struggle with managing questions or requests from learners. &amp;ldquo;It would be great to have a forum or something tied to the course where students can ask each other questions,&amp;rdquo; Noam thinks, and I try to make sure folks know about 
&lt;a href=&#34;https://community.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt; (perhaps 
&lt;a href=&#34;https://community.rstudio.com/c/ml/15&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;specifically the modeling and machine learning category&lt;/a&gt;) and other friendly spaces to get help.&lt;/p&gt;
&lt;p&gt;There are different ways to host such courses. Noam hosts his via GitHub Pages and I use Netlify. My interactive course gets enough traffic that I exceed the bandwidth of the free starter plan on Netlify. For a little while, I paid Netlify for hosting costs, but then I applied for Netlify&amp;rsquo;s 
&lt;a href=&#34;https://www.netlify.com/legal/open-source-policy/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;open source plan&lt;/a&gt; for my course, which has worked out great.&lt;/p&gt;




&lt;h2 id=&#34;sweet-success&#34;&gt;Sweet success
  &lt;a href=&#34;#sweet-success&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;An interactive course like this is a somewhat complicated undertaking, but seeing it finished is &lt;strong&gt;so&lt;/strong&gt; satisfying. Florencia says, &amp;ldquo;To have a look at the course finished and running is definitely the best time of the work!&amp;rdquo; We also talked about how much we learned ourselves, about new tools and frameworks.&lt;/p&gt;
&lt;p&gt;Seeing a course be used by actual real learners is the true test of success. &amp;ldquo;It is awesome getting messages from students who use the course,&amp;rdquo; Noam shares. &amp;ldquo;I always ask graduate students to send me their papers and dissertations.&amp;rdquo; At a conference this past year, a fellow R user showed me that he had saved the supervised machine learning course as an icon on the Dock on his Mac, and said he had used it to study for getting a job! 🎉 This type of real impact is why we have invested the time and energy into making our courses free and accessible to people around the world.&lt;/p&gt;
&lt;p&gt;If you are a professor or content developer, perhaps suddenly needing to create online content, we can&amp;rsquo;t tell you if this exact course framework is the right option for you. However, we are happy to be able to share these experiences with our community here, so you can take from it what works for you, whether that&amp;rsquo;s exploring how to use Binder, how to consider the needs of diverse folks with questions, or whether one of these specific resources we created could fit your needs.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>ThinkR Shiny Training</title>
      <link>https://education.rstudio.com/blog/2020/05/thinkr-shiny-training/</link>
      <pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/thinkr-shiny-training/</guid>
      <description>&lt;p&gt;
&lt;a href=&#34;https://thinkr.fr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ThinkR&lt;/a&gt; is running 10 half-days of remote training on &amp;ldquo;Shiny in Production&amp;rdquo; in July 2020.
The training will be done in English,
and some of the teaching methods are based on the concepts from RStudio&amp;rsquo;s

&lt;a href=&#34;http://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructor training program&lt;/a&gt;.
To reduce confusion while navigating through multiple PDFs, the RStudio IDE, and the file manager,
ThinkR has built an e-learning platform that embeds everything learners need in one interface,
which you can see at &lt;a href=&#34;https://rtask.thinkr.fr/remote-trainings-and-certification/&#34;&gt;https://rtask.thinkr.fr/remote-trainings-and-certification/&lt;/a&gt;.
For more information or to register,
please go to &lt;a href=&#34;https://rtask.thinkr.fr/remote-trainings-and-certification/learning-shiny-online-july/&#34;&gt;https://rtask.thinkr.fr/remote-trainings-and-certification/learning-shiny-online-july/&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-05-instructor-training-emea/</link>
      <pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-05-instructor-training-emea/</guid>
      <description></description>
    </item>
    
    <item>
      <title>A Remote Learning Roundup</title>
      <link>https://education.rstudio.com/blog/2020/05/remote-roundup/</link>
      <pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/remote-roundup/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post features original artwork submitted by various artists for 
&lt;a href=&#34;https://www.talenthouse.com/i/united-nations-global-call-out-to-creatives-help-stop-the-spread-of-covid-19&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;United Nations Global Call Out To Creatives&lt;/a&gt; - help stop the spread of COVID-19.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In March, 
&lt;a href=&#34;https://desiree.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Desirée De Leon&lt;/a&gt; and I did a 
&lt;a href=&#34;https://rstudio.com/resources/webinars/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;webinar&lt;/a&gt; called 
&lt;a href=&#34;https://rstd.io/sharing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Sharing on Short Notice: How to Get Your Teaching Materials Online with R Markdown.&amp;quot;&lt;/a&gt; Since then, we&amp;rsquo;ve watched as many devoted educators have worked overtime to overhaul their teaching materials into remote-friendlier formats on very short notice.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://unsplash.com/photos/0pWnG5AkqaQ&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;united-nations-covid-19-response-0pWnG5AkqaQ-unsplash.jpg&#34; title=&#34;Image created by Lydia Christine. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; alt=&#34;Image created by Lydia Christine. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; style=&#34;text-align:center;&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While these new remote learning resources were created first and foremost to replace in-person courses, some instructors went the extra mile to openly share them for everyone. This may include class schedules/readings, slides, videotaped lectures and screencasts, and sometimes even 
&lt;a href=&#34;https://rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt; projects, making it possible for us non-students to follow along from the comfort of our own homes. This post is a roundup of some of these new open learning resources.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://unsplash.com/photos/gMPsl1ez-Ts&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;united-nations-covid-19-response-gMPsl1ez-Ts-unsplash.jpg&#34; title=&#34;Image created by Catherine Cordasco. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; alt=&#34;Image created by Catherine Cordasco. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; style=&#34;text-align:center;&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But first, a disclaimer. Most people I know have less free time now, not more. Even if you do &lt;em&gt;technically&lt;/em&gt; have free time you could devote to learning, you may not have the cognitive energy to learn anything new. If you fall into either of these two camps, bookmark this post for the future, and then promptly close this browser tab. Please do not let this post make you feel guilty or stressed. Learning will only stick if you feel good while doing it.&lt;/p&gt;
&lt;p&gt;Having said that, there are also folks who were caught by this quarantine at a time when they needed to learn new skills to either get a job or get a better job. If you fall into &lt;em&gt;this&lt;/em&gt; camp, then you are in luck, because the resources below were created by some of the most engaging and thoughtful educators in data science. And because they were all created relatively recently, you can also be sure that the content is current.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://unsplash.com/photos/KKrFTC8CB1Q&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;united-nations-covid-19-response-KKrFTC8CB1Q-unsplash.jpg&#34; title=&#34;Image created by Sarah Goldbart. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; alt=&#34;Image created by Sarah Goldbart. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; style=&#34;text-align:center;&#34; width=&#34;360&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, please keep in mind that these resources are provided as a courtesy by the instructor&amp;mdash;if you do decide to use them and have questions or get stuck, ask for help on a dedicated help forum like 
&lt;a href=&#34;https://community.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt;; do not contact course instructors directly either in private or public (i.e., by tagging them on twitter).&lt;/p&gt;




&lt;h2 id=&#34;ready-for-rhttpsready4rnetlifyapp&#34;&gt;
&lt;a href=&#34;https://ready4r.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ready for R&lt;/a&gt;
  &lt;a href=&#34;#ready-for-rhttpsready4rnetlifyapp&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://ready4r.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;ready4r.png&#34; title=&#34;https://ready4r.netlify.app/&#34; alt=&#34;https://ready4r.netlify.app/&#34; style=&#34;text-align: center&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This course is created and taught by 
&lt;a href=&#34;http://laderast.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Ted Laderas&lt;/a&gt;, an Assistant Professor at Oregon Health and Science University and an 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/laderas&amp;#43;ted/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio certified trainer&lt;/a&gt;. In Ted&amp;rsquo;s own words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This course is meant to be a gentle introduction to using R/Rstudio in your daily work. It aims to teach useful skills (visualization, data loading, data filtering and manipulation, simple statistics) that students can immediately use in their work. No prerequisites or previous experience required. It is not meant to be a substitute for a full programming course or a full course in statistics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For external folks, Ted also started a mailing list that will let you know when materials are updated: &lt;a href=&#34;https://ready4r.netlify.app/mailing/&#34;&gt;https://ready4r.netlify.app/mailing/&lt;/a&gt;. To compliment these materials, you may also want to check out Ted&amp;rsquo;s self-paced R-Bootcamp course, created with Jessica Minnier: &lt;a href=&#34;https://r-bootcamp.netlify.com/&#34;&gt;https://r-bootcamp.netlify.com/&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;robust-toolshttpsrobust-toolsdjnavarronet&#34;&gt;
&lt;a href=&#34;https://robust-tools.djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Robust tools&lt;/a&gt;
  &lt;a href=&#34;#robust-toolshttpsrobust-toolsdjnavarronet&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://robust-tools.djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;robust-tools.png&#34; title=&#34;https://robust-tools.djnavarro.net/&#34; alt=&#34;https://robust-tools.djnavarro.net/&#34; style=&#34;text-align: center&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This course is created and taught by 
&lt;a href=&#34;https://djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Danielle Navarro&lt;/a&gt;, an Associate Professor at the University of New South Wales and an 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/navarro&amp;#43;danielle/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio certified trainer&lt;/a&gt;. Danielle is also a co-author on the work-in-progress 3rd edition of the book 
&lt;a href=&#34;https://ggplot2-book.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;ggplot2: elegant graphics for data analysis&amp;rdquo;&lt;/a&gt; and recently has started sharing her original generative 
&lt;a href=&#34;https://art.djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;art&lt;/a&gt; created with R. This course is unique because it teaches many of the tools that researchers (and really all data scientists) need, but that too often we assume you&amp;rsquo;ll learn simply through use alone. In Danielle&amp;rsquo;s own words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;
&lt;a href=&#34;http://robust-tools.djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data science with R: A robust toolkit for psychological research&lt;/a&gt; covers an introduction to R programming, modern data visualisation and data wrangling, how to structure your projects, version control and how to write professional documents in R. The course is designed for novices, and no preexisting familiarity with these tools and no programming background is assumed.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Each section in this course features links to an HTML slide deck, YouTube video, and an RStudio Cloud project.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;http://robust-tools.djnavarro.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;robust-playlist.png&#34; title=&#34;https://www.youtube.com/playlist?list=PLRPB0ZzEYegPHHji3tBw2U4yp-DxMrUkB&#34; alt=&#34;https://www.youtube.com/playlist?list=PLRPB0ZzEYegPHHji3tBw2U4yp-DxMrUkB&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Danielle also has an online resource called 
&lt;a href=&#34;https://learningstatisticswithr.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Learning Statistics with R&amp;rdquo;&lt;/a&gt;, originally designed to teach intro statistics to psychology undergrads.&lt;/p&gt;




&lt;h2 id=&#34;advanced-statistical-computing-with-rhttpscal-poly-advanced-rgithubiostat-431&#34;&gt;
&lt;a href=&#34;https://cal-poly-advanced-r.github.io/STAT-431/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Advanced Statistical Computing with R&lt;/a&gt;
  &lt;a href=&#34;#advanced-statistical-computing-with-rhttpscal-poly-advanced-rgithubiostat-431&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;These are the materials for a Spring 2020 undergraduate course offered by California Polytechnic State University professors Drs. 
&lt;a href=&#34;https://www.kelly-bodwin.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kelly Bodwin&lt;/a&gt; (an 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/bodwin&amp;#43;kelly/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio certified trainer&lt;/a&gt;) and 
&lt;a href=&#34;https://twitter.com/hglanz?lang=en&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hunter Glanz&lt;/a&gt;. In their own words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Advanced techniques for efficient use of computers to perform statistical computations and to analyze large amounts of data. Includes version control systems; tools supporting reproducibility; functional programming; randomization and bootstrapping; dynamic data visualizations; and R package development.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Follow along with their learners using this 
&lt;a href=&#34;https://cal-poly-advanced-r.github.io/STAT-431/#section-4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;course schedule&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://cal-poly-advanced-r.github.io/STAT-431/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;advr-schedule.png&#34; title=&#34;https://cal-poly-advanced-r.github.io/STAT-431/&#34; alt=&#34;https://cal-poly-advanced-r.github.io/STAT-431/&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Week-by-week, Kelly and Hunter provide a curated sequence of readings, videos, and small practice activities with careful time estimates so you know what you are signing up for.&lt;/p&gt;
&lt;img src=&#34;bodwin-glanz-advr.png&#34; title=&#34;Advanced R weekly schedule&#34; alt=&#34;Sample of an advanced R weekly schedule&#34; width=&#34;500&#34;/&gt;
&lt;p&gt;Each week also features a lab assignment and extra challenges so you can practice if you have the time. There is also a public 
&lt;a href=&#34;https://discord.com/invite/SxGR4US&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Discord channel&lt;/a&gt; so you can learn with others.&lt;/p&gt;




&lt;h2 id=&#34;data-visualizationhttpsdatavizm20classesandrewheisscom&#34;&gt;
&lt;a href=&#34;https://datavizm20.classes.andrewheiss.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Visualization&lt;/a&gt;
  &lt;a href=&#34;#data-visualizationhttpsdatavizm20classesandrewheisscom&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://datavizm20.classes.andrewheiss.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;heiss-dataviz.png&#34; title=&#34;Data Visualization by Dr. Andrew Heiss&#34; alt=&#34;Data Visualization by Dr. Andrew Heiss&#34; style=&#34;text-align: center&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Created by 
&lt;a href=&#34;https://www.andrewheiss.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Professor Andrew Heiss&lt;/a&gt; at Georgia State University, also an 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/heiss&amp;#43;andrew/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio certified trainer&lt;/a&gt;, this website is an asynchronous online course &amp;mdash; with hours of video, interactive code, code examples, and all sorts of neat stuff! From Andrew&amp;rsquo;s course description:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Use R, ggplot2, and the principles of graphic design to create beautiful and truthful visualizations of data&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;All materials are open source and creative commons licensed, so anyone can adapt and improve it later.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://datavizm20.classes.andrewheiss.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;dataviz-schedule.png&#34; title=&#34;https://datavizm20.classes.andrewheiss.com/&#34; alt=&#34;https://datavizm20.classes.andrewheiss.com/&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A personal aside: this beautiful website is built using the Hugo Academic theme with the R blogdown package. You can see the source code for the website on 
&lt;a href=&#34;https://github.com/andrewheiss/datavizm20.classes.andrewheiss.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;. Andrew&amp;rsquo;s website is 
&lt;a href=&#34;https://share-blogdown.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;another great example&lt;/a&gt; of a course website that was 
&lt;a href=&#34;https://rstd.io/sharing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shared on short notice&lt;/a&gt;!&lt;/p&gt;




&lt;h2 id=&#34;get-started-with-tidymodelshttpswwwtidymodelsorgstart&#34;&gt;
&lt;a href=&#34;https://www.tidymodels.org/start/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Get Started with tidymodels&lt;/a&gt;
  &lt;a href=&#34;#get-started-with-tidymodelshttpswwwtidymodelsorgstart&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://www.tidymodels.org/start/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;tidymodels.png&#34; title=&#34;tidymodels.org&#34; alt=&#34;tidymodels.org&#34; style=&#34;text-align: center&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We recently launched the new 
&lt;a href=&#34;https://www.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels.org&lt;/a&gt; website. If you don&amp;rsquo;t know what that word means, it is a collection of packages for modeling and machine learning using tidyverse principles. One of the most popular resources on the new website is the &lt;em&gt;
&lt;a href=&#34;https://www.tidymodels.org/start/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Get Started&lt;/a&gt;&lt;/em&gt; section. It features five articles, starting with how to create a model and ending with a beginning-to-end modeling case study. While there are no interactive exercises (yet!), you can copy/paste the code to work through the materials locally. Be on the lookout for integrations with 
&lt;a href=&#34;https://rstudio.cloud&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt; and 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; tutorials that will 
&lt;a href=&#34;https://blog.rstudio.com/2020/02/25/rstudio-1-3-integrated-tutorials/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;work within the IDE&lt;/a&gt; after our summer intern, 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/karaesmen&amp;#43;ezgi/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ezgi Karaesman&lt;/a&gt;, works her education magic 💫&lt;/p&gt;




&lt;h2 id=&#34;supervised-machine-learning-case-studies-with-rhttpssupervised-ml-coursenetlifyapp&#34;&gt;
&lt;a href=&#34;https://supervised-ml-course.netlify.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Supervised Machine Learning Case Studies with R&lt;/a&gt;
  &lt;a href=&#34;#supervised-machine-learning-case-studies-with-rhttpssupervised-ml-coursenetlifyapp&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://supervised-ml-course.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;supervised-ml-course.png&#34; title=&#34;https://supervised-ml-course.netlify.com/&#34; alt=&#34;https://supervised-ml-course.netlify.com/&#34; style=&#34;text-align: center&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This self-paced course is &lt;em&gt;newly&lt;/em&gt; updated to use the tidymodels framework for predictive modeling, brought to you by 
&lt;a href=&#34;https://juliasilge.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Julia Silge&lt;/a&gt;. Julia is a member of the tidymodels software engineering team, an RStudio 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/silge&amp;#43;julia/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;certified instructor&lt;/a&gt;, and prolific data science blogger (don&amp;rsquo;t miss her 
&lt;a href=&#34;https://juliasilge.com/category/tidymodels/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#TidyTuesday&lt;/a&gt; posts with video screencasts!). When I first started my own 
&lt;a href=&#34;https://alison.rbind.io/post/2019-12-23-learning-to-teach-machines-to-learn/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;machine learning journey&lt;/a&gt;, Julia&amp;rsquo;s course was a welcome break for me from predicting home prices in 
&lt;a href=&#34;https://cran.r-project.org/web/packages/AmesHousing/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ames, Iowa&lt;/a&gt;. Julia has a talent for explaining complicated things in simple terms, and the whole course is a breath of fresh air if you&amp;rsquo;ve been trying to learn machine learning by wading through stuffy textbooks. I was lucky enough to get a preview of this revised version, and wholeheartedly recommend&amp;mdash;it is a great interactive compliment to 
&lt;a href=&#34;https://www.tidymodels.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels.org&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;applied-machine-learninghttpswwwcscolumbiaeduamuellercomsw4995s20&#34;&gt;
&lt;a href=&#34;https://www.cs.columbia.edu/~amueller/comsw4995s20/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Applied Machine Learning&lt;/a&gt;
  &lt;a href=&#34;#applied-machine-learninghttpswwwcscolumbiaeduamuellercomsw4995s20&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://www.youtube.com/playlist?list=PL_pVmAaAnxIRnSw6wiCpSvshFyCREZmlM&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;aml.png&#34; title=&#34;https://www.cs.columbia.edu/~amueller/comsw4995s20/&#34; alt=&#34;https://www.cs.columbia.edu/~amueller/comsw4995s20/&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://scikit-learn.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Scikit-learn&lt;/a&gt; developer and Columbia University Associate Research Scientist 
&lt;a href=&#34;http://amueller.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andreas Mueller&lt;/a&gt; has shared his 2020 Applied Machine Learning course. This includes a 
&lt;a href=&#34;https://www.cs.columbia.edu/~amueller/comsw4995s20/schedule/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;schedule&lt;/a&gt; with links to all his slides (including presenters notes!), and 21 videotaped lectures in a 
&lt;a href=&#34;https://www.youtube.com/playlist?list=PL_pVmAaAnxIRnSw6wiCpSvshFyCREZmlM&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;YouTube playlist&lt;/a&gt;. Obviously, this is not an R course; it is in Python 🐍. Regardless, any data scientist can benefit from these materials, and it may give you R lovers an excuse to test out using 
&lt;a href=&#34;https://rstudio.com/solutions/r-and-python/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Python&lt;/a&gt; and the 
&lt;a href=&#34;https://rstudio.github.io/reticulate/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reticulate package&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;r-hub-for-package-developershttpsdocsr-hubio&#34;&gt;
&lt;a href=&#34;https://docs.r-hub.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R-Hub for Package Developers&lt;/a&gt;
  &lt;a href=&#34;#r-hub-for-package-developershttpsdocsr-hubio&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;
&lt;a href=&#34;https://blog.r-hub.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;r-hub.png&#34; title=&#34;R-Hub&#34; alt=&#34;R-Hub&#34; width=&#34;500&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://masalmon.eu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Maëlle Salmon&lt;/a&gt;, a research software engineer with 
&lt;a href=&#34;https://ropensci.org/author/ma%C3%ABlle-salmon/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ROpenSci&lt;/a&gt; and member of the 
&lt;a href=&#34;https://rladies.org/about-us/team/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RLadies Global team&lt;/a&gt;, has been diligently cataloging a treasure trove of knowledge for package developers to ease all steps of the R package development process. This project has been 
&lt;a href=&#34;https://www.r-consortium.org/projects/awarded-projects&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;funded by the R Consortium&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Check out her work on the R-Hub documentation site: &lt;a href=&#34;https://docs.r-hub.io/&#34;&gt;https://docs.r-hub.io/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And related series of blog posts here: &lt;a href=&#34;https://blog.r-hub.io/&#34;&gt;https://blog.r-hub.io/&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;remote-rladies-meetups&#34;&gt;Remote RLadies Meetups
  &lt;a href=&#34;#remote-rladies-meetups&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Finally, if you are craving some socially distant social interactions with your learning, many RLadies meetups have gone online. You can see all the future events anywhere in the world here: &lt;a href=&#34;https://www.meetup.com/pro/rladies/&#34;&gt;https://www.meetup.com/pro/rladies/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I hope these resources are useful if you are able to learn now, or even if you are just daydreaming about a time in the future when you&amp;rsquo;ll be able to get lost in learning something new again. Hang in there.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://unsplash.com/photos/QUJi85AKTnA&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;united-nations-covid-19-response-QUJi85AKTnA-unsplash.jpg&#34; title=&#34;Image created by Lélie Lesage. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; alt=&#34;Image created by Lélie Lesage. Submitted for United Nations Global Call Out To Creatives - help stop the spread of COVID-19.&#34; width=&#34;307&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teach R with learnr: a powerful tool for remote teaching</title>
      <link>https://education.rstudio.com/blog/2020/05/learnr-for-remote/</link>
      <pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/learnr-for-remote/</guid>
      <description>&lt;p&gt;The unexpected switch to remote instruction has been a challenge for teachers and learners, and has inspired - or for some, forced - the use of innovative teaching methods and tools. Coding lessons pose a unique challenge for remote instruction as teachers are unavailable for in-person troubleshooting, and beginning students are unlikely to have developed debugging or 
&lt;a href=&#34;https://reprex.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reprex&lt;/a&gt;-building skills. On top of coding-related challenges, students might not have access to a device on which they can install R and RStudio.&lt;/p&gt;
&lt;p&gt;So, how can we create live coding lessons to include participants who&amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;hellip;have not used or installed R and RStudio?&lt;/li&gt;
&lt;li&gt;&amp;hellip;are unable to quickly get in-person troubleshooting help during live lessons?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; package offers a solution to both. In this post, I describe why and how I created a learnr tutorial on 
&lt;a href=&#34;https://allisonhorst.shinyapps.io/missingexplorer/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Exploring missing data in naniar&lt;/em&gt;&lt;/a&gt; with both first-time and experienced R-users in mind.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://allisonhorst.shinyapps.io/missingexplorer/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;naniar.jpg&#34; width=&#34;90%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;1-approachable-for-first-time-r-users&#34;&gt;1. Approachable for first-time R users
  &lt;a href=&#34;#1-approachable-for-first-time-r-users&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;For my remote lesson on exploring missing data (using 
&lt;a href=&#34;https://www.njtierney.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dr. Nick Tierney&lt;/a&gt;’s 
&lt;a href=&#34;https://cran.r-project.org/web/packages/naniar/vignettes/getting-started-w-naniar.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;naniar&lt;/code&gt;&lt;/a&gt; package), I expected a combination of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Advanced R users&lt;/li&gt;
&lt;li&gt;Beginning R learners&lt;/li&gt;
&lt;li&gt;Attendees who had never used or seen R &amp;amp; RStudio before&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Usually, I have students fork and clone materials from a GitHub repo so that they can follow along in the RStudio IDE (Desktop, or through 
&lt;a href=&#34;https://rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt;). For my live lesson, I wanted &lt;em&gt;everyone&lt;/em&gt; - even those who had never used or seen R/RStudio before - to be able to write and run R code successfully, and I didn’t want those first-time R-users to need to navigate the IDE at the same time.&lt;/p&gt;




&lt;h3 id=&#34;learnr-tutorials-look-and-feel-like-a-simple-website&#34;&gt;learnr tutorials look and feel like a simple website
  &lt;a href=&#34;#learnr-tutorials-look-and-feel-like-a-simple-website&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;I love the RStudio IDE. If you’re reading this, you probably do, too. But try to remember what it felt like the first time you opened it. There is a lot there, and it takes a long time to feel really comfortable navigating it. Eventually, most R-users will need to become good friends with the RStudio IDE. But for first-time users working remotely and without hands-on help, a learnr tutorial - which looks like a simple, easy-to-navigate website - could be a more familiar and welcoming entry.&lt;/p&gt;
&lt;p&gt;For example, here is what my 
&lt;a href=&#34;https://allisonhorst.shinyapps.io/missingexplorer/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Exploring missing values in naniar&lt;/em&gt;&lt;/a&gt; tutorial looks like:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://allisonhorst.shinyapps.io/missingexplorer/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;tutorial_home.png&#34; width=&#34;90%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3 id=&#34;no-installing-or-importing-necessary&#34;&gt;No installing or importing necessary
  &lt;a href=&#34;#no-installing-or-importing-necessary&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Both 
&lt;a href=&#34;https://rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt; and learnr solve this problem. No need for R, RStudio, or package installation for learners to get up-and-running. And in learnr, learners don’t even need to read in data; it can already exist as a pre-stored object (e.g. data frame) that can be directly referred to throughout the tutorial. That means that &lt;strong&gt;tutorial users can immediately start exploring and playing with the data at virtually no start-up cost&lt;/strong&gt;. Again, reading in data and naming objects are critical skills that every user will eventually need to learn. Let them learn it later. Let the first time be just the awesome stuff with learnr.&lt;/p&gt;




&lt;h2 id=&#34;2-customized-hints-and-solutions&#34;&gt;2. Customized hints and solutions
  &lt;a href=&#34;#2-customized-hints-and-solutions&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Another major hurdle of remote teaching is how to help students when they get stuck. learnr solves this problem in several ways.&lt;/p&gt;




&lt;h3 id=&#34;you-decide-the-starting-point&#34;&gt;You decide the starting point
  &lt;a href=&#34;#you-decide-the-starting-point&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Writing code from scratch can be intimidating for first-time users. In learnr tutorials you decide what code already exists, and users can build on that.&lt;/p&gt;
&lt;p&gt;For example, you can pre-populate a code example for a basic graph with &lt;code&gt;ggplot2&lt;/code&gt;, and users could just add or update variables for the x- and y- aesthetic. Even better: there is no risk of them breaking it. For each code example, there is a button in the top left to “Start Over,” which will return the code to the original.&lt;/p&gt;
&lt;p&gt;In the exercise below, there is existing code to make an UpSet plot to explore co-occurrence of missing  values:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;example_code.png&#34; width=&#34;60%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h3 id=&#34;hints&#34;&gt;Hints
  &lt;a href=&#34;#hints&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;This might be my favorite thing about learnr - it’s easy to add one or more customized hints that students can look to when they get stuck. When learners are working through tutorials on their own, I think this is an awesome option to lead them along without giving away the answer.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;hint.png&#34; width=&#34;60%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h3 id=&#34;solutions&#34;&gt;Solutions
  &lt;a href=&#34;#solutions&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;If you want users to be able to see the full solution, you can make that easily available too. This is especially useful in a live-coding demo, when participants can fall behind if they need to troubleshoot or read through a sequence of Hints. Once a solution is created, a Solution button will appear in the code exercise. There’s even a convenient ‘Copy to Clipboard’ button built-in.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;solution.png&#34; width=&#34;60%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Learn how to add solutions, hints and more to your learnr tutorial 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;!&lt;/p&gt;




&lt;h2 id=&#34;3-customize-your-tutorial-with-css&#34;&gt;3. Customize your tutorial with CSS
  &lt;a href=&#34;#3-customize-your-tutorial-with-css&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I wanted the look of my learnr tutorial be highly customized. That meant some CSS, and involved just a few steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Making a new /css directory in my tutorial project&lt;/li&gt;
&lt;li&gt;Creating a new .css file in it&lt;/li&gt;
&lt;li&gt;Adding that to the YAML output format (see more in Section 3.1.4.1 
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/html-document.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Update CSS with a lot of googling, ‘Inspect Element’ and trial &amp;amp; error&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some of the custom CSS changes I made for the biggest differences with the smallest effort:&lt;/p&gt;




&lt;h3 id=&#34;update-header-color-and-font&#34;&gt;Update header color and font
  &lt;a href=&#34;#update-header-color-and-font&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Customizing &amp;lt;h3&amp;gt; header:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;h3&lt;/span&gt; {
  &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;color&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;teal&lt;/span&gt;;
  &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-family&lt;/span&gt;: &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;Roboto Slab&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;serif&lt;/span&gt;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;and similar to customize other heading levels (h1, h2, etc.).&lt;/p&gt;
&lt;p&gt;Remember that if you are using google fonts (like Roboto Slab here) you’ll need to set that up.&lt;/p&gt;




&lt;h3 id=&#34;update-body-background--font&#34;&gt;Update body background &amp;amp; font
  &lt;a href=&#34;#update-body-background--font&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;body&lt;/span&gt; {
  &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-color&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;white&lt;/span&gt;;
  &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-family&lt;/span&gt;: &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;Source Sans Pro&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;sans-serif&lt;/span&gt;;
  &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-size&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;12&lt;/span&gt;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;update-menu-aesthetics&#34;&gt;Update menu aesthetics
  &lt;a href=&#34;#update-menu-aesthetics&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Tons of options to update the overall menu look:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;.&lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;topicsList&lt;/span&gt; .&lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;topic&lt;/span&gt; {
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-family&lt;/span&gt;: &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;Roboto Slab&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;serif&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;line-height&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;40&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-size&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;15&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;padding-left&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;cursor&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;pointer&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-repeat&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;no-repeat&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-size&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;80&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-position&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;left&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;%&lt;/span&gt;;
        background-position-y: &lt;span style=&#34;color:#666&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;%&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-image&lt;/span&gt;: &lt;span style=&#34;color:#008000&#34;&gt;url&lt;/span&gt;(&lt;span style=&#34;color:#008000&#34;&gt;images/topicProgress.png&lt;/span&gt;);
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;border-bottom&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;solid&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;teal&lt;/span&gt;;
    &lt;span style=&#34;color:#008000&#34;&gt;-webkit-&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;transition-property&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;position&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;transition-property&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;position&lt;/span&gt;;
    &lt;span style=&#34;color:#008000&#34;&gt;-webkit-&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;transition-duration&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;0.25&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;s&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;transition-duration&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;0.25&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;s&lt;/span&gt;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And this stuff changes the look &amp;amp; color of the menu item you click on:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;.&lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;topicsList&lt;/span&gt; .&lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;topic&lt;/span&gt;.&lt;span style=&#34;color:#00f;font-weight:bold&#34;&gt;current&lt;/span&gt; {
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;font-family&lt;/span&gt;: &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;Roboto Slab&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;serif&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;background-color&lt;/span&gt;: &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;orange&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;color&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;#ffffff&lt;/span&gt;;
    &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;border&lt;/span&gt;: &lt;span style=&#34;color:#666&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#b00040&#34;&gt;px&lt;/span&gt;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;plus a bunch more stuff, but those are some that made me the happiest with the look of my tutorial with minimal effort.&lt;/p&gt;




&lt;h3 id=&#34;font-awesome-icons&#34;&gt;Font awesome icons!
  &lt;a href=&#34;#font-awesome-icons&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Icons are great for organization and visual interest in course materials. I used icons to indicate coding examples, exercises, and critical thinking questions. Install and attach the 
&lt;a href=&#34;https://github.com/rstudio/fontawesome&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;fontawesome&lt;/code&gt;&lt;/a&gt; package in R to add 
&lt;a href=&#34;https://fontawesome.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Font Awesome&lt;/a&gt; icons directly to your tutorial.&lt;/p&gt;
&lt;p&gt;For example, this&amp;hellip;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;fa&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;fas fa-bug&amp;#34;&lt;/span&gt;, fill &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;orange&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;adds this:&lt;/p&gt;
&lt;p&gt;&lt;svg style=&#34;height:0.8em;top:.04em;position:relative;fill:orange;&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;path d=&#34;M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z&#34;/&gt;&lt;/svg&gt;&lt;/p&gt;




&lt;h2 id=&#34;4-sounds-great-but-can-it-handle-my-class-size-and-usage&#34;&gt;4. Sounds great, but can it handle my class size and usage?
  &lt;a href=&#34;#4-sounds-great-but-can-it-handle-my-class-size-and-usage&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This was one of my biggest concerns about running a live lesson with a learnr tutorial: given limitations on hours &amp;amp; data, would the app (hosted through 
&lt;a href=&#34;https://www.shinyapps.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shinyapps.io&lt;/a&gt;) crash when everyone tried to use it?&lt;/p&gt;
&lt;p&gt;RStudio’s 
&lt;a href=&#34;http://schloerke.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Barret Schloerke&lt;/a&gt; directed me to this 
&lt;a href=&#34;https://cran.r-project.org/web/packages/learnr/vignettes/shinyapps-publishing.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;essential post&lt;/a&gt; by Angela Li (&lt;a href=&#34;https://twitter.com/CivicAngela&#34;&gt;&lt;i class=&#34;fab fa-twitter&#34;&gt;&lt;/i&gt;&lt;/a&gt;), which answers this question exactly. Following Angela’s super helpful post, and expecting ~75 people to simultaneously start and use the app for ~30 min during the lesson, I decided to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade my subscription to Standard ($99/month - check with your school / university to see if they already have a shinyapps.io subscription or could get one to support teaching)&lt;/li&gt;
&lt;li&gt;Max out instances (to 5 with a Standard subscription)&lt;/li&gt;
&lt;li&gt;Max out instance size (XXXL - 8 GB)&lt;/li&gt;
&lt;li&gt;Set Max Worker Processes to 2&lt;/li&gt;
&lt;li&gt;Set Max Connections to 17&lt;/li&gt;
&lt;li&gt;Set Start Count to 5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See Angela’s post for more information on what these actually do, and to help you decide on settings for your tutorial based on class size and needs.&lt;/p&gt;




&lt;h2 id=&#34;5-summary&#34;&gt;5. Summary
  &lt;a href=&#34;#5-summary&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I feel that learnr is a great option for coding lessons and activities, especially for remote instruction with beginning R users.&lt;/p&gt;
&lt;p&gt;For me, the biggest benefits of learnr are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Looks and feels like a simple website (great for first-time R users, knowing that eventually they’ll need to work in RStudio IDE)&lt;/li&gt;
&lt;li&gt;No account, login, or installations necessary&lt;/li&gt;
&lt;li&gt;Pre-populated code exercises, hints and solutions ensure no one gets left behind in the absence of in-person troubleshooting&lt;/li&gt;
&lt;li&gt;Data / objects already exist - no need for beginners to import data or store objects&lt;/li&gt;
&lt;li&gt;Easy to publish and share (no forking/cloning/emailing materials)&lt;/li&gt;
&lt;li&gt;Relatively easy to customize with CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some potential drawbacks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You may need to upgrade shinyapps.io subscription to suit course needs&lt;/li&gt;
&lt;li&gt;If you hate CSS, you might not love customizing (I did a lot of Inspecting Elements, and ended up really enjoying it and learning a lot)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My overall rating of learnr as a teaching tool: five stars. Give it a shot, and have fun teaching and learning with a learnr tutorial!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Decorate your R code with flair</title>
      <link>https://education.rstudio.com/blog/2020/05/flair/</link>
      <pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/05/flair/</guid>
      <description>&lt;!-- This post relies on the development version of flair!--&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Watch a 15 minute talk about this package: &lt;br&gt;
&lt;i class=&#34;fas fa-link fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://kbod.win/talks/user_2020&#34;&gt;https://kbod.win/talks/user_2020&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-youtube fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://youtu.be/sXFJ_AZ4jeA&#34;&gt;https://youtu.be/sXFJ_AZ4jeA&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;It is my distinct pleasure today to introduce you to the 
&lt;a href=&#34;https://kbodwin.github.io/flair/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;flair package&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following is an example of the type of classroom disaster that motivated this package:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You are presenting an analysis to a class or audience, and you turn to a slide
where you show both source code and its output.  Because you wanted to emphasize
a line of the source code, you copy-pasted the code text into the slide, and added
highlighting to the relevant section.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Upon opening the slide, you realize with creeping horror that you made a change
in the source code, but you forgot to edit your slide.  The code text displayed
on your screen no longer matches the output, and your students are confused.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Was this relatable?  Have you, too, lived out this horror story?&lt;/p&gt;
&lt;p&gt;This kind of un-reproducibility of materials, and the simple frustration of the fiddly nature of manually highlighting code text, led me to develop flair.  I wrote this package first and foremost for educators,
although I have found it equally useful for conference talks and workshops.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://i.imgflip.com/1hzigk.jpg&#34; alt=&#34;Yes, the reference is deliberate.&#34;&gt;&lt;/p&gt;
&lt;p&gt;You can find the basic package documentation and vignettes at

&lt;a href=&#34;https://kbodwin.github.io/flair/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this site&lt;/a&gt;. Today, though, I want to take the time to show you a few of my favorite examples of flair in action, to give you an idea of how it might be useful in your classroom or presentation.&lt;/p&gt;
&lt;p&gt;These examples all use the &lt;code&gt;baby_names&lt;/code&gt; dataset from

&lt;a href=&#34;https://www.kaggle.com/kaggle/us-baby-names&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.kaggle.com/kaggle/us-baby-names&lt;/a&gt;, which contains counts of babies born with each given name, in each state, since the 1800s. We&amp;rsquo;ll restrict our data only to babies born in California with the first name &amp;ldquo;Kelly&amp;rdquo;. You can download 
&lt;a href=&#34;kellys_ca.txt&#34;&gt;this data&lt;/a&gt; to follow along.&lt;/p&gt;




&lt;h2 id=&#34;example-1--emphasize-small-differences-in-code&#34;&gt;Example 1:  Emphasize small differences in code.
  &lt;a href=&#34;#example-1--emphasize-small-differences-in-code&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The most default ability of flair is quickly adding basic highlighting to code.&lt;/p&gt;
&lt;p&gt;There are a lot of use cases of this simple functionality.  I am particularly fond of using the &lt;code&gt;flair()&lt;/code&gt; function to show how small changes in code impact the output.&lt;/p&gt;
&lt;p&gt;For example, suppose I am teaching the concept of &lt;em&gt;geometries&lt;/em&gt; in &lt;code&gt;ggplot&lt;/code&gt;. I wish to plot the number of babies born each year with the name &amp;ldquo;Kelly&amp;rdquo; in California, colored by gender assigned at birth.&lt;/p&gt;
&lt;p&gt;I have made two different plots; one using columns, and one using lines.  The code chunk for my work looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;```{r geoms, include=FALSE}
baby_names %&amp;gt;%
  ggplot(aes(x = Year, y = Count, fill = Gender)) +
  geom_col()

baby_names %&amp;gt;%
  ggplot(aes(x = Year, y = Count, color = Gender)) +
  geom_line()
```
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;With the &lt;code&gt;decorate&lt;/code&gt; and &lt;code&gt;flair&lt;/code&gt; functions, I can trigger this code chunk to be evaluated, while simultaneously adding highlighting to the chosen parts of my code.&lt;/p&gt;
&lt;p&gt;Ordinarily, we would use &lt;code&gt;echo = FALSE&lt;/code&gt; on the first chunk below, so as not to see the &lt;code&gt;flair()&lt;/code&gt; process.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;decorate&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;geoms&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;flair&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;_col&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;flair&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;fill = &amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;flair&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;_line&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;flair&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;color = &amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code class=&#39;language-r&#39;&gt;&lt;code&gt;baby_names %&gt;%&lt;br&gt;&amp;nbsp;&amp;nbsp;ggplot(aes(x = Year, y = Count, &lt;span style=&#39;background-color:#ffff7f&#39;&gt;fill = &lt;/span&gt;Gender)) +&lt;br&gt;&amp;nbsp;&amp;nbsp;geom&lt;span style=&#39;background-color:#ffff7f&#39;&gt;_col&lt;/span&gt;()&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://education.rstudio.com/blog/2020-05-04-flair/index_files/figure-html/unnamed-chunk-8-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#39;language-r&#39;&gt;&lt;code&gt;baby_names %&gt;%&lt;br&gt;&amp;nbsp;&amp;nbsp;ggplot(aes(x = Year, y = Count, &lt;span style=&#39;background-color:#ffff7f&#39;&gt;color = &lt;/span&gt;Gender)) +&lt;br&gt;&amp;nbsp;&amp;nbsp;geom&lt;span style=&#39;background-color:#ffff7f&#39;&gt;_line&lt;/span&gt;()&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://education.rstudio.com/blog/2020-05-04-flair/index_files/figure-html/unnamed-chunk-8-2.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; If you have many pieces of code to flair, and you don&amp;rsquo;t want to manually specify everything, the &lt;code&gt;flair_rx()&lt;/code&gt; function lets you input regular expressions instead of fixed strings.&lt;/p&gt;




&lt;h2 id=&#34;example-2--match-colors-to-concepts&#34;&gt;Example 2:  Match colors to concepts.
  &lt;a href=&#34;#example-2--match-colors-to-concepts&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When teaching, we often want to link concepts to code, like in this beautiful flair-created slide by 
&lt;a href=&#34;https://twitter.com/andrewheiss&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andrew Heiss&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;heiss-slide.jpg&#34; alt=&#34;an R Markdown slide with flair&#34;&gt;&lt;/p&gt;
&lt;p&gt;Coloring different pieces of your code different colors is straightforward with &lt;code&gt;flair()&lt;/code&gt;.  For an extra shortcut, you can also pipe strings though the &lt;code&gt;flair&lt;/code&gt; functions to color parts of your text, and even
add your own special html tags if you wish.&lt;/p&gt;




&lt;h4 id=&#34;code-chunks&#34;&gt;Code Chunks:
  &lt;a href=&#34;#code-chunks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;```{r, results = &amp;quot;asis&amp;quot;, echo = FALSE}
&amp;quot;This model has a response variable, two predictors, and an interaction term.&amp;quot; %&amp;gt;%
  flair(&amp;quot;response variable&amp;quot;, color = &amp;quot;deeppink&amp;quot;) %&amp;gt;%
  flair(&amp;quot;predictors&amp;quot;, color = &amp;quot;cornflowerblue&amp;quot;) %&amp;gt;%
  flair(&amp;quot;interaction term&amp;quot;, color = &amp;quot;orange&amp;quot;) %&amp;gt;%
  flair_all(before = &amp;quot;&amp;lt;h4&amp;gt;&amp;quot;, after = &amp;quot;&amp;lt;/h4&amp;gt;&amp;quot;) %&amp;gt;%
  cat()
```
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;
```{r, echo = FALSE}
decorate(&amp;quot;lm&amp;quot;) %&amp;gt;%
  flair(&amp;quot;Count&amp;quot;, color = &amp;quot;deeppink&amp;quot;) %&amp;gt;%
  flair(&amp;quot;Gender:Year&amp;quot;, color = &amp;quot;orange&amp;quot;) %&amp;gt;%
  flair_rx(&amp;quot;Gender |Year &amp;quot;, color = &amp;quot;cornflowerblue&amp;quot;)

```
&lt;/code&gt;&lt;/pre&gt;



&lt;h4 id=&#34;results&#34;&gt;Results:
  &lt;a href=&#34;#results&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h4&gt;&lt;h4&gt;This model has a &lt;span style=&#39;color:deeppink&#39;&gt;response variable&lt;/span&gt;, two &lt;span style=&#39;color:cornflowerblue&#39;&gt;predictors&lt;/span&gt;, and an &lt;span style=&#39;color:orange&#39;&gt;interaction term&lt;/span&gt;.&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&#39;language-r&#39;&gt;&lt;code&gt;mod &lt;- lm(&lt;span style=&#39;color:deeppink&#39;&gt;Count&lt;/span&gt; ~ &lt;span style=&#39;color:cornflowerblue&#39;&gt;Gender &lt;/span&gt;+ &lt;span style=&#39;color:cornflowerblue&#39;&gt;Year &lt;/span&gt;+ &lt;span style=&#39;color:orange&#39;&gt;Gender:Year&lt;/span&gt;, data = baby_names)&lt;br&gt;&lt;br&gt;summary(mod)&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;
## 
## Call:
## lm(formula = Count ~ Gender + Year + Gender:Year, data = baby_names)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -625.27 -128.36  -13.67  155.13  943.86 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(&amp;gt;|t|)
## (Intercept)   837.0953  3555.4360   0.235    0.814
## GenderM      2769.6513  4980.9342   0.556    0.579
## Year           -0.1064     1.7965  -0.059    0.953
## GenderM:Year   -1.6660     2.5171  -0.662    0.509
## 
## Residual standard error: 337.2 on 147 degrees of freedom
## Multiple R-squared:  0.3876,	Adjusted R-squared:  0.3751 
## F-statistic: 31.02 on 3 and 147 DF,  p-value: 1.357e-15

&lt;/code&gt;&lt;/pre&gt;



&lt;h2 id=&#34;example-3--mask-code-for-easy-practice-activities&#34;&gt;Example 3:  Mask code for easy practice activities.
  &lt;a href=&#34;#example-3--mask-code-for-easy-practice-activities&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Last but not least, my absolute favorite usage of flair is the &lt;code&gt;mask()&lt;/code&gt; function
for hiding segments of code. This feature was originally suggested by Alison Hill,
and it has quickly become my most-used function in the package!&lt;/p&gt;
&lt;p&gt;Suppose I am teaching &lt;code&gt;ggplot&lt;/code&gt;, and I want students to understand the Grammar of
Graphics framework.  I would like for them to have practice identifying a few key
elements of the plot:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which variables are being used for which aesthetic elements.&lt;/li&gt;
&lt;li&gt;Which geometries are being used to make the plot.&lt;/li&gt;
&lt;li&gt;Which &lt;code&gt;theme_*()&lt;/code&gt; function is being applied to the plot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thus, I can create the following challenge:  Fill in the code blanks, based on
the plot output.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#39;language-r&#39;&gt;&lt;code&gt;library(&lt;span style=&#39;background-color:pink&#39;&gt;ggplot2&lt;/span&gt;)&lt;br&gt;&lt;br&gt;baby_names %&gt;%&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&#39;background-color:pink&#39;&gt;ggplot&lt;/span&gt;(aes(y = &lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;, x = &lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;, color = &lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;)) +&lt;br&gt;&amp;nbsp;&amp;nbsp;geom_&lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;() +&lt;br&gt;&amp;nbsp;&amp;nbsp;geom_&lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;() +&lt;br&gt;&amp;nbsp;&amp;nbsp;theme_&lt;span style=&#39;background-color:#ffff7f&#39;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;()&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://education.rstudio.com/blog/2020-05-04-flair/index_files/figure-html/unnamed-chunk-10-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Here I have hidden the flair chunk, so that you can see the exercise as the students do.
This is what it looked like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;```{r, echo = FALSE}
decorate(&amp;quot;plot&amp;quot;) %&amp;gt;%
  flair_rx(&amp;quot;ggplot2?&amp;quot;, background = &amp;quot;pink&amp;quot;) %&amp;gt;%
  mask(&amp;quot;Count&amp;quot;) %&amp;gt;%
  mask(&amp;quot;Year&amp;quot;) %&amp;gt;%
  mask(&amp;quot;Gender&amp;quot;) %&amp;gt;%
  mask(&amp;quot;point&amp;quot;) %&amp;gt;%
  mask(&amp;quot;line&amp;quot;) %&amp;gt;%
  mask(&amp;quot;light&amp;quot;)
  
```
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Students learning to code in R will often quickly figure out how to &lt;em&gt;write&lt;/em&gt; code
and guess-and-check until the output matches what they wanted.  However, it&amp;rsquo;s also important that they be able to &lt;em&gt;think ahead&lt;/em&gt;, and anticipate what each piece of the code will influence in the output.&lt;/p&gt;
&lt;p&gt;Fill-in-the blank activities are a great way to practice, and masking with flair
makes creating these activities quick and easy!&lt;/p&gt;




&lt;h2 id=&#34;wrap-up&#34;&gt;Wrap-up
  &lt;a href=&#34;#wrap-up&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;You can try out the code in this blog post in 
&lt;a href=&#34;https://rstudio.cloud/project/1227440&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this RStudio Cloud project&lt;/a&gt;.  In general, flair can be used
with most R Markdown HTML-based output formats, including slide makers like

&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/ioslides-presentation.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;ioslides&lt;/em&gt;&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/yihui/xaringan&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;xaringan&lt;/em&gt;&lt;/a&gt;. It is unfortunately not yet possible to knit to pdf or
MS Word files with flair formatting - although we hope to provide that functionality in the future.&lt;/p&gt;
&lt;p&gt;If you have any ideas for future flair abilities that would make your teaching and presenting easier, please don&amp;rsquo;t hesitate to 
&lt;a href=&#34;https://github.com/kbodwin/flair/issues&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;file an issue on GitHub&lt;/a&gt;, or to 
&lt;a href=&#34;mailto:kelly@bodwin.us&#34;&gt;reach out to me&lt;/a&gt; personally.&lt;/p&gt;
&lt;p&gt;We hope that flair makes your code-presenting process a bit more simple, reproducible,
and enjoyable.&lt;/p&gt;
&lt;p&gt;Happy flairing!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/l0HU7yHIK6Nc3WcE0/giphy.gif&#34; alt=&#34;This guy&amp;rsquo;s name is Ric Flair.  If you didn&amp;rsquo;t know that, now you do.&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in April 2020</title>
      <link>https://education.rstudio.com/blog/2020/04/april-2020-instructors/</link>
      <pubDate>Thu, 30 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/04/april-2020-instructors/</guid>
      <description>&lt;p&gt;We are very pleased to have welcomed thirteen new certified instructors in April 2020,
including our first from Hungary and Ireland:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/aguero&amp;#43;carlos/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Carlos Agüero&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/baker&amp;#43;david/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;David John Baker&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/czeller&amp;#43;ildiko/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ildiko Czeller&lt;/a&gt; (Shiny and Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/duggan&amp;#43;jim/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jim Duggan&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/dykes&amp;#43;bradford/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bradford Dykes&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/ihaddaden&amp;#43;fodil/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Fodil Ihaddaden&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/irvine&amp;#43;michael/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Michael Irvine&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/leach&amp;#43;jim/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jim Leach&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/manley&amp;#43;ross/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ross Manley&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/mcdonald&amp;#43;matthew/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Matthew McDonald&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/navarro&amp;#43;danielle/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Danielle Navarro&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/rogers&amp;#43;sam/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sam Rogers&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/vinogradova&amp;#43;svetlana/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Svetlana Vinogradova&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This brings the total number of certified Tidyverse instructors to 107,
and the number certified to teach Shiny to 18.
If you would like to speak with any of them about your training needs,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;Country&lt;/th&gt;
&lt;th align=&#34;right&#34;&gt;Number of Certified Instructors&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Algeria&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Argentina&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Australia&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Austria&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Belgium&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Canada&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Costa Rica&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Czech Republic&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;France&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Germany&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Hungary&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Indonesia&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Ireland&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Israel&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Italy&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Kenya&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Netherlands&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Puerto Rico&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Senegal&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;South Korea&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Switzerland&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Thailand&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;Trinidad and Tobago&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;United Kingdom&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;United States of America&lt;/td&gt;
&lt;td align=&#34;right&#34;&gt;46&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
    <item>
      <title>Announcing 2020 Interns</title>
      <link>https://education.rstudio.com/blog/2020/04/announcing-2020-interns/</link>
      <pubDate>Wed, 08 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/04/announcing-2020-interns/</guid>
      <description>&lt;p&gt;We received almost two hundreds applications for

&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/applications-for-2020-intern-program-are-now-open/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this year&amp;rsquo;s internship program&lt;/a&gt;,
and while we wish we could have offered positions to everyone,
in the end we were only able to select five:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://simonpcouch.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Simon Couch&lt;/a&gt;: tidymodels package support&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.ezgikaraesmen.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ezgi Karaesmen&lt;/a&gt;: interactive tutorials for tidymodels.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.linkedin.com/in/devinljohnson/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Devin Johnson&lt;/a&gt;: support for people working with spreadsheets in R.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://jooyoungseo.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;JooYoung Seo&lt;/a&gt;: accessibility improvements.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;http://nischalshrestha.me/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Nischal Shrestha&lt;/a&gt;: interactive tutorials for Python.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They will all start in May,
and will blog here regularly about their progress—we are looking forward to working with them.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>First year of instructor training</title>
      <link>https://education.rstudio.com/blog/2020/04/first-year-of-instructor-training/</link>
      <pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/04/first-year-of-instructor-training/</guid>
      <description>&lt;p&gt;RStudio&amp;rsquo;s instructor training and certification program has been running for a year now,
so it&amp;rsquo;s time to take stock of what we&amp;rsquo;ve accomplished and what we&amp;rsquo;ve learned.
The first part is easiest:
of the 280 people who have taken part in the training course,
95 have certified as tidyverse instructors and 17 as Shiny instructors.
A combined 35% completion rate may seem low,
and at first glance the completion rates seem to have dropped over time:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;figs/completion-rates-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;However, this is pretty clearly because most people take a while to complete their exams:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;figs/competion-times-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Setting aside the first class at rstudio::conf 2019
the overall completion rate seems to be hovering around 45%,
and the average time a little over 100 days.
We&amp;rsquo;d like to increase the first figure and lower the second one,
but overall we&amp;rsquo;re pretty happy.&lt;/p&gt;
&lt;p&gt;The more important question is what impact the training is having.
Feedback from participants has been positive,
but that&amp;rsquo;s obviously biased in several ways.
so we plan to launch a survey later this month to get more information.
We will also watch what happens now that the IDE supports 
&lt;a href=&#34;https://blog.rstudio.com/2020/02/25/rstudio-1-3-integrated-tutorials/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;integrated tutorials&lt;/a&gt;:
I will personally mail a box full of stickers to
the first person who puts a concept map in the new tutorial pane.&lt;/p&gt;
&lt;p&gt;The biggest question right now,
though,
is whether we helped prepare people for the seismic shift in teaching and training
caused by the COVID-19 pandemic.
Our 
&lt;a href=&#34;https://resources.rstudio.com/webinars&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;webinars&lt;/a&gt; have summed up key points about general teaching practices,
using rstudio.cloud for teaching,
and sharing materials online with R Markdown;
we hope that 
&lt;a href=&#34;https://drive.google.com/drive/folders/13ohFt3D0EJ5PDbMaWTxnHH-hwA7G0IvY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;our lessons&lt;/a&gt; and 
&lt;a href=&#34;http://teachtogether.tech&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;other material&lt;/a&gt; gave people more to draw on,
but the only way to find out will be to ask them in a year
when the dust has settled and we can see what has changed for good.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you would like to take part in training,
please see 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/reopening-training-applications/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this blog post&lt;/a&gt;
or read a fuller description at &lt;a href=&#34;https://education.rstudio.com/trainers&#34;&gt;https://education.rstudio.com/trainers&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Sharing on Short Notice</title>
      <link>https://education.rstudio.com/blog/2020/04/sharing-on-short-notice/</link>
      <pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/04/sharing-on-short-notice/</guid>
      <description>&lt;p&gt;Thanks to everyone who joined us for last week&amp;rsquo;s webinar on how to share your teaching materials online—
on short notice—
with R Markdown. We weren&amp;rsquo;t able to get to all of the questions that were asked during the webinar, so here are answers to all of them.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i class=&#34;far fa-images&#34;&gt;&lt;/i&gt; Slides at &lt;a href=&#34;https://rstd.io/sharing&#34;&gt;https://rstd.io/sharing&lt;/a&gt;&lt;br&gt;
&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://github.com/rstudio-education/sharing-short-notice&#34;&gt;https://github.com/rstudio-education/sharing-short-notice&lt;/a&gt;&lt;br&gt;
&lt;i class=&#34;fas fa-play-circle&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://resources.rstudio.com/webinars/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Video&lt;/a&gt;&lt;br&gt;
&lt;i class=&#34;fas fa-question-circle&#34;&gt;&lt;/i&gt; If you have any other questions, please don&amp;rsquo;t hesitate to post on 
&lt;a href=&#34;https://community.rstudio.com/t/sharing-on-short-notice-how-to-get-your-materials-online-with-r-markdown-webinar-follow-up/59131&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2 id=&#34;questions-about-r-markdown&#34;&gt;Questions about R Markdown
  &lt;a href=&#34;#questions-about-r-markdown&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;m a newbie to R Markdown. I&amp;rsquo;m a writer but not really a coder. Where can I start to with all this?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;RStudio has some self-paced online tutorials for 
&lt;a href=&#34;https://rmarkdown.rstudio.com/lesson-1.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;getting started with R Markdown&lt;/a&gt;. Also, the 
&lt;a href=&#34;https://r4ds.had.co.nz/communicate-intro.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Communicate&lt;/a&gt; section of the book &lt;em&gt;R for Data Science&lt;/em&gt; gives a great overview of the basics of R Markdown. To learn about the different types of output formats available, we recommend 
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Markdown: The Definitive Guide&lt;/a&gt; by Yihui Xie, J. J. Allaire, and Garrett Grolemund.&lt;/p&gt;
&lt;p&gt;For the website building tools we covered, here are some specific resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/rmarkdown-site.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Markdown websites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio.github.io/distill/website.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Distill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://bookdown.org/yihui/bookdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bookdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Blogdown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;mtsalsa.jpg&#34; alt=&#34;A climb up R Markdown Mountain&#34; width=&#34;80%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: A climb up R Markdown Mountain&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;How can you incorporate 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; exercises in R Markdown HTML output?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a bit tricky, but possible! Desirée has done this extensively on her 
&lt;a href=&#34;https://bit.ly/giraffe-stats&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Teacupes, Giraffes, and Statistics&lt;/a&gt; R Markdown website. She also wrote a 
&lt;a href=&#34;https://desiree.rbind.io/post/2020/learnr-iframes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog post&lt;/a&gt; with instructions.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://desiree.rbind.io/post/2020/learnr-iframes/iframe-resizer.gif&#34; alt=&#34;Embedding learnr in R Markdown&#34; width=&#34;100%&#34; style=&#34;max-width: 50%;&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Embedding learnr in R Markdown&lt;/p&gt;
&lt;/div&gt;




&lt;h2 id=&#34;questions-about-the-rstudio-ide&#34;&gt;Questions about the RStudio IDE
  &lt;a href=&#34;#questions-about-the-rstudio-ide&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;My RStudio IDE doesn&amp;rsquo;t have Build. Could you share how to show it?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Somtimes you&amp;rsquo;ll need to restart the RStudio IDE to detect the output format and show you the correct &amp;ldquo;build&amp;rdquo; button on the Build tab.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://rstudio-education.github.io/sharing-short-notice/images/screenshots/build-site.png&#34; alt=&#34;Build tab in the RStudio IDE&#34; width=&#34;50%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: Build tab in the RStudio IDE&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Here is a bit 
&lt;a href=&#34;https://community.rstudio.com/t/no-build-pane-build-book-option-using-bookdown/36415/5&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;more discussion&lt;/a&gt; on this, and how to use the &lt;code&gt;.Rproj&lt;/code&gt; file to debug (&lt;em&gt;hint:&lt;/em&gt; you are looking for &lt;code&gt;BuildType: Website&lt;/code&gt;!).&lt;/p&gt;




&lt;h2 id=&#34;questions-about-netlify&#34;&gt;Questions about Netlify
  &lt;a href=&#34;#questions-about-netlify&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Because we focused on how to share your teaching materials online on short notice, we introduced 
&lt;a href=&#34;https://app.netlify.com/drop&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netlify Drop&lt;/a&gt;. Here are a few questions about that.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can you change the name of the Netlify link (while keeping the Netlify subdomain)?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes! By default, Netlify provides you a sometimes amusing, 
&lt;a href=&#34;https://rstudio-education.github.io/sharing-short-notice/#80&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;random Netlify subdomain&lt;/a&gt;. See 
&lt;a href=&#34;https://rstudio-education.github.io/sharing-short-notice/#131&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this slide&lt;/a&gt; for how to change your site name, keeping the Netlify domain &lt;code&gt;___.netlify.com&lt;/code&gt;; the video below walks you through those steps.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;iframe src=&#34;https://rstudio-education.github.io/sharing-short-notice/images/netlify-domain.mp4&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 4: Changing the Netlify subdomain&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Can you choose a web address for Netlify?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes! The Netlify docs contain instructions for setting up 
&lt;a href=&#34;https://docs.netlify.com/domains-https/custom-domains/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;custom domains&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Any preferences between using Netlify vs. Travis-ci for continuous integration?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I use Netlify mainly for 
&lt;a href=&#34;https://docs.netlify.com/site-deploys/create-deploys/#deploy-with-git&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;continuous deployment&lt;/a&gt;. This means that I connect Netlify to a Git repository and the two things- my source files and my website- are kept in sync. Then every time I commit and push changes to Git, my updated website automatically deploys without me having to remember to 
&lt;a href=&#34;https://rstudio-education.github.io/sharing-short-notice/#83&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;manually update my site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For blogdown websites, this workflow is particularly nice because Netlify can use Hugo to build my site from my source files, but I still need to 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/workflow.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;serve the site locally&lt;/a&gt; first because Netlify does not know R.&lt;/p&gt;
&lt;p&gt;Travis does know R, so I have used that for 
&lt;a href=&#34;https://github.com/rstudio-education/stat545/blob/master/.travis.yml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;continuous integration&lt;/a&gt; of HTML books created with bookdown, as with the 
&lt;a href=&#34;https://stat545.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Stat545 website&lt;/a&gt;. Lately, 
&lt;a href=&#34;https://ropenscilabs.github.io/actions_sandbox/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;many users&lt;/a&gt; are testing out 
&lt;a href=&#34;https://github.com/features/actions&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub Actions&lt;/a&gt; with R Markdown-based sites with success. For example, 
&lt;a href=&#34;https://www.hvitfeldt.me/blog/bookdown-netlify-github-actions/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Emil Hvitfeldt&lt;/a&gt; wrote up some great instructions for using GitHub Actions with Netlify for a bookdown book. Similarly, here are some instructions for using GitHub Actions with a 
&lt;a href=&#34;https://github.com/r-lib/actions/tree/master/examples#build-blogdown-site&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown website&lt;/a&gt;, which is set up for the 
&lt;a href=&#34;https://github.com/tidyverse/tidyverse.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse.org site&lt;/a&gt;. There is a 
&lt;a href=&#34;https://www.maxheld.de/ghactions/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ghactions R package&lt;/a&gt; that can also help.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can you make a private site using Netlify for free?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No, 
&lt;a href=&#34;https://www.netlify.com/pricing/#teams&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;site passwords&lt;/a&gt; are not in Netlify&amp;rsquo;s free tier.&lt;/p&gt;




&lt;h2 id=&#34;questions-about-bookdown&#34;&gt;Questions about bookdown
  &lt;a href=&#34;#questions-about-bookdown&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Can bookdown export to PDF or Word docs as well as HTML?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes- the bookdown package enables several different 
&lt;a href=&#34;https://bookdown.org/yihui/bookdown/output-formats.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;output formats&lt;/a&gt;. We focused on only one of the HTML output formats: the 
&lt;a href=&#34;https://bookdown.org/yihui/bookdown/html.html#gitbook-style&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitBook style&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I tried the Netlify Drop and worked great. I tried afterward to link it to the respective GitHub repository, but when it tried to build it I got an error. I used the build command &lt;code&gt;npm run build&lt;/code&gt;, and the directory &lt;code&gt;_book&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Netlify cannot build your book for you- your bookdown book needs to be 
&lt;a href=&#34;https://bookdown.org/yihui/bookdown/get-started.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;built&lt;/a&gt; with the bookdown R package in RStudio. When you use Netlify, you don’t use a build command at all, but you should change the publish directory to the &lt;code&gt;_book/&lt;/code&gt; sub folder.&lt;/p&gt;




&lt;h2 id=&#34;questions-about-blogdown&#34;&gt;Questions about blogdown
  &lt;a href=&#34;#questions-about-blogdown&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Is it waaaaaay simpler to use Blogdown?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No. This blog post by 
&lt;a href=&#34;https://masalmon.eu/2020/02/29/hugo-maintenance/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Maëlle Salmon&lt;/a&gt;, who has developed several Hugo websites using blogdown including 
&lt;a href=&#34;https://ropensci.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ROpenSci&lt;/a&gt; and 
&lt;a href=&#34;https://docs.r-hub.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R-Hub Documentation&lt;/a&gt;, is a great overview of what you need to know. As we mentioned in the webinar, unless you have high HTML fluency and high degree of comfort working with websites, we don&amp;rsquo;t recommend you &lt;em&gt;start here&lt;/em&gt; if you are sharing on short notice and this would be your first blogdown project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why does signing up to Netlify using a version control account make your life easier?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wiring up your version control account (i.e., GitHub, BitBucket, GitLab) with Netlify is a good thing ™️. This is because it enables you to 
&lt;a href=&#34;https://docs.netlify.com/site-deploys/create-deploys/#deploy-with-git&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;continuously deploy&lt;/a&gt; your website, so that every commit/push that changes your source files triggeres the site to be re-built.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What should I do if I want to update the blogdown theme?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;First, I 
&lt;a href=&#34;https://rstudio-education.github.io/sharing-short-notice/#148&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;do not recommend&lt;/a&gt; updating your blogdown theme while teaching a course. Ask me how I know.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;blogdown-advice.png&#34; alt=&#34;Alison&#39;s blogdown advice&#34; width=&#34;75%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 5: Alison&#39;s blogdown advice&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;But, if you must update an already installed theme like for example 
&lt;a href=&#34;https://github.com/gcushen/hugo-academic&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;&amp;quot;gcushen/hugo-academic&amp;quot;&lt;/code&gt;&lt;/a&gt;, use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;blogdown&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;install_theme&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;gcushen/hugo-academic&amp;#34;&lt;/span&gt;, 
                        force &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;, 
                        update_config &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;,
                        theme_example &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;FALSE&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, I would look at the new example site, now located in &lt;code&gt;themes/hugo-academic/exampleSite&lt;/code&gt;. First, look at the site configuration files (&lt;code&gt;config.toml&lt;/code&gt; plus any &lt;code&gt;.toml&lt;/code&gt; files in &lt;code&gt;config/_default/&lt;/code&gt;) and update manually. You&amp;rsquo;ll also want to look at the YAML in the updated example site to see if that changed as well.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is possible to deploy a blogdown site, not in Netlify, but in Github?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes it is 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/github-pages.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;possible&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;questions-about-behind-the-scenes&#34;&gt;Questions about &amp;ldquo;behind the scenes&amp;rdquo;
  &lt;a href=&#34;#questions-about-behind-the-scenes&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;How did you make such neat screen recordings? They were great for teaching!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Desirée made the videos in the webinar using a Mac OSX app called 
&lt;a href=&#34;https://getkap.co/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kap&lt;/a&gt;, an 
&lt;a href=&#34;https://github.com/wulkano/kap&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;open-source screen recorder&lt;/a&gt;. Here is an example video, which shows how to use the 
&lt;a href=&#34;https://rstudio-education.github.io/sharing-short-notice/#150&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Deploy to Netlify&amp;rdquo; button&lt;/a&gt; we demoed from this 
&lt;a href=&#34;https://github.com/apreshill/share-blogdown#share-blogdown&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub &lt;code&gt;README&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;iframe src=&#34;https://rstudio-education.github.io/sharing-short-notice/images/deploy-button.mp4&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 6: Demo of the &#39;Deploy to Netlify&#39; button&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In the Kap app preferences, we selected &amp;ldquo;Highlight clicks&amp;rdquo;, which creates that circle halo around the cursor when you click on the screen (you can see it about 7 seconds in to the video above). She also 
&lt;a href=&#34;https://support.apple.com/guide/mac-help/magnify-the-mouse-pointer-mchlp2920/mac&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;magnified the mouse pointer&lt;/a&gt; by changing an OS-specific setting before recording.&lt;/p&gt;




&lt;h2 id=&#34;thank-you&#34;&gt;Thank you
  &lt;a href=&#34;#thank-you&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We really enjoyed making and delivering this webinar. We have so enjoyed seeing all the sites already built and shared so far!&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;iframe src=&#34;https://rstudio-education.github.io/sharing-short-notice/#7&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 7: Bye!&lt;/p&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Teaching online with RStudio Cloud</title>
      <link>https://education.rstudio.com/blog/2020/04/teaching-with-rstudio-cloud-q-a/</link>
      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/04/teaching-with-rstudio-cloud-q-a/</guid>
      <description>&lt;p&gt;Thanks to everyone who participated in last week&amp;rsquo;s webinar on Teaching online with RStudio Cloud. We weren&amp;rsquo;t able to answer all of the questions that were asked during the webinar while we were online, so here are answers to all of them. If you have any other questions, please don&amp;rsquo;t hesitate to post on 
&lt;a href=&#34;http://community.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;🖥 
&lt;a href=&#34;https://rstd.io/rscloud-webinar&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides&lt;/a&gt;&lt;br&gt;
📽 
&lt;a href=&#34;https://resources.rstudio.com/webinars/teaching-r-online-with-rstudio-cloud&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Video&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;course-administration&#34;&gt;Course administration
  &lt;a href=&#34;#course-administration&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Does rstudio.cloud integrate well with Moodle?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is currently no learning management system (LMS) integration, however this is something the engineering team has on their radar. See below for how students can submit their work on your LMS.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;How do students download files from RStudio.Cloud? For example, how do they submit assignments to the learning management system we use?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One option is is to export and download the file from rstudio.cloud. In the example below, I&amp;rsquo;ve checked the csv file I want to download, clicked &amp;ldquo;More&amp;rdquo;, then Export. If multiple files are selected, they are combined into a zip file.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;file-export.jpg&#34; width=&#34;690&#34; /&gt;&lt;/p&gt;
&lt;p&gt;You might have other options to submit homework, for example submitting the cloud project, or if you want to get advanced, ask students to push to a Git repository.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Do I need a separate space for each group of students if I have more than one?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This depends on what you mean by &amp;ldquo;group&amp;rdquo;. I recommend keeping students who are exposed to the same material and assignments in a single workspace, even if the course has multiple sections (e.g. multiple lab/workshops sections but same lectures, assignments, assessments).&lt;/p&gt;
&lt;p&gt;For different courses (covering different materials and with different assignments) use separate spaces.&lt;/p&gt;
&lt;p&gt;I think about it as one workspace for each course I teach.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Should I want to assign a different project to each different group of students, should I create different workspaces or could I have one workspace and create different projects within it with different access privileges so that students can access only the project assigned to them?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is currently possible to open project access to a subset of students in a workspace. If you wanted to do this you can either create separate workspaces (as described in the previous question) or use the share a single project option for specific groups of students.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Is it possible to correct homework automatically? Or do we need to visualize each student&amp;rsquo;s answers?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is no autograding on RStudio Cloud currently.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the 2nd option (shared workspace), is it possible to share a link with students to the specific project being assigned within the class workspace so they don&amp;rsquo;t have to go looking for it? I&amp;rsquo;m thinking of the idea of including the URL in my LMS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, you can do this. The student will need to be enrolled in the workspace first. Then, create the project and make it an assignment. Then, you can add a link to the project, and when the student clicks on that link it will be equivalent to starting an assignment. Student can then leave and come back, and they will see a Continue instead of Start button for the assignment.&lt;/p&gt;




&lt;h2 id=&#34;how-to&#34;&gt;How to
  &lt;a href=&#34;#how-to&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;How do you load a data set or existing files into the cloud?
{related} What&amp;rsquo;s the process for sharing data files, just load them into the workspace?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the Files pane, click on upload, then browse your computer to find and upload the file.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;rscloud-upload-file.png&#34; width=&#34;755&#34; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You said that for sharing a project with students there are two main ways. In the first way they have to make a copy of the project in order to not to lose the changes. Can you show how to do this?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When a student goes to your shared project they&amp;rsquo;ll see a blinking red text that says &amp;ldquo;TEMPORARY COPY&amp;rdquo; and next to it is a button to &amp;ldquo;Save a Permanent Copy&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;rscloud-save-permanent-copy.png&#34; width=&#34;1358&#34; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;How can you SET the base project?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a href=&#34;https://youtu.be/Fz9UR6uxAG4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;This video&lt;/a&gt; walks you through the steps for setting a base project. Briefly,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a new project and install any packages, add any files, etc. you want in your base project.&lt;/li&gt;
&lt;li&gt;Name this project something you&amp;rsquo;ll recognise (I like naming them &lt;code&gt;base&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;While in the project, click on the gear icon on the top right, then on Access, and set the project to be visible to everyone in the workspace.&lt;/li&gt;
&lt;li&gt;Then, go back the homepage of your workspace.&lt;/li&gt;
&lt;li&gt;Click on the gear icon on the top right, and you will see a menu where you can set your base project. Click on the three dots to pop open a window where you can select the project you want to set as base.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;collaboration--assistance&#34;&gt;Collaboration / assistance
  &lt;a href=&#34;#collaboration--assistance&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;When peeking into a student&amp;rsquo;s project, can the instructor directly edit and run code?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes! The only thing to be aware of is that two people can&amp;rsquo;t be in the same project at the same time. So my recommendation is to ping your student before you peek into their project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can a student also have their workspace open when me (instructor) &amp;ldquo;peeking&amp;rdquo; in?  My experience is that having me in their workspace crashes their session.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two people can&amp;rsquo;t be in the same project at the same time, so my recommendation is to ping your student before you peek into their project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can you suggest any sources I can read/see that can help me to use rstudio.cloud with my &lt;strong&gt;research group&lt;/strong&gt; instead of my class? e.g. start large experiments, reproducibility&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;m not aware of something official written about this but a few ideas come to mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I would create a workspace for the group, if anything, to keep things organised and in one place.&lt;/li&gt;
&lt;li&gt;I imagine you would want members of your research group to make their work visible to others, so you can relax the permissions for members to change visibility of their projects.&lt;/li&gt;
&lt;li&gt;The assignment feature might not be relevant, you can make projects visible to others without making them into assignments.&lt;/li&gt;
&lt;li&gt;RStudio Cloud projects are great for collaboration, but note that two people cannot work on the project at the same time. So people will either need to take turns editing a project, or if your research group uses version control, they can of course use a service like GitHub for the collaboration aspect.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Can students collaborate on projects?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is no concurrent collaborative editing of projects &amp;ndash; so your students couldn&amp;rsquo;t collaborate like they might do on a Google doc &amp;ndash; so this is important to note. But there are a few approaches to collaboration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you also teach version control, you can have a single repo on GitHub that all students in a group has access to and they clone this repo on their individual RStudio Cloud accounts within your course workspace and they can push their changes to the repo. This is the approach I use in my data science courses. You can read more about 
&lt;a href=&#34;https://datasciencebox.org/infrastructure/github/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; and 
&lt;a href=&#34;https://arxiv.org/abs/2001.01988&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If not, one possible approach is to have you (instructor) or students in a team create an RStudio Project outside of a workspace and share with team members. Currently, there is no way to share a project with specific individuals within a workspace.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Is there an integrated chat system in rstudio.cloud like Slack, so students can ask questions and I as instructor can answer? I currently use Slack, but it would be nice to have it all in one place?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is not.&lt;/p&gt;




&lt;h2 id=&#34;limits&#34;&gt;Limits
  &lt;a href=&#34;#limits&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;What is the individual file limit RStudio.cloud projects?  e.g., GitHub has something like 100MB limit per file]
{related} Are there file size constraints with RStudio Cloud?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Each project is allocated 1GB of RAM.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Do we have to ask for permission to add more than 10 students for each workspace? or can I ask a single time?
{related} It seems like we do not need to request anything if our group is under 25 students, is that correct?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Each account is allocated one private space, with up to &lt;strong&gt;10 members&lt;/strong&gt; (including the workspace admin, i.e. the instructor) and &lt;strong&gt;25 projects&lt;/strong&gt;. You can submit a request to the RStudio Cloud team for more capacity if you hit one of these space limits, and we will do our best to accommodate you. You do need to put in a request for an increase in members for each workspace. If you are using a Professional shinyapps.io account, you will not encounter these space limits.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;m teaching an &amp;ldquo;Intro to Deep Learning&amp;rdquo; course online next month and this looks like it could solve a lot of issues I think I might have with controlling 60-70 different installs etc., but they will probably need substantial computation time. Is there anything I should take into account specifically on the computation-side of things in RStudio Cloud?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You will want to try out your assignments with the default memory limit, and if you find that it&amp;rsquo;s not sufficient, you can request a memory increase.&lt;/p&gt;




&lt;h2 id=&#34;r-packages&#34;&gt;R Packages
  &lt;a href=&#34;#r-packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Are there some packages that we can not use with RStudio Cloud ?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are some R packages that require system libraries. If you&amp;rsquo;re using a package that uses a system library that is not available in RStudio Cloud, you won&amp;rsquo;t be able to use that package as currently it&amp;rsquo;s not possible for users to install these. We recommend posting this on RStudio Community as a request to install the system library and the RStudio Cloud team should be able to help.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Is there a trick to installing packages from github? Getting rate limiting error.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There isn&amp;rsquo;t a trick, &lt;code&gt;devtools::install_github()&lt;/code&gt; works. The answer might depend on the package you&amp;rsquo;re installing though.&lt;/p&gt;




&lt;h2 id=&#34;service-issues&#34;&gt;Service issues
  &lt;a href=&#34;#service-issues&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Have you had trouble with RStudio cloud not working during teaching? I was using it in class in late January (first day of class) and none of us could login. It worked before and after class, so I think there was a problem with RStudio cloud itself. I had to improvise and show how to use desktop version. This only happened to me once out of 4 lab sections. But does it happen rarely or often?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is certainly not a regular occurence, but we also know that some users have found themselves in this situation if their class happens to be running during a system outage. If this happens again I would recommend checking &lt;a href=&#34;https://status.rstudio.com/&#34;&gt;https://status.rstudio.com/&lt;/a&gt;. If RStudio Cloud is noted as operational there, the issue might be something on your end (e.g. WiFi failure?). You might also be the first person to encounter the issue, so we would very much appreciate if you can report any such issues on RStudio Community or by emailing &lt;a href=&#34;mailto:support@rstudio.cloud&#34;&gt;support@rstudio.cloud&lt;/a&gt;, but we appreciate that you probably won&amp;rsquo;t get to do this in the middle of teaching.&lt;/p&gt;




&lt;h2 id=&#34;miscellaneous&#34;&gt;Miscellaneous
  &lt;a href=&#34;#miscellaneous&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;When the paid plan is available, will free features be limited and if so, which ones?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We&amp;rsquo;ve not yet finalized the pricing plans for RStudio Cloud. However, I can say for sure that we will have a free plan. The free plan may include restrictions on amount of CPU, memory, and storage resources that may be used, and may have limits on the number of members and projects that can exist within a space.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I had a problem with RStudio Cloud to connect it to the relational databases.
How do you use RMySQL, DBI&amp;hellip; packages on RStudio Cloud?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Connecting to databases from RStudio Cloud is supported using a wide variety of packages. However, you may need to contact your network administrator to allow access to your firewall so that the RStudio servers are able to connect to those databases. Information can be found in the guide: &lt;a href=&#34;https://rstudio.cloud/learn/guide#external-access&#34;&gt;https://rstudio.cloud/learn/guide#external-access&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can we run code chunks in, e.g, python or C?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes. Python, RCpp, and C chunks in RMD documents are supported. Please, keep in mind memory limitations might affect the ability to compile some chunks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Any tips to make projects open fast? What causes projects to load slowly?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Project opening performance is something we&amp;rsquo;re actively working on improving. There are a number of issues that can cause things to open slowly that we hope to address in the near future. A couple of things to keep in mind to reduce opening times: 1) Ensure you&amp;rsquo;re on a fast and reliable internet connection. 2) Avoid having loading very large files into your R session at startup.&lt;/p&gt;




&lt;h2 id=&#34;lessons&#34;&gt;Lessons
  &lt;a href=&#34;#lessons&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Can I get an example of a file on git that could be used to create a new class and/or project?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a href=&#34;https://github.com/Sta112-F18/hw-06-political-contributions&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Here&lt;/a&gt; is an example of a repository that is an assignment in an introductory data science course. Note that in my course I would have made copies of this repo for each student (with the repo name appended with student&amp;rsquo;s GitHub name) that only that student and myself can view. You can do this sort of making many copies of repos for students using the 
&lt;a href=&#34;https://rundel.github.io/ghclass&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ghclass&lt;/a&gt; package in R or using 
&lt;a href=&#34;https://classroom.github.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub Classroom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Each student would then take the URL of their repo with these started documents and create a New Project from Git in the course workspace (so one repo -&amp;gt; one project). This RStudio Cloud project would be populated with these starter documents and also would have the R packages they need installed (coming from the base project in RStudio Cloud).&lt;/p&gt;
&lt;p&gt;And for completeness, 
&lt;a href=&#34;https://www2.stat.duke.edu/courses/Fall18/sta112.01/hw/hw-06/hw-06.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; is the assignment instructions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So you have some examples of data wrangling with R?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are great examples among our 
&lt;a href=&#34;https://rstudio.cloud/learn/primers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;primers&lt;/a&gt;, especially in the Work with Data and Tidy Your Data primers.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Newly certified instructors in March 2020</title>
      <link>https://education.rstudio.com/blog/2020/03/march-2020-instructors/</link>
      <pubDate>Tue, 31 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/march-2020-instructors/</guid>
      <description>&lt;p&gt;We are very pleased to have welcomed nine new certified instructors in March 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/caldas_rivera&amp;#43;maria_paula/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;María Paula Caldas Rivera&lt;/a&gt; (Tidyverse and Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/fay&amp;#43;colin/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Colin Fay&lt;/a&gt; (Tidyverse and Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/girard&amp;#43;cervan/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cervan Girard&lt;/a&gt; (Tidyverse and Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/gotti&amp;#43;marly&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Marly Gotti&lt;/a&gt; (Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/guyader&amp;#43;vincent/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Vincent Guyader&lt;/a&gt; (Tidyverse and Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/lindblad&amp;#43;brad/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Brad Lindblad&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/ramsden&amp;#43;daryn/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Daryn Ramsden&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/rochette&amp;#43;sebastien&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sebastien Rochette&lt;/a&gt; (Tidyverse and Shiny)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers/people/thomas&amp;#43;gregor/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gregor Thomas&lt;/a&gt; (Tidyverse)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you would like to speak with them or any of our other trainers,
their contact information is on the 
&lt;a href=&#34;http://education.rstudio.com/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; roster&lt;/a&gt;
and they would be happy to hear from you.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Tips for Making a New Cheatsheet</title>
      <link>https://education.rstudio.com/blog/2020/03/tips-for-making-a-new-cheatsheet/</link>
      <pubDate>Fri, 27 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/tips-for-making-a-new-cheatsheet/</guid>
      <description>&lt;p&gt;Shortly after Winston Chang and I were hired by RStudio, I was surprised to spot his name at the bottom of a 
&lt;a href=&#34;https://wch.github.io/latexsheet/latexsheet.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;LaTeX cheatsheet&lt;/a&gt; that I had used all through grad school. His idea was too good to waste; and soon after, the 
&lt;a href=&#34;https://github.com/rstudio/cheatsheets/blob/master/old/pdfs/shiny-cheatsheet-old.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;first RStudio Cheatsheet&lt;/a&gt; was born!&lt;/p&gt;
&lt;p&gt;Since then RStudio cheatsheets have appeared in classrooms as learning aids, flown off tables as marketing material, and thrilled rstudio::conf goers as a particularly cherished piece of conference swag. They&amp;rsquo;re downloaded over 10,000 times a week from &lt;a href=&#34;https://www.rstudio.com/resources/cheatsheets,&#34;&gt;https://www.rstudio.com/resources/cheatsheets,&lt;/a&gt; and they&amp;rsquo;ve inspired an army of 
&lt;a href=&#34;https://rstudio.com/resources/cheatsheets/#contributed-cheat-sheets&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;community created cheatsheets&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can create your own cheatsheets to explain, popularize, and market your favorite R packages (and if you do I&amp;rsquo;d be happy to share them&amp;mdash;send me a pull request at &lt;a href=&#34;https://github.com/rstudio/cheatsheets)&#34;&gt;https://github.com/rstudio/cheatsheets)&lt;/a&gt;. Having developed quite a few, the guide below describes everything I&amp;rsquo;ve learned from making and honing cheatsheets.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;RStudio cheatsheets are not meant to be text or documentation!&lt;/strong&gt; They are scannable visual aids that use layout and visual mnemonics to help people zoom to the functions they need. Think of cheatsheets as a quick reference, with the emphasis on quick. Here&amp;rsquo;s an analogy:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A cheatsheet is more like a well-organized computer menu bar that leads you to a command than like a manual that documents each command.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Everything about your cheatsheet should be designed to lead users to essential information &lt;em&gt;quickly&lt;/em&gt;.  If you are summarizing the documentation manual, you are doing it wrong! Here are some tips to help you do it right:&lt;/p&gt;




&lt;h1 id=&#34;getting-started&#34;&gt;Getting Started
  &lt;a href=&#34;#getting-started&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;RStudio cheatsheets are hosted at &lt;a href=&#34;https://github.com/rstudio/cheatsheets&#34;&gt;https://github.com/rstudio/cheatsheets&lt;/a&gt;. You can submit new cheatsheets to the repository with a pull request.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The files 
&lt;a href=&#34;https://github.com/rstudio/cheatsheets/blob/master/keynotes/0-template.key&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;keynotes/0-template.key&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/rstudio/cheatsheets/blob/master/powerpoints/0-template.pptx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;powerpoints/0-template.ppt&lt;/a&gt; are official templates that contain some helpful tips.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You may find it easiest to create a new cheatsheet by duplicating the most recent Keynote / Powerpoint cheatsheet and then heavily editing it—that&amp;rsquo;s what I do!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h1 id=&#34;process&#34;&gt;Process
  &lt;a href=&#34;#process&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Budget more time than you expect to make the sheets. So far, I&amp;rsquo;ve found this process to be the least time consuming:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identify which functions to include&lt;/strong&gt; by reading the package web page and vignettes. I try to limit my cheatsheets to the essentials.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Organize the functions&lt;/strong&gt; into meaningful, self-explanatory groups. Each group should address a common problem or task.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Think about how to visualize the purpose of each function.&lt;/strong&gt; Visual mnemonics are easier to scan than text, which all looks the same.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Think about&lt;/strong&gt; what &lt;strong&gt;key mental models&lt;/strong&gt;, definitions, or explanations the cheatsheet should contain in addition to the functions. Ideally, use these to explain the visualizations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sketch out several possible layouts&lt;/strong&gt; for the sheet. Take care to put the more basic and/or pre-requisite content above and to the left of other content. Try to keep related content on the same side of the page. often your final layout will itself be a &amp;ldquo;mental map&amp;rdquo; for the topic of the cheatsheet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Type out all of the explanations and function descriptions&lt;/strong&gt; that you plan to include. Lay them out. Use placeholders for the visuals. Verify that everything fits. White space is very important. Use it to make the sheet scannable and to isolate content groups. Retain white space, even if it means smaller text.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Make the visuals.&lt;/strong&gt; They take the longest, so I save them for last or make them as I do step 6.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tweak until happy.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h1 id=&#34;visual-design&#34;&gt;Visual Design
  &lt;a href=&#34;#visual-design&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use the existing theme&lt;/strong&gt; that you see in the cheatsheets. It is cohesive and black and white printer friendly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose a highlight color&lt;/strong&gt; to use throughout your cheatsheet, and repeat this highlight color in the background of the top right corner.  Ideally you could find a color that is different enough from the other cheatsheets that you can quickly tell yours apart when flipping through a booklet of cheatsheets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use a second color sparingly or not at all&lt;/strong&gt; to draw attention to where it is needed and to differentiate different groupings of content.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Include lots of white space.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Visually differentiate groups of content.&lt;/strong&gt; Backgrounds, boxes, side bars, and headers are helpful here. It is very useful for the user to know immediately where one group of content begins and where one ends. Our &amp;ldquo;gradation headers&amp;rdquo; fail here, so think of better solutions if possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Align things&lt;/strong&gt; to guides, i.e. align things across the page. It helps define the white space and makes the cheat more orderly and professional.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Make the text no smaller than ~10pt.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If the letters are white on a colored background&lt;/strong&gt;, make the font thicker - semibold or bold.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Save bold text&lt;/strong&gt; for simple, important statements, or to draw scanning eyes to important words, such as words that identify the topic discussed. Don&amp;rsquo;t make an entire paragraph bold text.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h1 id=&#34;content&#34;&gt;Content
  &lt;a href=&#34;#content&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Include a hex sticker, IDE screenshot, or other branding material&lt;/strong&gt;. The cheatsheets have a second function as marketing material.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Include a 
&lt;a href=&#34;https://creativecommons.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Creative Commons Copyright&lt;/a&gt;&lt;/strong&gt; to make the sheet easy to share. You&amp;rsquo;ll find one baked into every cheatsheet and the template.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Be very concise&lt;/strong&gt; - rely on diagrams where possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pay attention to the details!&lt;/strong&gt; Your readers sure will&amp;hellip; so be correct.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If in doubt, leave it out.&lt;/strong&gt; There is a documentation manual after all.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Code comments inform, but fail&lt;/strong&gt; to draw the readers attention. It is better to use arrows, speech bubbles, etc. for important information. If it is not important information, leave it out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Simple working examples are more helpful than documentation details.&lt;/strong&gt; They meet the user at his or her pain points, demonstrating code, and reminding users how to run it, with the least context shifting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add some concise text to &lt;strong&gt;help the user make sense of your sections and diagrams&lt;/strong&gt;. Images are best, but readers need to be able to interpret them.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h1 id=&#34;summary&#34;&gt;Summary
  &lt;a href=&#34;#summary&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Your cheatsheet has two goals. First, to help users find essential information quickly, and second, to prevent confusion while doing the above. Your best strategy will be to limit the amount of information you put into the cheatsheet and to lay that information out intuitively and visually. This approach will make your cheatsheet equally useful as a teaching tool, programming tool, or marketing tool.&lt;/p&gt;
&lt;p&gt;P.S. Cheatsheets fall squarely on the &lt;em&gt;human-facing side of software design&lt;/em&gt;. They focus on human attention. What does that mean? When you write documentation, your job is to fill in all of the relevant details—that&amp;rsquo;s a software facing job, you need to know the software to do it. You assume that interested humans will find their way to your details on their own (and understand them when they do!). When you make a cheatsheet, your job flips. You assume that the relevant details already exist in the documentation. Your job is to help interested humans find them and understand them.  Your job is to guide the human&amp;rsquo;s attention. Don&amp;rsquo;t just write, design.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Reopening applications for instructor training</title>
      <link>https://education.rstudio.com/blog/2020/03/reopening-training-applications/</link>
      <pubDate>Tue, 24 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/reopening-training-applications/</guid>
      <description>&lt;p&gt;We temporarily put applications for RStudio&amp;rsquo;s 
&lt;a href=&#34;https://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructor training program&lt;/a&gt; on hold in December 2019
so that we could clear some of our backlog.
In order to help people who are now 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/online-teaching-qa/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;moving training online on short notice&lt;/a&gt;,
we have decided to reopen applications
and to put on some additional classes over the next three months.
If you would like to become certified,
please fill in 
&lt;a href=&#34;https://forms.gle/kRucY2joTiPYWmPr8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt; and we will find a spot for you as soon as possible.
Please note that all upcoming training sessions will be run online,
and that we will schedule them to be as convenient as possible
for people in different timezones.
As always,
you can preview the training materials 
&lt;a href=&#34;https://drive.google.com/drive/folders/13ohFt3D0EJ5PDbMaWTxnHH-hwA7G0IvY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;
or read more 
&lt;a href=&#34;http://teachtogether.tech&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.
If you have questions or suggestions,
please 
&lt;a href=&#34;mailto:traininginstructor@rstudio.com&#34;&gt;contact us&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Online teaching Q&amp;A</title>
      <link>https://education.rstudio.com/blog/2020/03/online-teaching-qa/</link>
      <pubDate>Mon, 23 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/online-teaching-qa/</guid>
      <description>&lt;p&gt;Thanks to everyone who took part in our webinar on 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/teaching-online-on-short-notice/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;teaching online on short notice&lt;/a&gt; — we hope you&amp;rsquo;ll be able to join us for the next in the series on 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/resources-for-teaching-data-science-and-statistics-remotely/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;resources and tips for teaching (with) R remotely&lt;/a&gt;. We weren&amp;rsquo;t able to answer all of the questions that came up in the first webinar while we were online, so here are some from 
&lt;a href=&#34;https://community.rstudio.com/t/webinar-follow-up-teaching-online-on-short-notice/57192&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the community discussion&lt;/a&gt;; if you have others, please add them to that forum and we&amp;rsquo;ll tell you what we can.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://resources.rstudio.com/webinars/teaching-online-at-short-notice&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Recorded video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1rE5e2kSFNICNkBJ4iIIgd9eqACi62gxahknKLtw9Hzs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/14rm9vdYr1tMPBrumGmFgQIe7nLlRzOVfGHiNOWomPoQ/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in Spanish&lt;/a&gt; (thanks to Ian Flores)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1W3Mz6kplceGqZ1jb-WhcxtSVPn3yCAa786jA3nbHOgI/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in French&lt;/a&gt; (thanks to Olivier Berger)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1vueq1bXSfh9e4j7GuRqMcg6AQd-Q-RnD0i3SJSNp3Xo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in Czech&lt;/a&gt; (thanks to Petr Simecek)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;engagement&#34;&gt;Engagement
  &lt;a href=&#34;#engagement&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do you have tips to notice quickly when you&amp;rsquo;re losing someone during a training?&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;I taught ~50 data science students online this Monday for the first time. I could see who was online and I could see that during the 4h class I lost some of the lower-tier students. They simply logged out and left the class. Do you have advice on how to avoid this?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This is a problem in large in-person classes as well. The best solution I&amp;rsquo;ve come up with is to focus on a subset of learners at any time: I pick half a dozen learners, direct my questions to them for an hour, then pick another half dozen after the break and so on. It doesn&amp;rsquo;t completely solve the problem, but nothing can: in a large group, &lt;em&gt;some&lt;/em&gt; people are going to be lost or mentally wandering no matter what you do.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;A big component of 
&lt;a href=&#34;http://carpentries.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Carpentries&lt;/a&gt; workshops is having helpers in the room to get people working with unfamiliar laptops, garbled configurations, missed steps, etc. How to emulate online?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I think this is the hardest part of moving programming instruction online. The best thing I&amp;rsquo;ve found is to have learners screenshare with you so that you can talk them through whatever debugging is needed, but (a) &amp;ldquo;I talk and you type&amp;rdquo; is hard and (b) many are (quite reasonably) embarrassed about sharing their desktops with the whole class when things aren&amp;rsquo;t working. If video conferencing tools allowed one-to-one screensharing, our lives would be much easier.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Any &amp;ldquo;ice breaker&amp;rdquo; exercise ideas to make everyone more comfortable with the online environment?&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;For a smaller class (6-11) thoughts on doing quick introductions at the start?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ironically, the best way to show people how to use video conferencing tools is with a recorded video: by design, they can&amp;rsquo;t see your controls when you screenshare. For other tools, use a short warmup exercise: for example, at the start of online instructor training, I put everyone&amp;rsquo;s name in the shared Google Doc and ask them to add a sentence to introduce themselves to the class. This isn&amp;rsquo;t just an icebreaker: it also confirms that they have write access to the doc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;When people &amp;ldquo;check out&amp;rdquo; have you tried a separate room for those people with a second trainer?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When I can, I will split a class in two based on learner&amp;rsquo;s levels (true beginners in one room, false beginners or intermediate learners in another). I haven&amp;rsquo;t had a chance to do this online, mostly because it requires extra resources. I think that doing so would help people who are lost, but I&amp;rsquo;d be surprised if it made a difference for those who&amp;rsquo;ve lost interest (or were never interested in the first place).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;The students don&amp;rsquo;t turn on their video. I dont know the reason, maybe they don&amp;rsquo;t feel comfortable. I don&amp;rsquo;t know how ask them to change this. Could you recommend me what to do please?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They may have very good reasons not to: if they&amp;rsquo;re working from home, for example, there may be a lot going on in the background that they don&amp;rsquo;t want to share with the world, or their connection may not be stable enough to support two-way video. Focusing on a subset at once can partially address this, but only partly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;class-management&#34;&gt;Class Management
  &lt;a href=&#34;#class-management&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;How many students do you usually teach to in any given class? What class size is too large for your liking?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My ideal class size is four people—anything beyond that automatically and unavoidably shifts from conversation to lecture. My upper bound for online classes is around 15 people, both because engagement drops off after that and because of video conferencing limitations. That said, I have taught classes as large as 100 online, but it was definitely &amp;ldquo;talking &lt;em&gt;at&lt;/em&gt;&amp;rdquo; rather than &amp;ldquo;sharing &lt;em&gt;with&lt;/em&gt;&amp;quot;. One of the advantages of recording lectures is that it scales much better; teaching to a subset of a dozen students (so that you get questions and interaction), then sharing that recording with the rest of the class, is an interesting hybrid strategy, but I haven&amp;rsquo;t seen any studies of its effectiveness.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do you have a tactic for keeping track of participants responses when they may have strange or unrecognizable names that come up associated with their device?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I ask them to change their screen names for the duration of the class.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Calling people by name, is in didactical terms referred to as &amp;ldquo;harpooning&amp;rdquo; and discouraged. You risk lower-tier and introvert students leaving the online teaching-platform to avoid being &amp;ldquo;called out&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agreed, but if you only speak to people who volunteer, your class will be dominated by the privileged and the extroverted. Calling on specific people, and keeping track of how many times you&amp;rsquo;ve spoken to each, is a visibly fair mechanism for distributing your attention throughout the class.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do you have any advice for sticky note substitutions for participants to give feedback on the pace (whether it&amp;rsquo;s going too fast or slow)?&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Are there any other methods besides hand raising for online training compared to in-person cues like your colored sticky notes method?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zoom and other tools do have 
&lt;a href=&#34;https://support.zoom.us/hc/en-us/articles/115001286183-Nonverbal-Feedback-During-Meetings&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;nonverbal feedback mechanisms&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do you have any tips for audio issues where more than one student has something to say at the same time, so one ends up talking over the other?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mute everyone at the start, re-mute everyone after each speaker, and emphasize that they have to signal that they want to talk and wait to be called on before they do so. Be sure to explain that this is &lt;em&gt;not&lt;/em&gt; because you&amp;rsquo;re a control freak, but because you want to make sure that everyone has a fair chance to be heard.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Why do you want everyone to be muted early? Don&amp;rsquo;t you want them to have time to fully respond to ask questions?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I mute them &lt;em&gt;because&lt;/em&gt; I want them to be able to respond: without conversation management, the room will be dominated by those who hit the &amp;ldquo;talk&amp;rdquo; button most quickly.  
&lt;a href=&#34;https://chelseatroy.com/2018/03/29/why-do-remote-meetings-suck-so-much/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Chelsea Troy&lt;/a&gt;&amp;lsquo;s discussion is well worth reading, and 
&lt;a href=&#34;https://third-bit.com/2018/05/11/meetings.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the rules for running a productive meeting&lt;/a&gt; always apply.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Any thoughts on the number of people in a breakout room?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Four people: it tiles nicely on the screen, it&amp;rsquo;s small enough that everyone should get a chance to speak, and most groups will be able to get into their room successfully. (This may be superstition, but I believe that once you have more than half a dozen people going into a breakout room, it takes significantly longer to start up—if anyone has hard data one way or the other, I&amp;rsquo;d be grateful if you could share.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Can you substitute &amp;ldquo;small talk&amp;rdquo; to fill dead air with music?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People don&amp;rsquo;t seem to share 
&lt;a href=&#34;https://www.youtube.com/watch?v=Sp7vCmT4CAI&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my taste in music&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;How do you recommend dealing with trolls? Do you suggest removing them from the online classroom?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please handle them the same way you would in an in-person class: yellow card on a first offense, red card on a second. As soon as someone is being offensive or a bully, your responsibility is no longer to them: it is to all of the other learners in your class.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;using-a-shared-document&#34;&gt;Using a Shared Document
  &lt;a href=&#34;#using-a-shared-document&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;I usually feel rather lost reading all of the feedback from students in a shared doc. Do you have any tips to read the feedback fast enough and be able to give good feedback on your feet?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your copilot can help here by reading while you&amp;rsquo;re talking and flagging things for your attention.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;How do you work with Google Docs/Hack MD when it is new to your class and they have said using it is &amp;ldquo;overwhelming&amp;rdquo;?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It &lt;em&gt;is&lt;/em&gt; overwhelming the first time they try to use (and probably the second and third as well). I introduce right at the start of online instructor training classes because I want to give future instructors a chance to practice with it; in other classes, I wait until learners are comfortable with video conferencing before adding to their cognitive load.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Have you ever used either a forum or a shared doc while giving an online lecture to a virtual class so that students can ask questions, ideally upvote/downvote them and potentially even answer their peers?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I haven&amp;rsquo;t, but I&amp;rsquo;ve seen other people do so. My instinct is that asking questions is a fairly light load, but as soon as learners are expected to upvote others&amp;rsquo; questions, it&amp;rsquo;s more cognitive load. Again, I think this is a good thing for the copilot to manage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;technology&#34;&gt;Technology
  &lt;a href=&#34;#technology&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Is there a way to help teach us how to use Zoom if we never have?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We will look at setting up some training.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Would Zoom be recommended to teach a robotics class for kids? Any platform recommendation?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;ve never taught anything with physical bits and pieces online, but I&amp;rsquo;ve just started taking guitar lessons over Skype, and getting things close enough to the camera (or vice versa) to be seen clearly seems pretty awkward. I&amp;rsquo;d enjoy hearing from others who have more experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;What do you think about using Notability as a white board?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I haven&amp;rsquo;t tried it—again, I&amp;rsquo;d welcome feedback from anyone who has.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;In certain regions of the world we are having issues with Zoom. Any other recommended platform for videocalls?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;ve used 
&lt;a href=&#34;https://whereby.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Whereby&lt;/a&gt; for projects outside of work, and it seems to work well, but I only have experience in Canada to draw on. Again, I&amp;rsquo;d welcome feedback from people elsewhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Can you talk about adding captions to live-streamed content on Zoom or other tools?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;m just starting to play with this—I think it&amp;rsquo;s challenging to caption live coding, but if anyone has examples they can share, please post them.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Does it help to include the speaker&amp;rsquo;s image on the screen while projecting the slides?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Absolutely: radio can be very engaging, but being able to see the speaker helps even more.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do you have a recommendation for a chat platform?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Slack seems the most popular choice, though I find its archiving tools unsatisfying.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;One of the issues raised in a dry run earlier in the week was switching from instructor screen to the students working through tutorials and their own work. We can&amp;rsquo;t rely on students having two screens to have both at the same time, any suggestions?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If I understand correctly, the problem is learners toggling between the presenter&amp;rsquo;s video in full screen mode and their own IDE in full screen mode on a single device. I don&amp;rsquo;t have a solution for this: there are only so many pixels in the world…&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Is it worth using keycasting to show typing on the screen?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yes. I use 
&lt;a href=&#34;https://github.com/keycastr/keycastr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Keycastr&lt;/a&gt; even when I&amp;rsquo;m teaching in person so that people can see what I&amp;rsquo;m doing. Some people complain it&amp;rsquo;s distracting, though, and there&amp;rsquo;s the problem of showing Mac keystrokes to Windows users and vice versa.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;asynchronous-teaching&#34;&gt;Asynchronous Teaching
  &lt;a href=&#34;#asynchronous-teaching&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Any suggestions for asynchronous teaching and learning? I&amp;rsquo;m finding myself having to timeshift my work—and imagine lots of others are in the same boat with childcare obligations, etc.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This is a huge topic, and I don&amp;rsquo;t know nearly as much about it as a lot of other people. We&amp;rsquo;ll try to get some of them on a webinar soon.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;What are your thoughts on pre-recording and then uploading videos versus teaching a course online? Advantages and disadvatages for each?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s also a huge topic in general; in our current situation, my advice is that you should teach live and share a recording of that rather than trying to record and edit video to share with your class later. Again, teaching to a selected subset of learners will liven things up.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Resources and tips for teaching (with) R remotely</title>
      <link>https://education.rstudio.com/blog/2020/03/resources-for-teaching-data-science-and-statistics-remotely/</link>
      <pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/resources-for-teaching-data-science-and-statistics-remotely/</guid>
      <description>&lt;p&gt;Having to move your teaching from in person to online on short notice is a difficult task. Thankfully there are plenty of openly and freely available resources that might help ease this transition, and allow you to focus on the bits of your teaching that only you can do. Below is a list of resources as well as tips to help you shift your teaching of R online.&lt;/p&gt;




&lt;h2 id=&#34;code-in-the-cloud&#34;&gt;Code in the cloud
  &lt;a href=&#34;#code-in-the-cloud&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;If your students don&amp;rsquo;t have R and RStudio set up locally on their own devices, the easiest way to get them accessing these tools in the cloud is using 
&lt;a href=&#34;https://rstudio.cloud/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud&lt;/a&gt;. Not only can you get your students up and running in an RStudio instance in no time, but you can also peek into their projects when they need help, which is extremely helpful when you&amp;rsquo;re trying to help them debug something but you can&amp;rsquo;t look over their shoulder. Shifting to a new technology on short notice is difficult, but here are some pointers to get you started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read the 
&lt;a href=&#34;https://rstudio.cloud/learn/guide&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud Guide&lt;/a&gt; for getting started with setting up your course on RStudio Cloud.&lt;/li&gt;
&lt;li&gt;Watch the 
&lt;a href=&#34;https://resources.rstudio.com/webinars/rstudio-cloud-in-the-classroom&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Cloud in the Classroom&lt;/a&gt; webinar step-by-step instructions, tips, and best practices.&lt;/li&gt;
&lt;li&gt;Sign up for our upcoming webinar with on RStudio Cloud on March 24th, 4-5 pm EDT 
&lt;a href=&#34;https://pages.rstudio.net/TeachingRonlinewithRStudioCloud_WebinarRegistration.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. In addition to going through how to set up a course on RStudio Cloud, we&amp;rsquo;ll focus on teaching with RStudio Cloud remotely.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;outsource-content-delivery&#34;&gt;Outsource content delivery
  &lt;a href=&#34;#outsource-content-delivery&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;One option for content delivery is synchronous virtual sessions and we&amp;rsquo;ve given you some tips for this 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/teaching-online-on-short-notice/&#34;&gt;here&lt;/a&gt;. Another option is pre-recorded videos. Videos can be a great supplement to any class, but they can be especially useful for making time in synchronous virtual sessions for discussion as well as providing alternatives for students who are unable to make it to synchronous virtual sessions. The drawback is that they can be incredibly time consuming to produce, even if you promise yourself you won&amp;rsquo;t spend too much time on perfecting them. You might be able to leverage existing video content, especially if you&amp;rsquo;re using these to supplement other synchronous teaching sessions you&amp;rsquo;re already planning to run:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A searchable list of 
&lt;a href=&#34;https://resources.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio webinars and conference talks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Many courses on Coursera have an 
&lt;a href=&#34;https://learner.coursera.help/hc/en-us/articles/209818613-Enrollment-options&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;audit option&lt;/a&gt;. The 
&lt;a href=&#34;https://www.coursera.org/specializations/jhu-data-science&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science Specialization&lt;/a&gt; and 
&lt;a href=&#34;https://www.coursera.org/specializations/statistics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Statistics with R&lt;/a&gt; specialisations have lots of statistics and R content in video form that your students can watch for free with the audit option.&lt;/li&gt;
&lt;li&gt;Each of the OpenIntro books come with videos accompanying each chapter, e.g. click on the videos link 
&lt;a href=&#34;https://www.openintro.org/book/os/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The 
&lt;a href=&#34;https://leanpub.com/universities/set/jhu/cloud-based-data-science&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cloud Based Data Science&lt;/a&gt; course on Leanpub also features videos (and exercises students can complete for free).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;flip-code-into-interactive-tutorials&#34;&gt;Flip code into interactive tutorials
  &lt;a href=&#34;#flip-code-into-interactive-tutorials&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Interactive exercises are great not only for self-paced learning, but also for the preparation phase in a flipped class, for formative assessment, or for self-contained demos during synchronous teaching (since they make it easy for students to jump in mid-analysis and code along with you). Interactive tutorials can also be a great replacement for pre-recorded videos that walk students through an analysis step-by-step, and while not trivial to create, they are likely less time consuming than creating a well edited video. The following resources feature many interactive tutorials for R that you can use / assign to your students.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; package makes it easy to turn any R Markdown document into an interactive tutorial. 
&lt;a href=&#34;https://rstudio.cloud/learn/primers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Primers&lt;/a&gt; cover topics like R basics, visualising, wrangling, and tidying data and iteration and functions.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://r-bootcamp.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Bootcamp&lt;/a&gt; is a &amp;ldquo;gentle and gradual introduction to manipulating and visualizing data in R using the tidyverse suite of packages&amp;rdquo;. Read more about it 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/03/r-bootcamp/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;plan-for-the-turn-it-in-phase&#34;&gt;Plan for the &amp;ldquo;turn it in&amp;rdquo; phase
  &lt;a href=&#34;#plan-for-the-turn-it-in-phase&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;If your originally planned workflow required students to print out work they completed in R and turn in hard copies, you are probably having to shift from this. Yes, they can always email you things, but that&amp;rsquo;s a bit of a mess&amp;hellip; Below are a few options, from simpler to implement to more complex.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upload to learning management system (LMS): If students are working locally, students will have local copies of their files that they can upload to your LMS. If they&amp;rsquo;re using RStudio Cloud or other server access, they can select the files they need to submit from the Files pane in RStudio, then go to More -&amp;gt; Export, which will download all selected files as a zipped folder. They can either unzip and upload, or upload as is (especially since some LMSs have restrictions on file types they allow, but usually most zip files).
&lt;img src=&#34;file-export.jpeg&#34; width=&#34;50%&#34; /&gt;&lt;/li&gt;
&lt;li&gt;Publish to RPubs: RPubs is a free publishing service for R Markdown documents. Before you go down this route, note that all documents published to RPubs are publicly visible, so this option might not work for all types of assignments and you need to consider compliance with 
&lt;a href=&#34;https://www2.ed.gov/policy/gen/guid/fpco/ferpa/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;FERPA&lt;/a&gt;, 
&lt;a href=&#34;https://gdpr-info.eu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GDPR&lt;/a&gt;, etc. for your students. But one option for protecting student identity is don&amp;rsquo;t have students write their names on their documents they publish on RPubs, collect URLs to published assignments via your LMS, download as a spreadsheet, and now you have something much simpler than email submissions to sort through.
&lt;img src=&#34;rpubs-publish.jpeg&#34; width=&#34;946&#34; /&gt;&lt;/li&gt;
&lt;li&gt;Dropbox File Request: If you don&amp;rsquo;t have access to an LMS where students can upload work or your LMS is fussy about file types, sizes, etc. you can use the file request feature on Dropbox for students to upload their files. Read more about it 
&lt;a href=&#34;https://help.dropbox.com/files-folders/share/create-file-request&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. The benefit of this approach over uploading to something like a Google Drive is that students can&amp;rsquo;t see each others&amp;rsquo; submissions.&lt;/li&gt;
&lt;li&gt;Using GitHub as your LMS: I wouldn&amp;rsquo;t recommend introducing GitHub only for the sake of collecting student assignments, but if version control is already part of your course or if you&amp;rsquo;re teaching students who are already familiar with Git and GitHub (and you are familiar with them as well!), the 
&lt;a href=&#34;https://rundel.github.io/ghclass&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ghclass&lt;/a&gt; package and GitHub Classroom both make it easy to set up using GitHub as your learning management system. 
&lt;a href=&#34;https://rstudio-conf-2020.github.io/design-ds-classroom/materials/05-github/slides/05-github.html#1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;These slides&lt;/a&gt; from the 
&lt;a href=&#34;https://rstudio-conf-2020.github.io/design-ds-classroom/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Designing the Data Science Classroom workshop&lt;/a&gt; at rstudio::conf(2020) give an overview of how to get started.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;additional-resources&#34;&gt;Additional resources
  &lt;a href=&#34;#additional-resources&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;You&amp;rsquo;re probably not changing your reading list mid-semester, but your students might appreciate pointers for free, online books they can use to supplement their learning. The following books are freely available online.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R for Data Science&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-education.github.io/hopr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hands on Programming with R&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.openintro.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;OpenIntro textbooks&lt;/a&gt;: OpenIntro Statistics, Introductory Statistics with Randomization and Simulation, Advanced High School Statistics, Introductory Statistics for the Life and
Biomedical Sciences&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://moderndive.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Statistical Inference via Data Science&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://mdsr-book.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Modern Data Science with R&lt;/a&gt; (some chapters are freely available online)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also have a trove of openly licenced materials for teaching 
&lt;a href=&#34;https://education.rstudio.com/teach/materials/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. Some highlights include 
&lt;a href=&#34;https://datasciencebox.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Science in a Box&lt;/a&gt;, 
&lt;a href=&#34;https://stat545.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Stat 545&lt;/a&gt;, and materials from RStudio workshops.&lt;/p&gt;
&lt;p&gt;This is by no means a complete list. If you have, or know of, resources and tips for teaching R, data science, and statistics remotely, on short notice, or if you are looking for specific resources to help with your transition to online teaching, the 
&lt;a href=&#34;https://community.rstudio.com/c/teaching/13&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Community&lt;/a&gt; as well as 
&lt;a href=&#34;https://twitter.com/search?q=%23rstats&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#rstats Twitter&lt;/a&gt; are great places to share / ask.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teaching online on short notice</title>
      <link>https://education.rstudio.com/blog/2020/03/teaching-online-on-short-notice/</link>
      <pubDate>Tue, 17 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/teaching-online-on-short-notice/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://resources.rstudio.com/webinars/teaching-online-at-short-notice&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Recorded video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1rE5e2kSFNICNkBJ4iIIgd9eqACi62gxahknKLtw9Hzs/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in English&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/14rm9vdYr1tMPBrumGmFgQIe7nLlRzOVfGHiNOWomPoQ/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in Spanish&lt;/a&gt; (thanks to Ian Flores)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1W3Mz6kplceGqZ1jb-WhcxtSVPn3yCAa786jA3nbHOgI/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in French&lt;/a&gt; (thanks to Olivier Berger)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://docs.google.com/presentation/d/1vueq1bXSfh9e4j7GuRqMcg6AQd-Q-RnD0i3SJSNp3Xo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides in Czech&lt;/a&gt; (thanks to Petr Simecek)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So here you are:
you planned to teach your class or deliver your workshop in person,
and now you have to do it online or not at all.
Nobody is giving you time or money to make the change,
and a hundred other things also need your attention.
Where should you start, and what should you aim for?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t change what you don&amp;rsquo;t have to.&lt;/em&gt;
Assignments, submission, grading, discussion forums:
if you&amp;rsquo;re already doing them online,
don&amp;rsquo;t change them now.
The same goes for content:
your slides and exercises may not be perfect,
but nothing ever is.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t make assumptions about your learners&amp;rsquo; technology or circumstances.&lt;/em&gt;
As 
&lt;a href=&#34;https://elizabethwickes.com/2020/03/12/tips-for-live-teaching-tech-online-deeply-informed-by-the-carpentries/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Elizabeth Wickes said&lt;/a&gt;,
&amp;ldquo;Don&amp;rsquo;t presume people have {thing},
have great {thing},
have {thing} to themselves,
or even have a home where {thing} could be.
For each thing, fill in:internet, computer, monitor, attention, etc.&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t try to be (or to beat) recorded video.&lt;/em&gt;
Even mediocre videos require time and production experience that you probably don&amp;rsquo;t have right now,
so move your live teaching online instead of trying to record and edit yourself.
(If you &lt;em&gt;are&lt;/em&gt; going to make videos,
please read Chen and Rabb&amp;rsquo;s &amp;ldquo;
&lt;a href=&#34;https://doi.org/10.1145/1943226.1943234&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;A Pattern Language for Screencasting&lt;/a&gt;&amp;rdquo; first.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Learn the song, then improvise over it.&lt;/em&gt;
Good musicians don&amp;rsquo;t just make things up on the fly:
they learn the song and then improvise around it.
&lt;em&gt;Great&lt;/em&gt; musicians listen to their bandmates and their audience while they do this.
The best live teaching (whether in person or online) works the same way:
make a plan,
then vary your delivery depending on who your learners are,
what questions they ask,
and what you realize as you&amp;rsquo;re speaking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t teach to empty chairs.&lt;/em&gt;
We all rely on small social cues like nods and &amp;ldquo;mm hms&amp;rdquo; far more than we realize.
Teaching without these is really hard,
so if it&amp;rsquo;s not practical to have everyone turn on video,
choose a subset of 4-6 learners
and have them do it so that your hindbrain believes you actually have an audience.
This also promotes engagement:
learners can see that they&amp;rsquo;re not alone,
and after each break,
you can select a different subset of learners
and direct your questions to them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Start with a tour.&lt;/em&gt;
Many features of your video conference tool will &lt;em&gt;not&lt;/em&gt; be obvious to participants.
Point out where they can toggle the chat,
change their participant view,
answer 
&lt;a href=&#34;https://support.zoom.us/hc/en-us/articles/213756303-Polling-for-Meetings&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;polls&lt;/a&gt;,
and so on.
If you have time,
join your call as a student,
take a few screenshots,
annotate them,
and share them with your class.
(Remember, your view of the video conference
will be different from that of participants.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Direct traffic.&lt;/em&gt;
Tell people where to put things and where to direct their attention.
&amp;ldquo;Put it in the chat,&amp;rdquo;
&amp;ldquo;add it to the doc,&amp;rdquo;
and &amp;ldquo;unmute and tell us&amp;rdquo; will all make the class run much more smoothly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Mute early, mute often.&lt;/em&gt;
Background noise kills meetings,
so mute &lt;em&gt;everyone&lt;/em&gt; after every speaker
and then unmute the next person you&amp;rsquo;ve called on.
And as 
&lt;a href=&#34;https://chelseatroy.com/2018/03/29/why-do-remote-meetings-suck-so-much/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Chelsea Troy pointed out&lt;/a&gt;,
in most online meetings,
the first person to speak during a pause gets the floor.
The result?
&amp;ldquo;If you have something you want to say,
you have to stop listening to the person currently speaking
and instead focus on when they&amp;rsquo;re gonna pause or finish
so you can leap into that nanosecond of silence and be the first to utter something.
The format…encourages participants who want to contribute to say more and listen less.&amp;rdquo;
The solution is to run a text chat beside the video conference
where people signal that they want to speak,
and then call on them in turn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Call on people by name.&lt;/em&gt;
&amp;ldquo;Any questions?&amp;rdquo; often produces an awkward silence,
and even when it doesn&amp;rsquo;t,
it gives fluent extroverts undue air time.
Instead,
call on people from your selected group by name.
(If your video conferencing tool doesn&amp;rsquo;t display real names by default,
ask participants to give theirs when they ask questions in the chat.)
This also helps even out the effects of differing ability:
you can throw easy questions at people who are struggling
and save the hard ones for people who might otherwise get bored.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t teach alone.&lt;/em&gt;
Every great surgeon has a great nurse beside her.
Equally,
when you&amp;rsquo;re teaching online for the first time,
get someone else to monitor the chat for questions,
figure out who to call on next,
and so on.
If none of your colleagues can do this (remember, they&amp;rsquo;re probably scrambling too),
ask one of your more advanced learners to help out.
Whoever it is,
make sure to introduce them at the start of class.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Do a dry run (with your copilot).&lt;/em&gt;
Fifteen minutes with a small group before you do a real (larger) class
can save you from saying, &amp;ldquo;Nobody told me there was a firewall.&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Keep your notes beside you.&lt;/em&gt;
For whatever reason,
people seem less distracted when they look to the side at a printed copy
than when they look up at a second monitor.
There&amp;rsquo;s also less risk of your audience getting to see the inside of your nose…&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Add speaker&amp;rsquo;s notes to your slides.&lt;/em&gt;
These can be point-form or long-form depending on how much time you have,
but they will make your content easier to find,
easier to review,
and more accessible to people who have trouble seeing or hearing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Use accessibility tools to help everyone.&lt;/em&gt;
Speaker&amp;rsquo;s notes are just one example of this:
enlarging your cursor,
using a 
&lt;a href=&#34;https://github.com/keycastr/keycastr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;key caster&lt;/a&gt; to display control keys as you type,
switching to high-contrast mode all help compensate for shaky video
or low-quality screens.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Teach from your smallest screen.&lt;/em&gt;
If your slides or your code are on the fancy meter-wide monitor you use for your daily work,
they&amp;rsquo;re not going to look good when they&amp;rsquo;re squashed down
to fit in the 800-pixel window your learners have on their tablets.
Using a smaller video window also reduces bandwidth a little,
which may in turn help learners in lower-quality environments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Your voice matters more than your face.&lt;/em&gt;
You can switch off video if you have to,
but if you lose sound,
your class is over.
You can use a headset with a microphone,
but this can become uncomfortable after a couple of hours
(particularly if you wear glasses).
A Yeti or Samson Meteor microphone is more comfortable,
but if you use one,
it&amp;rsquo;s worth $30 to get a stand
(because if it&amp;rsquo;s on your desk, all your audience will hear is your typing).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Turn off notifications (theirs too).&lt;/em&gt;
It&amp;rsquo;s rude to check your phone or read email during an in-person meeting,
so don&amp;rsquo;t do it when you&amp;rsquo;re teaching
(not even while your learners are working on an exercise).
You probably can&amp;rsquo;t persuade your learners to be similarly respectful,
but the subset you&amp;rsquo;re talking to at any particular time might.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Share work in real time.&lt;/em&gt;
Have learners share their work in a Google Doc or 
&lt;a href=&#34;https://hackmd.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;HackMD&lt;/a&gt; during the lesson.
(This is no more or no less intimidating than asking a music student to play something for the class.)
When you do this,
paste in a list of people&amp;rsquo;s names so that they know where to type.
Once they&amp;rsquo;re comfortable with this (which will take a few hours),
have them take shared notes in the same doc so that your copilot can see what they think you&amp;rsquo;re saying.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Keep track of who has and hasn&amp;rsquo;t spoken.&lt;/em&gt;
Again,
a laissez faire class can quickly turn into a discussion among a couple of extroverts,
so keep a tally of who&amp;rsquo;s spoken how often and try to even it out.
You don&amp;rsquo;t need technology to do this:
a scrap of paper and a pencil will work just fine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Ask—fill—call.&lt;/em&gt;
Thinking takes time.
So does typing,
and there&amp;rsquo;s always lag,
so when asking for questions or suggestions,
give people time to respond,
but talk while you&amp;rsquo;re waiting for answers in order to avoid dead air.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Ask for predictions.&lt;/em&gt;
Online polls help keep people engaged but need to be set up in advance.
Asking people, &amp;ldquo;What&amp;rsquo;s going to happen when we run this code?&amp;rdquo;
is a good just-in-time alternative.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Use breakout rooms.&lt;/em&gt;

&lt;a href=&#34;https://www.youtube.com/watch?v=2LbuoxAy56o&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Peer instruction&lt;/a&gt; is the most effective scalable teaching practice we know of.
It relies on students debating their answers to a motivating question for two or three minutes at a time.

&lt;a href=&#34;https://zoom.us/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Zoom&lt;/a&gt;&amp;lsquo;s 
&lt;a href=&#34;https://support.zoom.us/hc/en-us/articles/206476093-Getting-Started-with-Breakout-Rooms&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;breakout rooms&lt;/a&gt; make this relatively easy to run online:
it takes 15-30 seconds to get everyone into rooms,
and in a class of forty there will be one or two who initially have problems,
but it does a lot to keep everyone engaged and motivated.
(Zoom also supports 
&lt;a href=&#34;https://support.zoom.us/hc/en-us/articles/205677665-Share-a-Whiteboard&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;whiteboards&lt;/a&gt;,
but please don&amp;rsquo;t try to use them until you&amp;rsquo;re comfortable with its other features.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Take a break every hour,&lt;/em&gt;
because the basic unit of teaching is the bladder.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The most important thing to remember is that
nobody really knows how to do this—not yet.
Don&amp;rsquo;t be afraid to try things,
and please share your experiences:
we&amp;rsquo;ll all learn faster if we learn together.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;
&lt;a href=&#34;https://resources.rstudio.com/upcoming-webinars/webinar-registration&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Register here&lt;/a&gt; to join us for a webinar on March 19, 2020 to discuss these ideas.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-03-instructor-training-americas/</link>
      <pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-03-instructor-training-americas/</guid>
      <description></description>
    </item>
    
    <item>
      <title>(Re)building the R Bootcamp and generating R tutorials</title>
      <link>https://education.rstudio.com/blog/2020/03/r-bootcamp/</link>
      <pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/03/r-bootcamp/</guid>
      <description>&lt;p&gt;This article outlines the original R-Bootcamp, why we moved it to 
&lt;a href=&#34;https://r-bootcamp.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the current platform&lt;/a&gt;, and talks about our experiences setting it up on the new 
&lt;a href=&#34;https://mybinder.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;mybinder.org&lt;/a&gt; based platform that was created by 
&lt;a href=&#34;https://github.com/ines/course-starter-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ines Montani&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;the-original-rbootcamp&#34;&gt;The original RBootcamp
  &lt;a href=&#34;#the-original-rbootcamp&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The original R-Bootcamp lived on DataCamp as a free course that
anyone could take. We decided to move the course off of DataCamp&amp;rsquo;s platform because 
&lt;a href=&#34;https://www.buzzfeednews.com/article/daveyalba/datacamp-sexual-harassment-metoo-tech-startup&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;we no longer felt it was ethical to support them&lt;/a&gt;. The 
&lt;a href=&#34;https://r-bootcamp.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R-Bootcamp&lt;/a&gt; focuses on teaching students the basics of the tidyverse with an interactive learning approach. It is not meant to be comprehensive, but it is meant to empower students who think they might be interested in data visualization, data wrangling, and simple statistical modeling. Most importantly, the R-Bootcamp is meant to be a psychologically safe and positive environment.&lt;/p&gt;




&lt;h2 id=&#34;ines-montanis-platform&#34;&gt;Ines Montani&amp;rsquo;s Platform
  &lt;a href=&#34;#ines-montanis-platform&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Ines Montani has developed a 
&lt;a href=&#34;https://github.com/ines/course-starter-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;course platform&lt;/a&gt; that runs R and python code on mybinder.org. It is robust, and because it is based on mybinder.org, it scales very well.&lt;/p&gt;
&lt;p&gt;How does it work? It takes advantage of 
&lt;a href=&#34;https://mybinder.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;mybinder.org&lt;/a&gt;&amp;lsquo;s ability to run R in a Docker container. The website itself is hosted on a service such as 
&lt;a href=&#34;https://netlify.ocom&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netlify&lt;/a&gt;, which handles the lesson material, code submission, and displaying results. The code is submitted via JavaScript to the Docker container and results (such as data.frames and ggplot2 figures) are returned to the user on a webpage.&lt;/p&gt;




&lt;h3 id=&#34;pros&#34;&gt;Pros
  &lt;a href=&#34;#pros&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Scalability.&lt;/strong&gt; Because it is hosted on mybinder.org, a free service, the course scales very well. We have had hundreds of users run the RBootcamp, and we have had very few hiccups. Without this ability, we could not offer our course for free for everyone globally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Free for right now.&lt;/strong&gt; Solutions such as LearnR are great, but they require a 
&lt;a href=&#34;http://shinyapps.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shinyapps.io&lt;/a&gt; account to host the material, which have limited bandwidth for the free accounts, and more access costs money. Ines&amp;rsquo; platform is dependent on two services that are currently free: mybinder.org and 
&lt;a href=&#34;https://netlify.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;netlify&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Separates out code from content&lt;/strong&gt;. DataCamp lessons are organized into chapters that contain instructions and then an interactive coding platform that gives code scaffolding, hints and solutions. This allows students to learn interactively by following instructions to complete code prompts within an R environment. Ines&amp;rsquo; platform allows for similar interactivity, but separates out the slide contents from the code. This is very helpful in testing and debugging the code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Works on phone browsers&lt;/strong&gt;. A lot of students want to learn on the run. Because Ines is a usability master, the platform runs on phones with no problem, although some of the returned data frames may display a little small.&lt;/p&gt;




&lt;h3 id=&#34;cons&#34;&gt;Cons
  &lt;a href=&#34;#cons&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Takes some time to learn.&lt;/strong&gt; The file structure of the platform takes a little getting used to, with code, exercises, and slides residing in different folders and files. It is not difficult to understand, but you do have to take some time learning these structures.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assumes you understand Git (particularly branches).&lt;/strong&gt; Because the course is run off two branches in the repository, you need to understand what goes where. Course material, exercise code, and slide material live in the &lt;em&gt;master&lt;/em&gt; branch. Data and the docker related files to build the container live in the &lt;em&gt;binder&lt;/em&gt; branch. Until you wrap your head around this, it can be a little confusing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Currently no way to track user completion/award certificates.&lt;/strong&gt; This platform is not meant to be a full replacement for online learning platforms such as Coursera or EdX. Again, it is perfect for our application of providing free lessons on learning R and encouraging students.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Code checking is limited.&lt;/strong&gt; Ines provides a template based method of matching of code. It works, but it is a little limited. We are looking at using the &lt;code&gt;gradethis&lt;/code&gt; package to add more feedback about mistakes that students make and add helpful hints in response to these mistakes.&lt;/p&gt;




&lt;h2 id=&#34;getting-started&#34;&gt;Getting Started
  &lt;a href=&#34;#getting-started&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The best way to start authoring content with this platform is to &lt;code&gt;usethis::create_project&lt;/code&gt; to 
&lt;a href=&#34;https://github.com/ines/course-starter-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fork the R course repo&lt;/a&gt; and create an R project you can start altering. Once you have that open, the 
&lt;a href=&#34;https://github.com/laderast/decampr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;decampr&lt;/code&gt;&lt;/a&gt; documentation will help get you started with making chapters, and adding and editing exercises.&lt;/p&gt;
&lt;p&gt;We also recommend looking at the existing course repos (
&lt;a href=&#34;https://github.com/laderast/RBootcamp&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RBootcamp&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/noamross/gams-in-r-course&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GAMs in R&lt;/a&gt; by Noam Ross, 
&lt;a href=&#34;https://github.com/juliasilge/supervised-ML-case-studies-course&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Machine Learning Case Studies&lt;/a&gt; by Julia Silge and Ines&amp;rsquo; 
&lt;a href=&#34;https://github.com/ines/spacy-course&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;spacy course&lt;/a&gt;) to understand exactly how exercises, lessons, and data are set up. 
&lt;a href=&#34;florencia.netlify.com&#34;&gt;Florencia&lt;/a&gt; has been working in the framework and also maintaining a 
&lt;a href=&#34;https://github.com/flor14/tutorials&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;list of courses that use this platform&lt;/a&gt;, so look for other examples there. 
&lt;a href=&#34;mailto:tedladeras@gmail.com&#34;&gt;Please&lt;/a&gt; reach out to us! We want to help you put your content online.&lt;/p&gt;
&lt;p&gt;One note on the Docker container, that is built on 
&lt;a href=&#34;https://mybinder.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;mybinder.org&lt;/a&gt;: while the &lt;code&gt;install.R&lt;/code&gt; method works, we recommend building on existing work through 
&lt;a href=&#34;https://github.com/rocker-org/rocker&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;using a Dockerfile&lt;/a&gt;. That way, you can build on existing Docker containers that contain R installations and packages, such as Rocker (which has the 
&lt;a href=&#34;https://hub.docker.com/r/rocker/tidyverse&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse&lt;/a&gt; and 
&lt;a href=&#34;https://hub.docker.com/r/rocker/geospatial&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;geospatial&lt;/a&gt; containers you can build on), which has containers such as the base rocker image, geospatial, and others (by the way, Rocker rocks!).&lt;/p&gt;




&lt;h2 id=&#34;contributing&#34;&gt;Contributing
  &lt;a href=&#34;#contributing&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;decampr&lt;/code&gt; package developed by Ted Laderas and Jessica Minnier includes some simple utilities to process R-based DataCamp lessons to Ines&amp;rsquo; platform. We encourage people with DataCamp repositories to try it out on their own lessons and give feedback on how to improve the package. More examples of using Ines&amp;rsquo; platform will help it improve and grow to encompass many use cases.&lt;/p&gt;
&lt;p&gt;Ines&amp;rsquo; platform is very powerful and flexible. However, as mentioned in the &lt;em&gt;Cons&lt;/em&gt;, it can take some time to learn and there are some quirks to the file and git organization. Therefore, it would benefit greatly from community contribution to additional examples for 
&lt;a href=&#34;https://github.com/ines/course-starter-r&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;documentation&lt;/a&gt; and 
&lt;a href=&#34;https://github.com/laderast/decampr&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructional material&lt;/a&gt;. This is a great way to contribute to the educational community!&lt;/p&gt;




&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
  &lt;a href=&#34;#conclusion&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This platform has provided us the means with making our course content free and accessible to a large group of people worldwide. It requires a bit of technical skill to set up, but we have tried to make the process less painful with our &lt;code&gt;decampr&lt;/code&gt; package. We highly encourage you to try setting up your own course. Reach out to us and we&amp;rsquo;re happy to help you.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-02-instructor-training-asiapacific/</link>
      <pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-02-instructor-training-asiapacific/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Applications for 2020 Intern Program Are Now Open</title>
      <link>https://education.rstudio.com/blog/2020/02/applications-for-2020-intern-program-are-now-open/</link>
      <pubDate>Thu, 20 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/applications-for-2020-intern-program-are-now-open/</guid>
      <description>&lt;p&gt;As 
&lt;a href=&#34;https://education.rstudio.com/blog/2019/11/rstudio-internships-2020-preview/&#34;&gt;we announced last year&lt;/a&gt;,
RStudio&amp;rsquo;s summer intern program will run for a third time in 2020,
and applications are now open.
Five people will work with an RStudio mentor full-time for 10 weeks starting in May 2020.
Everyone is welcome to apply:
you do not need to be a a full-time student to be eligible for an internship.&lt;/p&gt;
&lt;p&gt;The compensation rate for these positions is $25/hr,
assuming 40 hours each week;
applicants must be residents of,
and able to accept employment in,
the United States.
Since RStudio is a geographically distributed team,
you can be based anywhere in the country:
unless you live in Boston or Seattle,
you will be working 100% remotely,
though you will meet with your mentor regularly online.&lt;/p&gt;




&lt;h2 id=&#34;how-to-apply&#34;&gt;How to Apply
  &lt;a href=&#34;#how-to-apply&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The closing date for applications is midnight on Friday, March 6 AOE (Anywhere on Earth),
and we will interview and make offers as quickly as possible thereafter.&lt;/p&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;https://unpkg.com/tachyons/css/tachyons.min.css&#34;&gt;
&lt;div class=&#34;ph3 mt4 tc&#34;&gt;
  &lt;a class=&#34;f6 link dim ba ph3 pv2 mb2 dib dark-blue&#34; href=&#34;https://grnh.se/fd508b053&#34;&gt;&lt;i class=&#34;fas fa-hand-point-right&#34;&gt;&lt;/i&gt;&amp;nbsp;Apply here&lt;/a&gt;
&lt;/div&gt;




&lt;h2 id=&#34;projects&#34;&gt;Projects
  &lt;a href=&#34;#projects&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This year&amp;rsquo;s internships will be divided between our open source and education teams,
and the projects will be selected from:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create resources for people working with spreadsheets in R&lt;/strong&gt;.
Develop content that does for spreadsheets
what sites like 
&lt;a href=&#34;https://db.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;db.rstudio.com&lt;/a&gt;
and 
&lt;a href=&#34;https://environments.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;environments.rstudio.com&lt;/a&gt;
do for databases and reproducible environments, respectively.
Primary tasks will include writing, synthesis, comparison, exposition, and exampling.
This project is not explicitly about package development,
although the work could easily lead to pull requests to spreadsheet reading/writing packages.
Candidates should show evidence of general R experience,
basic competence with Git/GitHub,
previous use of R Markdown,
and ability to write clearly about code.
Supervisors: 
&lt;a href=&#34;https://jennybryan.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenny Bryan&lt;/a&gt; and 
&lt;a href=&#34;http://mine-cr.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mine Çetinkaya-Rundel&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Build interactive 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; tutorials for 
&lt;a href=&#34;https://github.com/tidymodels/tidymodels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt;&lt;/strong&gt;
based on our existing introductory 
&lt;a href=&#34;https://education.rstudio.com/blog/2020/02/conf20-intro-ml/&#34;&gt;tidymodels workshop&lt;/a&gt; materials.
Candidates should show evidence of having used R for data analysis and/or statistical modeling
as well as basic competence with Git and GitHub; experience using the 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; package is a plus.
Supervisor: 
&lt;a href=&#34;https://alison.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alison Hill&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Build interactive 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; tutorials for Python using 
&lt;a href=&#34;https://rstudio.github.io/reticulate/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reticulate&lt;/a&gt;.&lt;/strong&gt;
These would mirror the content of our existing 
&lt;a href=&#34;https://rstudio.cloud/learn/primers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse primers&lt;/a&gt;.
Candidates should be comfortable using R or Python for data science
and have basic competence with Git and GitHub;
experience using the 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; package is a plus.
Supervisors: 
&lt;a href=&#34;https://alison.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alison Hill&lt;/a&gt; and 
&lt;a href=&#34;https://third-bit.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Greg Wilson&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href=&#34;https://github.com/tidymodels/tidymodels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tidymodels&lt;/a&gt; package support.&lt;/strong&gt;
This intern will work on the support and development of modeling packages, primarily 
&lt;a href=&#34;https://broom.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;broom&lt;/a&gt;,
which provides a large number of methods to turn models into tidy data frames.
The work will include internal refactoring,
revisit the testing strategy,
and further develop the &lt;code&gt;augment&lt;/code&gt; method.
Candidates should understand R packages, S3 methods, and unit testing, and be comfortable using Git and GitHub.
Supervisor: 
&lt;a href=&#34;https://resources.rstudio.com/authors/max-kuhn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Max Kuhn&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tree and rule-based models.&lt;/strong&gt;
The 
&lt;a href=&#34;https://topepo.github.io/Cubist/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cubist&lt;/a&gt; and 
&lt;a href=&#34;https://topepo.github.io/C5.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;C50&lt;/a&gt; packages contain large amounts of C code to train ensemble models.
This intern will improve their sustainability and add new features
such as variable importance, efficiency, and cost-sensitive models.
Candidates should understand R packages work,
have solid C skills and some experience with modeling,
and be comfortable using Git and GitHub.
Supervisor: 
&lt;a href=&#34;https://resources.rstudio.com/authors/max-kuhn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Max Kuhn&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;a href=&#34;http://FIXME.FIXME.FIXME&#34;&gt;&lt;i class=&#34;fas fa-hand-point-right&#34;&gt;&lt;/i&gt;&amp;nbsp;Apply by Friday, March 6 AOE&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Building Tidy Tools Workshop at rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-tidy-tools/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-tidy-tools/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-tidy-tools&#34;&gt;https://rstd.io/conf20-tidy-tools&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It was my pleasure to co-teach Building Tidy Tools
at &lt;code&gt;rstudio::conf(2020)&lt;/code&gt; with my brother Hadley.&lt;br&gt;

&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;This workshop&lt;/a&gt; was advertised for&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; those who have embraced the tidyverse and now want to expand it to meet their own needs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In practice, this means
we talk a lot about package development,
since packages are the easiest way
to develop (and share) a set of
related functions,
but we also touch on workflow, design,
and specific implementation details.&lt;/p&gt;
&lt;p&gt;In this post, I&amp;rsquo;ll outline a few things that aren&amp;rsquo;t
as obvious from just browsing the materials:
the philosophy and themes that guide the entire workshop, as
well as some of the details of delivering the materials.&lt;/p&gt;




&lt;h2 id=&#34;philosophy-and-themes&#34;&gt;Philosophy and Themes
  &lt;a href=&#34;#philosophy-and-themes&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;This piece of advice shows up in the workshop when talking about
&lt;code&gt;R CMD check&lt;/code&gt; (which runs a set of automated package checks):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If it hurts, do it more often&amp;rdquo;
&amp;ndash; 
&lt;a href=&#34;https://martinfowler.com/bliki/FrequencyReducesDifficulty.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Martin Fowler&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But I feel like it sums up the philosophy of the entire workshop,
with perhaps an addendum:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If it hurts, there is probably a usethis or devtools function for it.&lt;br&gt;
If it still hurts, do it more often&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the case of &lt;code&gt;R CMD check&lt;/code&gt;,
the devtools &lt;code&gt;check()&lt;/code&gt; function is only a keyboard shortcut away,
so there is no excuse for not running it.
But, it still hurts,
because &lt;code&gt;check()&lt;/code&gt; is always pointing out what is wrong with your package.&lt;/p&gt;
&lt;p&gt;Running &lt;code&gt;check()&lt;/code&gt; often, not only
reduces the chance you&amp;rsquo;ve introduced many new problems,
it also desensitizes you to any feelings of failure you might get
when you receive its report card on your package.
To help participants overcome these feelings we employ two strategies:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;We demonstrate how to treat &lt;code&gt;check()&lt;/code&gt; more like a todo list,
than a report card.
I think it&amp;rsquo;s useful to see
even Hadley doesn&amp;rsquo;t rely only on his memory to build a package from scratch,
he does what he remembers,
then figures out what he forgot by running &lt;code&gt;check()&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We get participants used to running &lt;code&gt;check()&lt;/code&gt; often,
by setting the goal of a &lt;code&gt;check()&lt;/code&gt; with no errors, warnings or notes
in many of the your turn exercises.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Another example of something that can hurt
is getting a package started.
This is where usethis and devtools really shine!
In the first session of the workshop we
cover &lt;code&gt;usethis::create_package()&lt;/code&gt;, &lt;code&gt;usethis::use_r()&lt;/code&gt;,
&lt;code&gt;devtools::load_all()&lt;/code&gt;, &lt;code&gt;devtools::check()&lt;/code&gt;, &lt;code&gt;devtools::document()&lt;/code&gt;, &lt;code&gt;usethis::use_mit_license()&lt;/code&gt; and &lt;code&gt;devtools::install()&lt;/code&gt;.
And that&amp;rsquo;s enough to have a fully functioning package
before the morning coffee break!&lt;/p&gt;
&lt;p&gt;It takes about 20mins to create a package from scratch
using this workflow for the first time,
but participants then practice this workflow,
adding a few extra steps, throughout the two days.
By the end of the workshop
they have built 3-5 packages from scratch,
and hopefully find it a pain-free experience.&lt;/p&gt;
&lt;p&gt;These are both examples of one of the big themes in the workshop:
&lt;strong&gt;Workflow&lt;/strong&gt;.
Embracing certain workflows when you switch to package development
leads to big payoffs.
Some of these payoffs are short term.
For example, following the package convention of
putting functions in script files
inside an &lt;code&gt;R/&lt;/code&gt; folder,
along with loading them with &lt;code&gt;devtools::load_all()&lt;/code&gt;,
is immediately much more streamlined and less error prone,
than sourcing functions individually with keyboard shortcuts, or &lt;code&gt;source()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Other payoffs are long term, for example,
writing tests adds work up front (although usethis helps a lot with the initial setup)
but the long term payoff is huge:
a package that is more reliable,
easier to maintain, and
easier to extend.&lt;/p&gt;
&lt;p&gt;The other two big themes in the workshop are &lt;strong&gt;Interface&lt;/strong&gt; and &lt;strong&gt;Implementation&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Interface&lt;/strong&gt; describes the user facing side of your package.
Your decisions about interface govern
how easy users find your package to learn and use.
One of the core values of the packages in the tidyverse is to
&amp;ldquo;Design for humans&amp;rdquo;.
In the workshop,
we work through some case studies to elucidate what this value means and
how to identify areas for improvement in your own packages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt; describes the code inside your package.
In the workshop we pick just a couple of topics to delve into,
those we think are the most useful to know about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dependencies: how and when to rely on code in other packages&lt;/li&gt;
&lt;li&gt;Using the tidyverse inside packages: the common problems that you
run into when using tidyverse functions inside your own functions,
and their solutions.&lt;/li&gt;
&lt;li&gt;The S3 object oriented system: why and how you might use it in your own packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;teaching-materials&#34;&gt;Teaching Materials
  &lt;a href=&#34;#teaching-materials&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We used the breaks to split the workshop into 8 sessions.  Each session, of 1.5 hours, is a different topic,
except for &lt;em&gt;Interface&lt;/em&gt; which took up two sessions for a total of 3 hours.&lt;/p&gt;
&lt;!--html_preserve--&gt;&lt;style&gt;html {
&lt;p&gt;font-family: -apple-system, BlinkMacSystemFont, &amp;lsquo;Segoe UI&amp;rsquo;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;lsquo;Helvetica Neue&amp;rsquo;, &amp;lsquo;Fira Sans&amp;rsquo;, &amp;lsquo;Droid Sans&amp;rsquo;, Arial, sans-serif;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_table {
display: table;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
color: #333333;
font-size: 16px;
background-color: #FFFFFF;
width: auto;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #A8A8A8;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #A8A8A8;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_heading {
background-color: #FFFFFF;
border-bottom-color: #FFFFFF;
border-left-style: hidden;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: hidden;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_title {
color: #333333;
font-size: 125%;
font-weight: initial;
padding-top: 4px;
padding-bottom: 4px;
border-bottom-color: #FFFFFF;
border-bottom-width: 0;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_subtitle {
color: #333333;
font-size: 85%;
font-weight: initial;
padding-top: 0;
padding-bottom: 4px;
border-top-color: #FFFFFF;
border-top-width: 0;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_bottom_border {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_col_headings {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_col_heading {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
vertical-align: bottom;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 5px;
padding-right: 5px;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_column_spanner {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
vertical-align: bottom;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
padding-top: 4px;
padding-bottom: 4px;
overflow-x: hidden;
display: inline-block;
width: 97%;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_group_heading {
padding: 8px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_empty_group_heading {
padding: 0.5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_striped {
background-color: rgba(128, 128, 128, 0.05);
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_from_md &amp;gt; :first-child {
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_from_md &amp;gt; :last-child {
margin-bottom: 0;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
margin: 10px;
border-top-style: solid;
border-top-width: 1px;
border-top-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_stub {
color: #333333;
background-color: #FFFFFF;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 12px;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_first_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_grand_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_first_grand_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: double;
border-top-width: 6px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_table_body {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_footnotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_footnote {
margin: 0px;
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_sourcenotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_sourcenote {
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_left {
text-align: left;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_center {
text-align: center;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_right {
text-align: right;
font-variant-numeric: tabular-nums;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_font_normal {
font-weight: normal;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_font_bold {
font-weight: bold;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_font_italic {
font-style: italic;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_super {
font-size: 65%;
}&lt;/p&gt;
&lt;p&gt;#papgkgqhtl .gt_footnote_marks {
font-style: italic;
font-size: 65%;
}
&lt;/style&gt;&lt;/p&gt;
&lt;div id=&#34;papgkgqhtl&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_right&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Day&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Session&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Taught by&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Theme&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Materials&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;1&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;The Whole Game&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Workflow&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/1-intro.pdf&#34;&gt;&lt;code&gt;1-intro.pdf &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;1&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Testing&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Workflow&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/2-testing.pdf&#34;&gt;&lt;code&gt;2-testing.pdf &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;1&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Documentation / Sharing&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Workflow&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/3-sharing.pdf&#34;&gt;&lt;code&gt;3-sharing.pdf &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;1&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Dependencies&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Hadley&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Implementation&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/script/3-dependencies.Rmd&#34;&gt;&lt;code&gt;3-dependencies.Rmd &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;2&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Using the Tidyverse&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Implementation&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/script/4-tidyverse.Rmd&#34;&gt;&lt;code&gt;4-tidyverse.Rmd &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;2&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Interface&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Hadley&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Interface&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/script/5-interface.Rmd&#34;&gt;&lt;code&gt;5-interface.Rmd &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_right&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;2&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;OO programming / S3&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Implementation&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/blob/master/script/7-oop.Rmd&#34;&gt;&lt;code&gt;7-oop.Rmd &lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;!--/html_preserve--&gt;
&lt;p&gt;You might notice some numbering inconsistencies &amp;mdash;
&lt;code&gt;3-dependencies.Rmd&lt;/code&gt; is presented after &lt;code&gt;3-sharing.pdf&lt;/code&gt;
and there is no &lt;code&gt;6-&lt;/code&gt;&amp;hellip; 🤷.&lt;/p&gt;
&lt;p&gt;The first three sections have slide decks (created in Apple Keynote),
but the other sections have an R Markdown file that acts as a script
(in 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/tree/master/script&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;script/&lt;/code&gt;&lt;/a&gt;)
&lt;strong&gt;and&lt;/strong&gt; another R Markdown file that records what was actually typed
(in 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/build-tidy-tools/tree/master/notes&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;notes/&lt;/code&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Hadley and I refer to the script as we teach
(usually open on another device like a phone or ipad),
but create and update the notes version as the session progresses,
and commit it to GitHub regularly.
Participants would have their web browser pointing at the notes version on GitHub,
refreshing when needed to grab any code required for the &amp;ldquo;Your Turn&amp;rdquo; exercises.&lt;/p&gt;
&lt;p&gt;The script approach encourages live coding and
allows for some digressions if participants raise specific questions.
From an instructor perspective,
it&amp;rsquo;s nice to have a record of both what you planned to teach and
what you actually taught &amp;mdash;
you can look back and see how the timing worked,
or questions participants raised.&lt;/p&gt;
&lt;p&gt;The early sections
(the &amp;ldquo;Whole Game&amp;rdquo;, Testing and Documentation)
focus more on workflow and are harder to document in a live code script,
since unlike code for scripts or functions,
much of the code is run on the console and involves context switching &amp;mdash;
switching to a new RStudio session,
switching to a script file that has opened in the Source Editor,
or getting something running in the &amp;ldquo;Build&amp;rdquo; pane.
So, I think keeping these initial sections as slides worked in this case.&lt;/p&gt;




&lt;h2 id=&#34;thanks&#34;&gt;Thanks
  &lt;a href=&#34;#thanks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Our workshop wouldn&amp;rsquo;t have been as successful (or as fun!) without
our fantastic teaching assistants: Julia Blum, Ingrid Rodriguez and François Michonneau.&lt;/p&gt;
&lt;p&gt;These materials have been taught from and developed over a few years.
A big thank you to everyone that has contributed to them!
In particular, lots of credit belongs to Hadley and Jenny Bryan.&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Data Visualization Workshop at rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-dataviz/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-dataviz/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-dataviz&#34;&gt;https://rstd.io/conf20-dataviz&lt;/a&gt; &lt;br&gt;
📖 
&lt;a href=&#34;http://socviz.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Visualization: A Practical Introduction&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was delighted to have the opportunity to teach a two-day workshop on Data Visualization using ggplot2 at this year&amp;rsquo;s rstudio::conf(2020) in January. It was my first time attending the conference and it was a terrific experience. I particularly appreciated the friendly and constructive atmosphere that RStudio so clearly goes out of its way to encourage and sustain.&lt;/p&gt;
&lt;p&gt;The workshop focused on learning how to think about good data visualization in principle, and how to do it in practice. After many years of trying and often failing to learn how to make good visualizations myself, I became convinced of two things. First, there is a real need for an approach that effectively combines the &lt;em&gt;why&lt;/em&gt; of visualization with the &lt;em&gt;how&lt;/em&gt;. A lot of otherwise excellent introductions to data visualization will teach you why some visualizations work better than others, and will present a series of mouth-watering examples of fabulous graphics. Then you sit down in front of an empty &lt;code&gt;.Rmarkdown&lt;/code&gt; file and &amp;hellip; now what? How do I &lt;em&gt;do&lt;/em&gt; that?&lt;/p&gt;
&lt;p&gt;Meanwhile, many very good, detailed introductions to writing ggplot2 code may be a little out of reach for beginners or&amp;mdash;perhaps more often&amp;mdash;will tend to get picked up by users in a recipe-like or piecemeal way. People cast around to find out how to more or less solve a particular problem they are having. But they leave without really having a good grasp on why the code they are using looks the way it does. The result is that even people who are pretty used to working in R and who regularly make graphs from data end up with a hazy idea of what they&amp;rsquo;re doing when they use ggplot.&lt;/p&gt;
&lt;p&gt;The second thing I became convinced of as I developed this material was that data visualization is a &lt;em&gt;fantastic&lt;/em&gt; way to introduce people to the world of data analysis with R generally. When visualizing data with R and ggplot, it&amp;rsquo;s possible to produce satisfying results almost right away. That makes it easier to introduce other tidyverse principles and tools in an organic fashion.&lt;/p&gt;
&lt;p&gt;For both of those reasons, I ended up 
&lt;a href=&#34;http://socviz.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;writing a book&lt;/a&gt; that approached things in just the way I wanted: a practical introduction to data visualization using ggplot2 that kept both the ideas and the code in view, and tried to do so in an engaging and approachable way. It was this text that formed the core of the workshop.&lt;/p&gt;
&lt;p&gt;While teaching over the two days, I was assisted by four TAs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.twitter.com/dataandme/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mara Averick&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.twitter.com/paleolimbot/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dewey Dunnington&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.twitter.com/ariespirgel/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ari Spirgel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.twitter.com/thomasp85&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Thomas Lin Pedersen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When I saw the roster, my first reaction was that mine was the only name I didn&amp;rsquo;t recognize. Having Thomas as a TA, in particular, did rather threaten to cross the line from the merely embarrassing to the faintly absurd. It was a real treat to meet and work with everyone for the first time.&lt;/p&gt;
&lt;p&gt;The materials from the workshop are available at the 
&lt;a href=&#34;https://rstd.io/conf20-dataviz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub repository for the course&lt;/a&gt;. The repo contains all the code we went through as well as PDFs of all of the slides. The code and the slides also include additional examples and other extensions that we did not have time to cover in over the two days, or that I just mentioned in passing.&lt;/p&gt;
&lt;p&gt;One of the benefits of teaching a short course like this is that I get a (sometimes sharp!) reminder of what works best and what needs tweaking across the various topics covered. Revisiting the code, in particular, is always necessary just because the best way to do something will change over time. For example, a few of the small tricks and workarounds that I show for dealing with boxplots will shortly become unneccessary, thanks to the work of Thomas, Dewey, and others on the next version of ggplot. I&amp;rsquo;m looking forward to incorporating those elements and more into the next version of the workshop.&lt;/p&gt;
&lt;p&gt;Data visualization is a powerful way to explore your own data and communicate your results to other people. One of the themes of the book, and the workshop, is that it is in most ways a tool like any other. It won&amp;rsquo;t magically render you immune to error or make it impossible for you to fool others, or fool yourself. But once you get a feel for how to work with it, it makes your work easier and better in many ways. The great strength of the approach taken by the grammar of graphics in general and ggplot in particular is that it gives people a powerful &amp;ldquo;flow of action&amp;rdquo; to follow. It provides a set of concepts&amp;mdash;mappings, geoms, scales, facets, layers, and so on&amp;mdash;that let you look at other people&amp;rsquo;s graphics and really see how their component pieces fit together. And it implements those concepts as a series of functions that let you coherently assemble graphics yourself. The goal of the workshop was to bring people to the point where they could comfortably write code that would clearly say what they wanted to see.&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-02-instructor-training-americas/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-02-instructor-training-americas/</guid>
      <description></description>
    </item>
    
    <item>
      <title>R for Excel Users Workshop</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-r-excel/</link>
      <pubDate>Tue, 18 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-r-excel/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://github.com/rstudio-conf-2020/r-for-excel&#34;&gt;https://github.com/rstudio-conf-2020/r-for-excel&lt;/a&gt; &lt;br&gt;
🔗 &lt;a href=&#34;https://rstd.io/conf20-r-excel&#34;&gt;https://rstd.io/conf20-r-excel&lt;/a&gt; &lt;br&gt;
🎨 
&lt;a href=&#34;https://docs.google.com/presentation/d/1w9cVzEsdbyZ6vay4UnoTvTWd9t-AO_x06HoVzgAiSFE/edit?usp=sharing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Slides&lt;/a&gt; &lt;br&gt;
🌺 Cross-posted: 
&lt;a href=&#34;https://www.openscapes.org/blog/2020/02/18/r-for-excel/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://openscapes.org&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2 id=&#34;background&#34;&gt;Background
  &lt;a href=&#34;#background&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We were thrilled to co-teach the R for Excel Users workshop at rstudio::conf(2020)! From early on in our weekly early-morning work sessions and brainstorming hikes, we knew that our R for Excel Users workshop would not be about wholesale translating Excel operations into R. Instead, it would be a more holistic approach to reproducible analyses with R – a friendly introduction to becoming a modern R user.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;r-for-excel-dj.png&#34; alt=&#34;Art by Allison Horst&#34; width=&#34;60%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Art by Allison Horst&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Our philosophy was always about empowering our attendees to continue learning R after our workshop – and so that they would be excited about it. We wanted to teach not only the skillsets of the modern R user, but also the habits and mindsets for working in a reproducible and collaborative way. Through hands-on experience our attendees would build skills and confidence at the workshop, and through stories and packages from the #rstats community, they would build the mindset to expect what they want to do is possible and have a good start to finding it.&lt;/p&gt;
&lt;p&gt;Thus, attendees would learn:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;coding with best practices (RStudio/tidyverse)&lt;/li&gt;
&lt;li&gt;collaborative bookkeeping (Git/GitHub)&lt;/li&gt;
&lt;li&gt;reporting and publishing (RMarkdown/GitHub)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And they would build the mindset:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;to expect that what they want to do is possible&lt;/li&gt;
&lt;li&gt;to have confidence they can find it&lt;/li&gt;
&lt;li&gt;to continue learning with supportive community&lt;/li&gt;
&lt;li&gt;to enable others&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Focusing on #rstats communities at our workshop was especially important to us because of our audience. These folks were coming to a 2400-person conference all about R – and they did not yet know R! That seems scary! Anything we could do to not only teach them about reproducible workflows but also make the conference easier to navigate for a newcomer we felt was time well spent. Thus, we deliberately focused time on R learning communities that they would see and can get involved in at the conference and afterwards. And, we included a discussion about how Twitter is a legit tool for R, and how to get started.&lt;/p&gt;




&lt;h2 id=&#34;teaching-at-rstudioconf&#34;&gt;Teaching at RStudio::conf!
  &lt;a href=&#34;#teaching-at-rstudioconf&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We taught R for Excel Users at RStudio::conf(2020) with our amazing TAs (and fellow Santa Barbara R-Ladies) Jessica Couture and Jamie Montgomery. We jumped into Day 1 of the workshop with 25 optimistic participants from industry, government offices, non-profits, and even several RStudio employees.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;r-for-excel-instructors.jpg&#34; alt=&#34;Julie, Jessica, Allison, and Jamie at RStudio::conf(2020)!&#34; width=&#34;50%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Julie, Jessica, Allison, and Jamie at RStudio::conf(2020)!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Our workshop assumed no previous experience with R or RStudio. After setting the tone and expectations of the workshop with how R is like the Force from Star Wars, we spent the first two sessions on meeting, exploring, and setting up our tools, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/rstudio.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Meeting the RStudio IDE, Hello R Markdown!, Packages, Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/github.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Working between GitHub and R projects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Jessica and Jamie’s awesome troubleshooting, we were all off and running at the end of Session 2 with RStudio, R Markdown, and GitHub and installed, running, and somewhat familiar. Of course after getting set up with our software, we had work to do! We spent the rest of the day:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/ggplot2.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Making ggplot graphs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/pivot-tables.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pivot tables in R with group_by() %&amp;gt;% summarize()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our fearless attendees returned on Day 2, with a chorus of “Alligator mouth dash” (&lt;code&gt;&amp;lt;-&lt;/code&gt;) in response to Alison’s question “How do we assign an object in R?”. We immediately jumped into coding by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/tidying.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Reshaping, separating and uniting things with tidyr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/filter-join.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Filtering and joining data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/collaborating.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Getting help, #rstats communities, and collaborating/fixing merge conflicts in GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio-conf-2020.github.io/r-for-excel/synthesis.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Synthesis of the skills and tools we’d learned&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our final session was revisiting and practicing all that we had learned throughout the workshop while participants also collaborated on RMarkdown files with each other through GitHub.&lt;/p&gt;
&lt;p&gt;The vibe throughout the workshop was fun and lighthearted, which is exactly what we were hoping for. In addition to “Alligator mouth dash”, my favorite moment in the whole workshop was an audible whisper (“very nice!”) from someone using &lt;code&gt;separate()&lt;/code&gt; for the first time. A close second was the cheers for &lt;code&gt;janitor::clean_names()&lt;/code&gt; and Allison’s responding, “Yes, this is worth cheering over!”. Our attendees were hard-working folks with a great attitude and sense of humor, who are now equipped for more exciting steps in their R journey.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/juliesquid/status/1222325096699686912&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;tweet-juliesquid-r-for-excel.png&#34; width=&#34;543&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2 id=&#34;whats-next&#34;&gt;What’s next
  &lt;a href=&#34;#whats-next&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We loved developing and teaching R for Excel Users, and hope to do it again. Our course materials evolved quite a bit throughout months of development, and were hugely helped by a pilot workshop we ran at UC Santa Barbara in early December. Even so, there are little things we would like to iron out and improve upon for next time. And we will also update the Book with images from the Slides so that the Book is completely self-contained and the Slides are a bonus, rather than a necessity.&lt;/p&gt;
&lt;p&gt;We also got feedback that we should change the name of the course because while it has some framing from Excel, it is certainly not limited to Excel Users. This seems like a good idea. When we were first talking to RStudio’s Alison Hill about the workshop, we discussed how it could be somewhat of a precursor to Jenny Bryan and Jim Hester’s What They Forgot to Teach You About R – ours being What You Should Know When You Learn R. Jenny and Jim’s have a great acronym, WTF, so I have been thinking about names. I learned from Jenny that WTF was a welcome byproduct that came after they came up with the workshop name, but I have to approach it as a 
&lt;a href=&#34;https://en.wikipedia.org/wiki/Backronym&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;backronym&lt;/a&gt;. I’ve had many terrible ideas, but! Through cocktail chats at the conference with Charlotte Wickham and Hannah Frick, we landed on TLDR being best. I love Charlotte’s suggestion of Take a Leap and Dive into R or my less-great Time to Learn Data analysis in R. This is an ongoing pursuit, and suggestions are very welcomed :).&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;r-for-excel-monsters.jpg&#34; alt=&#34;photo by Robert Bye with art by Allison Horst&#34; width=&#34;50%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: photo by Robert Bye with art by Allison Horst&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Introduction to Machine Learning with the Tidyverse</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-intro-ml/</link>
      <pubDate>Fri, 14 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-intro-ml/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-intro-ml&#34;&gt;https://rstd.io/conf20-intro-ml&lt;/a&gt; &lt;br&gt;
🔗 &lt;a href=&#34;https://conf20-intro-ml.netlify.com/&#34;&gt;https://conf20-intro-ml.netlify.com/&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At 
&lt;a href=&#34;https://rstd.io/conf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf(2020)&lt;/a&gt; in January, I was lucky to lead a new two-day workshop called &amp;ldquo;Introduction to Machine Learning with the Tidyverse.&amp;rdquo; This workshop was designed for learners who are comfortable using R and the 
&lt;a href=&#34;https://www.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse&lt;/a&gt;, and curious to learn how to use these tools to do machine learning using the modern suite of R packages called 
&lt;a href=&#34;https://github.com/tidymodels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt;. If you just read that last sentence and don&amp;rsquo;t yet know the word &amp;ldquo;tidymodels&amp;rdquo; yet, it is a collection of modeling packages that, like the tidyverse, have a consistent API and are designed to work together specifically to support the activities of a human doing predictive modeling (which includes 
&lt;a href=&#34;https://sebastianraschka.com/Articles/2014_intro_supervised_learning.html#machine-learning-and-pattern-classification&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;machine learning&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you have heard or used the 
&lt;a href=&#34;https://cran.r-project.org/web/packages/caret/caret.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;caret&lt;/a&gt; package, tidymodels is its successor. The development of tidymodels is supported by 
&lt;a href=&#34;https://rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio&lt;/a&gt;, and the team is led by 
&lt;a href=&#34;https://twitter.com/topepos&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Max Kuhn&lt;/a&gt;, the author of 
&lt;a href=&#34;https://cran.r-project.org/web/packages/caret/caret.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;caret&lt;/a&gt;, 
&lt;a href=&#34;https://cran.r-project.org/web/packages/Cubist/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Cubist&lt;/a&gt;, 
&lt;a href=&#34;https://cran.r-project.org/web/packages/C50/C50.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;C50&lt;/a&gt; and other R packages for predictive modeling. Max has offered an 
&lt;a href=&#34;https://github.com/tidymodels/aml-training&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Applied Machine Learning workshop&lt;/a&gt; for several years now, but we have not yet attempted to teach tidymodels to a beginner audience. Until now! 🎉&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://github.com/allisonhorst/stats-illustrations&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;parsnip.png&#34; alt=&#34;Art by Allison Horst&#34; width=&#34;49%&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Art by Allison Horst&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;My colleague 
&lt;a href=&#34;https://twitter.com/statgarrett?lang=en&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Garrett Grolemund&lt;/a&gt; and I designed the workshop to provide a gentle introduction to supervised machine learning: concepts, methods, and code. Attendees learned how to train and assess predictive models with several common machine learning algorithms, as well as how to do feature engineering to improve the predictive accuracy of their models. We focused on learning intuitive explanations of the models and best practices for predictive modeling. Along the way, we introduced several core tidymodels packages including 
&lt;a href=&#34;https://tidymodels.github.io/parsnip/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;parsnip&lt;/a&gt;, 
&lt;a href=&#34;https://tidymodels.github.io/recipes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recipes&lt;/a&gt;, 
&lt;a href=&#34;https://tidymodels.github.io/rsample/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rsample&lt;/a&gt;, and 
&lt;a href=&#34;https://tidymodels.github.io/tune/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tune&lt;/a&gt;, which provide a grammar for modeling that makes it easy to the right thing, and harder to accidentally do the wrong thing.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://github.com/allisonhorst/stats-illustrations&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;recipes.png&#34; alt=&#34;Art by Allison Horst&#34; width=&#34;49%&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Art by Allison Horst&lt;/p&gt;
&lt;/div&gt;




&lt;h2 id=&#34;prerequisite-knowledge&#34;&gt;Prerequisite Knowledge
  &lt;a href=&#34;#prerequisite-knowledge&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Before workshops for this year&amp;rsquo;s conf were announced, we framed two questions to help potential learners gauge whether this workshop was the right one for them:&lt;/p&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Can you use mutate and purrr to transform a data frame that contains list columns?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can you use the ggplot2 package to make a large variety of graphs?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you answered &amp;ldquo;no&amp;rdquo; to either question, you can brush up on these topics by working through the online tutorials at &lt;a href=&#34;https://rstudio.cloud/learn/primers&#34;&gt;https://rstudio.cloud/learn/primers&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;These questions were driven by the fact that when we started developing the workshop, using tidymodels required fairly advanced 
&lt;a href=&#34;https://purrr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;purrr&lt;/a&gt; skills; see an end-to-end code example from Max&amp;rsquo;s Applied Machine Learning workshop at rstudio::conf(2019) 
&lt;a href=&#34;https://github.com/topepo/rstudio-conf-2019/blob/2aaf4c24cd90cfa91cf2cdde256d68341f21133b/Materials/Part_2_Basic_Principles.R#L137-L212&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, between the time we first conceived of the workshop and when we taught it, a lot of the tidymodels API had changed (for the better). In hindsight, I would reframe with these questions &lt;em&gt;(rationale in italics)&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Have you used R for statistics, that is, doing hypothesis tests or another kind of inferential modeling? &lt;em&gt;Comfort with at least &lt;code&gt;lm&lt;/code&gt; and hopefully more packages/functions for modeling is helpful.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can you use the 
&lt;a href=&#34;https://r4ds.had.co.nz/transform.html#combining-multiple-operations-with-the-pipe&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pipe operator&lt;/a&gt; to combine a sequence of functions to transform objects in R (like a data frame)? &lt;em&gt;Tidymodels code uses pipes, but tends to be more for combining functions within a single package rather than across packages.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can you work with tibbles (or data frames) that contain 
&lt;a href=&#34;https://r4ds.had.co.nz/many-models.html#list-columns-1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;list columns&lt;/a&gt;? &lt;em&gt;Tidymodels code generally returns tibbles, often with list columns that you need to get comfortable with.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can you use 
&lt;a href=&#34;https://tidyselect.r-lib.org/reference/select_helpers.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;dplyr::select()&lt;/code&gt; helper functions&lt;/a&gt;? &lt;em&gt;This helps when composing 
&lt;a href=&#34;https://tidymodels.github.io/recipes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recipes&lt;/a&gt; for feature engineering.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;packages&#34;&gt;Packages
  &lt;a href=&#34;#packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We set up 
&lt;a href=&#34;https://rstudio.com/products/rstudio-server-pro/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Server Pro&lt;/a&gt; workspaces for all workshop attendees, which provided more horsepower for running some of the more computationally intensive models, and which came pre-loaded with all the workshop exercises as R Markdown files and the packages needed to do them pre-installed. For those who wished to follow along on their local machine, we provided the packages needed as 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/prework/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;prework&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code made heavy use of packages from the 
&lt;a href=&#34;https://tidyverse.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse&lt;/a&gt; and 
&lt;a href=&#34;https://tidymodels.github.io/tidymodels/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;install.packages&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tidyverse&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tidymodels&amp;#34;&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Like the 
&lt;a href=&#34;https://tidyverse.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyverse&lt;/a&gt;, 
&lt;a href=&#34;https://tidymodels.github.io/tidymodels/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt; is a meta-package that bundles most of the building blocks we needed:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tidymodels)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## ── Attaching packages ────────────────────────────────────────────────────────────────────────────────── tidymodels 0.0.3 ──
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## ✓ broom     0.5.3          ✓ purrr     0.3.3     
## ✓ dials     0.0.4          ✓ recipes   0.1.9     
## ✓ dplyr     0.8.4          ✓ rsample   0.0.5     
## ✓ ggplot2   3.2.1          ✓ tibble    2.1.3     
## ✓ infer     0.5.1          ✓ yardstick 0.0.4     
## ✓ parsnip   0.0.4.9000
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;## ── Conflicts ───────────────────────────────────────────────────────────────────────────────────── tidymodels_conflicts() ──
## x purrr::discard()    masks scales::discard()
## x dplyr::filter()     masks stats::filter()
## x dplyr::lag()        masks stats::lag()
## x ggplot2::margin()   masks dials::margin()
## x recipes::step()     masks stats::step()
## x recipes::yj_trans() masks scales::yj_trans()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Two tidymodels packages were not yet on CRAN at the time of the workshop. We installed the development versions of 
&lt;a href=&#34;https://tidymodels.github.io/workflows/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workflows&lt;/a&gt; and 
&lt;a href=&#34;https://tidymodels.github.io/tune/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tune&lt;/a&gt; from GitHub.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# install once per machine&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;install.packages&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;remotes&amp;#34;&lt;/span&gt;)
remotes&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;install_github&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tidymodels/workflows&amp;#34;&lt;/span&gt;,
                          &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tidymodels/tune&amp;#34;&lt;/span&gt;))

&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# load once per work session&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(workflows)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(tune)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We also used some non-tidymodels packages as well:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;install.packages&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;kknn&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;rpart&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;rpart.plot&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;rattle&amp;#34;&lt;/span&gt;, 
                   &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;AmesHousing&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;ranger&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;partykit&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;vip&amp;#34;&lt;/span&gt;))

&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# and&lt;/span&gt;

remotes&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;install_github&lt;/span&gt;(&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;tidymodels/modeldata&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;teaching-infrastructure&#34;&gt;Teaching Infrastructure
  &lt;a href=&#34;#teaching-infrastructure&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;RStudio Server Pro:&lt;/strong&gt; Our 
&lt;a href=&#34;https://rstudio.com/products/rstudio-server-pro/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Server Pro&lt;/a&gt; workspaces used Amazon compute optimized 
&lt;a href=&#34;https://aws.amazon.com/ec2/instance-types/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;c5.large&lt;/code&gt; instances&lt;/a&gt; with 2 vCPUs and 4 GiB memory for each learner.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Slides:&lt;/strong&gt; I used the 
&lt;a href=&#34;https://github.com/yihui/xaringan&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;xaringan package&lt;/a&gt; to build all my slides in R Markdown. The source files all live within the 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/tree/master/site/static/slides&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;site/static/slides&lt;/code&gt;&lt;/a&gt; folder of the repository.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For a xaringan tutorial, you can see my rstudio::conf(2019) workshop slides 
&lt;a href=&#34;https://arm.rbind.io/slides/xaringan.html#1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I also highly recommend the 
&lt;a href=&#34;https://pkg.garrickadenbuie.com/countdown/#1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;countdown package&lt;/a&gt;, which I used to create the exercise timers ⌛.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Workshop website:&lt;/strong&gt; I used the 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown R package&lt;/a&gt; to build the 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;website&lt;/a&gt;, with the 
&lt;a href=&#34;https://themes.gohugo.io/academic/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo academic theme&lt;/a&gt; with a custom CSS designed by 
&lt;a href=&#34;http://desiree.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Desirée De Leon&lt;/a&gt;. If you want to re-use my workshop website (you&amp;rsquo;ll need 
&lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt; and 
&lt;a href=&#34;https://www.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netlify&lt;/a&gt; accounts), click on &lt;em&gt;Deploy to Netlify&lt;/em&gt; button at the top of my 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/README.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;README&lt;/code&gt;&lt;/a&gt; 🚀&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the rest of this post, I&amp;rsquo;ll walk you through the materials available through the 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workshop website&lt;/a&gt;:&lt;/p&gt;
&lt;iframe src=&#34;https://conf20-intro-ml.netlify.com/&#34; width=&#34;100%&#34; height=&#34;400px&#34;&gt;&lt;/iframe&gt;




&lt;h2 id=&#34;materials&#34;&gt;Materials
  &lt;a href=&#34;#materials&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The workshop consisted of 8 sessions. In each session, we presented slides interspersed with timed group activities and independent coding exercises. All of these links are also available on our 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;website&lt;/a&gt;.&lt;/p&gt;
&lt;!--
| session | slides                                 | Exercises + Solutions                   | 
|---------|----------------------------------------|-----------------------------------------|
| 00      | [Welcome &amp; Introductions][00-slides]   |                                         |
| 01      | [Predicting][01-slides]                | [Exercises][01-ex], [Solutions][01-sol] |
| 02      | [Classifying][02-slides]               | [Exercises][02-ex], [Solutions][02-sol] |
| 03      | [Sampling &amp; Resampling][03-slides]     |                                         |
| 04      | [Ensembling][04-slides]                | [Exercises][04-ex], [Solutions][04-sol] |
| 05      | [Workflows][05-slides]                 | [Exercises][05-ex], [Solutions][05-sol] |
| 06      | [Recipes][06-slides]                   | [Exercises][06-ex], [Solutions][06-sol] |
| 07      | [Cross-validation][07-slides]          | [Exercises][07-ex], [Solutions][07-sol] |
| 08      | [Tuning][08-slides]                    | [Exercises][08-ex], [Solutions][08-sol] |
--&gt;
&lt;!--html_preserve--&gt;&lt;style&gt;html {
&lt;p&gt;font-family: -apple-system, BlinkMacSystemFont, &amp;lsquo;Segoe UI&amp;rsquo;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;lsquo;Helvetica Neue&amp;rsquo;, &amp;lsquo;Fira Sans&amp;rsquo;, &amp;lsquo;Droid Sans&amp;rsquo;, Arial, sans-serif;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_table {
display: table;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
color: #333333;
font-size: 16px;
background-color: #FFFFFF;
width: auto;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #A8A8A8;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #A8A8A8;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_heading {
background-color: #FFFFFF;
border-bottom-color: #FFFFFF;
border-left-style: hidden;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: hidden;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_title {
color: #333333;
font-size: 125%;
font-weight: initial;
padding-top: 4px;
padding-bottom: 4px;
border-bottom-color: #FFFFFF;
border-bottom-width: 0;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_subtitle {
color: #333333;
font-size: 85%;
font-weight: initial;
padding-top: 0;
padding-bottom: 4px;
border-top-color: #FFFFFF;
border-top-width: 0;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_bottom_border {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_col_headings {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_col_heading {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
vertical-align: bottom;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 5px;
padding-right: 5px;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_column_spanner {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
vertical-align: bottom;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
padding-top: 4px;
padding-bottom: 4px;
overflow-x: hidden;
display: inline-block;
width: 97%;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_group_heading {
padding: 8px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_empty_group_heading {
padding: 0.5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_striped {
background-color: rgba(128, 128, 128, 0.05);
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_from_md &amp;gt; :first-child {
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_from_md &amp;gt; :last-child {
margin-bottom: 0;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
margin: 10px;
border-top-style: solid;
border-top-width: 1px;
border-top-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_stub {
color: #333333;
background-color: #FFFFFF;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 12px;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_first_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_grand_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_first_grand_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: double;
border-top-width: 6px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_table_body {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_footnotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_footnote {
margin: 0px;
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_sourcenotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_sourcenote {
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_left {
text-align: left;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_center {
text-align: center;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_right {
text-align: right;
font-variant-numeric: tabular-nums;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_font_normal {
font-weight: normal;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_font_bold {
font-weight: bold;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_font_italic {
font-style: italic;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_super {
font-size: 65%;
}&lt;/p&gt;
&lt;p&gt;#khirjdntoo .gt_footnote_marks {
font-style: italic;
font-size: 65%;
}
&lt;/style&gt;&lt;/p&gt;
&lt;div id=&#34;khirjdntoo&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;session&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Slides&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Materials&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;00&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/00-welcome/&#39;  target=&#39;_blank&#39;&gt;Welcome &amp;amp; Introductions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;01&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/01-predicting/&#39;  target=&#39;_blank&#39;&gt;Predicting&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/01-Prediction.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/01-Prediction.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;02&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/02-classifying/&#39;  target=&#39;_blank&#39;&gt;Classifying&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/02-Classification.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/02-Classification.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;03&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/03/&#39;  target=&#39;_blank&#39;&gt;Sampling &amp;amp; Resampling&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;04&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/04-ensembling/&#39;  target=&#39;_blank&#39;&gt;Ensembling&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/04-Ensembling.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/04-Ensembling.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;05&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/05-workflows/&#39;  target=&#39;_blank&#39;&gt;Workflows&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/05-Workflows.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/05-Workflows.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;06&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/06-recipes/&#39;  target=&#39;_blank&#39;&gt;Recipes&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/06-Recipes.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/06-Recipes.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;07&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/07-cv/&#39;  target=&#39;_blank&#39;&gt;Cross-validation&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center gt_striped&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/07-CV.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/07-CV.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;08&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://conf20-intro-ml.netlify.com/materials/08-tune/&#39;  target=&#39;_blank&#39;&gt;Tuning&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/exercises/08-Tune.Rmd&#39;  target=&#39;_blank&#39;&gt;Exercises&lt;/a&gt;, &lt;a href=&#39;https://github.com/rstudio-conf-2020/intro-to-ml-tidy/blob/master/materials/solutions/08-Tune.Rmd&#39;  target=&#39;_blank&#39;&gt;Solutions&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;!--/html_preserve--&gt;




&lt;h2 id=&#34;instructor-notes&#34;&gt;Instructor Notes
  &lt;a href=&#34;#instructor-notes&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We did a trial run of this workshop in December 2019 in Boston with about 20 participants, which proved one of 
&lt;a href=&#34;https://teachtogether.tech/#the-rules&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Greg Wilson&amp;rsquo;s cardinal rules&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Remember that no lesson survives first contact with learners…&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Actually, the workshop went pretty smoothly for a first run, and we received positive feedback from our attendees. But, like any good educators, Garrett and I decided that a content renovation would make the workshop &lt;strong&gt;even better&lt;/strong&gt;. This decision was driven by a few observations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;We realized that the process of using a fitted model object for generating predictions was pretty new to many attendees. We needed to spend more time on this, so we beefed up our 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/01-predicting/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;early section on predicting&lt;/a&gt; considerably. This meant that 
&lt;a href=&#34;https://tidymodels.github.io/parsnip/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;parsnip&lt;/a&gt; was the first tidymodels package we introduced, which felt right! Parsnip probably should be the first tidymodels package to learn/teach to new users (previously, we had started with 
&lt;a href=&#34;https://tidymodels.github.io/rsample/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rsample&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Many attendees were less familiar with resampling methods in general, and in particular with 
&lt;a href=&#34;https://moderndive.com/8-confidence-intervals.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bootstrap resampling&lt;/a&gt;. Since bootstrapping is such a key concept, we pushed 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/07-cv/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;cross-validation&lt;/a&gt; later and added an earlier section on 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/03/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;sampling and resampling&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To lay out the red carpet for 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/04-ensembling/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ensembling&lt;/a&gt; (we worked up to bagging and random forest models), we spent some time working with and interpreting single decision trees, including a 
&lt;a href=&#34;https://www.atarimagazines.com/v4n12/Animal.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Guess the Animal&amp;rdquo; team activity&lt;/a&gt; that helped to loosen everyone up on day 1.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A new, but very much welcome, kid on the tidymodels block appeared just before our workshop in December: 
&lt;a href=&#34;https://tidymodels.github.io/workflows/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workflows&lt;/a&gt;. For conf, we re-factored our approach to introduce workflows by bundling together formulas and parsnip model specifications &lt;em&gt;first&lt;/em&gt; (via 
&lt;a href=&#34;https://tidymodels.github.io/workflows/reference/add_formula.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;add_formula()&lt;/code&gt;&lt;/a&gt; and 
&lt;a href=&#34;https://tidymodels.github.io/workflows/reference/add_model.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;add_model()&lt;/code&gt;&lt;/a&gt;), &lt;em&gt;then&lt;/em&gt; introducing 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/06-recipes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recipes&lt;/a&gt; as a way to move beyond formulas and do feature engineering (substituting &lt;code&gt;add_formula()&lt;/code&gt; with 
&lt;a href=&#34;https://tidymodels.github.io/workflows/reference/add_recipe.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;add_recipe()&lt;/code&gt;&lt;/a&gt; instead).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To accomodate the new and improved content reorganization we envisioned, we hit a few code hiccups. Garrett and I made an executive decision to write some helper functions so that the code &lt;strong&gt;just worked&lt;/strong&gt; and we kept the content on track. These were the earliest fitting functions we used on day 1, before transitioning to 
&lt;a href=&#34;https://tidymodels.github.io/tune/reference/fit_resamples.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tune::fit_resamples()&lt;/code&gt;&lt;/a&gt; and 
&lt;a href=&#34;https://tidymodels.github.io/tune/reference/tune_grid.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tune::tune_grid()&lt;/code&gt;&lt;/a&gt; on day 2 after introducing 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/materials/07-cv/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;cross-validation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As an educator, this is typically something I try to avoid if possible, as my goal is to guide learners to be able to use the package APIs as designed independently. But debugging this specific error introduced too much 
&lt;a href=&#34;https://teachtogether.tech/#s:process-exercises&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;&amp;ldquo;inessential weirdness&amp;rdquo;&lt;/em&gt;&lt;/a&gt; because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;we would have needed to describe things that were not really necessary to understand, and&lt;/li&gt;
&lt;li&gt;these things were likely to alienate people (you can follow a discussion and reprex of one 
&lt;a href=&#34;https://github.com/tidymodels/tune/issues/151&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;error here&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bottom-line:&lt;/strong&gt; If you are trying to follow these slides on your own,  open the accompanying exercise files for each slide deck and run the first chunk locally (look out for our helper functions named &lt;code&gt;fit_data()&lt;/code&gt; and &lt;code&gt;fit_split()&lt;/code&gt;). If you want to take the training wheels off and use the base tidymodels functions, you may run into similar errors, but roughly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fit_data()&lt;/code&gt; = 
&lt;a href=&#34;https://tidymodels.github.io/parsnip/reference/fit.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;parsnip::fit()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fit_split()&lt;/code&gt; = 
&lt;a href=&#34;https://tidymodels.github.io/tune/reference/last_fit.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;tune::last_fit()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finally, we re-worked most of our exercises (within R Markdown documents) to provide code templates that were either &amp;ldquo;fill-in-the-blanks&amp;rdquo; or &amp;ldquo;fix me&amp;rdquo; (i.e., replace or add arguments to already written code). On the first run, it became abundantly clear that, because tidymodels code can be verbose, we wore learners out with too much typing. In fact, we wore ourselves out typing. To reduce the typing (and cognitive) load, we tried to adopt a &lt;em&gt;no-code-chunk-left-blank&lt;/em&gt; strategy so that learners did not feel like 
&lt;a href=&#34;https://www.youtube.com/watch?v=DUGN-12HHwQ&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this&lt;/a&gt; at the end:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;long.png&#34; alt=&#34;Video from YouTube.&#34; width=&#34;50%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: Video from &lt;a href=&#34;https://www.youtube.com/watch?v=DUGN-12HHwQ&#34;&gt;YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;




&lt;h2 id=&#34;what-would-i-change&#34;&gt;What would I change?
  &lt;a href=&#34;#what-would-i-change&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In hindsight after teaching this material twice, I would try to make room for a final case study with a new dataset so that learners get a chance to create a full predictive modeling pipeline, from the initial split to the last fit. To make room for a case study, I would try to get workflows and recipes to join forces a bit earlier. One of the clearest benefits of using workflows is that you don&amp;rsquo;t need to spend too much time monkeying around with the 
&lt;a href=&#34;https://tidymodels.github.io/recipes/reference/prep.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;prep&lt;/a&gt;, 
&lt;a href=&#34;https://tidymodels.github.io/recipes/reference/bake.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bake&lt;/a&gt;, and 
&lt;a href=&#34;https://tidymodels.github.io/recipes/reference/juice.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;juice&lt;/a&gt; functions from the 
&lt;a href=&#34;https://tidymodels.github.io/recipes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;recipes&lt;/a&gt; package, so we could shorten the bridge between presenting these two packages considerably. I also think that cross-validation and tuning could be more closely aligned timing-wise, since tuning with tidymodels is only possible with resampled data.&lt;/p&gt;




&lt;h2 id=&#34;thanks&#34;&gt;Thanks
  &lt;a href=&#34;#thanks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I sincerely enjoyed developing this workshop with 
&lt;a href=&#34;https://twitter.com/StatGarrett&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Garrett&lt;/a&gt;, getting a chance to work closely with 
&lt;a href=&#34;https://twitter.com/topepos&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Max Kuhn&lt;/a&gt; and 
&lt;a href=&#34;https://twitter.com/dvaughan32&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Davis Vaughan&lt;/a&gt; of the tidymodels team (now including the inimitable 
&lt;a href=&#34;https://juliasilge.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Julia Silge&lt;/a&gt;!), and having the opportunity to introduce a new cohort of R and tidyverse users to 
&lt;a href=&#34;https://github.com/tidymodels&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidymodels&lt;/a&gt;. I hope the materials we developed are useful to learners and other educators too—if they are, 
&lt;a href=&#34;https://twitter.com/apreshill&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;please let me know&lt;/a&gt;, I&amp;rsquo;d love to hear about it.&lt;/p&gt;
&lt;p&gt;And most of all—thanks to our Boston and San Francisco workshop participants! You all were a pleasure to model with.&lt;/p&gt;
&lt;p&gt;Happy predictive modeling!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/3ohhwKFBNijG4GJEYw/giphy.gif&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h3 id=&#34;special-thanks&#34;&gt;Special thanks
  &lt;a href=&#34;#special-thanks&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;This workshop was made possible by an ⭐ all-star ⭐ TA team- you can find out more about them on our 
&lt;a href=&#34;https://conf20-intro-ml.netlify.com/people/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workshop website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://conf20-intro-ml.netlify.com/people/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;tas.png&#34; width=&#34;100%&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Text Mining Workshop Materials from rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-tidytext/</link>
      <pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-tidytext/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-tidytext&#34;&gt;https://rstd.io/conf20-tidytext&lt;/a&gt; &lt;br&gt;
🔗 
&lt;a href=&#34;http://bit.ly/silge-rstudioconf-1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bit.ly/silge-rstudioconf-1&lt;/a&gt; and 
&lt;a href=&#34;http://bit.ly/silge-rstudioconf-2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bit.ly/silge-rstudioconf-2&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At rstudio::conf(2020) in January, I had the pleasure of teaching a two-day workshop on text analysis using tidy data principles. With two whole days to dedicate to this topic, we had the opportunity to cover a lot of ground and go into significant detail. On the first day, we focused on &lt;strong&gt;exploratory data analysis for text&lt;/strong&gt;, and on the second day, we addressed &lt;strong&gt;modeling for text&lt;/strong&gt;, with a bit of both supervised and unsupervised machine learning.&lt;/p&gt;
&lt;p&gt;In our workshop, we had three skilled and supportive TAs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;http://www.jeroenclaes.be/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jeroen Claes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.hvitfeldt.me/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Emil Hvitfeldt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://r-tastic.co.uk/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kasia Kulma&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Similar to many of the other workshops at rstudio::conf(2020), our workshop TAs had such deep teaching and subject matter expertise that they could have been the ones teaching! Jeroen is a linguist by background and a 
&lt;a href=&#34;https://education.rstudio.com/trainers/#info&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tidyverse Certified Trainer&lt;/a&gt; himself, Emil is the author of several R packages for text modeling, and Kasia has taught many R workshops, including those focused on natural language processing. Having a team of such capable and caring TAs contributed to our workshop going remarkably smoothly.&lt;/p&gt;
&lt;p&gt;However, workshops that involve dozens of participants, live coding, Wi-Fi, and package installation are bound to run into a few hiccups and we were no exception. One of the things I took away from my own experience in RStudio&amp;rsquo;s training certification is how, when handled well, those kinds of challenges can be valuable learning opportunities. During this workshop, I (inadvertently) introduced a bug in the second day&amp;rsquo;s slides. The bug jumped out at me as we were working through our supervised machine learning example. I had used &lt;code&gt;select()&lt;/code&gt; where I should have used &lt;code&gt;distinct()&lt;/code&gt; in some data preparation, resulting in 
&lt;a href=&#34;https://www.kaggle.com/dansbecker/data-leakage&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;leakage&amp;rdquo;&lt;/a&gt; of training data into the test set. Data leakage is a 
&lt;a href=&#34;https://dl.acm.org/doi/10.1145/2020408.2020496&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;huge problem in machine learning&lt;/a&gt; and so, so easy to stumble into; although I never enjoy making mistakes in front of people, it was great to have such a concrete reason to talk about it in detail.&lt;/p&gt;
&lt;p&gt;The materials for this workshop are 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/text-mining&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available on GitHub&lt;/a&gt;; you&amp;rsquo;ll find an outline of what we covered, the code that created the slides, and the &lt;code&gt;.Rmd&lt;/code&gt; files that participants worked through during the two days. (The data leakage bug has been fixed, in case you are wondering.)&lt;/p&gt;
&lt;p&gt;I like to use 
&lt;a href=&#34;https://github.com/yihui/xaringan&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;xaringan&lt;/a&gt; for code-heavy workshop slides these days, and I used GitHub Pages to serve the slides as HTML. The slides for the 
&lt;a href=&#34;http://bit.ly/silge-rstudioconf-1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;first day on exploratory data analysis&lt;/a&gt; start from what we mean by a tidy data structure for text and then work through other exploratory approaches for text such as sentiment lexicons and tf-idf. The first day wrapped up with moving beyond single words to n-grams and the rich kinds of analysis larger units of text can open up, such as network analysis. The slides for the 
&lt;a href=&#34;http://bit.ly/silge-rstudioconf-2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;second day on modeling&lt;/a&gt; start with an example of unsupervised machine learning for text (topic modeling) and end with an example of supervised machine learning (regularized regression, which works great for text).&lt;/p&gt;
&lt;p&gt;Throughout both days, participants chose their own 
&lt;a href=&#34;https://www.gutenberg.org/browse/scores/top&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;text datasets from Project Gutenberg&lt;/a&gt; to use during the workshop. There is value in learners being able to have some autonomy in what they spend two long days looking at over and over again, and also in seeing how their results differ from their neighbors&amp;rsquo;. Seeing our participants engage deeply with learning about text analysis and with each other was a highlight of my conference experience this year!&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Tidy Time Series and Forecasting in R</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-ts/</link>
      <pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-ts/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-ts&#34;&gt;https://rstd.io/conf20-ts&lt;/a&gt; &lt;br&gt;
📖 
&lt;a href=&#34;https://otexts.com/fpp3/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Forecasting: Principles and Practice&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For the last couple of years I&amp;rsquo;ve watched the twitter feed from the Rstudio conference with jealousy &amp;mdash; not just FOMO but KIWMO (Knowing I Was Missing Out). So when I was asked to teach a workshop on Tidy Time Series as part of rstudio::conf2020, I agreed without hesitation. The idea was to teach a workshop using a tidy approach to time series &amp;mdash; something that has only been possible very recently.&lt;/p&gt;
&lt;p&gt;It is now very common for organizations to collect huge amounts of data over time, and existing time series analysis tools are often unable to handle the scale, frequency and structure of the data collected. In response, I have been working with Earo Wang, Mitch O&amp;rsquo;Hara-Wild and Di Cook to develop a suite of packages to handle modern time series data in a tidy framework. This workshop was an introduction to how to use these packages.&lt;/p&gt;
&lt;p&gt;All the materials for the workshop are on 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a github repository&lt;/a&gt;. The workshop was based on the 
&lt;a href=&#34;https://OTexts.com/fpp3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;new edition of my textbook&lt;/a&gt; with George Athanasopoulos.&lt;/p&gt;
&lt;p&gt;I was very lucky to have four awesome teaching assistants in 
&lt;a href=&#34;https://www.mitchelloharawild.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mitch O&amp;rsquo;Hara-Wild&lt;/a&gt;, 
&lt;a href=&#34;https://trianglegirl.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rhian Davies&lt;/a&gt;, 
&lt;a href=&#34;https://education.rstudio.com/trainers/people/lear&amp;#43;phillip/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Phillip Lear&lt;/a&gt;, and 
&lt;a href=&#34;https://www.linkedin.com/in/steven-lawrence-bio-math/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Steven Lawrence&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;day-1&#34;&gt;Day 1
  &lt;a href=&#34;#day-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;On day 1, we looked at the &lt;code&gt;tsibble&lt;/code&gt;, &lt;code&gt;lubridate&lt;/code&gt; and &lt;code&gt;feasts&lt;/code&gt; packages (along with the &lt;code&gt;tidyverse&lt;/code&gt; of course). We introduced the &lt;code&gt;tsibble&lt;/code&gt; data structure for flexibly managing collections of related time series, and explored how to do data wrangling, data visualizations and exploratory data analysis, along with some feature-based methods to explore time series data in high dimensions.&lt;/p&gt;
&lt;p&gt;Links to slides for day 1 are given below.&lt;/p&gt;
&lt;ol start=&#34;0&#34;&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/0-intro.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/1-tsibbles.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to tsibbles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/2-graphics.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Time series graphics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/3-transformations.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Transformations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/4-decompositions.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Seasonality and trends&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/5-feasts.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Time series features&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;day-2&#34;&gt;Day 2
  &lt;a href=&#34;#day-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Day 2 was about forecasting using the &lt;code&gt;fable&lt;/code&gt; package. We looked at several well-known time series forecasting models and how they are automated in the &lt;code&gt;fable&lt;/code&gt; package. We also discussed ensemble forecasts. Finally, we looked at forecast reconciliation, allowing millions of time series to be forecast in a relatively short time while accounting for constraints on how the series are related.&lt;/p&gt;
&lt;p&gt;Links to slides for day 2 are given below.&lt;/p&gt;
&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/6-fable.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to forecasting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/7-ets.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Exponential smoothing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/8-arima.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ARIMA models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/9-dynamic-regression.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dynamic regression&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/raw/master/materials/10-reconciliation.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hierarchical forecasting&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2 id=&#34;lab-sessions&#34;&gt;Lab Sessions
  &lt;a href=&#34;#lab-sessions&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;We alternated between me presenting and lab sessions where participants worked with time series data in R. The 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/blob/master/Labs.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructions for the lab sessions&lt;/a&gt; are available on the repo.&lt;/p&gt;
&lt;p&gt;R code providing 
&lt;a href=&#34;https://github.com/rstudio-conf-2020/time-series-forecasting/blob/master/materials/labs.R&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;solutions to the lab exercises&lt;/a&gt; are also available here.&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>What They Forgot to Teach You About R at rstudio::conf 2020</title>
      <link>https://education.rstudio.com/blog/2020/02/conf20-wtf/</link>
      <pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf20-wtf/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;tl;dr: all workshop materials are available here: &lt;br&gt;
&lt;i class=&#34;fab fa-github fa-fw&#34;&gt;&lt;/i&gt; &lt;a href=&#34;https://rstd.io/conf20-wtf&#34;&gt;https://rstd.io/conf20-wtf&lt;/a&gt; &lt;br&gt;
🔗 &lt;a href=&#34;https://rstd.io/wtf-2020-rsc&#34;&gt;https://rstd.io/wtf-2020-rsc&lt;/a&gt; &lt;br&gt;
&lt;i class=&#34;fab fa-creative-commons fa-fw&#34;&gt;&lt;/i&gt; 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;License: CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What did they forget to teach you about R? If you&amp;rsquo;re like many people, your R
education focused mainly on how to do statistical analyses in R. However, there
are many other skills that are crucial to working productively in R and are
rarely taught. Filling in these gaps was the focus of the What They Forgot to
Teach You About R workshop that Jenny Bryan, Jim Hester, and I taught at
rstudio::conf 2020.&lt;/p&gt;
&lt;p&gt;The first morning of the workshop was devoted to talking about

&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day1_1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;project-oriented workflows&lt;/a&gt;,
and how best to organize one&amp;rsquo;s R projects. We discussed how to create a project
structure that is self-documenting, organized, and easy to revisit and
collaborate on. Creating a logical folder structure, using informative and
well-formatted file names, practicing &amp;ldquo;safe paths&amp;rdquo;, and splitting analyses up
into manageable pieces were some of the key components of robust R projects. In
the afternoon, Jim led the group through an exploration of R&amp;rsquo;s

&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day1_3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;debugging&lt;/a&gt;
tools, including &lt;code&gt;traceback()&lt;/code&gt;, &lt;code&gt;browser()&lt;/code&gt;, &lt;code&gt;debug()&lt;/code&gt;, &lt;code&gt;trace()&lt;/code&gt;, and
&lt;code&gt;recover()&lt;/code&gt;. Finally, we covered how to use

&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day1_4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;git and GitHub&lt;/a&gt;
to track the history of our projects and communicate our results.&lt;/p&gt;
&lt;p&gt;Day two began with 
&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day2_1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;personal R administration&lt;/a&gt;
(
&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day2_2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;part 2&lt;/a&gt;):
how to maintain your R installation and package libraries, how to set up a
development environment, how to install source packages and read source code,
and how to create reproducible project environments with renv. From there, Jenny
took us into more advanced

&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day2_3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;git workflows&lt;/a&gt;.
Using a

&lt;a href=&#34;https://github.com/rstats-wtf/wtf-ascii-funtimes&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;repo full of ASCII art&lt;/a&gt;,
everyone practiced visiting the history of their projects and reverting and
cherry picking commits. We also covered some time honored strategies for
working with git, including

&lt;a href=&#34;https://happygitwithr.com/repeated-amend.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the repeated amend&lt;/a&gt;
and the 
&lt;a href=&#34;https://happygitwithr.com/burn.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;burn it all down&lt;/a&gt; method.
We ended the day with a lesson on

&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/day2_4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;using purrr&lt;/a&gt;
for repetitive tasks.&lt;/p&gt;
&lt;p&gt;All of the materials from the workshop are available at
&lt;a href=&#34;https://rstudio-conf-2020.github.io/what-they-forgot/&#34;&gt;https://rstudio-conf-2020.github.io/what-they-forgot/&lt;/a&gt;, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;slides&lt;/li&gt;
&lt;li&gt;hands-on exercises&lt;/li&gt;
&lt;li&gt;links to further reading on the 
&lt;a href=&#34;https://rstats.wtf/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;What They Forgot to Teach You About R&lt;/a&gt; and 
&lt;a href=&#34;https://happygitwithr.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Happy Git and GitHub for the useR&lt;/a&gt; sites&lt;/li&gt;
&lt;li&gt;the popular 
&lt;a href=&#34;https://open.spotify.com/playlist/0OuvqM69DKFK3QPbHIy2kc?si=xonCaP2RTmeOXO3YW7hxhQ&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Spotify playlist&lt;/a&gt; we played during the course&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Throughout the workshop our fantastic team of TAs—Hannah Frick, Myfanwy
Johnston, Sean Kross, and Theo Roe—kept things running smoothly by moving
throughout the room and answering learners&amp;rsquo; questions. Thank you to them, to the
rest of the RStudio team, and to the workshop participants for making the two
days such a success!&lt;/p&gt;
&lt;div class=&#34;hline-top&#34;&gt;
&lt;i class=&#34;fas fa-binoculars&#34;&gt;&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf2020-workshops/&#39;&gt;&lt;em&gt;Check out materials from the 18 other rstudio::conf(2020) workshops...&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Workshop wrap-up from rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2020/02/conf2020-workshops/</link>
      <pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/conf2020-workshops/</guid>
      <description>&lt;p&gt;In January, we wrapped up 
&lt;a href=&#34;https://rstudio.com/conference/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf(2020)&lt;/a&gt;—our fourth conference about all things R, RStudio, and data science. This year, the conference was held in San Francisco, California. Before the conference, we offered 19 (mostly) two-day workshops taught by RStudio staff as well as experts throughout the R community. Topics ranged from R for Excel Users, Javascript for Shiny Users, to Deep Learning with Keras and Tensorflow. With a teaching staff of 102 and 1307 workshop attendees, our instructors worked overtime to craft learning experiences that both challenged and empowered learners.&lt;/p&gt;
&lt;p&gt;This year, the RStudio Education team designed a workshop line-up that we hope offered something for everyone. Some of our tried-and-true workshops were offered, but we also welcomed some new kids on the block, many by popular demand from attendees who weighed in on our post-conf surveys in the past. We were excited to work with new instructors from around the world, and to bring our conference attendees a slate of unique R-focused workshops.&lt;/p&gt;
&lt;p&gt;For learners who attended workshops as well as those who could not join us, all workshop materials this year are available 
&lt;a href=&#34;https://github.com/rstudio-conf-2020&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;online&lt;/a&gt; with 
&lt;a href=&#34;#licensing&#34;&gt;CC BY-SA 4.0 licenses&lt;/a&gt;. Even though the materials alone cannot replace the actual workshop experience, we hope that you’ll find them useful. Instructors will be blogging individually about their workshops as well, so 
&lt;a href=&#34;https://education.rstudio.com/tags/conf2020&#34;&gt;watch this space&lt;/a&gt; for some repo roadmaps to help you navigate their workshop materials. RStudio also regularly hosts workshops throughout the year so please subscribe to 
&lt;a href=&#34;https://www.rstudio.com/about/subscription-management/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;training updates&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to all our instructors, teaching assistants, and workshop attendees this year—we hope to teach and learn together again in 2021 in 
&lt;a href=&#34;https://rstd.io/conf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Orlando&lt;/a&gt;!&lt;/p&gt;




&lt;h2 id=&#34;links&#34;&gt;Links
  &lt;a href=&#34;#links&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;!--html_preserve--&gt;&lt;style&gt;html {
&lt;p&gt;font-family: -apple-system, BlinkMacSystemFont, &amp;lsquo;Segoe UI&amp;rsquo;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;lsquo;Helvetica Neue&amp;rsquo;, &amp;lsquo;Fira Sans&amp;rsquo;, &amp;lsquo;Droid Sans&amp;rsquo;, Arial, sans-serif;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_table {
display: table;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
color: #333333;
font-size: 16px;
background-color: #FFFFFF;
width: auto;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #A8A8A8;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #A8A8A8;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_heading {
background-color: #FFFFFF;
text-align: center;
border-bottom-color: #FFFFFF;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_title {
color: #333333;
font-size: 125%;
font-weight: initial;
padding-top: 4px;
padding-bottom: 4px;
border-bottom-color: #FFFFFF;
border-bottom-width: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_subtitle {
color: #333333;
font-size: 85%;
font-weight: initial;
padding-top: 0;
padding-bottom: 4px;
border-top-color: #FFFFFF;
border-top-width: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_bottom_border {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_col_headings {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_col_heading {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 6px;
padding-left: 5px;
padding-right: 5px;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_column_spanner_outer {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
padding-top: 0;
padding-bottom: 0;
padding-left: 4px;
padding-right: 4px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_column_spanner_outer:first-child {
padding-left: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_column_spanner_outer:last-child {
padding-right: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_column_spanner {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 6px;
overflow-x: hidden;
display: inline-block;
width: 100%;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_group_heading {
padding: 8px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_empty_group_heading {
padding: 0.5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_striped {
background-color: rgba(128, 128, 128, 0.05);
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_from_md &amp;gt; :first-child {
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_from_md &amp;gt; :last-child {
margin-bottom: 0;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
margin: 10px;
border-top-style: solid;
border-top-width: 1px;
border-top-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_stub {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 12px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_first_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_grand_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_first_grand_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: double;
border-top-width: 6px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_table_body {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_footnotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_footnote {
margin: 0px;
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_sourcenotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_sourcenote {
font-size: 90%;
padding: 4px;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_left {
text-align: left;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_center {
text-align: center;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_right {
text-align: right;
font-variant-numeric: tabular-nums;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_font_normal {
font-weight: normal;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_font_bold {
font-weight: bold;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_font_italic {
font-style: italic;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_super {
font-size: 65%;
}&lt;/p&gt;
&lt;p&gt;#tbegbeviig .gt_footnote_marks {
font-style: italic;
font-size: 65%;
}
&lt;/style&gt;&lt;/p&gt;
&lt;div id=&#34;tbegbeviig&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;workshop&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;blog post&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_left&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;instructors&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-dataviz&#39;&gt;A Practical Introduction to Data Visualization with ggplot2 Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-dataviz/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Kieran Healy&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-applied-ml&#39;&gt;Applied Machine Learning Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Max Kuhn&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-big-data&#39;&gt;Big Data with R Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Edgar Ruiz, James Blair&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-tidy-tools&#39;&gt;Building Tidy Tools Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-tidy-tools/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Charlotte Wickham, Hadley Wickham&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-dl&#39;&gt;Deep Learning with Keras and TensorFlow in R Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/05/conf20-dl/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Bradley Boehmke&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-design-ds-class&#39;&gt;Designing the Data Science Classroom Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Mine Cetinkaya-Rundel&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-ds-tidy&#39;&gt;Introduction to Data Science in the Tidyverse Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Amelia McNamara, Hadley Wickham&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-intro-ml&#39;&gt;Introduction to Machine Learning with the Tidyverse Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-intro-ml/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Alison Hill, Garrett Grolemund&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-js4shiny&#39;&gt;JavaScript for Shiny Users Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Garrick Aden-Buie&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-geospatial&#39;&gt;Modern Geospatial Data Analysis with R Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Zev Ross&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-org-pkg&#39;&gt;My Organization&#39;s First R Package Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/06/conf20-org-first-pkg/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Rich Iannone, Malcolm Barrett&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-r-excel&#39;&gt;R for Excel Users Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-r-excel/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Julia Lowndes, Allison Horst&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-rmd-dash&#39;&gt;R Markdown and Interactive Dashboards Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Carl Howe, Yihui Xie&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-instructor&#39;&gt;RStudio Instructor Training Workshop (1-day)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Greg Wilson&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-pro&#39;&gt;RStudio Professional Products Administration Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Andrie de Vries&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-intro-shiny&#39;&gt;Shiny From Start To Finish Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Danny Kaplan&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-tidytext&#39;&gt;Text Mining with Tidy Data Principles Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-tidytext/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Julia Silge&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-ts&#39;&gt;Tidy Time Series and Forecasting in R Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-ts/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Rob Hyndman&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://rstd.io/conf20-wtf&#39;&gt;What They Forgot to Teach You about R Workshop&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_center&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;&lt;a href=&#39;https://education.rstudio.com/blog/2020/02/conf20-wtf/&#39;&gt;&lt;!--html_preserve--&gt;&lt;i class=&#34;fas  fa-paperclip &#34;&gt;&lt;/i&gt;&lt;!--/html_preserve--&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
      &lt;td class=&#34;gt_row gt_left&#34;&gt;&lt;div class=&#39;gt_from_md&#39;&gt;&lt;p&gt;Kara Woo, Jenny Bryan, Jim Hester&lt;/p&gt;
&lt;/div&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;!--/html_preserve--&gt;




&lt;h2 id=&#34;licensing&#34;&gt;Licensing
  &lt;a href=&#34;#licensing&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;All workshop materials are
licensed under a 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/p&gt;
&lt;center&gt;
&lt;i class=&#34;fab fa-creative-commons fa-2x&#34;&gt;&lt;/i&gt;&lt;i class=&#34;fab fa-creative-commons-by fa-2x&#34;&gt;&lt;/i&gt;&lt;i class=&#34;fab fa-creative-commons-sa fa-2x&#34;&gt;&lt;/i&gt;
&lt;/center&gt;
&lt;p&gt;&lt;em&gt;This is a human-readable summary of (and not a substitute for) the license.
Please see &lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/legalcode&#34;&gt;https://creativecommons.org/licenses/by-sa/4.0/legalcode&lt;/a&gt; for the full legal text.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You are free to:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Share&lt;/strong&gt;&amp;mdash;copy and redistribute the material in any medium or
format&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adapt&lt;/strong&gt;&amp;mdash;remix, transform, and build upon the material
for any purpose, even commercially.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The licensor cannot revoke these freedoms as long as you follow the
license terms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Under the following terms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Attribution&lt;/strong&gt;&amp;mdash;You must give appropriate credit, provide a link
to the license, and indicate if changes were made. You may do so in
any reasonable manner, but not in any way that suggests the licensor
endorses you or your use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ShareAlike&lt;/strong&gt;&amp;mdash;If you remix, transform, or build upon the material,
you must distribute your contributions under the

&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;same license&lt;/a&gt; as
the original.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No additional restrictions — You may not apply legal terms or technological
measures that legally restrict others from doing anything the license permits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notices:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You do not have to comply with the license for elements of the
material in the public domain or where your use is permitted by an
applicable exception or limitation.&lt;/p&gt;
&lt;p&gt;No warranties are given. The license may not give you all of the
permissions necessary for your intended use. For example, other rights
such as publicity, privacy, or moral rights may limit how you use the
material.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2020-02-instructor-training-emea/</link>
      <pubDate>Tue, 11 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-02-instructor-training-emea/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Instructor Certification Exams</title>
      <link>https://education.rstudio.com/blog/2020/02/instructor-certification-exams/</link>
      <pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/instructor-certification-exams/</guid>
      <description>&lt;p&gt;Since RStudio&amp;rsquo;s 
&lt;a href=&#34;https://education.rstudio.com/trainers/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instructor training program&lt;/a&gt; launched last year, more than 65 people have completed the exams needed to become certified. We hope these sample exams will give prospective trainers an idea of what we&amp;rsquo;re looking for; as always, we would be grateful for feedback from the community.&lt;/p&gt;




&lt;h2 id=&#34;teaching-exam&#34;&gt;Teaching Exam
  &lt;a href=&#34;#teaching-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;The exam covers material from the 
&lt;a href=&#34;https://drive.google.com/drive/folders/13ohFt3D0EJ5PDbMaWTxnHH-hwA7G0IvY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;one-day instructor training course&lt;/a&gt;, and we&amp;rsquo;re happy to answer questions about scope.&lt;/li&gt;
&lt;li&gt;You must complete within 90 minutes.&lt;/li&gt;
&lt;li&gt;You may use any books or online resources you want during this examination, but may not communicate with any person other than your examiner, and may not share information with other people about the content of this examination.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;instructions-for-sample-lesson&#34;&gt;Instructions for Sample Lesson
  &lt;a href=&#34;#instructions-for-sample-lesson&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Prepare a 15-minute lesson on a topic related to R, RStudio products, or data science and submit it to the examiner at least two days before your scheduled examination. Your submission should include (but is not restricted to):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A learner persona characterizing the audience for the lesson.&lt;/li&gt;
&lt;li&gt;A concept map showing the mental model you intend to convey.&lt;/li&gt;
&lt;li&gt;Two formative assessments (such as multiple choice questions or Parsons Problems).&lt;/li&gt;
&lt;li&gt;Any notebooks or slides you would use to support delivery of the lesson.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You will have 15 minutes during the examination to deliver the lesson and its formative assessments.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Live coding is strongly encouraged; if you make any mistakes (deliberate or otherwise), try to incorporate them into your teaching as you would in front of a class.&lt;/li&gt;
&lt;li&gt;Your examiner will (try to) work through one of your formative assessments during the lesson. Please allow 3–5 minutes for this in your planning.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3 id=&#34;question-1&#34;&gt;Question 1
  &lt;a href=&#34;#question-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Present the demonstration lesson you have developed for this examination.&lt;/p&gt;




&lt;h3 id=&#34;question-2&#34;&gt;Question 2
  &lt;a href=&#34;#question-2&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Elements of data structures in R can be indexed using single square brackets &lt;code&gt;thing[index]&lt;/code&gt;, double square brackets &lt;code&gt;thing[[index]]&lt;/code&gt;, or dollar signs &lt;code&gt;thing$index&lt;/code&gt;. You are teaching an introductory workshop on R, and have just given examples of all three kinds of indexing.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a multiple choice question to test their understanding. Include one right answer and at least two wrong answers, and explain clearly what misconceptions the wrong answers are intended to diagnose.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a short fill-in-the-blanks coding exercise to test their ability to use all three kinds of indexing correctly. Provide the explanatory text you would give the learners and the template code they would fill in, and explain what answers you expect and what errors you expect learners to make.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;question-3&#34;&gt;Question 3
  &lt;a href=&#34;#question-3&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;To support a just-in-time online training course (i.e., a MOOC) for people who are already competent programmers and are learning their way around the tidyverse, your colleague has created a set of programming challenges and written a dozen unit tests to go with each one. When the learner submits a solution, the system runs all of the unit tests and tells the learner how many passed and failed. The learner does not get to see the tests themselves: all they get back each time they submit is a score like &amp;ldquo;6/12&amp;rdquo;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What are two strengths of this approach from a learner&amp;rsquo;s point of view?&lt;/li&gt;
&lt;li&gt;What are two weaknesses from a learner&amp;rsquo;s point of view?&lt;/li&gt;
&lt;li&gt;What are two strengths from a teacher&amp;rsquo;s point of view?&lt;/li&gt;
&lt;li&gt;What are two weaknesses from a teacher&amp;rsquo;s point of view?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When answering, please connect your points to specific aspects of educational or pedagogical theory where you can.&lt;/p&gt;




&lt;h3 id=&#34;question-4&#34;&gt;Question 4
  &lt;a href=&#34;#question-4&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;R has several structured data types, including vectors, lists, matrices, and data frames.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What labels would you add to the concept map below to explain their relationship?&lt;/li&gt;
&lt;li&gt;What are two other concepts you would add to this concept map, and how would they relate to each other and to the existing concepts?&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&#34;center&#34;&gt;
&lt;img src=&#34;./concept-map.png&#34; alt=&#34;Concept Map&#34; /&gt;
&lt;/div&gt;




&lt;h3 id=&#34;question-5&#34;&gt;Question 5
  &lt;a href=&#34;#question-5&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;A senior professor in your department wants to give this question to an undergraduate statistics class to prompt discussion of bias:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;People of East Asian or South Asian ancestry make up 8% of the Canadian population, but 60–75% of undergraduates in Computer Science at major Canadian universities.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write two one-page papers to argue pro and con that this proves people of European descent are intrinsically less capable of abstract reasoning than their Asian counterparts.&lt;/li&gt;
&lt;li&gt;Compare and contrast your arguments with those made about the underrepresentation of women in computing and data science being due to aptitude and/or interest.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;In one or two sentences each, explain two pros and two cons of using this exercise with this audience as if you were giving your colleague feedback. (Note: you are not expected to answer the question above, but rather to give your senior colleague feedback on it.)&lt;/p&gt;




&lt;h3 id=&#34;question-6&#34;&gt;Question 6
  &lt;a href=&#34;#question-6&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Watch the video embedded below and list feedback you would give the presenter about what they&amp;rsquo;re doing well and what they could improve.&lt;/p&gt;
&lt;p&gt;[link varies from exam to exam]&lt;/p&gt;
&lt;table border=&#34;1&#34;&gt;
  &lt;tr&gt;&lt;th&gt;Content&lt;/th&gt;&lt;th&gt;Presentation&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/td&gt;&lt;th&gt;Positive&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/td&gt;&lt;th&gt;Negative&lt;/th&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;h2 id=&#34;tidyverse-certification-exam&#34;&gt;Tidyverse Certification Exam
  &lt;a href=&#34;#tidyverse-certification-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;This exam covers material from &lt;em&gt;R for Data Science&lt;/em&gt; (&lt;a href=&#34;https://r4ds.had.co.nz/)&#34;&gt;https://r4ds.had.co.nz/)&lt;/a&gt;. If you have any questions about scope, please get in touch - we&amp;rsquo;d be happy to clarify.&lt;/li&gt;
&lt;li&gt;You may use any books or online resources you want during this examination, but you may not communicate with any person other than your examiner.&lt;/li&gt;
&lt;li&gt;You are required to use the RStudio IDE for this exam. You may use either the desktop edition or rstudio.cloud as you prefer.&lt;/li&gt;
&lt;li&gt;You may do your work in an R script or an R Markdown file, and may use one for the whole exam or one for each question as your prefer. Whichever you choose, you must send your final work to the examiner by email upon completion of the examination.&lt;/li&gt;
&lt;li&gt;Please let the examiner know when you finish each part of each question so that they can check your work.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;August 2020: 
&lt;a href=&#34;http://www.marlygotti.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Marly Gotti&lt;/a&gt; has created 
&lt;a href=&#34;https://github.com/marlycormar/tidyverse_sample_exam&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a solution guide&lt;/a&gt; for this exam.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3 id=&#34;question-1-1&#34;&gt;Question 1
  &lt;a href=&#34;#question-1-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The file 
&lt;a href=&#34;./at_health_facilities.csv&#34;&gt;&lt;code&gt;at_health_facilities.csv&lt;/code&gt;&lt;/a&gt; contains a tidy dataset with four columns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ISO3 code of the country that reported data.&lt;/li&gt;
&lt;li&gt;The year for which data was reported.&lt;/li&gt;
&lt;li&gt;The percentage of HIV-positive children born to HIV-positive mothers age 15–17.&lt;/li&gt;
&lt;li&gt;The percentage of HIV-positive children born to HIV-positive mothers age 20–34.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please answer the following questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How many countries reported data?&lt;/li&gt;
&lt;li&gt;What is the difference between the minimum and maximum year with valid data for each country?&lt;/li&gt;
&lt;li&gt;How many countries reported data in 3 or more years?&lt;/li&gt;
&lt;li&gt;Which countries reported 100% incidence for at least one year in either age group?&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;question-2-1&#34;&gt;Question 2
  &lt;a href=&#34;#question-2-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;A student has sent you the file 
&lt;a href=&#34;https://education.rstudio.com/blog/2020-01-20-instructor-certification-exams/rmd-country-profile.Rmd&#34;&gt;&lt;code&gt;rmd-country-profile.Rmd&lt;/code&gt;&lt;/a&gt;, which is an R Markdown document analyzing the data in 
&lt;a href=&#34;./at_health_facilities.csv&#34;&gt;&lt;code&gt;at_health_facilities.csv&lt;/code&gt;&lt;/a&gt; for Bangladesh. They could not knit the file, and are providing you with the raw &lt;code&gt;.Rmd&lt;/code&gt; file instead of a rendered file.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go through the file, fixing things that are preventing it from knitting cleanly.&lt;/li&gt;
&lt;li&gt;Change the two lines of bold text to H2-level headers to organize the document, and add a table of contents.&lt;/li&gt;
&lt;li&gt;Convert this R Markdown report for Bangladesh into a parameterized report with the country&amp;rsquo;s iso3 code as its parameter. Knit a new country profile for Egypt (ISO3 code &amp;ldquo;EGY&amp;rdquo;).&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;question-3-1&#34;&gt;Question 3
  &lt;a href=&#34;#question-3-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;You have been given a CSV file 
&lt;a href=&#34;./infant_hiv.csv&#34;&gt;&lt;code&gt;infant_hiv.csv&lt;/code&gt;&lt;/a&gt;  that is formatted as follows:&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;ISO3&lt;/th&gt;&lt;th&gt;2009 est&lt;/th&gt;&lt;th&gt;2009 hi&lt;/th&gt;&lt;th&gt;2009 lo&lt;/th&gt;&lt;th&gt;2010 est&lt;/th&gt;&lt;th&gt;2010 hi&lt;/th&gt;&lt;th&gt;2010 lo&lt;/th&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ALB&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BLR&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;td&gt;&amp;gt;95%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BLZ&lt;/td&gt;&lt;td&gt;77%&lt;/td&gt;&lt;td&gt;89%&lt;/td&gt;&lt;td&gt;3%&lt;/td&gt;&lt;td&gt;75%&lt;/td&gt;&lt;td&gt;88%&lt;/td&gt;&lt;td&gt;3%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BRA&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;td&gt;35%&lt;/td&gt;&lt;td&gt;19%&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;td&gt;35%&lt;/td&gt;&lt;td&gt;19%&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;The first column is ISO3 country codes.&lt;/li&gt;
&lt;li&gt;There are three columns for each year from 2009 to 2017. Each set has estimated, low, and high values for the year (in that order).&lt;/li&gt;
&lt;li&gt;A dash &lt;code&gt;-&lt;/code&gt; indicates that no data is available.&lt;/li&gt;
&lt;li&gt;Our analyst tells us that &lt;code&gt;&amp;gt;95%&lt;/code&gt; means &amp;ldquo;the data is unreliable&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your task is to turn this into a tidy data table for further analysis:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describe what columns a tidy layout for this data would have and why.&lt;/li&gt;
&lt;li&gt;Write a function that takes the name of a file containing this table as input and returns a tidy version of the table.
&lt;ul&gt;
&lt;li&gt;The function should replace all &lt;code&gt;-&lt;/code&gt; and &lt;code&gt;&amp;gt;95%&lt;/code&gt; values with NA.&lt;/li&gt;
&lt;li&gt;The body of the function may contain one or more pipelines and may create temporary or intermediate variables, but may not contain any loops.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3 id=&#34;question-4-1&#34;&gt;Question 4
  &lt;a href=&#34;#question-4-1&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The file 
&lt;a href=&#34;./ranking.csv&#34;&gt;&lt;code&gt;ranking.csv&lt;/code&gt;&lt;/a&gt; contains two columns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ID of an item being rated.&lt;/li&gt;
&lt;li&gt;A rating, which is one of &amp;ldquo;negative&amp;rdquo;, &amp;ldquo;positive&amp;rdquo;, &amp;ldquo;indifferent&amp;rdquo;, or &amp;ldquo;wtf&amp;rdquo; (meaning the respondent didn&amp;rsquo;t understand the question).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are multiple ratings for each item.&lt;/p&gt;
&lt;p&gt;The plot below shows this data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each dot represents one item &lt;em&gt;i&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;The size of the circles shows the total number of ratings for item &lt;em&gt;i&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;The X coordinate for item &lt;em&gt;i&lt;/em&gt; is the percentage of ratings for that item that are &amp;ldquo;negative&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;The Y coordinate for item &lt;em&gt;i&lt;/em&gt; is the percentage of ratings for that item that are &amp;ldquo;positive&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;The regression line is created using the &amp;lsquo;lm&amp;rsquo; method.&lt;/li&gt;
&lt;/ul&gt;
&lt;!--
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;./plot.png&#34; alt=&#34;Survey Plot&#34; /&gt;
&lt;/div&gt;
--&gt;
&lt;p&gt;&lt;img src=&#34;figs/ranking-scatterplot-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Re-create this plot using the tidyverse and ggplot2, fixing any mistakes you notice along the way.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Gestalt Internship</title>
      <link>https://education.rstudio.com/blog/2020/02/gestalt-internship/</link>
      <pubDate>Tue, 04 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2020/02/gestalt-internship/</guid>
      <description>&lt;p&gt;Of all the

&lt;a href=&#34;https://blog.rstudio.com/2019/01/18/summer-internships-2019/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;projects&lt;/a&gt;
listed for the 2019 internships,
the one that stood out to me the most was the &lt;strong&gt;Grader Enhancements&lt;/strong&gt;.
Mainly because I knew how deceptively &lt;strong&gt;difficult&lt;/strong&gt; the problem is.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s now named

&lt;a href=&#34;https://github.com/rstudio-education/gradethis&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;gradethis&lt;/code&gt;&lt;/a&gt;
because &lt;code&gt;grader&lt;/code&gt; made it to CRAN on my first week of the internship.
The package tries to grade code in a

&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;learnr&lt;/code&gt;&lt;/a&gt;
document,
but the real magic of the package isn’t just reporting a correct or incorrect answer,
it’s the ability to provide meaningful feedback to the learner.
For example,
if the solution to a question was
&lt;code&gt;sqrt(log(1))&lt;/code&gt;
and the student provided
&lt;code&gt;sqrt(log(2))&lt;/code&gt;,
it would report the answer as “incorrect” but also return
&amp;ldquo;I expected 1 where you wrote 2. Try it again; next time’s the charm!”.&lt;/p&gt;
&lt;p&gt;If it wasn&amp;rsquo;t for

&lt;a href=&#34;https://www.youtube.com/watch?v=g1h-YDWVRLc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hadley&amp;rsquo;s &lt;code&gt;lobstr&lt;/code&gt; talk a year earlier&lt;/a&gt;,
I wouldn&amp;rsquo;t have even known about ASTs
(
&lt;a href=&#34;https://adv-r.hadley.nz/expressions.html#ast-funs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;abstract syntax trees&lt;/a&gt;)
to approach the problem.
I probably thought it would&amp;rsquo;ve involved writing the gnarliest regular expression pattern ever (I clearly don&amp;rsquo;t come from a computer science background).&lt;/p&gt;
&lt;p&gt;Ever since I&amp;rsquo;ve been involved with the R (and python) community,
I&amp;rsquo;ve always been surprised how much (free) material is out there for you to learn.
Everyone in the community just fosters a welcoming learning environment,
and the internship was yet another way to level-up my R skills.
From a technical perspective,
the most jarring part of the internship was transitioning from
&amp;ldquo;a user of the R language&amp;rdquo; to a &amp;ldquo;developer&amp;rdquo;.
I&amp;rsquo;ve taught workshops and written R packages,
but nothing came close to the type of code I had to write for my internship.&lt;/p&gt;
&lt;p&gt;Some of the major topics were:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Using &lt;code&gt;vapply&lt;/code&gt; instead of &lt;code&gt;sapply&lt;/code&gt;&lt;/strong&gt;:
You might be okay in an analysis &lt;em&gt;script&lt;/em&gt; with using &lt;code&gt;sapply&lt;/code&gt;, but &lt;code&gt;vapply&lt;/code&gt; &lt;strong&gt;guarantees&lt;/strong&gt; the type of vector that is returned.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing&lt;/strong&gt;: This goes for package unit tests but also writing internal testing code to make sure the object you are working with is actually what you think it is.
This was done with the

&lt;a href=&#34;https://testthat.r-lib.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;testthat&lt;/code&gt;&lt;/a&gt;
package for running unit test suites,
and the

&lt;a href=&#34;https://github.com/mllg/checkmate&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;checkmate&lt;/code&gt; package&lt;/a&gt;
to write powerful assert statements to check objects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-standard evaluation&lt;/strong&gt;: A good part of the internship was just reading
and writing toy example code to get a sense of what NSE is in R.
There&amp;rsquo;s a reading list of links on one of my

&lt;a href=&#34;https://daniel.rbind.io/2019/06/18/rstudio-internship-week-2/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;earlier posts&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To give a sense of how deep of a hole I needed to get myself out of
just to understand what was going on,
it took me about a month to

&lt;a href=&#34;https://github.com/rstudio-education/gradethis/pull/10&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fix&lt;/a&gt;
the package and

&lt;a href=&#34;https://github.com/rstudio-education/gradethis/pull/21&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;implement&lt;/a&gt;
the first

&lt;a href=&#34;https://github.com/rstudio-education/gradethis/issues/11&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gradethis&lt;/code&gt; was refactored out of &lt;code&gt;learnr&lt;/code&gt;,
so the entry-point into the grading functions were
highly coupled to what &lt;code&gt;learnr&lt;/code&gt; passed into the grading function.
If it weren&amp;rsquo;t for all the unit tests that were already there,
refactoring the package and changing the API would&amp;rsquo;ve been impossible.
What made unit tests essential to the work was that &lt;code&gt;print&lt;/code&gt; statements and &lt;code&gt;browser&lt;/code&gt;
calls wouldn&amp;rsquo;t work as expected (if at all) because &lt;code&gt;learnr&lt;/code&gt; is a very complex
piece of software that needs knowledge of how &lt;code&gt;knitr&lt;/code&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;code&gt;shiny&lt;/code&gt; works.
If I needed &lt;code&gt;browser&lt;/code&gt; statements,
I&amp;rsquo;d actually have replicate the error in a unit test and put a &lt;code&gt;browser&lt;/code&gt; statement into the actual test call.
This wasn&amp;rsquo;t something that

&lt;a href=&#34;https://speakerdeck.com/jennybc/object-of-type-closure-is-not-subsettable&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Jenny Bryan&lt;/a&gt;
talks about.&lt;/p&gt;
&lt;p&gt;I eventually got a hang of things,
and give a small internal lightning talk of it working.
Along the way I

&lt;a href=&#34;https://rstudio-education.github.io/gradethis/reference/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;polished up the API&lt;/a&gt;,
and even

&lt;a href=&#34;https://daniel.rbind.io/2019/08/06/inconsistencies-with-in-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;found a bug in the &lt;code&gt;==&lt;/code&gt; operator&lt;/a&gt;,
which I

&lt;a href=&#34;https://r.789695.n4.nabble.com/Unexpected-behaviour-when-comparing-long-quoted-expressions-td4758181.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;reported to r-devel&lt;/a&gt;.
You can also use the package as a standalone grader!
One of my proudest accomplishments was

&lt;a href=&#34;https://github.com/r-lib/rlang/issues/875&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;putting together a function&lt;/a&gt; that
standardizes function calls with all the default arguments.
This way something like
&lt;code&gt;vapply(X = LETTERS[1:3], FUN = stringr::str_to_upper, character(1), USE.NAMES = TRUE)&lt;/code&gt;
and &lt;code&gt;vapply(X = LETTERS[1:3], FUN = stringr::str_to_upper, character(1))&lt;/code&gt;
are marked as &amp;ldquo;correct&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;What made the internship such a

&lt;a href=&#34;https://daniel.rbind.io/2020/01/29/my-time-as-an-rstudio-intern/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;wonderful experience&lt;/a&gt;
was how many people
I saw and spoke with, even though everyone is remote.
The interns rotated every week to host a virtual coffee hour,
so we would meet one another.
The common theme of our discussions were usually along the lines of
&amp;ldquo;I have no idea how I got here&amp;rdquo;,
&amp;ldquo;everyone is amazing&amp;rdquo;,
&amp;ldquo;we don&amp;rsquo;t want to go&amp;rdquo;.
Needless to say, we all loved working there.&lt;/p&gt;
&lt;p&gt;I had the chance to meet a 
&lt;a href=&#34;https://daniel.rbind.io/2020/01/29/my-time-as-an-rstudio-intern/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;few interns&lt;/a&gt;
in person while at conferences over the summer,
but it was great meet the rest of the interns and RStudio employees
at rstudio::conf:&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;The &lt;a href=&#34;https://twitter.com/rstudio?ref_src=twsrc%5Etfw&#34;&gt;@rstudio&lt;/a&gt; interns gather for a picture at &lt;a href=&#34;https://twitter.com/hashtag/rstudioconf?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#rstudioconf&lt;/a&gt; &lt;a href=&#34;https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#rstats&lt;/a&gt;.&lt;br&gt;&lt;br&gt;AKA this is why parallel programming is hard. &lt;a href=&#34;https://t.co/QslxOjAPTV&#34;&gt;pic.twitter.com/QslxOjAPTV&lt;/a&gt;&lt;/p&gt;&amp;mdash; Dⓐniel Chen @ rstudio::conf 🐍🏴
☠️ (@chendaniely) &lt;a href=&#34;https://twitter.com/chendaniely/status/1223034528479895552?ref_src=twsrc%5Etfw&#34;&gt;January 31, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt; 
&lt;p&gt;But why &amp;ldquo;Gestalt Internship&amp;rdquo;?
It wasn&amp;rsquo;t &lt;strong&gt;just&lt;/strong&gt; an internship where I got to work on an R packages.
I had an entire R and

&lt;a href=&#34;https://carpentries.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Carpentries&lt;/a&gt;
community behind me to get me there.
I didn&amp;rsquo;t just learn how to be a better R programmer,
I worked on an education tool that would benefit future learners in R.
I&amp;rsquo;ve left the internship with a better understanding of topics that I can
pay forward to the rest of the community.
After being on the Education team,
I&amp;rsquo;ve found my way around my own dissertation topic and studying data science education in medicine, now.
It&amp;rsquo;s more than just the &amp;ldquo;street cred&amp;rdquo; of being an intern at RStudio,
I feel even more responsibility to take all that I&amp;rsquo;ve learned to help the community grow.&lt;/p&gt;
&lt;p&gt;So if you ask, &amp;ldquo;what was it like interning at RStudio?&amp;quot;,
it&amp;rsquo;s anything and everything you could possibly hope for.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>rstudio::conf 2020</title>
      <link>https://education.rstudio.com/events/2020-rstudio-conf/</link>
      <pubDate>Mon, 27 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2020-rstudio-conf/</guid>
      <description>&lt;p&gt;rstudio::conf 2020 covers all things RStudio, including workshops to teach you the tidyverse, and talks to show you the latest and greatest features.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Learning R for Software Engineers</title>
      <link>https://education.rstudio.com/blog/2019/12/r-for-software-engineers/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/12/r-for-software-engineers/</guid>
      <description>&lt;p&gt;A couple of weeks ago, one of the Software Engineers at RStudio asked what I&amp;rsquo;d recommend for learning R, and the education team thought it might be useful to share more widely on this blog. This is my advice for quickly picking up R if you&amp;rsquo;re already familiar with another programming language.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Work through the first few chapters of 
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;R for Data Science (R4DS)&lt;/em&gt;&lt;/a&gt; to get a sense of what R
and data analysis feels like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://r4ds.had.co.nz/data-visualisation.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data visualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://r4ds.had.co.nz/transform.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data transformation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://r4ds.had.co.nz/exploratory-data-analysis.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Exploratory data analysis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Attempt to ignore any feelings about how weird the language is and
focus on getting a sense of the exploratory process of &amp;ldquo;playing&amp;rdquo; with
data, rapidly asking, and then attempting to answer questions that you
might have. To make sure you&amp;rsquo;re prepared to work with your own data,
skim the 
&lt;a href=&#34;https://vroom.r-lib.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;vroom docs&lt;/a&gt;, and learn about 
&lt;a href=&#34;https://r4ds.had.co.nz/tidy-data.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidy
data&lt;/a&gt; so you have a sense for
how to organise your data most effectively (although you may want to
use the new &lt;code&gt;pivot_()&lt;/code&gt; function instead of &lt;code&gt;spread()&lt;/code&gt; and &lt;code&gt;gather()&lt;/code&gt;:
&lt;a href=&#34;https://tidyr.tidyverse.org/articles/pivot.html&#34;&gt;https://tidyr.tidyverse.org/articles/pivot.html&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;By this point, your curiosity about R as a programming language has
probably grown to an almost unmanageable level, so I&amp;rsquo;d recommend
reading about 
&lt;a href=&#34;https://adv-r.hadley.nz/names-values.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;copy-on-modify&lt;/a&gt;
and the 
&lt;a href=&#34;https://adv-r.hadley.nz/functions.html#lazy-evaluation&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;lazy evaluation&lt;/a&gt;
of function arguments. It&amp;rsquo;s
probably also worth familiarising yourself with the 
&lt;a href=&#34;https://adv-r.hadley.nz/vectors-chap.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;basic data
structures&lt;/a&gt; and the basics
of 
&lt;a href=&#34;https://adv-r.hadley.nz/subsetting.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;subsetting&lt;/a&gt;, which are
particularly important in R.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d then pivot back to 
&lt;a href=&#34;https://r4ds.had.co.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;R4DS&lt;/em&gt;&lt;/a&gt;, and tactically read the chapters about
the data types (
&lt;a href=&#34;https://r4ds.had.co.nz/strings.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;strings&lt;/a&gt;, 
&lt;a href=&#34;https://r4ds.had.co.nz/factors.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;factors&lt;/a&gt;, 
&lt;a href=&#34;https://r4ds.had.co.nz/dates-and-times.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;date-times&lt;/a&gt;, etc.) that you&amp;rsquo;re working
with.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve mostly worked in object-oriented programming languages, I&amp;rsquo;d
recommend reading the chapter on 
&lt;a href=&#34;https://adv-r.hadley.nz/functionals.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;functionals&lt;/a&gt; in 
&lt;a href=&#34;https://adv-r.hadley.nz/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Advanced R&lt;/em&gt;&lt;/a&gt;; if you&amp;rsquo;re
already familiar with functional programming, just skim the 
&lt;a href=&#34;http://purrr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;purrr docs&lt;/a&gt;. R uses a style of OOP that&amp;rsquo;s different to most other programming languages, so also read the 
&lt;a href=&#34;https://adv-r.hadley.nz/oo.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;intro chaapter&lt;/a&gt; to get some sense of the differences.&lt;/p&gt;
&lt;p&gt;Hopefully, this now gives you a sense for how people use R and some of the things that make it different as a programming language.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Introduction to Machine Learning with the Tidyverse</title>
      <link>https://education.rstudio.com/events/2019-12-intro-tidy-ml/</link>
      <pubDate>Thu, 12 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2019-12-intro-tidy-ml/</guid>
      <description>&lt;p&gt;This is a test run for a workshop in the final stages of development. The workshop provides a gentle introduction to machine learning and to the tidyverse packages that do machine learning. You&amp;rsquo;ll learn how to train and assess predictive models with several common machine learning algorithms, as well as how to do feature engineering to improve the predictive accuracy of your models. We will focus on learning the basic theory and best practices that support machine learning, and we will do it with a modern suite of R packages known as tidymodels. Tidymodels packages, like parsnip, recipes, and rsample provide a grammar for modeling and work seamlessly with R&amp;rsquo;s tidyverse packages.&lt;/p&gt;
&lt;p&gt;Students should feel comfortable plotting with ggplot2 and using the dplyr and purrr packages. You can brush up on these topics by working through the online tutorials at &lt;a href=&#34;https://rstudio.cloud/learn/primers/2&#34;&gt;https://rstudio.cloud/learn/primers/2&lt;/a&gt; and &lt;a href=&#34;https://rstudio.cloud/learn/primers/5&#34;&gt;https://rstudio.cloud/learn/primers/5&lt;/a&gt;. This will be a hands-on workshop—so be sure to bring a laptop and power cord!&lt;/p&gt;
&lt;p&gt;The workshop will be led by RStudio instructors Alison Hill and Garrett Grolemund.&lt;/p&gt;
&lt;p&gt;Since this is a test run, the workshop is limited to a small number of seats. The low price reflects the experimental nature of the material. Students will be asked to provide constructive feedback in a course survey.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Instructor Training</title>
      <link>https://education.rstudio.com/events/2019-12-instructor-training/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2019-12-instructor-training/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Ten Quick Tips for Making Your Stuff Findable</title>
      <link>https://education.rstudio.com/blog/2019/12/making-your-stuff-findable/</link>
      <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/12/making-your-stuff-findable/</guid>
      <description>&lt;p&gt;As RStudio’s resident Information Architect &amp;amp; Digital Librarian, I get asked a lot how to organize stuff with the goal of making content more findable.  Here are 10 suggestions to make your own work product (whatever it is) findable by yourself &amp;amp; others!&lt;/p&gt;




&lt;h1 id=&#34;1-isolate-the-findability-problem&#34;&gt;1. Isolate the Findability Problem
  &lt;a href=&#34;#1-isolate-the-findability-problem&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;When we talk about findability, it is important to clarify that there are actually three different levels we’re concerned with.  There’s finding your work on the web, finding a specific item within a website, and finding a piece of information within a specific item.  Depending on what content you’ve created, you may have all three areas to think about!  While there are fine-tuning techniques appropriate for each, I do believe that the remaining nine suggestions will improve access to the information your end-user seeks across the board.  What is important in this first tip is to make sure that when you say “I can’t find it” you recognize that the problem(s) could be at any one level, or more!&lt;/p&gt;




&lt;h1 id=&#34;2-know-your-users&#34;&gt;2. Know Your Users
  &lt;a href=&#34;#2-know-your-users&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Before making any changes to your item(s), site or underlaying software, take time to determine who your users are.  Depending on your content,  you might have only a small, expert audience.  If your work is publicly available, though, you want to be sure to accept the idea that complete novices will find your work.  They should be able to understand and navigate your content as well as a subject expert—or at the very least, you don’t want to make it excruciatingly difficult for them!&lt;/p&gt;




&lt;h1 id=&#34;3-mimic-real-world-directions&#34;&gt;3. Mimic Real World Directions
  &lt;a href=&#34;#3-mimic-real-world-directions&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;It’s really common for content designers to think that since their audience is highly educated, that they’ll have either an innate understanding of the way you’ve structured your content, or unlimited patience to persist until they get what they need.  As I learned through over a decade spent with lawyers, internet users are all the same!  They scan, don’t read, click on the first close thing they see and give up really, really soon.  Lots of the time they’re on their phones or are task-switching—you do not have their full attention and they’re unlikely to really read while they are in ‘search mode.’  That said, it’s your job to make it easier for them by ensuring you have put up as many virtual signs as possible.  Things like breadcrumb trails and menus on websites,  and headings, file paths, &amp;amp; table of contents on documents/files give your users a sense of where the information resides as part of the larger information ecosystem they’re currently “in” (because we use physical language to describe our internet behavior, even though we don’t physically “go” anywhere!).  Give your users a virtual map with sign posts and directions so they can figure out where they need to go.&lt;/p&gt;




&lt;h1 id=&#34;4-understand-the-difference-between-form--substance&#34;&gt;4. Understand the Difference Between Form &amp;amp; Substance
  &lt;a href=&#34;#4-understand-the-difference-between-form--substance&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;I’ll go into more depth about tagging below, but it’s important to understand that there are terms to describe what your content IS (format), and also terms to describe what it is ABOUT (subject).  Going back to your users, what subjects are important to them, and doe those topics carry over or change between differences in format?  This is basically a question of combined terms—are your format terms uniquely matched to topical terms (blog posts are always about news), or do you have multiple topics in each format (blog posts and tutorials on the same subject)?&lt;/p&gt;




&lt;h1 id=&#34;5-do-not-abbreviate&#34;&gt;5. Do Not Abbreviate
  &lt;a href=&#34;#5-do-not-abbreviate&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Don’t abbreviate.  Or, at the very least, spell out abbreviations or acronyms in all headings and at least the first time in narrative text.  This goes back to the idea of accessibility for all user experience levels: spelling out acronyms and abbreviations breaks down the exclusivity of language used by a select group and it makes people feel welcome.  Especially with acronyms, remember that they’re often repurposed by different professions or disciplines and what seems obvious to you is probably not obvious to a number of other people.&lt;/p&gt;




&lt;h1 id=&#34;6-use-tags&#34;&gt;6. Use Tags
  &lt;a href=&#34;#6-use-tags&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;I can’t tell you what tags you should or shouldn’t use, but I can explain a bit about types of tagging systems and considerations you should take into account.  Broadly speaking, I’ve found that people use ‘tag’ and ‘index’ and ‘taxonomy’ interchangeably, though to a librarian they are wildly different things!  Outside of information science we can think of two types of tags: folksonomies and controlled vocabularies.  Folksonomies are like what you see with tags on Flickr: it’s pretty much a free-for-all.  Users tag with whatever terms they like and the list of possible terms is both uncontrolled (no one is watching for synonyms or misspellings!) and crowd-sourced (created by non-experts).  A controlled vocabulary, on the other hand, has a defined list of ‘official’ terms that is created &amp;amp; maintained by an ‘expert’ of some sort.  There may or may not be relationships built between terms: equivalencies (CA = California), broader/narrower terms, and/or replacement (weed USE marijuana).  The good news is that there is probably a place you can find tags in use that are a similar topic or content to yours that will inspire the tag structure and/or terms you’ll want to use.  If you go the folksonomy route, beware of plural/singular discrepancies in your terms!&lt;/p&gt;




&lt;h1 id=&#34;7-maximize-software-utilization&#34;&gt;7. Maximize Software Utilization
  &lt;a href=&#34;#7-maximize-software-utilization&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Many file storage, word processing programs and website software actually have built-in metadata capabilities, though they may be hard to find and harder to understand how to leverage.  The worst part may be getting into the habit of adding metadata to your content after creation.  Just like people who end up with piles of photographs with nothing written on the back,  we all have digital mounds of files &amp;amp; content with no format or subject information in the Properties.  The benefits of having metadata are huge, for users and for you!  You’ll need to have done some thinking about format and subject, but if your website software has any metadata functionality (like tagging), please use it!&lt;/p&gt;




&lt;h1 id=&#34;8-utilize-textual-structure&#34;&gt;8. Utilize textual structure
  &lt;a href=&#34;#8-utilize-textual-structure&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Textual content is created and aggregated in so many forms using so many different programs that specificity is difficult.  Generally, you want to exploit the features of the textual program to the greatest degree possible.  Using Headings in Google Sheets or hyperlinked Table of Contents in Microsoft Word are the two examples that come best to my mind.  If the program you’re using has built in options to establish hierarchy or structure to that text, please use it!&lt;/p&gt;




&lt;h1 id=&#34;9-name-carefully&#34;&gt;9. Name Carefully
  &lt;a href=&#34;#9-name-carefully&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;This tip came to me a few weeks ago when I went looking for a particular cheatsheet.  Turns out that between the heading and the descriptive text the package name and the words “cheat sheet”  appeared, but not next to each other.  A Google search netted a ridiculous number of results, but the current version of that package’s cheat sheet was not on the first two pages.  Needless to say, it was only through knowledge I’d recently gained from a coworker that I remembered the exact file path to that page and could read through until I found the one that was the right match.  Let this be a lesson: what you call your content is how you should name it, and all the words should be together (imagine someone will put that name in quotes in the search box).  Also, think about nicknames or shortened versions and make sure they’re present in text or tags so that the content can be discovered by a search engine and a user.&lt;/p&gt;




&lt;h1 id=&#34;10-utilize-search-and-browsing&#34;&gt;10. Utilize Search &lt;strong&gt;and&lt;/strong&gt; Browsing
  &lt;a href=&#34;#10-utilize-search-and-browsing&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Research into information-seeking behavior shows that people use a combination of searching AND browsing when they’re trying to find information they need.  As they browse a website or document or file, they put together a mental map of the content they could possibly find and make a search based on that assumption.  They’ll further refine their search as they see results, perhaps navigating into a result or two to further their understanding	.  You’ve probably seen or done something similar with a print book, trying to determine if it’s one you want.  Given this behavior, it’s important to provide access to your information through both methods: search and browse.  Tags help with searching, though browsing a list of tags will tell you a lot about the content contained in the resource you’re looking at.  Software that makes use of metadata and structural labels enhances search tremendously.&lt;/p&gt;
&lt;p&gt;The more  of these tips you’re able to implement, the greater success users will have in finding the information you’ve created for them.&lt;br&gt;
&lt;em&gt;Good luck!&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>This Is Not Like the Others</title>
      <link>https://education.rstudio.com/blog/2019/12/this-is-not-like-the-others/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/12/this-is-not-like-the-others/</guid>
      <description>&lt;p&gt;This summer I had the opportunity of working as an intern for RStudio.
Among the available projects/mentors, I was fortunate to collaborate
with Max Kuhn developing the &lt;code&gt;applicable&lt;/code&gt; modeling R package now
available 
&lt;a href=&#34;https://github.com/tidymodels/applicable&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;. The package
comprises of a collection of applicability domain models to measure the
reliability of a given model&amp;rsquo;s prediction. These models are borrowed
from Chemistry, where they are widely used to measure the reliability of
QSARs models.&lt;/p&gt;




&lt;h2 id=&#34;applicability-domain-methods&#34;&gt;Applicability Domain Methods
  &lt;a href=&#34;#applicability-domain-methods&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Applicability domain (AD) models are unsupervised approaches to
characterize the nature of a prediction&amp;rsquo;s extrapolation. They are based
on the premise that a model&amp;rsquo;s prediction is reliable if the sample from
which a prediction is made is &lt;em&gt;similar&lt;/em&gt; to the training set. The
following are examples of AD methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Simple distance measures can be used, e.g., the &lt;em&gt;leverage&lt;/em&gt; or &lt;em&gt;hat
value&lt;/em&gt; of a data point.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Similarity measurements, which are preferred when the predictor
space consists of all binary predictors. A common metric is the
&lt;em&gt;Jaccard index&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let us dive into some of these methods through the &lt;code&gt;applicable&lt;/code&gt; package.&lt;/p&gt;




&lt;h2 id=&#34;the-applicable-package&#34;&gt;The &lt;code&gt;applicable&lt;/code&gt; package
  &lt;a href=&#34;#the-applicable-package&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The applicable package contains models to analyze binary and continuous
data. The Jaccard index &amp;ndash; a similarity statistics &amp;ndash; is a specialized
indicator when working with binary data. On the other hand, for
continuous data, both principal component analysis and hat values are
employed.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(applicable)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;binary-data-the-jaccard-index&#34;&gt;Binary data: the Jaccard index
  &lt;a href=&#34;#binary-data-the-jaccard-index&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Similarity statistics can be used to compare data sets where all of the
predictors are binary. One of the most common measures is the Jaccard
index. Given sets &lt;code&gt;A&lt;/code&gt; and &lt;code&gt;B&lt;/code&gt;, the Jaccard similarity between A and B is
defined as&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$$J(A, B) = \frac{\|A \cap B\|}{\|A \cup B\|}$$&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For a training set of size &lt;code&gt;n&lt;/code&gt;, there are &lt;code&gt;n&lt;/code&gt; similarity statistics for
each new sample. These can be summarized via the mean statistic or a
quantile. In general, we want similarity to be low within the training
set (i.e., a diverse training set) and high for new samples to be
predicted.&lt;/p&gt;
&lt;p&gt;To analyze the Jaccard metric, &lt;code&gt;applicable&lt;/code&gt; provides the following
methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;apd_similarity&lt;/code&gt;: analyzes samples in terms of similarity scores.
For a training set of &lt;em&gt;n&lt;/em&gt; samples, a new sample is compared to each,
resulting in &lt;em&gt;n&lt;/em&gt; similarity scores. These can be summarized into the
median similarity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;autoplot&lt;/code&gt;: shows the cumulative probability versus the unique
similarity values in the training set.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;score&lt;/code&gt;: scores new samples using similarity methods. In particular,
it calculates the similarity scores and if &lt;code&gt;add_percentile = TRUE&lt;/code&gt;,
it also estimates the percentile of the similarity scores.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The example data is from two QSAR data sets where binary fingerprints
are used as predictors.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;data&lt;/span&gt;(qsar_binary)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let us construct the model:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;jacc_sim &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;apd_similarity&lt;/span&gt;(binary_tr)
jacc_sim
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Applicability domain via similarity
## Reference data were 67 variables collected on 4330 data points.
## New data summarized using the mean.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As we can see below, this is a fairly diverse training set:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(ggplot2)

&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Plot the empirical cumulative distribution function for the training set&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;autoplot&lt;/span&gt;(jacc_sim)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;plot-1.png&#34; width=&#34;480&#34; /&gt;&lt;/p&gt;
&lt;p&gt;We can compare the similarity between new samples and the training set:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Summarize across all training set similarities&lt;/span&gt;
mean_sim &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;score&lt;/span&gt;(jacc_sim, new_data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; binary_unk)
mean_sim
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 5 x 2
##   similarity similarity_pctl
##        &amp;lt;dbl&amp;gt;           &amp;lt;dbl&amp;gt;
## 1     0.376            49.8 
## 2     0.284            13.5 
## 3     0.218             6.46
## 4     0.452           100   
## 5     0.0971            5.59
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Samples 3 and 5 are definitely extrapolations based on these predictors.
In other words, the new samples are not similar to the training set and
so predictions on them may not be very reliable.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(applicable)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2 id=&#34;continuous-data-pca&#34;&gt;Continuous data: PCA
  &lt;a href=&#34;#continuous-data-pca&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When working with continuous data, &lt;code&gt;applicable&lt;/code&gt; provides the following
methods to analyze the applicability domain of your model:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principal component analysis&lt;/li&gt;
&lt;li&gt;Hat values statistics&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To see &lt;code&gt;applicable&lt;/code&gt; in action, let us look at the principal component
analysis of the Ames IA housing data.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(AmesHousing)
ames &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;make_ames&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are 2,930 properties in the data.&lt;/p&gt;
&lt;p&gt;The Sale Price was recorded along with 81 predictors, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Location (e.g., neighborhood) and lot information.&lt;/li&gt;
&lt;li&gt;House components (garage, fireplace, pool, porch, etc.).&lt;/li&gt;
&lt;li&gt;General assessments such as overall quality and condition.&lt;/li&gt;
&lt;li&gt;Number of bedrooms, baths, and so on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More details can be found in 
&lt;a href=&#34;http://ww2.amstat.org/publications/jse/v19n3/decock.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;De Cock (2011, Journal of Statistics
Education)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The raw data are at &lt;a href=&#34;http://bit.ly/2whgsQM&#34;&gt;http://bit.ly/2whgsQM&lt;/a&gt; but we will use a processed version
found in the 
&lt;a href=&#34;https://github.com/topepo/AmesHousing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;AmesHousing&lt;/code&gt;&lt;/a&gt; package.
&lt;code&gt;applicable&lt;/code&gt; also contains an update for these data for three new properties
(although fewer fields were collected on these).&lt;/p&gt;
&lt;p&gt;To pre-process the training set, we will use the &lt;em&gt;recipes&lt;/em&gt; package. We
first tell the recipes that there is an additional value for the
neighborhood in these data, then direct it to create dummy variables for
all categorical predictors. In cases where there are no levels observed
for a factor, we eliminate predictors with a single unique value, then
estimate a transformation that will make the predictor distributions
more symmetric. After these, the data are centered and scaled. These
same transformations will be applied to the new data points using the
statistics estimated from the training set.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(recipes)
&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(dplyr)

ames_cols &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;names&lt;/span&gt;(ames_new)
ames_new&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;Neighborhood &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;as.factor&lt;/span&gt;(ames_new&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;Neighborhood)

training_data &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; 
  ames &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# For consistency, only analyze the data on new properties&lt;/span&gt;
  dplyr&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;select&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;one_of&lt;/span&gt;(ames_cols)) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;mutate&lt;/span&gt;(
    &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# There is a new neighborhood in ames_new&lt;/span&gt;
    Neighborhood &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;as.character&lt;/span&gt;(Neighborhood),
    Neighborhood &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;factor&lt;/span&gt;(Neighborhood, levels &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;levels&lt;/span&gt;(ames_new&lt;span style=&#34;color:#666&#34;&gt;$&lt;/span&gt;Neighborhood))
  )

training_recipe &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;recipe&lt;/span&gt;( &lt;span style=&#34;color:#666&#34;&gt;~&lt;/span&gt; ., data &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; training_data) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;step_dummy&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;all_nominal&lt;/span&gt;()) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Remove variables that have the same value for every data point.&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;step_zv&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;all_predictors&lt;/span&gt;()) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Transform variables to be distributed as Gaussian-like as possible.&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;step_YeoJohnson&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;all_numeric&lt;/span&gt;()) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# Normalize numeric data to have a mean of zero and&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# standard deviation of one.&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;step_normalize&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;all_numeric&lt;/span&gt;())
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The following functions in &lt;code&gt;applicable&lt;/code&gt; are used for principal component
analysis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apd_pca&lt;/code&gt;: computes the principal components that account for up to
either 95% or the provided &lt;code&gt;threshold&lt;/code&gt; of variability. It also
computes the percentiles of the principal components and the mean of
each principal component.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;autoplot&lt;/code&gt;: plots the distribution function for pcas. You can also
provide an optional set of &lt;code&gt;dplyr&lt;/code&gt; selectors, such as
&lt;code&gt;dplyr::matches()&lt;/code&gt; or &lt;code&gt;dplyr::starts_with()&lt;/code&gt;, for selecting which
variables should be shown in the plot.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;score&lt;/code&gt;: calculates the principal components of the new data and
their percentiles as compared to the training data. The number of
principal components computed depends on the &lt;code&gt;threshold&lt;/code&gt; given at
fit time. It also computes the multivariate distance between each
principal component and its mean.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To see how these functions work, we will borrow the outputs of the

&lt;a href=&#34;https://marly-cormar.shinyapps.io/applicable&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shiny&lt;/a&gt; application we are
currently developing for the package.&lt;/p&gt;
&lt;p&gt;Let us apply &lt;code&gt;apd_pca&lt;/code&gt; modeling function to our data:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;ames_pca &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;apd_pca&lt;/span&gt;(training_recipe, training_data)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Since no &lt;code&gt;threshold&lt;/code&gt; was provided, the function computed the number of
principal components that accounted for at most 95% of the total
variance. Plotting the distribution function for the PCA scores is also
helpful. In the 
&lt;a href=&#34;https://marly-cormar.shinyapps.io/applicable&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;shiny&lt;/a&gt;
application, we can set the threshold as well as the subset of PCAs
displayed.&lt;/p&gt;
&lt;p&gt;For illustration, setting &lt;code&gt;threshold = 0.30&lt;/code&gt; or 30%, we now need only 13
principal components:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;plot-2.png&#34; width=&#34;785&#34; /&gt;&lt;/p&gt;
&lt;p&gt;We can also update the number of PCAs displayed:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;plot-3.png&#34; width=&#34;800&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Finally, the &lt;code&gt;score&lt;/code&gt; function compares the training data to new samples.
This is the output of &lt;code&gt;pca_score &amp;lt;- score(ames_pca, ames_new)&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;plot-4.png&#34; width=&#34;787&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
  &lt;a href=&#34;#conclusion&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The project was ambitious and complex in nature, which made it that much
more intereting. I learned a lot from Max and had an amazing experience
working for RStudio. As I mentioned before, an application using the
&lt;code&gt;shiny&lt;/code&gt; package is currently in development. You can take a pick at it

&lt;a href=&#34;https://marly-cormar.shinyapps.io/applicable&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>RStudio Internships 2020 Preview</title>
      <link>https://education.rstudio.com/blog/2019/11/rstudio-internships-2020-preview/</link>
      <pubDate>Mon, 25 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/11/rstudio-internships-2020-preview/</guid>
      <description>&lt;p&gt;We are pleased to announce that RStudio&amp;rsquo;s summer intern program will run for a third time in 2020. 10 people who are full-time students at accredited institutions of higher education will have the chance to work with an RStudio mentor full-time for 12 weeks starting in May 2020.&lt;/p&gt;
&lt;p&gt;The theme of this year&amp;rsquo;s program is learning: six of the interns will create new online lessons (which will be freely available for all to use under a Creative Commons license), while two others will work on supporting tools. An additional two interns will be embedded with RStudio&amp;rsquo;s Quality Assurance team to help extend and automate our testing processes. As in previous years, applicants must be US residents, and we hope to have a mix of both graduate and undergraduate students in 2020&amp;rsquo;s cohort. Please keep an eye on this blog for details—we look forward to hearing from you.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Please note: we originally intended to open applications in January, but have pushed the date back until after rstudio::conf 2020. We will make an announcement here when things get rolling again.&lt;/em&gt;&lt;/p&gt;




&lt;h2 id=&#34;lesson-developer&#34;&gt;Lesson Developer
  &lt;a href=&#34;#lesson-developer&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Tens of thousands of people have learned basics data science skills from RStudio&amp;rsquo;s cloud-based primers in class and on their own. In this project, you will work with a member of RStudio&amp;rsquo;s education team to develop primers on new topics, such as statistical modeling, Shiny, or publishing with R Markdown. Successful candidates will be comfortable programming in R using the RStudio IDE, familiar with the R Markdown toolchain, and enjoy writing and teaching. Your application needs to include a link to a lesson you have created that relates to programming or data science—it&amp;rsquo;s OK if you create something specifically for this application—and please also briefly describe the lesson you most want to create and explain why.&lt;/p&gt;




&lt;h2 id=&#34;learning-tool-developer&#34;&gt;Learning Tool Developer
  &lt;a href=&#34;#learning-tool-developer&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Lesson developers can create interactive exercises that run in the RStudio IDE and give learners feedback on their work using a variety of packages. In this project, you will work with RStudio&amp;rsquo;s developers and education team to extend these packages with new exercise types, add new and better ways to check answers and give feedback. Successful candidates will be fluent in R (including non-standard evaluation and package development) and familiar with either Python or JavaScript. To demonstrate these skills and your ability to work with Git and GitHub, your application needs to include a link to a package, Shiny app, or data analysis repository on GitHub. It&amp;rsquo;s OK if you create something specifically for this application: we just want to know that you&amp;rsquo;re already familiar with the mechanics of collaborative development. Please also briefly describe one feature that you think 
&lt;a href=&#34;https://rstudio.github.io/learnr/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;learnr&lt;/a&gt; doesn&amp;rsquo;t have that you would like to add and explain why.&lt;/p&gt;




&lt;h2 id=&#34;quality-assurance&#34;&gt;Quality Assurance
  &lt;a href=&#34;#quality-assurance&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Few things are as frustrating as working for hours only to find that the fault lies in your tools. In this project, you will build tests and testing infrastructure to check and maintain the quality of RStudio&amp;rsquo;s tools. Successful candidates will be familiar with test automation and have some experience with R and Python; familiarity with Selenium, Docker, and Jenkins will be an asset as well. To demonstrate these skills and your ability to work with Git and GitHub, your application needs to include a link to a public Git repository that contains some testing work you have done. It&amp;rsquo;s OK if you create something specifically for this application: we just want to know that you&amp;rsquo;re already familiar with version control and modern testing tools. Please also briefly describe some tests you have written to check the correctness of your own software and describe what errors they caught.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My Experience with RStudio Instructor Training</title>
      <link>https://education.rstudio.com/blog/2019/11/my-experience-with-rstudio-instructor-training/</link>
      <pubDate>Tue, 19 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/11/my-experience-with-rstudio-instructor-training/</guid>
      <description>&lt;p&gt;I recently became a certified RStudio Instructor in both Shiny and the Tidyverse. I thought I would write a little about the experience. I haven&amp;rsquo;t really had any formal pedagogical training, and having some of the state of the art and evidence-based practices were really helpful in extending my approaches to teaching.&lt;/p&gt;




&lt;h2 id=&#34;instructor-training&#34;&gt;Instructor Training
  &lt;a href=&#34;#instructor-training&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The instructor training is online, but delivered via Zoom. The session themselves are 4 hours apiece and at set times, with a small cohort overall (I think mine was about 14). Greg Wilson delivered a short set of slides for each activity, and depending on the activity, we were sent out into smaller groups to discuss the topic. I liked how the course was paced - I felt like having activities almost every half hour definitely kept me awake.&lt;/p&gt;
&lt;p&gt;The training for me (I am on PST) was from 8 AM to 12 PM two days in a row, and my cohort was from all over the US/Canada.&lt;/p&gt;
&lt;p&gt;Here are the parts of the instructor training that I found especially useful. Note that since Greg also helped develop the Carpentries instructor training, there is some overlap between the two training programs (in fact, if you&amp;rsquo;ve taught a Carpentries course and done the Carpentries training, you can waive the instructor training altogether).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building concept maps&lt;/strong&gt;. If you can, you should map out the concepts you want to teach, along with how these concepts are related. This concept map is important in helping your students build the mental models that will guide them towards mastery. I did a concept map of Tidy data for my example. Concept maps themselves are a bit tricky to build, but I think they help clarify your understanding of what you are teaching, and thus your lessons will be more understandable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thinking about cognitive overload.&lt;/strong&gt; This was a call to think about limiting the number of concepts and connections covered per unit. Humans have a short term memory of about 5 +/- 2 things at a time. This is an extremely helpful guideline to consider when developing training units, as your course objectives and training should keep these in mind. Also, there are different kinds of cognitive overload, and some of them (like extraneous details), you can remove to help with the other kinds. There are lots of ways to teach coding, such as Parsons Problems (where students have to put lines of code in order), or faded examples (fill in the blank style coding assignments), that can focus on particular aspects of coding. (As an unrelated topic, I have been thinking about reading code as being an essential skill and I try to teach students to learn how to read code.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Teaching needs to be dynamic.&lt;/strong&gt; As instructors, part of our value lies in tailoring our training for our students and their previous knowledge. Unlike YouTube videos, we can assess what our students already know, and focus on the concepts that they don&amp;rsquo;t. In order to do this, though, we need to have ways of assessing what our students know. Formative assessments (assessments during a lesson) are essential in figuring out whether you can proceed, or whether you need to spend more time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Providing feedback.&lt;/strong&gt; We were to teach each other a short lesson of our choosing, which was pretty fun. After a test run with a larger group, my partner and I got to teach each other - she taught me about making jam (and the food safety issues) and I taught her about making cornbread. (It was close to lunchtime when we did this, I think we were both hungry.) The exercise was super useful in helping us to not be afraid of giving feedback and to be aware of what kinds of feedback to give.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What demotivates students.&lt;/strong&gt; This was an important section, and a bit emotionally difficult. I have been guilty of some of the teaching behavior that demotivates students, such as taking over their keyboard, instead of letting them fix it. If we are to be inclusive and welcoming to everyone, we need to be aware of these (sometimes subtle) behaviors that can discourage and demotivate all of our students.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other tips from other instructors&lt;/strong&gt;. I really enjoyed hearing other instructor&amp;rsquo;s experiences and I had a lot of respect for my cohort. There were lots of little tips we shared with each other that were super helpful, such as the types of mics to use. I also thought that it was helpful when we shared our struggles with each other. It made me feel much more as part of a group of instructors, which was very helpful for me.&lt;/p&gt;




&lt;h2 id=&#34;instructor-certification-exam&#34;&gt;Instructor Certification Exam
  &lt;a href=&#34;#instructor-certification-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The instructor certification covered the pedagogical techniques we discussed in the instructor training. This exam, like the others, was open book, open note, open internet, but not open person (no lifeline, no talking with others).&lt;/p&gt;
&lt;p&gt;As part of the exam, we were required to develop and deliver a lesson. I ended up reworking one of my SQL lessons in my Analytics course. I found it a really useful exercise in rethinking my examples discussing left and inner joins, especially in my table examples. You can see my lesson here: 
&lt;a href=&#34;https://rstudio.cloud/project/413048&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SQL Joins in R&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This part of the exam is only about 10 minutes long, but you should be prepared, especially in figuring out how you will assess the learning of the students.&lt;/p&gt;




&lt;h2 id=&#34;tidyverse-certification-exam&#34;&gt;Tidyverse Certification Exam
  &lt;a href=&#34;#tidyverse-certification-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;After I had done my instructor certification, I had to do the technical qualifications. This was also done online, with Greg delivering the exam over Zoom. Most of the exam had to be done via RStudio on my computer. This exam, like the others, was open book, open note, open internet, but not open person (no lifeline, no talking with others).&lt;/p&gt;
&lt;p&gt;What did the exam cover? Roughly, it covered almost all of 
&lt;a href=&#34;https://r4ds.had.co.nz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R for Data Science&lt;/a&gt; and was very task-focused. There was a focus on debugging, data transformation, markdown and visualization. The tasks were mostly problem driven, on the order of recreating a figure, or parametrizing a workflow. It was emphasized that we should solve the problems the way we usually work and talk out our problems aloud. For one of the problems, I actually had to search and teach myself on the fly. This was actually a good way to confirm that my conceptual models of the tidyverse were helpful.&lt;/p&gt;
&lt;p&gt;One tip: 90 minutes is a long amount of time for an exam, especially where you are actively thinking and talking out loud. You should have something to eat by your side so you can replenish your blood glucose. It is also slightly unnerving to have someone watch you actively solve problems and program. If you get flustered, take a breath. There&amp;rsquo;s not usually a single way to solve the problems.&lt;/p&gt;




&lt;h2 id=&#34;shiny-certification-exam&#34;&gt;Shiny Certification Exam
  &lt;a href=&#34;#shiny-certification-exam&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A few weeks later, I took the Shiny certification. In terms of coverage, there is not currently a good text to study for the Shiny Certification exam (
&lt;a href=&#34;https://mastering-shiny.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mastering Shiny&lt;/a&gt; is probably going to be the reference to study when it is finished). In order to prepare, I went over the 
&lt;a href=&#34;https://shiny.rstudio.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio articles about Shiny&lt;/a&gt;, and looked over the 
&lt;a href=&#34;https://shiny.rstudio.com/gallery/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Shiny Gallery&lt;/a&gt; to bone up on the different programming techniques used in Shiny, such as UI elements, reactives, the observe/update pattern, and modules.&lt;/p&gt;
&lt;p&gt;Again, the exam covered debugging, including fixing applications, understanding control logic between ui and server, and building an app from scratch. I would say much of the exam covers how well established your own mental model of Shiny progamming is.&lt;/p&gt;
&lt;p&gt;One thing to remember: as the technology and code changes, the certification exams will change and you may have to get re-certified. So my experience of these exams may be different than your experience.&lt;/p&gt;




&lt;h2 id=&#34;overall-experience&#34;&gt;Overall Experience
  &lt;a href=&#34;#overall-experience&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I thought the training was extremely useful, especially in terms of learning more about evidence based methods in effective education. As someone who is thinking about starting a consulting group focusing on training, having the certifications are extremely valuable to me and my future career. I look forward to teaching and training more people in R.&lt;/p&gt;




&lt;h2 id=&#34;for-more-info&#34;&gt;For More Info
  &lt;a href=&#34;#for-more-info&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Please consult the 
&lt;a href=&#34;https://education.rstudio.com/trainers/&#34;&gt;RStudio Trainer Website&lt;/a&gt; for info on how to register for the instructor training.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Full Disclosure: my department paid for the training and two of the certification exams. I did the Shiny exam for free with the stipulation that I would provide feedback on the exam itself. This article was originally published 
&lt;a href=&#34;http://laderast.github.io/2019/11/15/my-experience-with-rstudio-instructor-training/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>My First Software Engineering Internship</title>
      <link>https://education.rstudio.com/blog/2019/11/my-first-software-engineering-internship/</link>
      <pubDate>Thu, 07 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/11/my-first-software-engineering-internship/</guid>
      <description>&lt;p&gt;Prior to this internship, my coding abilities were 
&lt;a href=&#34;https://jcahoon.netlify.com/post/2019/06/16/first-two-weeks-this-summer-at-rstudio/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;amateur at best&lt;/a&gt;. After this internship, I have not only become fluent in R, but also more confident in my software abilities in general. I have my mentors 
&lt;a href=&#34;https://blog.davisvaughan.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Davis Vaughan&lt;/a&gt; and 
&lt;a href=&#34;https://twitter.com/topepos&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Max Kuhn&lt;/a&gt; to thank for helping me build this agency, as well as the 2019 intern cohort and the #rstats community, but long story short, if you&amp;rsquo;re interested in learning how to contribute to open source, ship production-level code, or build software products, I would highly recommend applying. The training I had was exceptional.&lt;/p&gt;




&lt;h1 id=&#34;the-application-process&#34;&gt;The Application Process
  &lt;a href=&#34;#the-application-process&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;The application is short, and the bulk of it lies in simply having a web presence. I sent my application on the last day of the submission window. Since I did not make it past the interviews last year, I was hesitant about applying, but the desire to intern was still there, so I applied again.&lt;/p&gt;
&lt;p&gt;My website at the time was a jenky hand-coded HTML landing page with links to several Shiny apps I made for an introductory stats course. As there are many resources available to quickly get up and running with a beautiful, responsive, mobile-friendly website, please avoid making the same mistake I did. My favorite resource remains 
&lt;a href=&#34;https://alison.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Alison Hill&lt;/a&gt;&amp;lsquo;s 
&lt;a href=&#34;https://summer-of-blogdown.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;summer of blogdown&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I heard back a week after applying and interviewed with 
&lt;a href=&#34;http://schloerke.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Barret Schloerke&lt;/a&gt; and Davis Vaughan. The interviews took place on Zoom and lasted 30-45 minutes. They began with introductions and included 10-15 minutes of background questions, 15-20 minutes of technical questions, and a few minutes at the end for me to ask questions. I panicked a little with the technical portion as I hadn&amp;rsquo;t anticipated it, but I thought out loud and asked clarifying questions along the way. About a week later, I received an email with the great news.&lt;/p&gt;




&lt;h1 id=&#34;working-remotely&#34;&gt;Working Remotely
  &lt;a href=&#34;#working-remotely&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Interning remotely is not for everyone, but I loved it: I could set my own schedule, so I traveled and saw family and was still productive. Working remotely, however, takes discipline and some getting used to: it&amp;rsquo;s not like you can turn around, tap your colleague on the shoulder, ask them a question, and get an immediate response.&lt;/p&gt;
&lt;p&gt;In my first two weeks, my mentors answered every message I sent them within seconds, but past this initial period, a response might take minutes or hours. (The days where replies came hourly were rare; in fact, on those days, Davis and Max made it explicitly clear that they were either at a conference or in deep work, and would reply at a specific time.)&lt;/p&gt;
&lt;p&gt;What I found most effective was asking easy questions in large team Slack channels (where I&amp;rsquo;d get an immediate response) and hard ones in private channels. Hard questions generally require someone reviewing my code base for a substantial amount of time. To be honest, knowing that I would have to wait to get feedback was great, because that gave me an excuse to either go out for a long coffee date or work on several side projects.&lt;/p&gt;
&lt;p&gt;On the whole, my daily routine consisted of logging on around 7am, coding for 4 hours, hitting the gym, eating lunch, coding for another 3-4 hours, and if I had errands to run in the afternoon, I&amp;rsquo;d just make up those 1-2 hours after dinner. At the end of each work day, I&amp;rsquo;d log what I accomplished through an internal Achiever app. This not only helped me track my progress, but also let Davis and Max check in occasionally and provide any feedback or resources that could help. I was way more productive than I&amp;rsquo;ve ever been.&lt;/p&gt;




&lt;h1 id=&#34;what-i-did&#34;&gt;What I Did
  &lt;a href=&#34;#what-i-did&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;The big wins for this summer were (1) building a new R package (
&lt;a href=&#34;https://tidymodels.github.io/butcher/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;butcher&lt;/a&gt;) that reduced the size of modeling objects saved to disk, and (2) getting this package onto CRAN. (If this tool might be of any interest, please check out 
&lt;a href=&#34;https://jcahoon.netlify.com/post/2019/08/08/model-butcher/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this overview&lt;/a&gt;.) My key takeaway is that I wish I had learned package development earlier. It would have made so much of my research efforts (in grad school) more reproducible, easier to consume, and easier to extend. A lot of the scripts I wrote prior to this internship were single, long-form functions that I simply copy-and-pasted if there were any internal pieces I had to change. Had I developed my research scripts as a &lt;em&gt;package&lt;/em&gt;, I would have to modularized my code in such a way that each subunit was designed to be &lt;em&gt;reusable&lt;/em&gt; and &lt;em&gt;testable&lt;/em&gt;, and thus much more &lt;em&gt;robust&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I cannot stress the importance of unit testing enough. There is some debate around what the optimal level of testing is relative to each line of code, but the general consensus I received (at least internally) was 80%. And for anyone that&amp;rsquo;s never built a package before, or for anyone like me who still looks up everything up, check out Jenny Bryan&amp;rsquo;s 
&lt;a href=&#34;https://r-pkgs.org/whole-game.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;whole game chapter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://tidymodels.github.io/butcher/&#34;&gt;&lt;img src=&#34;butcher.png&#34; alt=&#34;Butcher Hex&#34; width=&#34;150&#34; style=&#34;padding: 0 15px; float: right;&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s possible to get a skeleton package up and running, with version control, under an hour. Other important milestones, prior to submitting to CRAN, were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setting up continuous integration&lt;/li&gt;
&lt;li&gt;Styling and documenting my code&lt;/li&gt;
&lt;li&gt;Creating an accompanying 
&lt;a href=&#34;https://tidymodels.github.io/butcher/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;website&lt;/a&gt; with &lt;code&gt;pkgdown&lt;/code&gt; (complete with a hex sticker by 
&lt;a href=&#34;https://twitter.com/allison_horst&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Allison Horst&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Getting the package onto CRAN was incredibly straightforward: the package underwent 3 iterations before it was finally accepted, but the edits were legitimate and minimal.&lt;/p&gt;




&lt;h1 id=&#34;in-general&#34;&gt;In General
  &lt;a href=&#34;#in-general&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;My internship was unique (at least for me) because I wasn&amp;rsquo;t treated like an intern. My contributions mattered, and the relationships I developed with the interns and the employees at RStudio are irreplaceable. In fact, the interns and I still touch base every week or so, and whenever we might be going through something, or hitting any hurdles with our work, we&amp;rsquo;re there (at least virtually) for each other.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also learned to live outside my comfort zone. During my internship, I was given approximately a full week to work on anything I wanted. It didn&amp;rsquo;t necessarily have to open source, but I chose to hone my skills in 
&lt;a href=&#34;https://mastering-shiny.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shiny&lt;/a&gt; and 
&lt;a href=&#34;http://js4ds.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;JavaScript&lt;/a&gt;. I was constantly breaking things or hammering my head into the proverbial wall, but as my mentor succinctly put it, &amp;ldquo;If you&amp;rsquo;re not breaking something, the project is too small.&amp;rdquo; It was in getting through these moments of discomfort that I&amp;rsquo;ve grown, as a developer, but really, as an individual. Within the limited time of this internship, I&amp;rsquo;ve gained not only greater confidence in what I can do, but also a sense of how to lead a creative and productive life.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>12 weeks at RStudio</title>
      <link>https://education.rstudio.com/blog/2019/10/twelve-weeks/</link>
      <pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/twelve-weeks/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;Me.jpg&#34; width=&#34;600px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;This summer I interned for RStudio’s education team. It was a total departure from my routine as a PhD student, and the perfect brew of the things I enjoy: building stuff, drawing stuff, and teaching stuff.&lt;/p&gt;
&lt;p&gt;In this blog post I’ll share a run down of my experience. If you’re considering applying, then I hope this gives you an idea of what to expect.&lt;/p&gt;




&lt;h2 id=&#34;i-started-writing-a-book&#34;&gt;I started writing a book.
  &lt;a href=&#34;#i-started-writing-a-book&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I worked on a project with 
&lt;a href=&#34;https://education.rstudio.com/author/alison/&#34;&gt;Alison Hill&lt;/a&gt; called “rstudio4edu”, a bookdown book for educators that bundled tutorials and practical advice about how to wrangle RStudio’s tools (e.g. R Markdown, packages, templates, etc.) to make life in the classroom (virtual or physical) easier.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;book.jpg&#34; width=&#34;600px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;
I dove deep into the guts of different R Markdown collections and then wrote up cookbooks about how to customize each of these. The goal was to do this in a way that would make it &lt;em&gt;fun&lt;/em&gt; for folks to read&amp;ndash;especially for educators (or anyone, really) who might be comfortable in R but might not have a hardcore technical background to want to sink their teeth into a seemingly grizzly piece of documentation.&lt;/p&gt;
&lt;p&gt;The book is chock-full of step-by-step guides, illustrations, concept maps, and first-rate metaphors. It pairs well with a rainy Saturday, a cozy pair of socks, and some motivation to get that course website done once and for all.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Cozy.jpg&#34; width=&#34;500px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;
(It’s still a work in progress, but I’m so excited for it to be shared with y’all soon.)&lt;/p&gt;




&lt;h2 id=&#34;i-figured-out-what-its-like-to-work-remotely&#34;&gt;I figured out what it’s like to work remotely.
  &lt;a href=&#34;#i-figured-out-what-its-like-to-work-remotely&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I was nervous at first about remote interning. What would it be like to swear off cubicle culture for the summer and trade in my morning drive for a 5 second walk down my apartment hallway? I like going into an office and being around others when I’m getting things done, so I wondered whether it would be isolating to work alone.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Remote.jpg&#34; width=&#34;700px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;
Turns out that working remotely did &lt;em&gt;not&lt;/em&gt; feel lonely at all. In fact, I felt surprisingly connected to my RStudio team. Alison was only ever a quick Slack message away, and during my first week we chatted daily. I also had a lot of autonomy when it came to how and where I worked. Most of the summer, Alison and I checked-in weekly to talk about progress, goals, and new ideas. The rest of the week I’d spend time creating, building, and troubleshooting those ideas. And if I ever got stuck, there was nothing that a call and a screenshare couldn’t fix.&lt;/p&gt;




&lt;h2 id=&#34;i-was-a-part-of-a-team&#34;&gt;I was a part of a team.
  &lt;a href=&#34;#i-was-a-part-of-a-team&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The education team had calls at least every two weeks. During these I heard about what everyone else was working on, shared my own progress, and also got to see the behind-the-scenes planning for upcoming RStudio events (like 
&lt;a href=&#34;https://web.cvent.com/event/36ebe042-0113-44f1-8e36-b9bc5d0733bf/summary&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf 2020 workshops&lt;/a&gt;). Quick and witty banter across different Slack channels was the digital stand-in for coffee breakroom chatter and also made me want to up my emoji and gif game. On Fridays, there was a “virtual coffee” video chat that we interns organized amongst ourselves. By the end of the summer, I became cirque-du-soleil-level proficient at juggling many video conferencing windows and tabs, but more importantly, I felt like I was a part of nice little work family that I could brainstorm and collaborate with.&lt;/p&gt;




&lt;h2 id=&#34;things-i-learned-got-better-at&#34;&gt;Things I learned/ got better at
  &lt;a href=&#34;#things-i-learned-got-better-at&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;On day 1, Alison’s first assignment to me was to learn something new. R Markdown sites were my comfort zone, but I had no idea about its friends or relatives (bookdown, Distill, etc.) For certain, the bulk of what I learned were the ins-and-outs of these, but throughout the summer there were many added bonuses. Here are a few:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I discovered that R packages are not just for functions.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;R packages are as diverse as holiday present boxes, and it turns out you can put almost anything in them. 
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/document-templates.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Templates&lt;/a&gt;, 
&lt;a href=&#34;https://usethis.r-lib.org/reference/use_data.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;data&lt;/a&gt;, 
&lt;a href=&#34;https://bookdown.org/yihui/rmarkdown/learnr.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;interactive tutorials&lt;/a&gt;.
&lt;img src=&#34;Learned.jpg&#34; width=&#34;300px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I honed my CSS chops.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CSS has always been a neglected love of mine. Like a rubix cube that you can’t quite give up on, I finally had the reason and the space to spend time manicuring all the *downs to my heart’s content, learning a ton of CSS minutiae in the process.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;css.jpg&#34; width=&#34;400px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I discovered many existing R packages that I wish I’d known about years ago.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 
&lt;a href=&#34;http://sfirke.github.io/janitor/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;janitor&lt;/a&gt; package for cleaning data (and data names)&lt;/li&gt;
&lt;li&gt;The 
&lt;a href=&#34;https://github.com/jennybc/here_here&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt; package&lt;/li&gt;
&lt;li&gt;I witnessed the birth of the 
&lt;a href=&#34;http://ymlthis.r-lib.org/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;ymlthis&lt;/code&gt;&lt;/a&gt; package, created by a 
&lt;a href=&#34;https://malco.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fellow intern&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;I finally started to feel comfortable using GitHub.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I used to be a very timid GitHubber. Working at RStudio, by necessity ripped the band-aid off of most things Git. A couple weeks in, I was makin’ repos and filing issues like it was my job (and, technically, it was). Today, I am still not a Git guru, but I learned that most people aren’t and that it’s okay to learn things on the job. What’s more important is that I no longer have qualms about digging in others’ repos or creating pull requests&amp;ndash; and that’s the gift that keeps on giving when it comes to learning and growing as an R coder ;)&lt;/p&gt;
&lt;center&gt;
&lt;div style=&#34;width: 700px;&#34;&gt;
[![](Tweet.jpg)](https://twitter.com/apreshill/status/1164015060919865344)
&lt;/div&gt;
&lt;/center&gt;




&lt;h2 id=&#34;what-i-really-appreciated&#34;&gt;What I really appreciated
  &lt;a href=&#34;#what-i-really-appreciated&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The work I did at RStudio integrated all my skills&amp;ndash;many of which I hadn’t been using in my PhD world. I got to be creative (making art!), code in R, build websites, and spend thinking about user experience and design. In a single summer, I developed a resource that will eventually be read by an audience much larger than what my 5 years of PhD work will ever reach (oof, truth hurts). It was so nice to receive encouragement and support to develop skills that would be useful to me even long after my intern work was over (e.g., blogging, writing abstracts, and actually using twitter).&lt;/p&gt;
&lt;p&gt;I also appreciated how generous RStudio employees were to interns with their time and skills: Carl Howe gave a mini-workshop on crafting exemplar elevator pitches, Greg Wilson offered up stellar instructor training, and Alison Hill led us through 
&lt;a href=&#34;https://summer-of-blogdown.netlify.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Summer of Blogdown&lt;/a&gt;, where each intern developed their own personal website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Skills.jpg&#34; width=&#34;396&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;advice-for-prospective-interns&#34;&gt;Advice for prospective interns
  &lt;a href=&#34;#advice-for-prospective-interns&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Apply! If you love R and you love building and making things, then give it a go. I was worried that my technical R coding skills or analytic chops would not be advanced enough to intern&amp;ndash;and I almost let this discourage me from applying. If I’d let that get in the way, I would have never realized how much I wanted the type of work I did this summer to continue to be a part of my career path.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Apply.jpg&#34; width=&#34;400px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;




&lt;h2 id=&#34;more-to-come&#34;&gt;More to come
  &lt;a href=&#34;#more-to-come&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;ve always been interested in the combo of art, education, and tech&amp;ndash; so if you&amp;rsquo;re interested in learning more about what I&amp;rsquo;ve gotten up to, then check out 
&lt;a href=&#34;http://desiree.rbind.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my website&lt;/a&gt;, follow me on 
&lt;a href=&#34;https://twitter.com/dcossyle&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;twitter&lt;/a&gt;, or come to rstudio conf where I&amp;rsquo;ll be giving a talk on my and my colleague&amp;rsquo;s R Markdown project about 
&lt;a href=&#34;https://tinystats.github.io/teacups-giraffes-and-statistics/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;teacup giraffes&lt;/a&gt; (to teach stats and R).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;more-bye.jpg&#34; width=&#34;400px&#34; style=&#34;display: block; margin: auto;&#34; /&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Workshops at rstudio::conf(2020)</title>
      <link>https://education.rstudio.com/blog/2019/10/conf-workshops/</link>
      <pubDate>Mon, 28 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/conf-workshops/</guid>
      <description>&lt;p&gt;rstudio::conf(2020) is fast approaching, and in addition to the many fantastic
talks lined up for the conference, we&amp;rsquo;re very much looking forward to the Training
Days, which will feature a whopping 19 2-day workshops!&lt;/p&gt;
&lt;p&gt;Below is a closer look at each of these workshops. We hope that this information
can help you decide which one to attend. It&amp;rsquo;s a tough decision!&lt;/p&gt;
&lt;p&gt;And once you make up your mind, you can head over to

&lt;a href=&#34;https://rstd.io/conf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstd.io/conf&lt;/a&gt; register for the conference and sign up
for a workshop. Please note that some workshops may fill up; to see how many spots are available, click on the link above and select &amp;ldquo;Agenda&amp;rdquo; from the top menu. Also, workshop-only registration for the conference will open up November 1.&lt;/p&gt;
&lt;iframe src=&#34;https://minecr.shinyapps.io/conf-2020-workshops/&#34; width=850 height=750&#34;&gt;&lt;/iframe&gt;
</description>
    </item>
    
    <item>
      <title>What it Was Like Interning for RStudio</title>
      <link>https://education.rstudio.com/blog/2019/10/what-it-was-like-interning-for-rstudio/</link>
      <pubDate>Fri, 25 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/what-it-was-like-interning-for-rstudio/</guid>
      <description>&lt;p&gt;I spent the summer creating a series of lessons to teach statistics and data science to software engineers
using software engineering data sources and academic research on software engineering practices.
It&amp;rsquo;s nowhere near finished,
but I learned a lot that I hope other people will find helpful.
If you don&amp;rsquo;t care about the details,
you can check out a first draft of the project at 
&lt;a href=&#34;https://ds4se.tech/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ds4se.tech&lt;/a&gt;.&lt;/p&gt;




&lt;h2 id=&#34;the-interview&#34;&gt;The Interview
  &lt;a href=&#34;#the-interview&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Over the past few years I have developed a love for R.
I even pleaded with my Quantitative Methods class to give it a chance,
reminding them that &lt;em&gt;any&lt;/em&gt; new language can be annoying.
(It turns out R is, but now I have a more nuanced understanding of why.)
So when I applied to RStudio it was in hope that I could combine my love of R with my PhD research in general machine learning literacy.&lt;/p&gt;
&lt;p&gt;I get extremely nervous for interviews,
which may have something to do with

&lt;a href=&#34;https://www.microsoft.com/en-us/research/uploads/prod/2019/08/Video_Calling_Challenges_for_Autism_camera-ready.pdf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The Needs of Autistic Adults in Video Calling&lt;/a&gt;.
It might also have to do with my all-over-the-place background and skills:
I don&amp;rsquo;t yet feel like a specialist in any one thing.
But the interview went well,
covering everything from my research to 
&lt;a href=&#34;[https://www.nytimes.com/2017/09/15/nyregion/rochester-university-sexual-harassment.html&#34;&gt;my activist work&lt;/a&gt;.
My interviewer (and soon-to-be internship supervisor) emailed me a few days after our interview to try to &lt;em&gt;call me&lt;/em&gt;
(for goodness sake).
I avoid phone calls like a good autistic millennial,
but at least I knew what I would be working on several months in advance,
which gave me time to rapidly learn everything I could about software engineering.&lt;/p&gt;




&lt;h2 id=&#34;the-project&#34;&gt;The Project
  &lt;a href=&#34;#the-project&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;Data Science for Software Engineers&amp;rdquo; is a set of hour-long RMarkdown lessons (and packaged data)
that students can use to learn statistics on software engineering problems.
The problems include &amp;ldquo;how many repositories are on GitHub and how fast is it growing?&amp;rdquo;
and &amp;ldquo;how bad will your code suffer if you&amp;rsquo;re sleep deprived?&amp;quot;,
and the idea is to motivate computer science students and early-career software engineers
to learn about data science and research findings
using topics they care about.&lt;/p&gt;
&lt;p&gt;When the project was first pitched to me
I had no idea why anyone cared about Git repos or Agile development or test suites or whatever.
What I &lt;em&gt;did&lt;/em&gt; get was teaching statistics in a meaningful and gentle way,
and when I told software engineers about the project their eyes lit up.&lt;/p&gt;




&lt;h2 id=&#34;preparation&#34;&gt;Preparation
  &lt;a href=&#34;#preparation&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I signed up for a Software Engineering Research seminar the second I accepted the internship
and vowed to read as much as I could before starting work so that no one would regret hiring me.
The first day in that seminar was incredibly frustrating.
I hadn&amp;rsquo;t realized how little I knew about software engineering:
I simply did not know the terminology or the practices &lt;em&gt;at all&lt;/em&gt;.
I&amp;rsquo;d written a few unit tests before, but that was about it.
I had no idea what a &amp;ldquo;test suite&amp;rdquo; was (it&amp;rsquo;s just a bunch of unit tests).
We were reading a paper that mentioned the use of &amp;ldquo;fuzzers&amp;rdquo;
and I felt totally out of my element.
(Fuzzing is just throwing random data at a program to try to break it
and make sure you didn&amp;rsquo;t miss any weird edge cases).
My RStudio mentor sent me lots of resources
and my PhD advisor 
&lt;a href=&#34;https://faculty.washington.edu/ajko/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amy Ko&lt;/a&gt; has a strong background in software engineering and computing education research.&lt;/p&gt;




&lt;h2 id=&#34;skills&#34;&gt;Skills
  &lt;a href=&#34;#skills&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The first day sucked,
in hindsight because I didn&amp;rsquo;t properly advocate for myself.
My mentor tasked me with the first lesson we wanted to make:
How many repositories are there on Github?
Well,
I had basically used one API before and then given up because I didn&amp;rsquo;t understand permissions,
what I had access to,
or how to submit queries.
I&amp;rsquo;m now in a course that I call &amp;ldquo;Bigger Data&amp;rdquo;
(because I already took &amp;ldquo;Big Data&amp;rdquo; and this one was next)
where I&amp;rsquo;m learning all the SQL, cloud computing, and API magic for data science.
But the first SQL I ever wrote was on my first day of my RStudio internship
and I didn&amp;rsquo;t want to admit how little I knew.
I got there eventually,
but I should have told my mentor that I needed time to ramp up.&lt;/p&gt;
&lt;p&gt;That first week was a sign of things to come:
the summer was a skills bootcamp for me
as well as an opportunity to &lt;em&gt;create&lt;/em&gt; educational materials
instead of theorizing how we should teach computing.
Some of the things I picked up include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction to SQL&lt;/li&gt;
&lt;li&gt;Waaaaaay better at using Git collaboratively and productively&lt;/li&gt;
&lt;li&gt;Also better at video conferencing
(if you don&amp;rsquo;t think this is a skill, you haven&amp;rsquo;t worked in a distributed company or had a long-distance relationship)&lt;/li&gt;
&lt;li&gt;Teaching skills and exercises and how to make hard choices when designing at scale&lt;/li&gt;
&lt;li&gt;Some API/cloud work&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ggplot2&lt;/code&gt;, &lt;code&gt;dplyr&lt;/code&gt;, and other data science skills&lt;/li&gt;
&lt;li&gt;Software engineering knowledge, both conceptual and practical&lt;/li&gt;
&lt;li&gt;Explaining statistics and envisioning how lessons could look like at large scale&lt;/li&gt;
&lt;li&gt;Company internals/business things I didn&amp;rsquo;t know about&lt;/li&gt;
&lt;li&gt;How to rid my work of excess exclamation points&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;next-steps&#34;&gt;Next Steps
  &lt;a href=&#34;#next-steps&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m back at PhD school now
working on interventions for developing machine learning literacy using personal data.
The project has a long way to go,
but I hope to return to it soon
to evaluate some of its effectiveness and finish enough of it so that we can begin to circulate it.
I&amp;rsquo;ll be at 
&lt;a href=&#34;https://rstudio.com/conference/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf 2020&lt;/a&gt; both as a volunteer
(equipped with some gender, accessibility, and sensory guidelines for all)
and with a quick lightning talk about the project—I hope to see you there.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A longer form of this post originally appeared 
&lt;a href=&#34;https://medium.com/bits-and-behavior/what-it-was-like-interning-for-rstudio-ca0193e64bf5&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My JavaScript Internship at RStudio</title>
      <link>https://education.rstudio.com/blog/2019/10/my-javascript-internship-at-rstudio/</link>
      <pubDate>Mon, 21 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/my-javascript-internship-at-rstudio/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post was written by 
&lt;a href=&#34;https://maya.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Maya Gans&lt;/a&gt; about her 2019 RStudio internship where she built &lt;a href=&#34;https://tidyblocks.tech&#34;&gt;https://tidyblocks.tech&lt;/a&gt;. Maya also documented her project and progress at &lt;a href=&#34;https://maya.rbind.io/tidyblocks/&#34;&gt;https://maya.rbind.io/tidyblocks/&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s funny to admit, but I applied for the RStudio internship because I wanted to learn JavaScript. I was receiving my Masters in Botany and found myself programstinating, a term I just made up for making plots and Shiny Apps from personal data instead of extracting DNA or writing my manuscript.&lt;/p&gt;
&lt;p&gt;But programming was only a byproduct of my Master&amp;rsquo;s work and I began to realize if I wanted to identify as a programmer, I needed a more holistic understanding beyond the subset of packages and functions I used for my Masters work.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;img1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Enter the 
&lt;a href=&#34;tidyblocks.tech&#34;&gt;TidyBlocks&lt;/a&gt; project. I remember in my interview telling 
&lt;a href=&#34;https://education.rstudio.com/author/greg&#34;&gt;Greg Wilson&lt;/a&gt; my primary goal for the summer: to know more about JavaScript. When applying, I felt comfortable with as much JavaScript as you&amp;rsquo;d find in the first chapter of any book: arrays, lists, strings, and basic operations. I also had created some 
&lt;a href=&#34;https://d3js.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;d3.js&lt;/a&gt; visualizations by Frankenstein-ing open source code snippets together. I was reading a lot about coding but hadn&amp;rsquo;t written much. I certainly never started a project from nothing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;img2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Starting a project in a language you don&amp;rsquo;t know sounds daunting, but TidyBlocks hit the failure sweet spot. Failure is an inevitable part of learning new skills, but trying something too far beyond your current ability can be debilitating. The TidyBlocks project was built on Google&amp;rsquo;s 
&lt;a href=&#34;https://developers.google.com/blockly&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Blockly&lt;/a&gt;, a JavaScript library for building programming editors. I wasn&amp;rsquo;t starting with a completely blank console, I had code to try to understand, and eventually build on.&lt;/p&gt;
&lt;p&gt;I spent my first month or so understanding the library, then eventually creating custom blocks to import, transform, and visualize data. I&amp;rsquo;d go to bed perplexed, and in the morning jump out of bed with a solution. Git allowed me to make code worse before it got better. Eventually I even stopped referring to 
&lt;a href=&#34;https://happygitwithr.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Happy Git with R&lt;/a&gt;. I learned how to work in branches and review code. I no longer questioned my abilities, figuring things out became a matter of when.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;img3.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;A little over halfway through the internship I had a working user interface and a palette of blocks. I found myself looking at the code written at the beginning of the internship and squirming. I could write this again. Better.&lt;/p&gt;
&lt;p&gt;TidyBlocks 2.0 began in a fresh repo where I cleaned up and abstracted the code. Once functioning, the webpage was overhauled again to use the 
&lt;a href=&#34;https://reactjs.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;React.js&lt;/a&gt; framework, a popular tool for front end web developers.&lt;/p&gt;
&lt;p&gt;I could talk about the specifics of the tool I developed, but I think what&amp;rsquo;s more important was that this internship gave me the space to learn tools and concepts I wanted to master by building something I am not only proud of, but know people can benefit from.&lt;/p&gt;
&lt;p&gt;Being a self taught programmer can be daunting, so interning for R Studio was the perfect mix of structured learning of core concepts mixed with creative freedom when executing the specifics. In fact, having a mentor who pushed me and believed in me gave me the confidence to apply (and land!) a job where I&amp;rsquo;ll be writing custom JavaScript for Shiny Apps. And the mentorship at RStudio goes well beyond your assigned instructor. I was initially intimidated by the giants who create the packages I use almost daily, but everyone at RStudio is incredibly approachable and excited to chat over virtual coffee (or communicate on Slack solely through emojis and gifs).&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also workshops offered to interact with employees outside of your project &amp;ndash; I learned how to be a TidyVerse instructor with Greg Wilson, and created a 
&lt;a href=&#34;https://maya.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown website&lt;/a&gt; with Alison Hill. I strongly attribute having a professional web presence to my employment and Alison will forever be my mentor AKA #RMom. I also learned a ton from the other interns in the cohort, some of whom I&amp;rsquo;m sure I&amp;rsquo;ll be friends with forever.&lt;/p&gt;
&lt;p&gt;I wanted to write an objective post where I measured the skills I had going into the internship against the many skills I gained, but I&amp;rsquo;d be remiss if I didn&amp;rsquo;t mention how profoundly this internship changed my life. Not only has this job empowered me to become a professional programmer, but it also gave me an insight into what an inclusive tech company looks like and what constitutes a healthy work life balance. I&amp;rsquo;m so grateful that I had the opportunity to learn from the people I hold so much respect for. I strongly believe anyone who is motivated and excited to learn would gain immensely from interning with RStudio. As much as I try to remain quantitative, what I&amp;rsquo;ve gained is immeasurable.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Tools for Teaching YAML with ymlthis</title>
      <link>https://education.rstudio.com/blog/2019/10/tools-for-teaching-yaml-with-ymlthis/</link>
      <pubDate>Fri, 18 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/tools-for-teaching-yaml-with-ymlthis/</guid>
      <description>&lt;p&gt;R Markdown is one of the most powerful aspects of the R ecosystem, and it’s also surprisingly intuitive. Markdown itself has a simple syntax, and R Markdown handles so many of the tricky details of document creation that the basics will get you a long way. But there’s one area of R Markdown that consistently trips students up: YAML.&lt;/p&gt;
&lt;p&gt;YAML (“Yet Another Markup Language” or “YAML Ain’t Markup Language,” depending on who you ask) is the metadata that tells R Markdown, pandoc, and other software exactly how to process or display the document. But YAML looks and smells differently than R. What’s with this white space? Does this need quotation marks? Where’s the documentation? Why doesn’t this work? Often, the simplest solution is to copy and paste the YAML from older documents. (That’s what I did for a long time. At least I knew it would probably work!)&lt;/p&gt;
&lt;p&gt;I spent my 
&lt;a href=&#34;https://blog.rstudio.com/2019/03/25/summer-interns-2019/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;summer internship at RStudio&lt;/a&gt; trying to reckon with this problem. Work my mentor 
&lt;a href=&#34;https://github.com/rich-iannone&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rich Iannone&lt;/a&gt; led to the 
&lt;a href=&#34;https://ymlthis.r-lib.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ymlthis&lt;/a&gt; package (
&lt;a href=&#34;https://malco.io/2019/10/10/introducing-ymlthis/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;now on CRAN!&lt;/a&gt;). ymlthis addresses these issues by documenting YAML options for R Markdown and friends, providing R functions to write YAML for you (in the correct syntax!), and providing new ways of working with R Markdown and YAML files.&lt;/p&gt;
&lt;p&gt;ymlthis also includes several tools useful for teaching YAML. Three particularly relevant elements are 1) writing YAML chunks for you in a reproducible, safe way, 2) drawing the nested structure underlying YAML, and 3) the YAML Fieldguide, a comprehensive guide to YAML options in the context of R Markdown. The first two are useful for creating teaching materials, while the third is a great place to point students to during exercises or for future reference.&lt;/p&gt;




&lt;h1 id=&#34;writing-yaml-with-ymlthis&#34;&gt;Writing YAML with ymlthis
  &lt;a href=&#34;#writing-yaml-with-ymlthis&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;One of the main features of ymlthis is that it can write YAML for you.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(ymlthis)
&lt;span style=&#34;color:#00f&#34;&gt;yml&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;yml_output&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;pdf_document&lt;/span&gt;(), &lt;span style=&#34;color:#00f&#34;&gt;html_document&lt;/span&gt;()) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;yml_latex_opts&lt;/span&gt;(fontsize &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;12pt&amp;#34;&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;---
author: Malcolm Barrett
date: &#39;`r format(Sys.Date())`&#39;
output:
  pdf_document: default
  html_document: default
fontsize: 12pt
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;By default, this simply prints to your console. (You can also write it to files or place it on your clipboard; see the 
&lt;a href=&#34;http://ymlthis.r-lib.org/articles/introduction-to-ymlthis.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;vignette introducing ymlthis&lt;/a&gt;). ymlthis includes a function, &lt;code&gt;asis_yaml_output()&lt;/code&gt;, that will take the result of &lt;code&gt;yml_*()&lt;/code&gt; functions (which all return objects of class &lt;code&gt;yml&lt;/code&gt;) and turns them into knitr YAML chunks. YAML chunks display the output as proper YAML (not R output, as above) with correct syntax highlighting. Since ymlthis produces safe, correct YAML, you won&amp;rsquo;t have to double-guess your teaching materials. For example, 
&lt;a href=&#34;https://education.rstudio.com/author/alison/&#34;&gt;Alison Hill&lt;/a&gt; uses it 
&lt;a href=&#34;https://github.com/rstudio-education/rmd4medicine/blob/master/static/slides/01-rmd-anatomy.Rmd#L412-L422&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;in her recent workshop, R Markdown for Medicine&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;last_yml&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# use the most recent `yml` object&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;asis_yaml_output&lt;/span&gt;()
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;---&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;author&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Malcolm&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Barrett&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;date&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#39;`r format(Sys.Date())`&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;output&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;pdf_document&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;default&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;html_document&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;default&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;fontsize&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;12pt&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;---&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In an R Markdown document (including slides!), a useful trick is to set a &lt;code&gt;knit_print&lt;/code&gt; method for the &lt;code&gt;yml&lt;/code&gt; object. Writing &lt;code&gt;knit_print.yml&lt;/code&gt; to call &lt;code&gt;asis_yaml_output()&lt;/code&gt; and including it in your document will automatically convert all &lt;code&gt;yml&lt;/code&gt; objects to YAML chunks.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;knit_print.yml &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;function&lt;/span&gt;(x, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;...&lt;/span&gt;) {
  ymlthis&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;asis_yaml_output&lt;/span&gt;(x, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;...&lt;/span&gt;)
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1 id=&#34;drawing-the-hierarchy-in-a-yaml-header&#34;&gt;Drawing the hierarchy in a YAML header
  &lt;a href=&#34;#drawing-the-hierarchy-in-a-yaml-header&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;YAML uses whitespace to specify the relationship between fields. This syntax can be quite confusing for R users since R does not use whitespace in this way. To make these relationships more explicit, &lt;code&gt;draw_yml_tree()&lt;/code&gt; takes a &lt;code&gt;yml&lt;/code&gt; object and draws the underlying connections between the levels of the metadata.&lt;/p&gt;
&lt;p&gt;Let’s consider an example using output functions. The &lt;code&gt;output&lt;/code&gt; field takes R functions from the rmarkdown package that specify how to produce the document. The default, for instance is &lt;code&gt;rmarkdown::html_document()&lt;/code&gt;. While we don’t usually write it this way, the YAML fields nested underneath the output types are just arguments that get passed to the function you’re using (thus you can see the options by reading the help page for the function, e.g. &lt;code&gt;?rmarkdown::html_document()&lt;/code&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;yml&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;yml_output&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;html_document&lt;/span&gt;(toc &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;, toc_float &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;---
author: Malcolm Barrett
date: &#39;`r format(Sys.Date())`&#39;
output:
  html_document:
    toc: true
    toc_float: true
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;draw_yml_tree()&lt;/code&gt; draws this relationship more clearly.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;draw_yml_tree&lt;/span&gt;() &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# draws the most recent YAML by default&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;├── author: Malcolm Barrett
├── date: &#39;`r format(Sys.Date())`&#39;
└── output:
    └── html_document:
        ├── toc: true
        └── toc_float: true
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;toc&lt;/code&gt; and &lt;code&gt;toc_true&lt;/code&gt; are &lt;em&gt;nested&lt;/em&gt; under &lt;code&gt;html_document&lt;/code&gt;, which is, in turn, nested under &lt;code&gt;output&lt;/code&gt;. Here&amp;rsquo;s the structure for more than one output type:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;yml&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;yml_output&lt;/span&gt;(
    &lt;span style=&#34;color:#00f&#34;&gt;html_document&lt;/span&gt;(toc &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;, toc_float &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;),
    &lt;span style=&#34;color:#00f&#34;&gt;pdf_document&lt;/span&gt;()
  ) &lt;span style=&#34;color:#666&#34;&gt;%&amp;gt;%&lt;/span&gt; 
  &lt;span style=&#34;color:#00f&#34;&gt;draw_yml_tree&lt;/span&gt;() 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;├── author: Malcolm Barrett
├── date: &#39;`r format(Sys.Date())`&#39;
└── output:
    ├── html_document:
    │   ├── toc: true
    │   └── toc_float: true
    └── pdf_document: default
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;html_document&lt;/code&gt; and &lt;code&gt;pdf_document&lt;/code&gt; are both nested under &lt;code&gt;output&lt;/code&gt;, while the arguments for &lt;code&gt;html_document&lt;/code&gt; are still connect to that function. This also explains why missing whitespace will often produce the wrong results: if we misspecify the whitespace, we misspecify the structure of the metadata. Let&amp;rsquo;s say we write some YAML that looks like this, where both &lt;code&gt;toc&lt;/code&gt; and &lt;code&gt;toc_float&lt;/code&gt; have the wrong indentation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;---&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;output&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;html_document&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;toc&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;toc_float&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;---&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This document won’t render correctly, because the YAML has this underlying structure:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;├── output:
│   ├── html_document: null
│   └── toc: true
└── toc_float: true
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;R Markdown doesn&amp;rsquo;t know that &lt;code&gt;toc&lt;/code&gt; and &lt;code&gt;toc_float&lt;/code&gt; are related to &lt;code&gt;html_document()&lt;/code&gt;. It thinks the value of &lt;code&gt;html_document&lt;/code&gt; is &lt;code&gt;NULL&lt;/code&gt;! This particular example even renders (because, although &lt;code&gt;toc&lt;/code&gt; is not an output function, R Markdown only evaluates &lt;code&gt;html_document&lt;/code&gt;). Whitespace errors like these often fail silently.&lt;/p&gt;




&lt;h1 id=&#34;the-yaml-fieldguide&#34;&gt;The YAML Fieldguide
  &lt;a href=&#34;#the-yaml-fieldguide&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;ymlthis_fieldguide.jpeg&#34; alt=&#34;The YAML Fieldguide and the types of YAML documented therein. Image by Mara Averick&#34; width=&#34;75%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: The YAML Fieldguide and the types of YAML documented therein. Image by Mara Averick&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The final resource I want to talk about is one of the most straightforward but most useful: documentation. YAML that we use for R Markdown is documented in many ways across many pieces of software. It’s often hard to dig up what the options are. A benefit of using R functions to write YAML is that each field is documented in the function’s help page. But ymlthis goes one step further: 
&lt;a href=&#34;http://ymlthis.r-lib.org/articles/yaml-fieldguide.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;the YAML Fieldguide&lt;/a&gt;, one of the three vignettes included in ymlthis, aggregates every YAML option documented in the package, organized by source Because the options are in a single place, they are easily searchable. They also link back to the help pages for more information.&lt;/p&gt;
&lt;p&gt;The Fieldguide thus provides a comprehensive source for finding options to set in YAML and understanding what valid values are.&lt;/p&gt;




&lt;h1 id=&#34;learn-more&#34;&gt;Learn More
  &lt;a href=&#34;#learn-more&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;The ymlthis package is still early in its lifecycle, but it can already do a lot, including writing R Markdown and YAML files, creating ad-hoc templates, and creating new R Markdown files using an add-in that helps you write your YAML. 
&lt;a href=&#34;https://ymlthis.r-lib.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;See the package website&lt;/a&gt; for more. Of particular use may be its three vignettes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://ymlthis.r-lib.org/articles/introduction-to-ymlthis.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;An Introduction to ymlthis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://ymlthis.r-lib.org/articles/yaml-overview.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;YAML: an Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://ymlthis.r-lib.org/articles/yaml-fieldguide.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;The YAML Fieldguide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>A Summer of RStudio and ggplot2</title>
      <link>https://education.rstudio.com/blog/2019/10/a-summer-of-rstudio-and-ggplot2/</link>
      <pubDate>Tue, 15 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/10/a-summer-of-rstudio-and-ggplot2/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post was written by 
&lt;a href=&#34;https://fishandwhistle.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Dewey Dunnington&lt;/a&gt; about his work during his 2019 RStudio internship. Dewey&amp;rsquo;s original post was published on his 
&lt;a href=&#34;https://fishandwhistle.net/post/2019/a-summer-of-rstudio-and-ggplot2/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog&lt;/a&gt; and is published here with some minor edits with Dewey&amp;rsquo;s consent, as part of our series highlighting the work of RStudio&amp;rsquo;s summer interns.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This past summer, 
&lt;a href=&#34;https://fishandwhistle.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;I&lt;/a&gt; had the incredible opportunity to spend the summer as an 
&lt;a href=&#34;https://rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio&lt;/a&gt; intern working with 
&lt;a href=&#34;http://hadley.nz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hadley Wickham&lt;/a&gt; on the 
&lt;a href=&#34;https://ggplot2.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggplot2&lt;/a&gt; package. It was a welcome change of pace from writing 
&lt;a href=&#34;https://fishandwhistle.net/project/geoscience/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;articles&lt;/a&gt; about mud in lakes, and I&amp;rsquo;m sad the internship is over.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;img src=&#34;https://user-images.githubusercontent.com/10995762/66663010-4313f200-ec20-11e9-9cda-5d96b9c5301f.jpg&#34; alt=&#34;RStudio summer interns and software engineers meet up at the Boston office&#34; width=&#34;50%&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: RStudio summer interns and software engineers meet up at the Boston office&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I had the opportunity to work alongside 
&lt;a href=&#34;https://blog.rstudio.com/2019/03/25/summer-interns-2019/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;a lot of great interns&lt;/a&gt; at a 
&lt;a href=&#34;https://rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fantastic company&lt;/a&gt;, prepare 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/issues?page=1&amp;amp;q=is%3Aissue&amp;#43;label%3A%22tidy-dev-day&amp;#43;%3Anerd_face%3A%22&amp;amp;utf8=%E2%9C%93&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tons of issues for tidy-dev-day at UseR!&lt;/a&gt;, become an 
&lt;a href=&#34;https://fishandwhistle.net/project/training/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio-certified tidyverse trainer&lt;/a&gt;, spiff up 
&lt;a href=&#34;https://fishandwhistle.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my website&lt;/a&gt; considerably with 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown&lt;/a&gt;, and of course develop a few humble new features for ggplot2! Here are a few of them:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;library&lt;/span&gt;(ggplot2)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1 id=&#34;new-vignette-on-using-ggplot2-in-packages&#34;&gt;New vignette on using ggplot2 in packages
  &lt;a href=&#34;#new-vignette-on-using-ggplot2-in-packages&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;I joined as an intern just prior to the 
&lt;a href=&#34;https://www.tidyverse.org/articles/2019/06/ggplot2-3-2-0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;release of ggplot2 3.2.0&lt;/a&gt;. Before all ggplot2 releases, we run the CMD check on every reverse dependency (there are 2,622 of them as of the last revdep check) with the CRAN version and with the release candidate to make sure we don&amp;rsquo;t introduce new failures. In sifting through the 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/pull/3303#issue-275916520&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;failures&lt;/a&gt;, it became clear that there was no documentation about how to use ggplot2 in a package in a way that wouldn&amp;rsquo;t be likely to break in the future. Thus, the 
&lt;a href=&#34;https://ggplot2.tidyverse.org/dev/articles/ggplot2-in-packages.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Using ggplot2 in packages vignette&lt;/a&gt; was born! It covers how to refer to ggplot2 functions, how to create a mapping without triggering a CMD check error, and best practices for common ggplot2 uses in packages (like creating a theme or visualizing an object).&lt;/p&gt;




&lt;h1 id=&#34;coord_trans-improvements&#34;&gt;coord_trans() improvements
  &lt;a href=&#34;#coord_trans-improvements&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;The difference between a ggplot with &lt;code&gt;scale_(x|y)_log10()&lt;/code&gt; and a ggplot with &lt;code&gt;coord_trans((x|y) = &amp;quot;log10&amp;quot;)&lt;/code&gt; is a common reason that issues get opened in ggplot2. In short, &lt;code&gt;scale_(x|y)_log10()&lt;/code&gt; applies &lt;code&gt;log10()&lt;/code&gt; to the &lt;code&gt;x&lt;/code&gt; and/or &lt;code&gt;y&lt;/code&gt; aesthetics &lt;em&gt;before&lt;/em&gt; anything happens, including computing any statistics. Using &lt;code&gt;coord_trans((x|y) = &amp;quot;log10&amp;quot;)&lt;/code&gt; applies &lt;code&gt;log10()&lt;/code&gt; &lt;em&gt;after&lt;/em&gt; everything happens. This means that a &lt;code&gt;geom_boxplot()&lt;/code&gt; with &lt;code&gt;scale_(x|y)_log10()&lt;/code&gt; is going to have different outliers (say) than a &lt;code&gt;geom_boxplot()&lt;/code&gt; with &lt;code&gt;coord_trans((x|y) = &amp;quot;log10&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;p &lt;span style=&#34;color:#666&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(diamonds, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(cut, price)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;geom_boxplot&lt;/span&gt;()

patchwork&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;wrap_plots&lt;/span&gt;(
  p &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;scale_y_log10&lt;/span&gt;(),
  p &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;coord_trans&lt;/span&gt;(y &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;log10&amp;#34;&lt;/span&gt;),
  nrow &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt;
)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-4-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s common for an issue to be opened for cases where this is non-intuitive (&lt;code&gt;stat_summary()&lt;/code&gt; comes to mind - it&amp;rsquo;s not intuitive that summary statistics are not calculated on the original data), and the response is often that &lt;code&gt;coord_trans()&lt;/code&gt; should be used instead of a transformed scale. However, there were 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/issues/3338&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;problems with the expansion of discrete scales in coord_trans()&lt;/a&gt; that prevented &lt;code&gt;coord_trans()&lt;/code&gt; from being a viable solution. In the 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/pull/3380&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PR fixing this&lt;/a&gt;, I also fixed a 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/issues/2990&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;problem with second axes in coord_trans()&lt;/a&gt;, and made sure that the &lt;code&gt;&amp;quot;reverse&amp;quot;&lt;/code&gt; trans worked (it didn&amp;rsquo;t before, but it doesn&amp;rsquo;t appear that anybody noticed). Hopefully &lt;code&gt;coord_trans()&lt;/code&gt; is now ready to serve as a drop-in replacement  when &lt;code&gt;scale_(x|y)_log10()&lt;/code&gt; gives non-intuitive results!&lt;/p&gt;




&lt;h1 id=&#34;na-limits-in-coord_cartesian&#34;&gt;NA limits in coord_cartesian()
  &lt;a href=&#34;#na-limits-in-coord_cartesian&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Another common source of confusion in ggplot2 is the difference between &lt;code&gt;scale_(x|y)_continuous(limits = ...)&lt;/code&gt; and &lt;code&gt;coord_cartesian((x|y)lim = ...)&lt;/code&gt;. When setting scale limits (this includes &lt;code&gt;xlim()&lt;/code&gt; and &lt;code&gt;ylim()&lt;/code&gt;), data is &amp;ldquo;censored&amp;rdquo; by default, meaning values outside this range magically turn into &lt;code&gt;NA&lt;/code&gt; and disappear; when setting the coordinate system limits, the data are still exist, but data outside the (expanded) limits are not shown.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;patchwork&lt;span style=&#34;color:#666&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;wrap_plots&lt;/span&gt;(
  p &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;scale_y_continuous&lt;/span&gt;(limits &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;10000&lt;/span&gt;)),
  p &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;coord_cartesian&lt;/span&gt;(ylim &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;10000&lt;/span&gt;))
)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## Warning: Removed 5222 rows containing non-finite values (stat_boxplot).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-5-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;In this example, using scale limits (&lt;em&gt;on the left&lt;/em&gt;) leads to displaying spurious information about where the min and max of the data are. When this issue comes up, the response is usually that the user should use &lt;code&gt;coord_cartesian(ylim = ...)&lt;/code&gt; (&lt;em&gt;as shown on the right&lt;/em&gt;) instead of &lt;code&gt;scale_y_continuous(limits = ...)&lt;/code&gt;. Scale limits have this awesome feature where you can pass &lt;code&gt;NA&lt;/code&gt; as one or more of the limits to refer to the minimum or maximum of the data, but this previously wasn&amp;rsquo;t possible for coordinate system limits. Now it is! It&amp;rsquo;s particularly useful with facets where &lt;code&gt;scales = &amp;quot;free&amp;quot;&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(diamonds, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(color, price)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_boxplot&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;facet_wrap&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;vars&lt;/span&gt;(cut), scales &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ba2121&#34;&gt;&amp;#34;free_y&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;coord_cartesian&lt;/span&gt;(ylim &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;NA&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-6-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;




&lt;h1 id=&#34;axis-guide-improvements&#34;&gt;Axis guide improvements
  &lt;a href=&#34;#axis-guide-improvements&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;When I started my internship, there was a long-standing open 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/issues/3281&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;issue about overlapping axis text&lt;/a&gt;. Previously, it was impossible to do any customization of axes other than change the &lt;code&gt;breaks&lt;/code&gt; and/or &lt;code&gt;labels&lt;/code&gt; in the &lt;code&gt;scale_*()&lt;/code&gt; functions, which could be customized a bit using &lt;code&gt;theme()&lt;/code&gt;, and anything else was a crazy workaround. Now that 
&lt;a href=&#34;https://github.com/tidyverse/ggplot2/pull/3398&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this pull request &lt;/a&gt; has been merged, axes will use the same guide system that powers &lt;code&gt;guide_legend()&lt;/code&gt; and &lt;code&gt;guide_colourbar()&lt;/code&gt;, such that you will be able to customize how axes are drawn (and in the future create custom ones!). This feature comes with a couple improvements for dealing with overlapping text in the new &lt;code&gt;guide_axis()&lt;/code&gt; function:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# you&amp;#39;ll need the current development version of the package&lt;/span&gt;
&lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# remotes::install_github(&amp;#34;tidyverse/ggplot2&amp;#34;)&lt;/span&gt;
&lt;span style=&#34;color:#00f&#34;&gt;ggplot&lt;/span&gt;(mpg, &lt;span style=&#34;color:#00f&#34;&gt;aes&lt;/span&gt;(hwy, cty)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;geom_point&lt;/span&gt;() &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#408080;font-style:italic&#34;&gt;# create closely-spaced breaks that will overlap&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;scale_x_continuous&lt;/span&gt;(breaks &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;seq&lt;/span&gt;(&lt;span style=&#34;color:#666&#34;&gt;10&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;50&lt;/span&gt;, &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt;)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;facet_wrap&lt;/span&gt;(&lt;span style=&#34;color:#00f&#34;&gt;vars&lt;/span&gt;(drv)) &lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;
  &lt;span style=&#34;color:#00f&#34;&gt;guides&lt;/span&gt;(x &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;guide_axis&lt;/span&gt;(check.overlap &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#008000;font-weight:bold&#34;&gt;TRUE&lt;/span&gt;))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;figs/unnamed-chunk-7-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Building Tidy Tools Workshop</title>
      <link>https://education.rstudio.com/events/2019-10-atl-tidytools/</link>
      <pubDate>Mon, 14 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2019-10-atl-tidytools/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Welcome to the Tidyverse</title>
      <link>https://education.rstudio.com/events/2019-10-atl-intro-tidy/</link>
      <pubDate>Mon, 14 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2019-10-atl-intro-tidy/</guid>
      <description>&lt;p&gt;Looking for an effective way to learn R? This one-day course will teach you a workflow for doing data science with the R language. It focuses on using R&amp;rsquo;s Tidyverse, which is a core set of R packages that are known for their impressive performance and ease of use. We will focus on doing data science, not programming. Your instructors will include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Teon Brooks (Mozilla)&lt;/li&gt;
&lt;li&gt;Carl Howe (RStudio)&lt;/li&gt;
&lt;li&gt;Christina Koch (University of Wisconsin)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and you will learn to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visualize data with R&amp;rsquo;s ggplot2 package&lt;/li&gt;
&lt;li&gt;Wrangle data with R&amp;rsquo;s dplyr package&lt;/li&gt;
&lt;li&gt;Fit models with base R&lt;/li&gt;
&lt;li&gt;Document your work reproducibly with R Markdown&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Along the way, you will practice using R&amp;rsquo;s syntax, gaining comfort with R through many exercises and examples. Bring your laptop! And the best news is, a full day of learning is only $20.&lt;/p&gt;
&lt;p&gt;(Please note that this workshop is being offered twice, once on Monday Oct 14 and again on Monday Oct 15.)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Remastering &#39;Master the Tidyverse&#39;</title>
      <link>https://education.rstudio.com/blog/2019/09/remaster-tidyverse/</link>
      <pubDate>Thu, 26 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/09/remaster-tidyverse/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been teaching people how to use the Tidyverse in a course called &lt;em&gt;Master the Tidyverse&lt;/em&gt;, usually in one or two day long conference workshops. Each time I teach, I take notes during class and then polish my material afterwards, gradually honing a better and better set of class materials. The approach has worked well—I&amp;rsquo;ve gotten great reviews and have even won awards for my teaching. But my course was designed for R users who have never heard of the Tidyverse, and I can&amp;rsquo;t find them anymore. Now I&amp;rsquo;m updating the material for modern R beginners; and as I go, I&amp;rsquo;m making the material accessible for &lt;em&gt;everyone&lt;/em&gt; to use. Looking for teaching material for an intro to R with the Tidyverse? Please help yourself!&lt;/p&gt;




&lt;h1 id=&#34;the-content&#34;&gt;The content
  &lt;a href=&#34;#the-content&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;
&lt;a href=&#34;https://github.com/rstudio-education/remaster-the-tidyverse/tree/master&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;This github repository&lt;/a&gt; contains editable class materials for two separate one day workshops:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Welcome to the Tidyverse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A gentle introduction to R and its Tidyverse that focuses on learning to do Exploratory Data Analysis with the 
&lt;a href=&#34;https://ggplot2.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ggplot2&lt;/a&gt;, 
&lt;a href=&#34;https://dplyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dplyr&lt;/a&gt;, 
&lt;a href=&#34;https://broom.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;broom&lt;/a&gt;, 
&lt;a href=&#34;https://modelr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;modelr&lt;/a&gt;, and 
&lt;a href=&#34;https://rmarkdown.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rmarkdown&lt;/a&gt; packages. The course focuses on doing data science, not writing code; but by the end of the day, students will find that they have gained confidence running code with R.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Wrangling with the Tidyverse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An introduction to wrangling lists and tabular data in R with the 
&lt;a href=&#34;https://tidyr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;tidyr&lt;/a&gt;, 
&lt;a href=&#34;https://stringr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;stringr&lt;/a&gt;, 
&lt;a href=&#34;https://forcats.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;forcats&lt;/a&gt;, 
&lt;a href=&#34;https://lubridate.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;lubridate&lt;/a&gt;, and 
&lt;a href=&#34;https://purrr.tidyverse.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;purrr&lt;/a&gt; packages. The course focuses on creating and using tidy tables and is designed to be a sequel to &lt;em&gt;Welcome to the Tidyverse&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The workshops can be taught sequentially as a two day workshop, or spread out to make eight 90 minute classes (more-or-less).&lt;/p&gt;
&lt;p&gt;Each course directory contains the editable Apple Keynote slides that I present during class, as well as the R Markdown files that I give to students. The R Markdown files contain the scaffolded exercises that students work through during class. All of the material is copyrighted under the 
&lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Creative Commons BY-SA 4.0&lt;/a&gt; copyright to make the material easy to reuse. I encourage you to reuse it and adapt it to your own courses as you like! &lt;strong&gt;Sorry, I do not work in PowerPoint and will not be providing PowerPoint versions of the slides.&lt;/strong&gt; But see 
&lt;a href=&#34;https://www.icloud.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;icloud.com&lt;/a&gt; for a free way to work with Keynote slides.&lt;/p&gt;
&lt;p&gt;Both courses are ready to teach as is—I&amp;rsquo;ve taught them several times in this format with pleasing results, but this is my &lt;em&gt;development&lt;/em&gt; repository, which means that you can expect slight changes to the courses from time to time. If you plan to use this material, I suggest that you 
&lt;a href=&#34;https://help.github.com/en/articles/fork-a-repo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fork a copy of the repository&lt;/a&gt;. This will give you your own stable material to work from.&lt;/p&gt;




&lt;h1 id=&#34;logistics&#34;&gt;Logistics
  &lt;a href=&#34;#logistics&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;I&amp;rsquo;ve developed an efficient way to deliver the course as a workshop that I encourage you to try:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;When scheduling a venue, &lt;em&gt;ensure&lt;/em&gt; that the classroom has power strips for the students and wireless internet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;About a week ahead of the class, email the students the 
&lt;a href=&#34;https://github.com/rstudio-education/remaster-the-tidyverse/blob/master/Welcome-To-The-Tidyverse/install-instructions.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workshop set up instructions&lt;/a&gt;. These remind students to bring a laptop and a power cord, tell students how to download the free software that we will use in class, and ask students to create a free RStudio Cloud account. I do not tell students this unless they are having severe installation bugs, but &lt;em&gt;we won&amp;rsquo;t use these local copies during the workshop&lt;/em&gt;. They are only backups in case the classroom wireless network fails. I generally do not have students download slides, etc. ahead of time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set up an 
&lt;a href=&#34;https://rstudio.cloud/learn/guide&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio.cloud&lt;/a&gt; project for the students to use on the day of class. Pre-install all of the packages that students will use and upload all of the course materials to the project directory. Be sure to open and knit one of the student exercises to prompt RStudio Cloud to also install all of the packages related to kniting R Markdown documents (if necessary).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under the settings (gear) icon, click Access and then make the project viewable by everyone.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the project URL and paste it over the analagous URL in the 01-Introduction slide decks.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;On the day of the course:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have students visit the URL when prompted by the slides.&lt;/li&gt;
&lt;li&gt;Demonstrate what will happen when they do. It will take ~35 seconds for everyone&amp;rsquo;s project to open.&lt;/li&gt;
&lt;li&gt;Have students immediately click &amp;ldquo;Save a Permanent Copy&amp;rdquo; at the top of their project and note the new URL that results. It is personalized to them.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At this point, each student will have an indentical instance of R and RStudio to run their exercises in. They will also have access to all of the course materials, which are included in the project. You can show students how to download these materials to their project locally (if they wish) when prompted by the slides. Students will have access to their permanent copies of the RStudio Cloud project, and the work they did therein, forever. Like most things &lt;strong&gt;RStudio Cloud no longer supports Internet Explorer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Click the links below to see example RStudio Cloud projects for recent versions of each of the workshops:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio.cloud/project/385945&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Welcome to the Tidyverse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://rstudio.cloud/project/385988&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Data Wrangling with the Tidyverse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1 id=&#34;why-not-have-students-work-locally&#34;&gt;Why not have students work locally?
  &lt;a href=&#34;#why-not-have-students-work-locally&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;I&amp;rsquo;ve adopted this workflow because it drastically reduces the amount of time I waste at the beginning of class fixing student&amp;rsquo;s installation bugs.&lt;/p&gt;
&lt;p&gt;This may be controversial, but I&amp;rsquo;ve come to accept that I&amp;rsquo;m there to teach students a specific, high value skill. Not to be their tech support. I expect students to be able to handle R install issues on their own or with other resources—especially when the install issues are side effects of security settings or OS&amp;rsquo;s that students choose to use for their own reasons, as many of them are. Also, it is not like I&amp;rsquo;m asking them to install python (duck!).&lt;/p&gt;
&lt;p&gt;A small number of students will not be able to log on to the internet without help, but I&amp;rsquo;ve found that I or a TA can help these students during one of the many student exercise sections without delaying the whole class.&lt;/p&gt;




&lt;h1 id=&#34;other-tips&#34;&gt;Other tips
  &lt;a href=&#34;#other-tips&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;I usually play a 
&lt;a href=&#34;https://github.com/rstudio-education/remaster-the-tidyverse/blob/master/Welcome-To-The-Tidyverse/keynotes/00-Preclass-loop.key&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;looping slide show&lt;/a&gt; before class. It can let students know they are in the right place, remind them to connect to the wireless, or do some useful pre-teaching. It&amp;rsquo;s a bit like arriving early to the movies—but with fewer trivia questions.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t neglect the beginning warm up activity where students talk to each other. A lively discussion at the start of the day will set the tone for the rest of the day. I notice that students are much more engaged, much more talkative, and ask more questions if I begin the day with some sort of free-for-all. In short, it makes class more fun to teach. If you find yourself starting the second day in the middle of an unfinished unit, be sure to insert a warm up meet and re-greet discussion at the start of class—or don&amp;rsquo;t and see what I&amp;rsquo;m talking about.&lt;/li&gt;
&lt;li&gt;The timers end with a beep. If it is audible, it will help you regain student attention at the end of an exercise, especially if the exercise involves discussion.&lt;/li&gt;
&lt;li&gt;Slides are cheap, so I use a lot of them. Don&amp;rsquo;t feel like you should dwell on each slide—there&amp;rsquo;s no time for that.&lt;/li&gt;
&lt;li&gt;Use the Tower of Babel picture in the intro to point out that there are multiple ways to do many things in R — and that&amp;rsquo;s OK. The ones you are teaching happen to work well together as a system because they share a common syntax and intuition. Learning one will help students learn the rest. When a student inevitably asks why not do X another way, don&amp;rsquo;t argue. If the student feels confident doing X the other way, then he or she should; but for today the student should try the new way. He or she might like it, but it is OK if they do not.&lt;/li&gt;
&lt;li&gt;Have fun!&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Upcoming Instructor Training Events</title>
      <link>https://education.rstudio.com/blog/2019/09/upcoming-instructor-training-events/</link>
      <pubDate>Wed, 25 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/09/upcoming-instructor-training-events/</guid>
      <description>&lt;p&gt;Over two dozen people are now certified instructors and listed in our 
&lt;a href=&#34;https://rstd.io/trainers&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;trainers&amp;rsquo; directory&lt;/a&gt;,
and more are in the pipeline.
If you would like to join them,
the first step is to take part in one of our upcoming training classes.
We held a full class for people in Europe, the Middle East, and Africa (Sept 16-17),
and another full class started today (Sept 25-26) for people in the Americas.&lt;/p&gt;
&lt;p&gt;We still have some space in two upcoming classes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;December 9-10, 2019; a two-day online session, and&lt;/li&gt;
&lt;li&gt;January 28, 2020; a one-day training workshop that will take place in person at 
&lt;a href=&#34;https://web.cvent.com/event/36ebe042-0113-44f1-8e36-b9bc5d0733bf/summary&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf 2020&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These come on top of a dozen other offerings this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one at rstudio::conf 2019&lt;/li&gt;
&lt;li&gt;three for people in Europe, the Middle East, and Africa&lt;/li&gt;
&lt;li&gt;another four targeting the Americas&lt;/li&gt;
&lt;li&gt;one for East Asia and Australia/New Zealand&lt;/li&gt;
&lt;li&gt;one for our interns, and&lt;/li&gt;
&lt;li&gt;two for specific customers&amp;rsquo; teams.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The online course runs 4 hours each day (i.e., two back-to-back half-days);
the materials are 
&lt;a href=&#34;https://drive.google.com/drive/folders/13ohFt3D0EJ5PDbMaWTxnHH-hwA7G0IvY&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;available online&lt;/a&gt;,
and a book-length version is 
&lt;a href=&#34;http://teachtogether.tech&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;also available&lt;/a&gt;.
After completing the course,
participants must do one exam on teaching
and one each on the technical topics (tidyverse and/or Shiny).
If you would like to take part,
please fill in 
&lt;a href=&#34;https://docs.google.com/forms/d/e/1FAIpQLSdnybZ-Zs64QE1h7bk67uRs1UCUi1Tibi3noefyStrTHplSDA/viewform&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this form&lt;/a&gt; to tell us about yourself
or mail 
&lt;a href=&#34;mailto:traininginstructor@rstudio.com&#34;&gt;us&lt;/a&gt; if you have questions.&lt;/p&gt;
&lt;p&gt;For more about RStudio&amp;rsquo;s instructor training program, please see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://blog.rstudio.com/2019/07/18/rstudio-trainer-directory-launches/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Trainer Directory Launches&lt;/a&gt; (2019-07-18)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://blog.rstudio.com/2019/05/21/rstudio-instructor-training-updates/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Instructor Training Updates&lt;/a&gt; (2019-05-21)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://blog.rstudio.com/2019/02/28/rstudio-instructor-training/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Instructor Training&lt;/a&gt; (2019-02-28)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Welcome!</title>
      <link>https://education.rstudio.com/blog/2019/09/welcome/</link>
      <pubDate>Tue, 24 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/blog/2019/09/welcome/</guid>
      <description>&lt;p&gt;Hello and welcome to the RStudio Education website! We hope to make 
&lt;a href=&#34;https://education.rstudio.com/&#34;&gt;education.rstudio.com&lt;/a&gt; a community resource for everyone who wants to 
&lt;a href=&#34;https://education.rstudio.com/learn/&#34;&gt;learn&lt;/a&gt; or 
&lt;a href=&#34;https://education.rstudio.com/teach/&#34;&gt;teach&lt;/a&gt; data science with R and RStudio.&lt;/p&gt;
&lt;p&gt;RStudio&amp;rsquo;s mission is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;To equip everyone, regardless of means, to participate in a global economy that rewards data literacy.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Our education team supports this mission broadly by supporting people who want to learn R (or learn new things in R), and those who want to teach them. This site is designed for both.&lt;/p&gt;




&lt;h1 id=&#34;what-is-on-this-site&#34;&gt;What is on this site?
  &lt;a href=&#34;#what-is-on-this-site&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;There are four main sections, which you&amp;rsquo;ll always be able to find in the upper navigation bar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://education.rstudio.com/blog&#34;&gt;&lt;strong&gt;Blog&lt;/strong&gt;.&lt;/a&gt; This is the 🆕 RStudio Education Team blog. Here, we&amp;rsquo;ll post announcements for events and other resources as they come up, as well as general R education-related content that we are excited about sharing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://education.rstudio.com/learn&#34;&gt;&lt;strong&gt;Learn&lt;/strong&gt;.&lt;/a&gt; Our advice for how learners can expand their knowledge about R and popular packages from RStudio, like tidyverse and Shiny. You&amp;rsquo;ll find three learning pathways to help you become productive in the minimum amount of time, based on your experience level: 
&lt;a href=&#34;https://education.rstudio.com/learn/beginner&#34;&gt;beginner&lt;/a&gt;, 
&lt;a href=&#34;https://education.rstudio.com/learn/intermediate&#34;&gt;intermediate&lt;/a&gt;, and 
&lt;a href=&#34;https://education.rstudio.com/learn/expert&#34;&gt;expert&lt;/a&gt;. The content and links on these pages may change as new resources become available and grab our attention. So rest assured — this page will be kept up-to-date, but that also means that our recommendations might change too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://education.rstudio.com/teach&#34;&gt;&lt;strong&gt;Teach&lt;/strong&gt;.&lt;/a&gt; Our team has trained a lot of learners to use R for data science. Drawing on that experience, we&amp;rsquo;ve broken down our collective advice and resources into three separable and learnable skills: how to 
&lt;a href=&#34;https://education.rstudio.com/teach/how-to-teach&#34;&gt;teach&lt;/a&gt; &lt;em&gt;(in general)&lt;/em&gt;, how to create 
&lt;a href=&#34;https://education.rstudio.com/teach/materials&#34;&gt;materials&lt;/a&gt; to teach R and data science, and how to 
&lt;a href=&#34;https://education.rstudio.com/teach/tools&#34;&gt;set up effective learning environments&lt;/a&gt; for teaching R and data science.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://education.rstudio.com/trainers&#34;&gt;&lt;strong&gt;Certify&lt;/strong&gt;.&lt;/a&gt; In 2019, we launched an instructor training and certification program that aims to help people apply modern evidence-based teaching practices to teach data science using R and RStudio’s products, and to help people who need such training find the trainers they need. On this 
&lt;a href=&#34;https://education.rstudio.com/trainers&#34;&gt;page&lt;/a&gt;, you can meet our Certified Trainers and find out more about the program and the application process.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, welcome — we are happy you found us!&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://desiree.rbind.io/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;welcome.jpg&#34; alt=&#34;Art by Desirée De Leon&#34; width=&#34;564&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 1: Art by Desirée De Leon&lt;/p&gt;
&lt;/div&gt;




&lt;h1 id=&#34;about-the-team&#34;&gt;About the team
  &lt;a href=&#34;#about-the-team&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;Who is the RStudio Education team? We are a small team of data scientists and professional educators. Our team is fully remote, spanning from Scotland to Oregon state. Meet each of us 
&lt;a href=&#34;https://education.rstudio.com/author/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Our team members attend and present at workshops around the world. You can find out who will be where by checking our 
&lt;a href=&#34;https://education.rstudio.com/events/&#34;&gt;upcoming events calendar&lt;/a&gt;. If you&amp;rsquo;ll be at the same event too, please come say hi and introduce yourself. Our team loves to talk about all things data science and education, and we&amp;rsquo;d love to meet you in person.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://desiree.rbind.io/&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;hi.jpg&#34; alt=&#34;Art by Desirée De Leon&#34; width=&#34;385&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 2: Art by Desirée De Leon&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;You can also follow our work at the 
&lt;a href=&#34;https://github.com/rstudio-education/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Education GitHub Organization&lt;/a&gt;. All of our work 
&lt;a href=&#34;https://github.com/rstudio-education/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;there&lt;/a&gt;, including training materials and workshops, is openly-licensed and freely-available for reuse.&lt;/p&gt;
&lt;p&gt;To find out more about the Education team&amp;rsquo;s goal of adding the next million new R users to our community, you can watch this 
&lt;a href=&#34;https://resources.rstudio.com/rstudio-conf-2019/the-next-million-r-users&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;rstudio::conf 2019 talk&lt;/a&gt; from RStudio&amp;rsquo;s Director of Education, 
&lt;a href=&#34;https://education.rstudio.com/authors/carl/&#34;&gt;Carl Howe&lt;/a&gt;.&lt;/p&gt;




&lt;h1 id=&#34;about-the-artist&#34;&gt;About the artist
  &lt;a href=&#34;#about-the-artist&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;This site features beautiful original tiny drawings by 
&lt;a href=&#34;https://desiree.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Desirée De Leon&lt;/a&gt;, a former 
&lt;a href=&#34;https://blog.rstudio.com/2019/03/25/summer-interns-2019/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio intern&lt;/a&gt;, neuroscientist, data scientist, and Atlanta-based illustrator. See more of Desirée&amp;rsquo;s tiny drawings on her 
&lt;a href=&#34;https://www.instagram.com/dcossyle/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;instagram &lt;i class=&#34;fab fa-instagram&#34;&gt;&lt;/i&gt;&lt;/a&gt; and 
&lt;a href=&#34;https://twitter.com/dcossyle&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;twitter &lt;i class=&#34;fab fa-twitter&#34;&gt;&lt;/i&gt;&lt;/a&gt;, and check out her 
&lt;a href=&#34;http://desiree.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;website&lt;/a&gt; for more art and her data science blog.&lt;/p&gt;
&lt;div class=&#34;figure&#34; style=&#34;text-align: center&#34;&gt;
&lt;a href=&#34;https://tinystats.github.io/teacups-giraffes-and-statistics&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;giraffe_forest_social.jpg&#34; alt=&#34;Art by Desirée De Leon&#34; width=&#34;782&#34; /&gt;&lt;/a&gt;
&lt;p class=&#34;caption&#34;&gt;Figure 3: Art by Desirée De Leon&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;And don&amp;rsquo;t miss 
&lt;a href=&#34;https://tinystats.github.io/teacups-giraffes-and-statistics&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;em&gt;Teacups, Giraffes, and Statistics&lt;/em&gt;&lt;/a&gt; created by 
&lt;a href=&#34;https://desiree.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Desirée&lt;/a&gt; and co-author Hasse Walum: a series of illustrated online modules to teach statistics and R coding. Set in a playful narrative about fictional miniature giraffes; created entirely in 
&lt;a href=&#34;https://rmarkdown.rstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;R Markdown&lt;/a&gt;.&lt;/p&gt;




&lt;h1 id=&#34;about-the-art&#34;&gt;About the art
  &lt;a href=&#34;#about-the-art&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;The original art featured on this site is licensed under a 
&lt;a href=&#34;https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License&lt;/a&gt;.&lt;/p&gt;
&lt;center&gt;
&lt;i class=&#34;fab fa-creative-commons fa-lg&#34;&gt;&lt;/i&gt;
&lt;i class=&#34;fab fa-creative-commons-by fa-lg&#34;&gt;&lt;/i&gt;
&lt;i class=&#34;fab fa-creative-commons-nc fa-lg&#34;&gt;&lt;/i&gt;
&lt;i class=&#34;fab fa-creative-commons-nd fa-lg&#34;&gt;&lt;/i&gt;
&lt;/center&gt;
&lt;p&gt;You can find a human-readable summary of the license 
&lt;a href=&#34;https://creativecommons.org/licenses/by-nc-nd/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h1 id=&#34;about-the-site&#34;&gt;About the site
  &lt;a href=&#34;#about-the-site&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;This site is made with 
&lt;a href=&#34;https://bookdown.org/yihui/blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blogdown&lt;/a&gt; and the source code is available on 
&lt;a href=&#34;https://github.com/rstudio/education.rstudio.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt;. If you spot a typo or other error, please feel empowered to create an 
&lt;a href=&#34;https://help.github.com/en/articles/creating-an-issue&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;issue&lt;/a&gt; or a 
&lt;a href=&#34;https://help.github.com/en/articles/about-pull-requests&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pull request&lt;/a&gt;.&lt;/p&gt;




&lt;h1 id=&#34;thank-you&#34;&gt;Thank you
  &lt;a href=&#34;#thank-you&#34;&gt;
    &lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;In addition to the beautiful art, this site was built with ✨ CSS magic ✨ contributed by Robby Shaver, Greg Swinehart, and Desirée De Leon. Special thanks also to all the members of the 
&lt;a href=&#34;https://education.rstudio.com/author&#34;&gt;RStudio education team&lt;/a&gt;, including our summer interns, who have contributed all the content here so far, and much more to come.&lt;/p&gt;
&lt;p&gt;Most importantly, huge thanks to the 
&lt;a href=&#34;https://twitter.com/hashtag/rstats&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;#rstats community&lt;/a&gt; for being welcoming, supportive, and inclusive to all learners. You all make our jobs as educators more rewarding.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>rstudio::conf 2019</title>
      <link>https://education.rstudio.com/events/2019-rstudio-conf/</link>
      <pubDate>Tue, 15 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/events/2019-rstudio-conf/</guid>
      <description>&lt;p&gt;We had a great time at the 2019 rstudio::conf! Many attendees arrived early for 2 days of in-depth workshops, followed by two days of conference sessions. This year&amp;rsquo;s conference featured 15 workshops on tidyverse, Shiny, R Markdown, modeling and machine learning, deep learning, big data, and what they forgot to teach you about working with R. Some of the new workshops for this year touched on topics like putting Shiny applications into production at scale and R &amp;amp; Tensorflow. The conference also featured certification workshops on RStudio Professional Administrator and Train-the-trainer for tidyverse and Shiny.&lt;/p&gt;
&lt;p&gt;Below is a list of all workshops we hosted, with links to materials. Even though
the materials alone cannot replace the actual workshop experience, we hope that you&amp;rsquo;ll find them useful. RStudio regularly hosts workshops throughout the year so please subscribe to 
&lt;a href=&#34;https://www.rstudio.com/about/subscription-management/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;training updates&lt;/a&gt;. You can also find out more about each of the workshops
at the 
&lt;a href=&#34;https://github.com/rstudio/rstudio-conf/blob/master/2019/workshops.md&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;conference repository&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workshop&lt;/th&gt;
&lt;th&gt;Instructor(s)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/AmeliaMN/data-science-in-tidyverse&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to Data Science in the Tidyverse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Amelia McNamara, Hadley Wickham&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://rstd.io/tidytools19&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Building Tidy Tools&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Charlotte Wickham, Hadley Wickham&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://rstd.io/wtf-2019-rsc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;What They Forgot to Teach You About R&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Jenny Bryan, Jim Hester&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/dtkaplan/shinymark&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Intro to Shiny and RMarkdown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Danny Kaplan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://arm.rbind.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Advanced R Markdown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Alison Hill, Yihui Xie&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/aimeegott/RStudio-Conf-Intermediate-Shiny&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Intermediate Shiny&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Aimee Gott, Winston Chang&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/kellobri/spc-app&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Using Shiny in Production&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Kelly O&amp;rsquo;Briant, Sean Lopp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/topepo/rstudio-conf-2019&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Applied Machine Learning&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Max Kuhn, Alex Hayes, Davis Vaughan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/rstudio/conf_tensorflow_training_day2&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Introduction to Deep Learning + Beyond the Basics&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Sigrid Keydana, Kevin Kuo, Rick Scavetta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/rstudio/bigdataclass&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Big Data with R&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Edgar Ruiz, James Blair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/rstudio-education/teaching-workshop-2019-01&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Train-the-Trainer Certification Workshop&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Greg Wilson&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;http://teach-shiny.rbind.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shiny Train-the-Trainer Certification Workshop&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mine Çetinkaya-Rundel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://github.com/rstudio-education/teach-tidy&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tidyverse Train-the-Trainer Certification Workshop&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Garrett Grolemund&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://colorado.rstudio.com/rsc/pro-admin-training/overview/Overview.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;RStudio Professional Administrator Certification Workshop&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Andrie de Vries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
    <item>
      <title></title>
      <link>https://education.rstudio.com/home/band_four/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/home/band_four/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Need help?</title>
      <link>https://education.rstudio.com/home/band_three/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/home/band_three/</guid>
      <description>&lt;p&gt;The RStudio Community is always ready to help with your questions. If your question is about some feature of R itself, please learn how to make a 
&lt;a href=&#34;https://education.rstudio.com/help/#reprex&#34;&gt;reproduceable example (called a reprex)&lt;/a&gt; and then 
&lt;a href=&#34;https://education.rstudio.com/help/#where-to-ask&#34;&gt;share it&lt;/a&gt; with others.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Our latest video</title>
      <link>https://education.rstudio.com/home/band_two/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/home/band_two/</guid>
      <description>&lt;p&gt;Check out our latest education video below (concept is that this will always be some recent webinar or video).&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://resources.rstudio.com/webinars/what-every-data-scientist-should-know-about-education-greg-wilson&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Watch &amp;ldquo;What Every Data Scientist Should Know About Education&amp;rdquo; &amp;gt;&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>We all want to learn.</title>
      <link>https://education.rstudio.com/home/band_one/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://education.rstudio.com/home/band_one/</guid>
      <description>&lt;p&gt;No one is born a data scientist. Every person who works with R today was once a complete beginner. No matter how much you know about the R ecosystem already, you&amp;rsquo;ll always have more to learn.&lt;/p&gt;
&lt;p&gt;At RStudio, we know that everyone is at a different stage in learning the vast ecosystem of R, ranging from rank beginner to seasoned data scientists to professional educators. Choose a starting point below, or catch up with us on our 
&lt;a href=&#34;https://education.rstudio.com/blog&#34;&gt;blog&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
