Another attempt at an R learning syllabus

This topic has been discussed before, including issue #198 and this forum.

The current status, as far as I can tell:

  • There was one PR for the Lasagna exercise, submitted Jan 2022 and still unmerged.

  • The R repo is closed to community contributions (for reasons I totally respect). All issues and PRs autoclose.

  • The R maintainer @jonmcalder has been consistently helpful and supportive, but is clearly very busy and unable to give much time to Exercism at present.

  • I believe that working code can help to focus a discussion which perhaps lacks direction.

To try and move this a step forward, I created a separate playground where I can iterate quickly. This is important: the nearest thing I had to a Grand Plan crumbled to dust as soon as I tried to implement it, so there has been a lot of trial and error already.

So far, 9 concepts and 9 concept exercises have reached a state I would describe as “reasonably complete early draft”, with others in progress.

There is also a tracking sheet to monitor progress and a flowchart to speculate how it might all fit together. The latter changes pretty much daily, so please don’t get bogged down in the details.

I read and reread the Exercism documentation, so I think I got all the correct files in the correct directory structure (no promises!).

This is far from complete, but I would welcome some feedback on whether it is moving in the right direction.

  • Are the markdown files at an appropriate level of detail? I suspect the files tend to be too long and a bit short, but comments welcome.

  • Is the writing style clear and helpful?

  • Perhaps more controversially, does the choice of concepts make some kind of sense? As a language designed by and for data scientists, R is unusual in many ways. Trying to copy syllabus ideas from “normal” computer scientist languages was something I attempted - it really didn’t work.

  • Are the concept exercises a reasonable choice so far? Any better suggestions?

  • For the more advanced concepts, I think we will need some totally new exercises. Inventing story ideas is certainly not one of my skills, so I’ll leave that open for suggestions in the coming months.

I have no idea whether, when or how any of this might be merged into Exercism. Not soon: I’m not yet happy with the current drafts, even before we get to a wider discussion then various logistical difficulties.

At least we now have something less abstract to argue about.

Whatever happens, this is educational for me. Trying to explain something to other people is very effective at puncturing any happy delusions about how well you understand it yourself!

Great news. Thanks! I’m sure @ErikSchierboom will have thoughts. He’s away for this week and next on holiday :slight_smile:

1 Like

@colinleach I’ve taken a look at the playground and it looks really good!

What I would suggest is to start PR’ing the exercises in the R repository. As long as we don’t enable concept exercises in the config.json, they’ll show up on the website, but only for maintainers. That way it becomes easier to ask for help from other maintainers.

I think some of the basics are probably the same, but R will have some more unique concepts too. So it will likely be a mixture of “common” concepts and R-specific ones.

Thanks for the encouraging words. I was open to the suggestion that this is an embarrassment that must never again be spoken of in polite society, but it seems I dodged that.

One practical issue: I’m not a maintainer. What is needed for me to to see the wip syllabus on the website?

For the R repo, I fully respect the decision to close it to community contributions, but having all these PRs auto-close has the practical drawback that I can’t see and fix any CI glitches before you reopen it. As an aggravating factor, I’m 9 time zones behind you.

The maintainer is @jonmcalder. I’m nowhere near his skill and experience as an R programmer and I’m not asking for equal status, but is there some way to get round the auto-close, at least temporarily?

I run configlet lint before submitting, but that doesn’t catch everything.

@colinleach I’ve added you as a maintainer :slight_smile:

1 Like

Hi @colinleach!

Apologies (again) for the delayed response here. I am traveling for a few months (a wonderful privilege for which I am very grateful) and still adjusting to the challenge of working while in a different time zone to many of my colleagues.

I am grateful for your contributions thus far and glad that you are working on this. I can’t promise much help over the next little while due to constraints on my time, but I would love to assist you in any way I can with building out a learning syllabus for R, and hopefully at a later stage take a more active role.

In the meantime I agree with @ErikSchierboom that it makes sense to start PR’ing exercises into the repo to facilitate asking for help from other maintainers (doesn’t necessarily need to be me - there are others who can assist too). Feel free to begin doing this once you’re happy with the state of your WIP concept exercises.

I’d appreciate it if I could be given a window of opportunity to try and weigh in on PR’s before they are merged (if nothing else because it will save me from having to catch up on a whole bunch of updates further down the line), but if Erik or someone else is able to review and you are confident in the direction you’re going with fleshing out the learning syllabus then don’t feel like you need to wait on me.

Happy to try and follow an optimistic merging strategy while keeping concept exercises disabled since that’ll allow for fixing and/or reworking things as issues are discovered without exposing to a wider audience. The main reason I didn’t do this with the lasagna exercise was that it seemed pointless to merge that PR before I had some other exercises to follow it up with, and I knew I wasn’t going to get around to doing so at the time…


Thanks, Jon. I’ll try to keep my PRs as uncontroversial as possible. Your comments on a time window are noted and we’ll try to respect this.


Question: the suggestion is PR’ing exercises. Does this also include the associated concepts, or should those wait till later?

IMO the fundamentals should come together. as they’re very synergistic. The scope of the concept is very tightly bound to the scope of the exercise. For example, the should only reference ideas that are actually used within the exercise.

So I’d say:

  • Exercise + concept introduction (initial PR)
  • All the other concept bits (another subsequent PR).

First few PRs are submitted:

Admittedly, #253 violates what we just agreed, but that’s an odd one. It extends PR #202, in limbo for the last 18 months.

Sounds good! There is no particular rush to get the PRs merged I think, so you can review them (obviously having them be open for weeks is not ideal, but if that happens I can always help out).

I’m a bit puzzled about what’s going on with the wip syllabus on the website. When we still had

  "status": {
    "concept_exercises": false,

in config.sys, @jonmcalder could see both the Syllabus tab and the exercises within it (2 so far). I couldn’t even see the Syllabus tab.

Now we’ve set "concept_exercises": true and I can see the tab but no exercises within it.

Any suggestions?

@colinleach wip exercises are never shown to students, just to maintainers. See config.json | Exercism's Docs You’ll need to make them beta or active (which can also be done by omitting the status field).

An alternative would be to make you part of the R maintainers, which would give you the ability to view the wip exercises.

It’s early days for the R learning syllabus, but I’m puzzled why the conditionals concept appears twice, with the same exercises in both boxes:


Looking again at the config.json I can’t see anything peculiar that would cause this. We’ll eventually want the exercises within this concept to display in a different order, but I’m guessing that just needs the entries to be sorted in config.json.

Inevitably, I overwhelmed the capacity to get PRs reviewed, edited and merged. We’ve merged 7 so far, with 21 currently queued for review. I’m OK with that, though we might want to reconsider in a few weeks.

I am seeing conditionals appear for both the cars-assemble and vehicle-purchase concept exercises:

I think that’s why you’ve got duplication.

For the Python track, each concept exercise is associated with a unique concept/concepts. One exercise might cover two concepts, but two exercises aren’t covering one concept … if that makes sense??

I would try removing the association it from one of the exercises, and see if that stops the duplication in the tree.

1 Like

I just looked at what you did with the numbers concept, where there are lots of exercises in the box. If I understand it correctly, only the first one has a concepts field, the others are practice exercises with "practices": ["numbers"] and the syllabus is able to include these in the tree.

I’d misunderstood that detail - thanks for explaining it!

1 Like