Skip to content

Rethinking the order of the exercises #823

Closed
@emcoding

Description

@emcoding

Related #815

Currently, I am going through the flow of the exercises per request of @hilary and after several interesting conversations on Slack :-)

The greater goal is to have topics that will work for the new exercism design and that cover the core concepts of Ruby. In a way that is most helpful to the students and a pleasure to mentor.

Elsewhere I spoke about my concern that some of the exercises unlocked by 'hello world' are really complicated, and I am worried that this will put off people. I'd hate to lose students because they think: "O, if I can't even solve the first exercises, this is not for me." Or worse.

Short term goal

What I'd like to do as a first step, is mark a few really simple exercises to be unlocked by hello world, and just move all the other side exercises 'one level up'.
(See Question 1 below)

Long term goal

As this is my first steps in being involved in the track flow, I'd like to check if this is the right direction.

Here is an illustration of what I am thinking for the start of the track. (With only a selection of the relevant exercises, to keep it clear.)

exercismfirststeps

  • In the first column, we have the simplest exercises, preferrably oneliner methods.
    It should touch the different data types with some simple data manipulation. In this stage, students will get familiar with Exercism, with mentoring and probably mainly style things.
    Mentoring is very fast, in my experience with TwoFer it is mostly "Great!!"s and sometimes someone needs more attention.
    (As a side note, I know Exercism is not meant to learn Ruby, but I really think this first level start is useful anyway, see thoughts hereafter.)
    More advanced students, maybe coming from different languages, will burn through them, and yet get early feedback on the Ruby way of things.

  • The second column are exercises with one step more: like Error handling, and most important: iterations. This means that if a student is not familiar with the Enumerables, and for instance doing for loops, the mentoring is still straightforward. Focus is on the basic Enumerable methods, for basic iterations.

  • That means when we arrive at the third column, with something like Grains, we shouldn't have to point them to basic Enumerable methods anymore, but can discuss on a higher level: iterating over all the chessboard fields, or optimize by using math.
    Other candidates for this column are exercises where more advanced Enumerable methods are helpful.
    Also, exercises where the organisation of code is addressed.

Interesting: Currently, Hamming is coming before RNA transcription. I think with this ^ set up, it would probably be the other way around: RNA as the first exercise with a RegEx and advanced String methods screams Middle Column , and Hamming with the more advanced Enumberable#zip method could be Third Column (or also Second, because of the low difficulty).

Question 1: The short term goal
Can we do an isolated step first, to match the short term goal? That means mark only the first exercises (left column) as unlocked by: null, and move all the other (side) exercises up to a next level exercise.
Without changing the core exercises yet, just move them up to be unlocked by either TwoFer or Hamming

Question 2: The long term goal
What do you think about this kind of building-up? Is this a viable approach?

Question 3: Long term goal
I'd prefer to make all the exercises in the middle column core exercises. I'd think that mentoring can be done very fast in most cases. And if it cannot, it is for a good reason, and it is good to catch those early, and not in more advanced exercises. What do you think?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions