Guiding students on the syllabus away from hard exercises?

Lessons on the syllabus link to a concept. Exercises can be tagged with a concept. Students often try to complete all exercises associated with a concept before moving to the next lesson. If a hard exercise is tagged with a concept, this can cause students to attempt hard exercises prior to finishing the concepts/easy exercises.

Would it make sense to do one of the following?

  1. Only show easy exercises from the lessons/linked concept view?
  2. Lock medium/hard exercises while students are still working through concept/easy exercises.
  3. Not attach concepts to medium/hard exercises?
2 Likes

There is a forth possibility: Add a note that the exercise is hard/requires additional concepts, which concepts they are – and that the student might want to finish other exercises/go learn more concepts first.

Locking gets pretty complicated, in my experience. I played with that on the Python track, and it didn’t end well. I do think a few of the exercises still have locks - but most were removed due to continuous complaints.

I do think there is something to be said here about learners building up a skill around when to ask for help, and when to judge that they are in over their heads and need more info. It is as much a part of problem-solving as breaking down things into steps and reading directions and reading tests.

I see concept exercises as being a bit at odds with practice exercises, since concept exercises are very narrow and tend to have a much much smaller set of “correct” solutions (often only one correct solution). They require that all details for a solution are presented in the inro + instructions, and have much more elaborate hints and stubs. I think that then exacerbates the perceived difficulty of the practice exercises. I think this is why you see students saying that practice stubs are “wrong” when they don’t have full details, or the instructions are “incomplete” or “confusing”. They’re not being told what to do, nor being directed in applying specific techniques.

I go back and forth on this whole topic, since it often feels like the vast majority of practice exercises feel “harder” to new students no matter what their hard/easy ranking is than any concept exercise. At least it feels that way on the Python track. So there’s a strong impetus to not link any practice exercises at all, or to purpose-build “very easy” practice exercises that would link better/more directly to the concept exercises. Or add periodic “putting it all together” nodes on the syllabus tree that summarized several techniques and linked out to practice exercises periodically.

With all that said, many bootcamp participants successfully completed many practice exercises without the support of concept exercises or many of the built-in functions that Python and other languages have. But the bootcamp had a very high level of both explanation/demonstration and in-line mentor support. It also had a highly verbose and interactive REPL and altered test cases. And it was A LOT of work - coding, filming, supporting.

All of this is my opinion of course - so YMMV. But I would be a very hard no on altering the Python Syllabus significantly at this time with linking/re-arranging/re-leveling. Not only do we have upgrades to do, but Syllabus re-working has wasted upwards of 200+ hours or more, with very little up side.

So maybe this is less about concept exercise linking, and more about morphing the practice exercises with addendums that prompt the student to think through the steps, and list the concepts that would be helpful in solving them. Like approaches, but without the answers. That way, if a student doesn’t know anything about one of the concepts, they can stop and go learn it.

Again, tho. The amount of time to engage in the whole discussion is personally prohibitive for me - and the “best” solution that I see (additional purpose-built practice exercises that are more focused on the concepts + potential addendums to prod problem-solving) is also prohibitive at this time. It would be something I wouldn’t want to entertain until after the first part of 2026.

4 Likes

I find all this puzzling at several levels.

Firstly, I’m surprised that so many people (at all skill levels) try to do all the practice exercises before moving onto the next concept. It’s never been my approach, but apparently I’m the outlier (fair enough, I’m used to being the weird one…)

Secondly, I’m surprised that anyone would attach medium/hard practice exercises to a relatively early concept. Maybe OK if it’s about the 30th concept down the tree, with a lot of prereqs, and there’s a highly relevant practice exercise. Not generally.

There is plenty we could do to make practice exercises more approachable, if we had unlimited time and energy. For example, the Julia maintainers now try to add a Hints file to any new practice exercises we create, but we can’t face the thought of doing this retrospectively for all the old ones. Similarly, we can probably all agree that Approaches documents are useful, but they take real effort to write well.

And in my (even) more cynical moments, I wonder how successful we are at getting most students to read stuff? I suspect that varies by track, and Bethany gets the roughest end of it with all the Python newbies.

I missed this on the first read-through. I don’t immediately see how to make it work, but it’s certainly worth thinking about.

I came up with this idea a long while ago for the PHP track as well. But it hasn’t happened, yet. So I cannot show evidence that it worked out well.

My idea was to have a set of concepts at a “basic level” with some kind of gate concept exercises after that. Then going into a “second level” concept area with “harder” concepts and concept exercises more leaning towards the way practice exercises work. Still focussed on the one concept, but using all the “optional” things like reduced stubs for example.

After all, I’d currently be happy to add enough concept exercises for a viable syllabus. Which in the terms above would be the “basic level”.

1 Like