More than specific programming constructs, I do worry that there might not be friendly and welcoming environments for people who want to learn more advanced languages.
As well as the above, I believe that if someone was able to come up with a Scratch type drag and drop blocks in a simple editor, which then generated a plain text file to be sent to any "real" compiler (automagically if possible ) - then it would be much easier to transistion.
Once the programmer was used to it, they'd just stick to editing directly in the new language so I wouldn't expect them to actually use the block type editor for very long.
This might seem to make developing such a tool a waste of time but I believe it would get young programmers over a barrier and once such as tool had been written for say VB - it would be trivial to make it work for C or any other text based programming language.
regards
Simon
Last edited by SimpleScratch (2008-06-06 02:05:54)
Offline
Wow. Alice is kinda weird. It'll take some getting used to, but after I get the gist of it, if I still need help, I look at your tutorials
Offline
Personally, I agree with dbal in that I don't believe that Scratch is a good starting point directly leading to mastery of Java or C++. Scratch doesn't even try to emulate any of these. I think, however, that Scratch is a wonderful entry to programming itself.
Most of Scratch's ingredients (objects, control structures, variables, events, messages, threads and parallelism, dynamic capabilities, designing a GUI, multi-media, sensors input) will probably be around for another while. Playfully learning about these and being able to discuss such concepts in a friendly community goes a long way from trying to edit, save, compile, link, and run "Hello World" out of a black-arts-tutorial (and not getting a clue what you're doing, but doing it anyway because magic demands obscure rituals).
It has been said, that "system programmers are high priests of a low cult". I like to imagine Scratch programmers becoming creative sharers instead, both learning and teaching each others at the same time.
I'm also deeply sceptical about such slogans like "object orientation is encapsulation, inheritance and polymorphism". Yeah, these are all ten-dollar words which look impressive in college-handouts and professional seminars. They're also easy to spot in exams and you can take away points if a student forgets one. But these are not god-given, it's just one way to model things. There have been other ways before and there will probably be others in the future. And I'm not talking about centuries, mind you.
So, what is "real" programming anyway? I'm not sure about Scratch. But then, I'm not so sure about C++ either. But Scratch certainly is an "awesome" start!
Offline
My goal is too learn them all. Now I have no clue (a little) on C++, Java, etc, but Scratch is great to start as Jens said. And now I'm starting Alice, which seems like, as dbal said, a next step, and I would agree. I dunno where the "next step" would be after Alice, but it's working!
Offline
Hi, all.
Regarding the question, "Is Scratch a good starting point for learning Java?"
There is some evidence that it is. David Malan, an instructor who teaches an introductory Java course for non-CS majors, has been using Scratch in the first week or two of the class as a warm up exercise. The first time he tried this, he found that the drop rate fell dramatically and there were fewer grades below C. He's taught the class one or two more times with the same result.
David thinks there is a fairly directly mapping from Scratch constructs to Java constructs, and that students do make the connection.
A much bigger factor, however, is more psychological. Scratch allows students who have never programmed to do something creative and exciting in the first two weeks. That gives them the confidence and motivation to stick with the rest of the course. It's true that some of the students who come into the class already knowing C++ or Java complain that Scratch is a waste of time. But they merely grumble, they do not drop the class.
If you'd like to read more about this, see the paper:
http://www.eecs.harvard.edu/~malan/publications/fp079-malan.pdf
David also made some slides for introducing Scratch:
http://www.eecs.harvard.edu/~malan/portfolio/scratch1.pdf
Incidentally, in that same Harvard class they previously used Alice as the intro. The problem with that was that Alice too much time. Scratch has such a quick startup time that the warm-up exercise only takes a few lectures, leaving the rest of the course for Java.
Also, although I can only offer anecdotal evidence, I know of several cases where students who started with Scratch later moved on to ActionScript or Java with relative ease.
-- John
Offline
Bluestribute wrote:
My goal is too learn them all. Now I have no clue (a little) on C++, Java, etc, but Scratch is great to start as Jens said. And now I'm starting Alice, which seems like, as dbal said, a next step, and I would agree. I dunno where the "next step" would be after Alice, but it's working!
In case anyone is interested, the YouTube video at the following link was produced by a high school student in Alabama using Alice 2.0.
http://scratch.mit.edu/ext/youtube/?v=2WwQI7dPiAw
The video was entered into a film festival and won both the first place plaque and the best in show plaque.
Offline
Wow. I guess if you are good at Alice you could make that. I know I never could (at least right now)
Offline
SimpleScratch wrote:
More than specific programming constructs, I do worry that there might not be friendly and welcoming environments for people who want to learn more advanced languages.
As well as the above, I believe that if someone was able to come up with a Scratch type drag and drop blocks in a simple editor, which then generated a plain text file to be sent to any "real" compiler (automagically if possible
) - then it would be much easier to transistion.
Once the programmer was used to it, they'd just stick to editing directly in the new language so I wouldn't expect them to actually use the block type editor for very long.
This might seem to make developing such a tool a waste of time but I believe it would get young programmers over a barrier and once such as tool had been written for say VB - it would be trivial to make it work for C or any other text based programming language.
regards
Simon
This is essentially what Carnegie Mellon is promising to do with version 3.0 of Alice. As before, it will provide a drag and drop interface, large numbers of 3D models, etc. However, the new drag and drop interface will be built on top of Eclipse and will produce standard Java source code as its output. The student will be able to switch back and forth between drag and drop code generation and code generation using the text editor built into Eclipse. The idea is that this will provide an easy, fun, and engaging entry point for new programming students and a smooth transition into full Java OOP as students gain experience. That is the good news.
The bad news is that version 3.0 is not scheduled for final release until Fall 2009 with alpha testing at selected schools in Fall 2008 and beta testing at a broader selection of schools in Spring 2009.
Although as far as I know, the details are not available to the public, a Scratch to Java converter of some sort already exists. Each time a Scratch project is shared onto the MIT website, it is somehow converted into a Java applet. Given the significant differences in the control structures between Scratch and Java, particularly in terms of loops, I am amazed at how well the applet mimics the behavior of the original Scratch project.
I have no idea whether the conversion is being done at the Java source code level or at the Java bytecode level. If at the source code level, I would love to have an opportunity to examine the source code being produced for my projects.
However it is being done, the folks at MIT are to be commended for achieving this capability.
Last edited by dbal (2008-06-06 11:19:28)
Offline
Bluestribute wrote:
Wow. I guess if you are good at Alice you could make that. I know I never could (at least right now)
Never say never
Offline
dbal wrote:
Bluestribute wrote:
Wow. I guess if you are good at Alice you could make that. I know I never could (at least right now)
Never say never
![]()
Good point, I have the whole summer. But... at this exact moment, I can't even make person walk (but after I get throuhg the supolied tutorials, if I still don't get it, then I'm going to yours, only because theirs are interactive and are on the actual "face" of the program for a visual)
Offline
Jens wrote:
I believe the Scratch online version is basically an interpreter for Scratch which is written in Java and doesn't touch Scratch projects at all.
Interesting.
1. Do you know if the interpreter uses the sb file as input?
2. Is there a format specification for the sb file available anywhere?
3. Is the Java source code for the interpreter available anywhere?
Thanks
Offline
Bluestribute wrote:
dbal wrote:
Bluestribute wrote:
Wow. I guess if you are good at Alice you could make that. I know I never could (at least right now)
Never say never
![]()
Good point, I have the whole summer. But... at this exact moment, I can't even make person walk (but after I get throuhg the supolied tutorials, if I still don't get it, then I'm going to yours, only because theirs are interactive and are on the actual "face" of the program for a visual)
Making a person walk and look natural is one of the most difficult things that you can do in the current version of Alice. It is also difficult to do in Scratch except in the case of the sprites that already have walking costumes such as the young boy. Otherwise, you have to create your own walking costumes for a sprite and that can require a great deal of artistic talent.
There are at least two ways to make objects walk in Alice. One way is to create poses and cycle through them much the same way you cycle through costumes in Scratch. I believe that is how the author made the hero walk, run, dive, climb, etc., at http://scratch.mit.edu/ext/youtube/?v=2WwQI7dPiAw Creating poses in Alice doesn't require a lot of artistic talent but it can be a little tedious.
Some of the objects in Alice have walking methods built in. For example, the Mad Scientist has a built in method named entering lab. Put him in the world and then run the entering lab method and he will walk. The cow has a built-in method named walkTowards and the penguin has walk methods as well. Probably other objects also have walk methods, but I don't know which ones do and which ones don't. You will simply have to examine them to determine which ones have walking methods built in and which ones don't.
Alice Version 2.2 is scheduled to be released before the fall semester and Carnegie Mellon has promised that many of the objects in the People section of the object gallery will have built-in walk methods.
By the way, there are hundreds of additional objects available in the online gallery that aren't available locally on your computer. They do it that way to save space on your disk.
Offline
dbal wrote:
Look above (too long)
O.K., I'll try the scientist, cows and stuff. Thanks!
Offline
Hey, I made my first animation in Alice! I don't know where I can post it though so you can see it... Actually, I've made 3: A frog, a spaceman (I didn't save it), and a skateboard (running it right now)
Last edited by Bluestribute (2008-06-07 16:28:35)
Offline
dbal, the Scratch file format is documented here: http://scratch.mit.edu/files/source-code/ScratchFileFormat.txt . I'm not sure if the Java code has been made public yet, I haven't seen it anywhere. Oh, and, yes, the Java player uses *.sb files as input. You can actually download it to your computer and thereby try the "online version" of your projects before you upload them.
Offline
Bluestribute wrote:
Hey, I made my first animation in Alice! I don't know where I can post it though so you can see it...
Great! I look forward to seeing your animation.
Save your Alice project (world) on your hard disk. It will have an extension of .a2w (which stands for Alice 2 world).
Then go to http://www.alice.org/community/ and register as a member of the Alice community. If you register with the name Bluestribute I will recognize you there.
Open a new thread in the category named Share Worlds, and upload your file. I will be able see it, download it, and execute it from there. I will also be able to comment on it in the Alice thread.
Unfortunately, because of the extreme complexity of the 3D files produced by Alice, the folks at CMU have never perfected the ability to create Java applets as is the case with the much simpler Scratch files. Therefore, in order for me to see it, I will need to download and execute it locally on my computer. There is an Alice feature to convert the Alice world to a Java applet, but the size of the resulting applet file is so large as to be impractical.
Another option would be to turn it into a YouTube video, but simply posting it for me to download is simpler.
Offline
It can't get to the database of known spammers. I'll just post it on Youtube and give the link here
Offline
Jens wrote:
dbal, the Scratch file format is documented here: http://scratch.mit.edu/files/source-code/ScratchFileFormat.txt . I'm not sure if the Java code has been made public yet, I haven't seen it anywhere. Oh, and, yes, the Java player uses *.sb files as input. You can actually download it to your computer and thereby try the "online version" of your projects before you upload them.
Hi Jens
I assume that you mean I can download the online player. If so, can you give me the download URL or tell me how to go about finding it? Google isn't very helpful here because of the numerous sites that contain scratch and player (such as the scratchoff gambling sites).
Thanks,
Dick Baldwin
Offline
Bluestribute wrote:
It can't get to the database of known spammers. I'll just post it on Youtube and give the link here
OK, I don't know what you mean by something getting to spammers, but YouTube is a good approach. Then all of your friends can see it as well. I'll be on the lookout for the link.
Offline
dbal wrote:
Bluestribute wrote:
It can't get to the database of known spammers. I'll just post it on Youtube and give the link here
OK, I don't know what you mean by something getting to spammers, but YouTube is a good approach. Then all of your friends can see it as well. I'll be on the lookout for the link.
It's uploading...
Offline
Bluestribute wrote:
dbal wrote:
Bluestribute wrote:
It can't get to the database of known spammers. I'll just post it on Youtube and give the link here
OK, I don't know what you mean by something getting to spammers, but YouTube is a good approach. Then all of your friends can see it as well. I'll be on the lookout for the link.
It's uploading...
That's the quickest I have ever seen anyone go from Alice to YouTube!
Offline
dbal wrote:
Bluestribute wrote:
dbal wrote:
OK, I don't know what you mean by something getting to spammers, but YouTube is a good approach. Then all of your friends can see it as well. I'll be on the lookout for the link.It's uploading...
That's the quickest I have ever seen anyone go from Alice to YouTube!
How long does it normally take to upload? I mean, it's just a simple frog animation. turn head, move forward, go back, turn camera
Offline
Bluestribute wrote:
dbal wrote:
Bluestribute wrote:
It's uploading...That's the quickest I have ever seen anyone go from Alice to YouTube!
How long does it normally take to upload? I mean, it's just a simple frog animation. turn head, move forward, go back, turn camera
It usually takes me a few minutes just to get ready and create the video to get it ready for upload to YouTube. You did convert it to a video before uploading it to YouTube didn't you?
Offline
dbal wrote:
Bluestribute wrote:
dbal wrote:
That's the quickest I have ever seen anyone go from Alice to YouTube!How long does it normally take to upload? I mean, it's just a simple frog animation. turn head, move forward, go back, turn camera
It usually takes me a few minutes just to get ready and create the video to get it ready for upload to YouTube. You did convert it to a video before uploading it to YouTube didn't you?
After I realized it was the wrong format. I converted it to .mpg
Offline