Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenIntro: Building, Sustaining, Supporting, and Growing Open-Source Educational Resources

OpenIntro: Building, Sustaining, Supporting, and Growing Open-Source Educational Resources

OpenIntro’s (openintro.org) mission is to make educational products that are free and transparent and that lower barriers to education. The products include textbooks (in print and online), supporting resources for instructors as well as for students. In this talk we will discuss how the OpenIntro project has shaped and grown over the years, our process for developing and publishing open-source textbooks at the high school and college level, and our computing resources such as interactive R tutorials and R packages as well as labs in various languages. We will also give an overview of our project organisation and tooling for authoring, collaboration, and maintenance, much of which is built with R, R Markdown, Git, and GitHub. Finally, we will discuss opportunities for getting involved for educators and students contributing to the development of open-source educational resources under the OpenIntro umbrella and beyond.

Mine Cetinkaya-Rundel

August 08, 2021
Tweet

More Decks by Mine Cetinkaya-Rundel

Other Decks in Education

Transcript

  1. Building, Sustaining, Supporting
    ,

    and Growing Open-Source


    Educational Resources
    mine-cetinkaya-rundel
    [email protected]
    @minebocek
    🔗 bit.ly/openintro-jsm2021
    mine çetinkaya-runde
    l

    duke university & rstudio

    View Slide

  2. OpenIntro’s mission is to make educational
    products that are free, transparent, and
    lower barriers to education.
    mission
    🔗 bit.ly/openintro-jsm2021

    View Slide

  3. openintro.org
    🔗 bit.ly/openintro-jsm2021

    View Slide

  4. team
    🔗 bit.ly/openintro-jsm2021

    View Slide

  5. books labs & tutorials other
    packages
    🔗 bit.ly/openintro-jsm2021

    View Slide

  6. Preliminary Edition
    how it


    started
    how it’s going
    🔗 bit.ly/openintro-jsm2021

    View Slide

  7. Preliminary Edition First Edition Second Edition
    First Edition
    First Edition
    🔗 bit.ly/openintro-jsm2021

    View Slide

  8. ๏Applications as motivation


    ๏Real, recent, relatable datasets


    ๏Emphasis on data exploration, multivariable
    relationships, and statistical reasoning


    ๏Guided practices and worked examples
    interspersed in text


    ๏Lots of end of chapter exercises, with solutions
    to odd numbered questions in the back
    pedagogy
    🔗 bit.ly/openintro-jsm2021

    View Slide

  9. license
    🔗 bit.ly/openintro-jsm2021

    View Slide

  10. ๏HTML textbook freely available


    ๏PDF also freely available —
    distributed through LeanPub with a
    suggested donation (min $0)


    ๏Paperback available at low cost
    — cost of printing + minimal
    royalty that goes back to
    OpenIntro (US-based nonpro
    fi
    t)
    “business” model
    🔗 bit.ly/openintro-jsm2021

    View Slide

  11. ๏Each chapter its own Rmd
    fi
    le


    ๏Output to HTML and PDF with the same source code
    (and lots of customization!)
    how it’s made
    🔗 bit.ly/openintro-jsm2021

    View Slide

  12. how it looks
    🔗 bit.ly/openintro-jsm2021

    View Slide

  13. custom blocks
    ๏Challenge: Achieve similar looking custom blocks in HTML and PDF output


    ๏Solution: Fenced div blocks + Custom blocks chapter of the R Markdown Cookbook
    🔗 bit.ly/openintro-useR2021
    ::: {.guidedpractice data-latex=""}


    :::
    Rmd
    .guidedpractice {


    padding: 1em 1em 1em 4em;


    margin-top: 30px;


    margin-bottom: 30px;


    background: #f8f8f8 5px center/3em no-repeat;


    border-top: 1px solid #569BBD; /* openintro::COL[1,1] */


    border-bottom: 1px solid #569BBD; /* openintro::COL[1,1] */


    background-image: url("../images/_icons/guided-practice.png");


    background-position: 0.5em 1em;


    }


    .guidedpractice:before {


    content: "Guided practice";


    clear: right;


    display: block;


    font-weight: bold;


    font-variant: small-caps;


    color: #569BBD;


    }
    CSS
    \newenvironment{guidedpractice}{


    \vspace{4mm}


    \begin{mdframedwithfootGPWE}


    \begin{minipage}[t]{0.10\textwidth}


    {$\:$ \\ \setkeys{Gin}{width=2.5em,keepaspectratio}
    \includegraphics{images/_icons/guided-practice.png}}


    \end{minipage}


    \hfill


    \begin{minipage}[t]{0.90\textwidth}


    \vspace{-2mm}


    \setlength{\parskip}{1em}


    \noindent\textbf{\color{oiB}\small\fontfamily{phv}
    \selectfont{\MakeUppercase{Guided Practice}}} $\:$ \\ \\


    }


    {\end{minipage}


    \end{mdframedwithfootGPWE}


    \vspace{4mm}


    }
    LaTeX

    View Slide

  14. plots
    ๏Challenge: A consistent and branded look for plots


    ๏Solution: De
    fi
    ne theme_openintro() and rede
    fi
    ne ggplot2 defaults
    ggplot2::update_geom_defaults("point", list(color = openintro::IMSCOL["blue","full"],


    fill = openintro::IMSCOL["blue","full"]))


    ggplot2::update_geom_defaults("bar", list(fill = openintro::IMSCOL["blue","full"],


    color = "#FFFFFF"))


    ggplot2::update_geom_defaults("col", list(fill = openintro::IMSCOL["blue","full"],


    color = "#FFFFFF"))


    ggplot2::update_geom_defaults("boxplot", list(color = openintro::IMSCOL["blue","full"]))


    ggplot2::update_geom_defaults("density", list(color = openintro::IMSCOL["blue","full"]))


    ggplot2::update_geom_defaults("line", list(color = openintro::IMSCOL["gray", "full"]))


    ggplot2::update_geom_defaults("smooth", list(color = openintro::IMSCOL["gray", "full"]))


    ggplot2::update_geom_defaults("dotplot", list(color = openintro::IMSCOL["blue","full"],


    fill = openintro::IMSCOL["blue","full"]))
    🔗 bit.ly/openintro-jsm2021

    View Slide

  15. exercises
    ๏Challenge: Reproducibility while still not making all solutions publicly available


    ๏Solution: Develop in a separate (private) exercise bank and automate generating book
    fi
    les

    For book (public):


    ๏All questions (_Q)


    ๏Short answers for odd numbered exercises (_SA)


    ๏Source code available
    For veri
    fi
    ed instructors (private):


    ๏Full solutions for all exercises (_A)


    ๏Only output available
    🔗 bit.ly/openintro-jsm2021

    View Slide

  16. Inclusivity & accessibility
    ๏ Real and high quality data, especially in examples on
    applications that touch human lives


    ๏ Case studies on topics of societal importance without
    trivializing the multifaceted issues that underpin them


    ๏ Random names generated from culturally diverse sources


    ๏ Avoid gender stereotypes and gendered pronouns


    ๏ Color-blind friendly color scheme and alt-text on images
    🔗 bit.ly/openintro-jsm2021

    View Slide

  17. books labs & tutorials other
    packages
    🔗 bit.ly/openintro-jsm2021

    View Slide

  18. ๏Challenge: Promote computing (with R) while also providing a textbook is language
    agnostic and can be used in courses that do not teach computing


    ๏Solution 1: Computational labs (case studies) provided separately, but linked throughout
    the book
    labs
    🔗 bit.ly/openintro-jsm2021

    View Slide

  19. ๏Challenge: Promote computing (with R) while also providing a textbook is language
    agnostic and can be used in courses that do not teach computing


    ๏Solution 2: Supplement with interactive R tutorials developed with learnr
    tutorials
    🔗 bit.ly/openintro-jsm2021

    View Slide

  20. books labs & tutorials other
    packages
    🔗 bit.ly/openintro-jsm2021

    View Slide

  21. 🔗 bit.ly/openintro-jsm2021

    View Slide

  22. Depends:


    R (>= 2.10),


    airports,


    cherryblossom,


    usdata
    +
    🔗 bit.ly/openintro-jsm2021

    View Slide

  23. books labs & tutorials other
    packages
    🔗 bit.ly/openintro-jsm2021

    View Slide

  24. ๏Veri
    fi
    ed teacher resources: slides, sample exams, full solutions


    ๏Forums


    ๏New venture: Non-stats textbooks


    ๏…
    🔗 bit.ly/openintro-jsm2021

    View Slide

  25. contributing
    🔗 bit.ly/openintro-jsm2021

    View Slide

  26. ๏Open an issue


    ๏Make a pull request
    github.com/openintrostat
    🔗 bit.ly/openintro-jsm2021

    View Slide

  27. openintro.org
    ๏Send feedback


    ๏Report a typo
    🔗 bit.ly/openintro-jsm2021

    View Slide

  28. openintro.org/teachers/get_involved
    ๏Datasets: Data hunter


    ๏Exams: Exam contributor


    ๏Exercises:


    ๏ Exercise contributor


    ๏ MyOpenMath exercise conversion


    ๏Labs:


    ๏ Lab solution developer


    ๏ New software owner


    ๏ New lab developer


    ๏Modules:


    ๏ Module developer


    ๏ Module editor


    ๏Translation


    ๏Your ideas?
    🔗 bit.ly/openintro-jsm2021

    View Slide

  29. thank you!
    mine-cetinkaya-rundel
    [email protected]
    @minebocek
    mine çetinkaya-runde
    l

    duke university & rstudio
    🔗 bit.ly/openintro-jsm2021

    View Slide