I'm teaching sixth grade to program with scratch.
I would like to give them a working demo program of mine and ask them to write the code for it as an assignment.
Is there a way I could hide the script code of my scratch demo program?
Thanks
Offline
Not really - only be "videoing" it with 3rd party software whilst running in presentation mode.
You could display t (perhaps on an IWB in presentation mode so they can see it, but as soon as you giove them a copy they can look at teh code.
****
Unless - perhaps you could set up a scratch Java server that doesn't allow downloads?
Offline
i dont know about hiding, but you can make it fullscreen, would that work?
Offline
I too would like to be able to hide the code for instructional purposes. In addition, is there a way to print out / dump the code of a project (so it could be debugged or added to away from the excitement of the pictures?)
Offline
The extras button has some hidden functions. If you shift-click it (on a Mac, I don't know if that is right-click or middle-click on Windows), you get some more options. In particular, "write project summary" is a misleadingly named way to get the scripts as text files.
Personally, I don't approve of hiding commands by putting them under other mouse buttons like this, but the MIT folk have at least backed off from the control-meta-coke-bottle days of the mid 1970s, and things aren't quite so deliberately obscured.
Offline
Scratch was designed with an educational philosophy that puts more emphasis on fostering the creation of personally meaningful projects rather than giving assignments where people have to implement a predefined assignment.
I am a bit skeptical of hiding code as a way of learning.
Instead of giving assignments we would advocate to let people create self-assigned personally meaningful projects.
When we run workshops we often show examples of finished projects, propose a theme (e.g. celebrations) and let people decide on something unique and personal they want to create. This could be something totally new or an improvement or change on someone else's project.
The success of the session is then "measured" by the diversity of projects and personal engagement of the participants rather than by whether or not everyone could implement an assignment.
Offline
I am a middle school science teacher with a group of students working with Scratch as a "problem based learning" class. There are advantages to being able to show a project without the code and have the students brainstorm or ponder how certain events can be produced. My observations after about a month are the students' projects are very code heavy and when they ask me to help debug a problem, I must work through lots of superfluous code.
I made a version of the old tank game with very simple code in hopes that the students will strive for minimal coding for maximum effect.
Free play and open investigation are one excellent way of teaching students Scratch.
Challenges, exercises and instructional videos are others.
Magic Mark (aka Mr. Young)
Offline
I too would like a way of demonstrating my exemplar Scratch projects to students without them being able to download the sourcecode straight away.
What I'd like is a "phased release" system. This would allow me to create classroom activities based on example projects written by myself. In conjunction with my lecture, my handouts, supplied graphics, supplied audio, sprites or scripts, learners would be able to create their own versions of the example project.
What I want to be able to say to my learners is: "go to the galley and have a look at this week's example project...now go to our Intranet and get the artwork and other resources which were used to create this project....now using your worksheets, work through the sheet to create your own version of this project...at the end of the lesson I will release the sourcecode so you can download it from the gallery...".
Having this capability would allow us more freedom to use Scratch imaginatively in the classroom.
Offline
Fractal: I guess we see Scratch being used a bit differently. One model of inspiration is the community of open source software developers where everyone works on projects they choose and learns from other people's accomplishments or failures.
When we run workshops we tend to pick a theme (example: celebrations) and then let participants create their own projects based on that theme. That way everyone is creating something they really care about (they picked it). One of the roles of the facilitator is to go around and find interesting discoveries people make and tell everyone "look what s/he did! please, explain to us how you did that?".
Offline
Andresmh,
The way you describe using Scratch is a valid model of instruction though one could debate how much actual learning is taking place. As lecturers we have quite specific learning outcomes which must be delivered and we must ensure that learning is taking place. "Discovery Learning" is certainly a valid method of delivery but in my opinion should not be the only method employed. What I was asking for is not mutually exclusive with your "discovery" model (which I use all the time) but would allow us more flexibility when choosing to use Scratch in different ways.
Offline
Fractal wrote:
What I'd like is a "phased release" system. This would allow me to create classroom activities based on example projects written by myself. In conjunction with my lecture, my handouts, supplied graphics, supplied audio, sprites or scripts, learners would be able to create their own versions of the example project.
I suppose that I can see your point about keeping students focused on learning "structure" and how to use the various constructs that make up a program, a lot of Scratchers get stuck on a "Show", "Move", "Think", "Wait", "Move", "Think", etc, etc, theme. They are having fun, and creating something, which is fine in a "programming club", but if you want to teach specific things with measurable goals and assign grades, you have a problem.
Still, it seems that what you want to do with Scratch could be acheived without blocking anything from the users (students) by:
Discussing the subject matter of interest.
Showing the "example" project running in "presentation mode" (so that the scripts aren't visible.)
Challenging the students to build the project using only specified "blocks".
I can even imagine some advantage in having the students see the blocks they aren't to use. If you were learning about applying "Repeat (n) Times", what harm would there be in knowing that "Forever If" is part of the language as well, and wondering when it should be used?
If the concern is having the students get absorbed in painting sprites and importing pictures, you could set up the sample project by loading the sprites (you could even drag the "blocks" into the script area and leave them unconnected, create the variables, etc.) and then saving the project to the name "Lesson_1".
Scratch is so easy to pick up that I would imagine that they would progress quickly to knowing all of the commands, so you would need to have some very specific projects in store keep them focused. I'd hate to have to "grade" their efforts, though. There are many different ways to build a program, and who's to say that one is better than another...
-MrEd
Offline
magicmark and Fractal have pointed out a pedagogical problem:
presenting a project to students for them to build, while not giving them the solution already.
Andres responded with a different pedagogical approach to teaching programming.
I believe that both approaches are valid, but it is somewhat difficult in scratch to provide an executable without providing the source code. I can think of three workarounds:
1) present the project as a set of specifications, rather than by showing a working program.
This is easy to do, but requires some care in getting the specs right.
2) re-implement the project demo in flash, which does allow execution without seeing the source. This is probably more work than it is worth.
3) Set up your own web site that allows executing .sb files but does not provide an obvious download button. This doesn't keep clever kids from downloading the files, but does make it a little harder for them to find the right URL, particularly if you use a little name-mangling.
It is pretty easy to set up a web site to run scratch programs, and several of us have done it. If you are handy with php, you can even arrange for the site to make sure it has the latest java code for the scratch interpreter. There was a thread on this a while back.
This is probably the closest magicmark and Fractal are going to get to what they asked for.
Offline
Thank you for this information. Kevin_Karplus: I think I will attempt solution "3".
EdnaC said: "I'd hate to have to "grade" their efforts, though. There are many different ways to build a program, and who's to say that one is better than another...". This is a challenge we face whenever we mark student code written in any language - there are usually many ways to achieve the same result. I beleieve Scratch will be no different in this respect.
I am looking forward to using Scratch in the classroom next semester; I can't wait in fact and neither can the students according to the expectations exercise they recently completed.
Offline
Grading programs is no different from grading essays, poetry, art, or any other creative endeavor. It is, in fact somewhat easier, since one can add some objective criteria about what the program has to do, in addition to the usual aesthetic judgments. Having taught both programming classes and tech writing classes, I'd say that programs are generally easier to grade than other writing, but often harder to read. The lack of comments in scratch will make grading scratch programs harder, since the writer can't provide much guidance for what her or she is trying to do.
Offline