Skip to content

R Syllabus: Late May Update #504

@colinleach

Description

@colinleach

Continues #492.

I am trying to get this moving again, after a planned pause for visitors and an unplanned 2-week brain outage (the latter hopefully coming to an end?). It's an arbitrary deadline, but I would really like to get something (even if clearly incomplete) out to students by the end of June.

There are quite a few things in progress: draft concepts with no exercise, plus some incomplete drafts I need to finish and PR. That was deliberate (honestly!): I've been learning a lot along the way, and my thinking has changed as I write the concept drafts.

  Concept Exercise
basics ✔️ ✔️
booleans ✔️ ✔️
conditionals ✔️ ✔️
vectors ✔️ ✔️
vector-filtering ✔️ ✔️
vector-functions ✔️ ✔️
strings ✔️ ✔️
nothingness ✔️ ✔️
errors ✔️  ✔️
names-attribute ✔️ ✔️
lists ✔️ ✔️
switch ✔️ ✔️
loops ✔️ ✔️
set-operations ✔️ ✔️
randomness ✔️ ✔️
complex-numbers #390  non-urgent
functions #493 exercise ideas needed!
functional-programming #501 maybe cheese-club?
dates-times ✔️ ✔️
matrices-arrays ✔️ concept-only
dataframes #506 exercise ideas needed!
factors wip ??
classes wip concept-only
regular-expressions ✔️ ✔️

We'll also need regular-expressions with regular-chatbot at some point (boring, but shouldn't be too difficult).

I'm starting to think about one or more concepts lumped under data-operations. That's open-ended: it could turn into a complete R translation of Pandas Workout and Pandas in Action, given that tibbles have pretty much the same range of functionality!

More realistically, I'm looking to start with:

  • Basic readr stuff, probably limited to not much more than read_csv().
  • Basic tidyr stuff, such as pivot_longer() and pivot_wider().
  • group_by operations.
  • Simple relational joins between tables.

All that can be done within the test runner, as currently configured.

Put together, it might look roughly like this flowchart

Thinking about the critical path:

  • To me, Dataframes are absolutely central to modern R: much more now than 20 years ago. It's as if Python was just a scripting language for Pandas!
  • That means we need a sequence of three concepts, with exercises, before launch:
    1. Functions
    2. Functional Programming
    3. Dataframes

The rest can be added later, if necessary.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions