Vivian,
Great points! I agree with you on the cycle of writing as well as on "just in time" instruction. And the Code.org resource looks great. My read is that they suggest this order of skills:
- Sequencing
- If Block
- If-Else Block
- Repeat Block
- Repeat Until Block
- While Block
- Counter Block
- Functions
- Functions with Parameters
This is the sort of thing I was thinking of with standards. I don't mean changing reading/writing/math/science standards. I mean rewriting Computer Science standards! I think we should use those other standards (along with developmental psychology - Piaget et al.) to inform what students should be able to do when they code at different ages.
Looking at the 3 questions:
1. How do we teach students skills while encouraging exploration, tinkering, play, and creativity?
2. What are the "mentor texts" (great example programs) that students should study in Scratch?
3. What is the scope and the sequence of skills that first time users should master?
1
This seems to have two answers so far:
- Workshop Model
- Guided Discovery Model (I'm totally making this term up)
The workshop model relies on showing students mentor texts, focusing their attention on certain aspects of these texts and telling them to apply said aspect to their own project.
I'm labeling the approach I see in codeclub.org and in Learn to Program with Scratch as guided discovery. This approach walks students through a process. At the end of the process students have experienced the code and can apply it to their own project.
Discussion Question: Which model should we prefer?
(Meta-Discussion Question: Is my summary an accurate one?)
2
Wow! This question seems to be getting answered the fastest.
- Madeline, what an amazing wealth of resources you've collated! I've spent time with your site Scratch Adventures and still feel I've only scratched (oh! the puns) the surface.
- Andy, Code Club has tons of projects that can be built and analyzed!
- Vivian, Basic Scratch has code that can be copied and run.
- Learn to Program with Scratch has code written in the book that can also be downloaded and used.
It seems the work to be done now is not finding mentor texts, but identifying 2-3 to teach key concepts. Which leads us to question #3...
3
Code.org does provide an answer to scope and sequence, which I list above. Learn to Program with Scratch proceeds in a different order:
Motion and Drawing
Looks and Sound
Procedures
Variables
Making Decisions
Repetition
String Processing
Lists
Which sequence is right? Is either?
To me these look like very different sequences of skills. How do we evaluate them?
As I said above, I think it makes sense to apply existing standards from outside CS to inform what students are expected to apply inside CS. Additionally, we should keep in mind age expectations for abstraction and planning.
Thoughts?