Skip to content

[Track Improvement]: Thoughts on Difficulty, Flow, and Prerequisites. #3023

Closed
@BethanyG

Description

@BethanyG

Copied over from exercism/exercim Issue #6333

I think we can address some of these via re-working the track prerequisites and practices, so opening an issue here.
Emphasis added to highlight different areas of focus, and the TL;DR was brought to the top.

This issue is open for additional comments around leveling, grouping practice exercises, concept tree, and exercise ordering.

UI comments not related to the exercise tree or the exercise ordering in Python should be filed in the exercism/exercism repo.


Hi, I just want to contribute some of my thoughts regarding the flow of one of the track.
My main language track is Python and I've been using the site around half the year to start improving my skill. I've done about
2/3 of all the exercises (total 131 at the point of writing this)

tl;dr : might be a bit overwhelming for totally newbie, syllabus layout is not very useful, unlocking exercises feels unnatural sometimes, and difficulties need a revamp. still a great website for practicing, improving and learning more

Learning exercises: these are great small introduction to a new concept, but it is exactly what it is - an introduction. So students should be encouraged to learn more about these concepts from the web, doing small, quick exercises to get a grasp of the idea and be more familiar with it before tackling the problem. Basically having a good fundamental understanding before starting the exercises due to reasons below.

The syllabus (https://exercism.org/tracks/python/concepts): the syllabus page show a broad overview of the fundamental concepts of the programming language : basics -> numbers , bools -> conditions etc. However the exercises inside the sectioned concepts feel like they are in a somewhat arbitrary order, I guess one reason is you have to unlock other concepts and exercises to go back and unlocking some more from a previous one. But even then it still feel a bit disorientated.

Exercises ordering : in the Bools section, the first exercise is the learning exercise to introduce user to the concept, then 2nd is Luhn a medium problem, then next is Triangle an easy problem, follow by 2 medium problems and suddenly a hard one with Rest Api (which I assume user gonna need to know more than just bools, then it goes back to 2 easy and 1 medium.
Exercises unlocking : so due to the syllabus page does not exactly behaving in a linear fashion, I mostly refer to the Exercises page as my place to start, and start working from the lowest difficulties. Which I then encounter a funny situation : for a while I got locked out of the exercise "Ellen's Alien Game", which is a learning exercise to introduce user into OOP and class because I missed out some other exercises to unlock it. Yet there are other exercises that explicitly deal with classes and OOP already available to do.
I also mistakenly did the "Nth Prime" exercise before I realize there is a related one in easy difficulty as "Sieve ". This is totally my fault for not looking closely, but I wish the "Nth Prime" was locked first and then got unlock after you have to deal with "Sieve", because some of the later problems are not simply just basic concepts anymore but you have to think algorithmically and know some of them.

The Difficulty: Probably not much needed to say here since I'm aware this is an open issue and I already saw the aggregated list. But yeah, not all easy problems are created equally.

Grading : (assuming tests and analysis here) sometimes I got the code to run and behave exactly as wanted, but the grading demand a different kind of input or output. However I totally understand why since it is machine graded, so it is not a real issue for me.

Those are some issues I thought of while using the site, overall it has been a great experience. I've been able to learn more about wide variety of programming concepts, algorithms, history, and some actual real life application from these exercises. I would continue using the website and encourage others to try it as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions