Skip to content

Moving the syllabus to public visibility? #874

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
colinleach opened this issue Apr 8, 2025 · 19 comments
Open

Moving the syllabus to public visibility? #874

colinleach opened this issue Apr 8, 2025 · 19 comments

Comments

@colinleach
Copy link
Contributor

My feeling is that we are within a week or two of being able to open the learning track to wider visibility, at least in preliminary form (but no promises!). Then we can get feedback on what works and what needs fixing.

I don't want to get into a full critical path analysis (Microsoft Project! GANTT charts! I did more than enough of this when I worked in industry!!). More roughly, these are the key steps I can think of:

  • Implement the concepts that others have as a prereq. As far as I can see, this means functions (locomotive-engineer, in progress) and tuples (tisbury-treasure-hunt or something equivalent). Others are nice to have, but I think they can be added later.
  • Check all the prereqs are correct, once all the relevant concepts are in place. For example, high-school-sweetheart will need to change, perhaps to ["functions", "strings"].
  • Add "practices" entries for some more Practice Exercises. I did a couple of these a few days ago, just to test the process. For inspiration, I made a sheet with tabs for various other tracks, showing what they chose. Of course, idioms differ, so these may not translate directly to Julia.

For visibility, we need "concept_exercises": true near the top of the config.json, as Glenn pointed out on the forum. I think we also need to change to "status": "beta" for each exercise, but that needs to be confirmed.

Anything else?

@depial
Copy link
Contributor

depial commented Apr 8, 2025

Sounds exciting!

Anything else?

The one thing that comes to mind is that the deprecated exercises are still on the site (since they were somehow linked to the syllabus at one time or another). I think it would be good to get clarity on that situation and make sure they are indeed disentangled and won't pop up.

@colinleach
Copy link
Contributor Author

the deprecated exercises are still on the site

Are you referring to them showing up on the Practice tab, rather than the syllabus? I think that's only for maintainers, so students can't see them. We can check. I'm not seeing them on the Learn tab.

@depial
Copy link
Contributor

depial commented Apr 8, 2025

Are you referring to them showing up on the Practice tab

Yep, my fear would be that they are still entangled somehow, so when we make the syllabus public, those go public on the Practice tab too.

I'm unsure about the level of contortion that we've got going on now, so this is one thing I could imagine happening, although I have no reason to believe it would, and I have no idea on its likelihood. Just something that came to mind.

@BethanyG
Copy link
Member

BethanyG commented Apr 8, 2025

👋🏽

Just to chime in here. Deprecated exercises will always show for anyone who:

  1. Is a maintainer
  2. Has started the exercise sometime in the past
  3. Has completed the exercise sometime in the past

As and example: I completed Beer Song. It has been deprecated in favor of Bottle Song on the Python track — so now I see both Bottle Song and Beer Song .. since I completed both. However, someone who is newer to the track shouldn't be able to see or start Beer Song since it's deprecated.


Only those who are maintainers can see wip concept exercises (wip doesn't exist as a status for practice exercises). So if you want to test visibility, one way to do so is to set the syllabus to true in config.json, but have a certain set of concept exercises at wip status with another set at beta status. Those who are not maintainers should only be able to see/access the exercises that have beta — but won't see anything WIP. Case in point: anyone who is not a maintainer should not be able to see the Enums exercise in the Python Syllabus because it is wip.


You don't have to fill in prereq. or practices arrays right now - or even ever. In fact, Java Script notably doesn't have any practices arrays at all. DJ felt that there wasn't a clean enough connection between the practice exercises and the concept exercises in JS, and decided that it was better for students to go through the syllabus in a "straight line", and then go through the practice exercises after that. He did fill in the prereqs, and JS might be a place to look for inspiration as to how they did it.

TL;DR? You can do the minimum needed to "make sense" of the early/critical syllabus and gather feedback and then do more complex things like associate practice exercises or add in more prereqs later.

@colinleach
Copy link
Contributor Author

colinleach commented Apr 8, 2025

Bethany, one question: are you considered a "maintainer" on the Julia track, through your global super-maintainer status? I just wonder if you can see exercises like Documented Lasagna on the Practice tab. They (annoyingly) became visible to us when we became maintainers, despite not being mentioned anywhere in config.json. These are stored on GH in a rather mysterious directory called `exercises/concept.wip/. It's those that we are concerned about, because they have such an undocumented origin and we don't know how the website even sees them.

@BethanyG
Copy link
Member

BethanyG commented Apr 9, 2025

Bethany, one question: are you considered a "maintainer" on the Julia track, through your global super-maintainer status? I just wonder if you can see exercises like Documented Lasagna on the Practice tab. They (annoyingly) became visible to us when we became maintainers, despite not being mentioned anywhere in config.json. These are stored on GH in a rather mysterious directory called `exercises/concept.wip/. It's those that we are concerned about, because they have such an undocumented origin and we don't know how the website even sees them.

I may be in Github (so I can see your activity) -- but I am not some sort of Super-maintainer on the website. So I cannot see the Julia Syllabus at all at this point. That's because it is disabled. Not quite clear if I could see WIP exercises because I have maintainer status. We'll need to test that.

To that end (testing), you should not be able to see the Log Levels (Enums) exercise on the Python track, since you are not listed as a maintainer there, and Log Levels is WIP. But since the syllabus is enabled and you are a maintainer, you might be able to see it.

IIRC - the ability to see WIP exercises as a maintainer was put in place so we could test out exercises between ourselves prior to unleashing them on the general public. So it's not a bug if you can see WIP things.,

@colinleach
Copy link
Contributor Author

Thanks, Bethany.

Image

Bottom line: nobody knows why we see exercises like the two above (13 in total) on the Practice tab, nobody knows whether they will become visible to other students if we turn the syllabus live. I guess we just have to do the experiment and see. I was always an experimental scientist, not a theoretician!

Worst case, we would have to move these 13 exercises to the exercises/concept/ directory, and create entries for them in config.json so that we can deprecate them. Not super-difficult, but it creates a lot of clutter.

I'm tempted to create another Exercism account to log into without maintainer privileges. I can't think of a better way to see what normal students see - incognito views without a login aren't quite the same.

@BethanyG
Copy link
Member

I can't see or search for either of those exercises on the Julia track on the website. So I am pretty sure that their visibility to you is due to the fact you are a maintainer on the Julia track.

Worst case, we would have to move these 13 exercises to the exercises/concept/ directory, and create entries for them in config.json so that we can deprecate them. Not super-difficult, but it creates a lot of clutter.

Feels like for your two's sanity (as well as conformation to how other tracks do it) that that might be the best plan of action. Especially in cases where you've reused UUIDs. In fact, if you DO move things, make sure anything you deprecate has a UNIQUE UUID. The UUIDs are how the site keeps track of things and "links up" exercises. Sure - this process of putting things into the config only to deprecate them may feel like it "clutters things up" - but

  1. It provides a record to future folx about what happened. They can see the status in the track config in one glance. This will also show on the site on the track build page (see pythons for details.)
  2. You might in the future revisit some of these exercises, so have a way of quickly re-enabling them without too much fuss.
  3. The weird wip directory is the source of much confusion and problems. It would be better, and have less overhead if it went away.

@BethanyG
Copy link
Member

Another thought: Have you tried renaming that concepts.wip directory to something else entirely, or moving it to the reference directory and out of the exercises directory? That might also be enough for it to not be picked up.

@colinleach
Copy link
Contributor Author

Have you tried renaming that concepts.wip directory to something else entirely, or moving it to the reference directory and out of the exercises directory?

I would love to do this. I'm a bit nervous that it might (somehow) break the website, but I'm getting to the try-anything stage.

@colinleach
Copy link
Contributor Author

colinleach commented Apr 10, 2025

FYI - Of the 13 exercises currently in concept.wip, there are 7 that we might want to reactivate in future:

  • dnd-char (macros)
  • documented-lasagna (docstrings)
  • emoji-times (unicode)
  • encounters (multiple-dispatch)
  • exercism-matrix (multi-dim arrays)
  • fibonacci-iterator (iterators)
  • stage-heralding (regex)

and 6 that we are extremely unlikely to use (in most cases we already used a different exercise for that concept):

  • annalyns-infiltration2
  • elyses-analytic-enchantments
  • high-score
  • name-badge
  • tech-palace
  • vehicle-purchase

@BethanyG
Copy link
Member

Have you tried renaming that concepts.wip directory to something else entirely, or moving it to the reference directory and out of the exercises directory?

I would love to do this. I'm a bit nervous that it might (somehow) break the website, but I'm getting to the try-anything stage.

If you coordinate with @depial, the worst it would do is break the site for the amount of time it takes to revert it, which would be at most an hour or so. But my intuition tells me that it is likely to not break for most users -- and might not break at all. Although it would make those exercises disappear for anyone who's done them. And I am fairly confident that it would only affect those wip exercises, and not anything else (PROVIDED that there is no UUID overlap).

My 🔥 take: it can't hurt to try - just make sure that both of you are there in case something needs approval for reverting, since the cross-track maintainers can't do that for you.

@colinleach
Copy link
Contributor Author

I suggest moving exercises/concept.wip/ to reference/concept.wip/. @depial, are you in agreement? If so, we need to pick a time when we're both near a computer (I'm around most of the time, though I'll be out late morning MST tomorrow - and still struggling to stay awake).

@colinleach
Copy link
Contributor Author

colinleach commented Apr 10, 2025

I (tentatively) created #876. The linter isn't picking up any UUID issues.

@depial
Copy link
Contributor

depial commented Apr 11, 2025

@colinleach I've gone ahead an approved the changes for #876. I'll leave merging for you so we can coordinate a time to both be at the computer for a possible revert. I should be free most of the day (minus meal times), so whenever is most convenient for you will be fine with me.

@colinleach
Copy link
Contributor Author

#876 didn't break anything on the website - in fact, it did nothing at all. Like cockroaches, these exercises survive whatever you throw at them!

Next attempt is #877, which gets rid of the concept.wip directory, moving the exercises to a more normal location with status set to "deprecated" in config.json. It passed CI, but I'm not even going to try to guess how the website will react.

I can't believe how much time we're wasting on this!

@colinleach
Copy link
Contributor Author

Success!!! After merging #877, the old exercises gradually disappeared over the next few minutes.

@colinleach
Copy link
Contributor Author

We now have 15 concepts in place, with all their necessary prereqs. I'll post a comment on the Discord "maintaining" channel in case anyone else wants to comment, but I think we're just about ready to go live today or tomorrow. Wow!

@colinleach
Copy link
Contributor Author

colinleach commented Apr 21, 2025

A week later, there's been less criticism than I expected, plus this on Discord:

Image

Once we've got a bunch more exercises in place, it's not completely impossible I'll be looking for another R maintainer to help me do the same there...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants