# Functional Programming

### for educational data science

Welcome to the third course in the Educational Data Science specialization. This course builds upon the content covered in the first two courses, with a specific focus on becoming a better programmer and improving workflows in statistical computing with R. Students will continue to work with the tidyverse suite of packages, with a emphasis on {purrr} for functional programming. At its core, functional programming is a technique to iterate a function over a vector, or set of vectors, to complete repetitive tasks. We will compare and contrast {purrr} functions with base R approaches, including for loops and the apply family of functions. Functional programming helps reduce redundancies in code, making it more efficient and, often, more readable. The course will also cover writing custom functions, which can also help in completing repetitive tasks, but can also extend the functionality of R, and is a key component of functional programming. The course concludes with an introduction to shiny for building interactive applications which, although somewhat outside of the scope of functional programming, requires using and writing functions.