                        Changes in version 0.0.1                        

                     Changes in version 0.0.0.9039                      

Exercises

  - ProjectOrga: the exercise on here::i_am() rejected the correct
    answer, and no answer could have passed it. The code is executed in
    a temporary directory without a project root, so i_am() aborted with
    "Could not find associated project" before the check even ran, and
    the check itself searched for the path in single quotes, which
    neither the sample solution nor any student writes. The exercise now
    creates the directory structure it describes, so the code runs, and
    the check accepts both quoting styles and reports a missing
    library(here) and the wrong order separately.
  - ObjectTypes2: the two exercises on extracting a column from a tibble
    also searched for the column name in double quotes only, so the
    correct tib_1['vec_2'] was rejected as referring to the wrong
    column. Both checks now accept either quoting style and ignore
    spacing. In the exercise on [[, the guard against the single-bracket
    form tested for tib_1[2 instead of tib_1[1, so tib_1[1] fell through
    to a fail() without any message.

Documentation and tests

  - The README explains how to update the package. It previously said
    that the installation is only needed once per computer, although
    corrections to the exercises only arrive with a new installation.
  - New test: a check that searches the student code for a literal must
    accept the code in its own -solution chunk. This is the bug above,
    and it was invisible until a student ran into it.
  - The test of the exercise-name suggestion in run_exercise() is
    skipped when the package is not installed. It reads the list of
    exercises through learnr::available_tutorials(), which does not see
    a source tree, so the test failed under devtools::test() while
    passing under devtools::check().

                     Changes in version 0.0.0.9038                      

Installation

  - The package is now distributed via r-universe, so it can be
    installed with install.packages() and no longer requires the remotes
    package or a GitHub account. See the README for the new installation
    instructions.
  - All packages used by the exercises are now declared in DESCRIPTION.
    Previously seven of them (ggplot2, data.table, tidyr, here,
    moderndive, purrr, scales) were missing, which meant that eight of
    the exercises interrupted students with an install prompt on first
    start. Everything is now installed together with the package.
  - Removed the dependency on moderndive, which pulled in 14 further
    packages.
  - WDI is only needed to rebuild the data sets and moved to Suggests.
  - The minimum required R version is now stated correctly as 4.3.

New features

  - run_exercise() starts an exercise, e.g. run_exercise("Basics"). It
    fills in the package name, opens the exercise in a browser, ignores
    capitalisation and suggests the closest name if you mistype it.
  - list_exercises() lists all available exercises.
  - check_setup() reports your R version and whether all required
    packages are installed - useful when something does not work.
  - regression_table() summarises a linear model in a concise table with
    confidence intervals. It replaces
    moderndive::get_regression_table().

Exercises

  - All exercises now use the native pipe |> instead of %>%.
  - LinearRegression2: the section on parallel slopes and interaction
    models now builds on gdplifexp2007, the data set already used
    earlier in the same tutorial, instead of moderndive::evals. The
    regression lines are drawn from the fitted values of the model via
    predict() and geom_line() rather than with
    moderndive::geom_parallel_slopes(), which makes visible why the
    slopes are parallel. The difference between the two models is now
    also much clearer: the effect of GDP per capita on life expectancy
    differs by a factor of about five between Africa and Europe.
  - Functions: the sample solution of the exercise on defining a
    variance function did not pass its own check, because it defined the
    function without applying it. Fixed, and the check now explains the
    problem.
  - Wrangling1: the check of the filtering exercise contained a
    misplaced parenthesis, so its explanatory message was never shown.
    Fixed.
  - ObjectTypes1, Basics, Functions: converted to the current
    grade_this() interface.
  - Fixed several typos, among them "Regresssion" in two exercise
    titles.

Data

  - Growth, product_complexity and unemp_pop are now documented.
  - Corrected the documented dimensions of gdplifexp2007, aggGDPlifexp,
    nycflights21_small, wine2dine and EUFstudentsemesters, and
    documented the previously missing columns of aggGDPlifexp and
    econjournals.
