Codelets - Definition
Codelets are software assistants designed to help students learn
to write code for a given algorithm.
They support the code-writing
process in the following ways:
- They provide hints on demand for each line of code;
- When the student attempts a line of code, they provide
immediate feedback about the correctness of the code
(as opposed to delayed feedback or error-flagging feedback);
- They verify correctness by checking the source code, not testing it;
- They reinforce good programming practices, such as
writing the shell of a control statement before filling in
the details;
- They step the student through the lines of a program
in a sequence that reflects the logical development of code
rather than its physical layout.
Some principles behind codelets are:
- The process of programming is just as important as the final product,
i.e., program itself.
- A program must be developed in a hierarchical manner. Students who
only see the final product incorrectly conclude that programs are
written in a top-down linear fashion rather than iterative spiral fashion.
- Students must not only learn to program, but also
use good coding styles and develop good coding practices.
- One piece/line of code, one purpose.
The following paper, presented at SIGCSE 13 explains many of the
ideas behind codelets: