|
What Is "Graduated Complexity"?
CodeLab is organized into sequences of
three to ten exercises, where each sequence pertains to a particular
topic (e.g. array access, function invocation). Within each sequence
the level and sophistication of the exercises increase gradually
but steadily. For example, in the case of array access, a CodeLab
would have exercises that ask the student to:
- Access the first element in the array.
- Access the third element in the array.
- Access the last element in an array of 100 elements.
- Access the middle element of an array of 7 elements.
- Access the last element in an array where an
int variable n
contains the number of elements.
- Given an
int variable k, access the
element whose index is given by k.
- Given an
int variable k, access the
element after the one whose index is given by k.
- Given an
int variable k, access the
element before the one whose index is given by k.
- Given an
int variable k, access the
element two elements after the one whose index is given by k.
- Access the middle element in an array where an
int
variable n contains the number of elements.
- Access the element that follows the middle element in an array
where an
int variable n
contains the number of elements.
Thus, the student starts the section accessing arrays with
integer constants, and finishes the section using integer expressions
while gaining experience in treating the array elements themselves
as members of an ordered sequence.
Benefits
This arrangement, of graduated complexity, minimizes the chance of a student
getting stuck. Objectively, completing the first N exercises gives the student
an exquisite preparation for exercise N+1. Subjectively, having obtained
confirmation of his or her mastery of the first N, the student can tackle
exercise N+1 with more confidence. This makes CodeLab ideal for settings
where no faculty, TA, or tutor is available.
Additionally, by providing a multitude of exercises on a given topic,
the student gets the opportunity to practice the construct
or concept in a variety of ways, helping him or her to deepen
their understanding.
300+ Exercises: So Many?
300+ might sound like a large number of exercises.
In one semester a professor certainly cannot give 300+ programming projects
or 300+ exercises from the end of the textbook chapter.
However, 300+ CodeLab exercises are quite manageable over the
course of a semester because of the nature of the exercises.
They are generally short and the immediate feedback means the student can submit
an answer with errors, have those errors pointed out in a couple of
seconds and re-submit a correct answer.
The next exercise will be very much like the one they have just completed but with a
slightly more sophisticated twist.
Statistics
Each submission is captured and logged by the CodeLab engine.
This enables Turing's Craft to keep track of general statistics regarding the rate of submissions.
The average number of submissions needed to complete an exercise
is about 1.5. Why so low? In large part because of graduated complexity:
most exercises are just more complex versions of the previous one.
And thanks to the automatic feedback and hints, 90% of the exercises
are completed correctly in 3 or less submissions.
|
|
|