At the college I go to, the introductory class is ALICE. To me the program is cumbersome, grossly oversimplified, and the class moves slower than necessary. I understand the idea is to give students "nice immediate results." I don't think ALICE is a good way to try this however. Yes, you can learn what a variable is. Sure, you can teach the class to create methods, and even some OOP concepts. Really though that's all I see they're going to cover in a whole semester however.
Arrays? Incredibly limited compared to even a low functionality scripting language.
Our professor says all the time she wants us to learn to work together in groups, and so she makes us do ALICE labs in groups. ALICE isn't any good for this however. The way ALICE requires the coupling between your "code" and the scene/data, only one person can work on it a time. The rest of your group essentially has to just sit there and make suggestions. If you want programmers to work together, teach them about coding standards and source control over shadowing somebody else's work.
There's a host of things I can rant about with ALICE. Do I actually have anything against the program? No, I think it's pretty neat. I just don't believe it should be used in a upper level educational course, even if it's introductory.
Of course, maybe I'm wrong and I'm just being bitchy, curious to know what others think.
It's reasons like this why I didn't take "higher education".
IMO they are using computer science as a gold mine, letting anyone take it, let anyone teach it. Now it's so diluted it's not even worth it to me. My only problem is I have almost finished a basic hardware abstraction layer for my operating system kernel, yet I have no degree and work in a chip shop. Go figure huh?
Never tried it, but it looks good for introduction into programming suitable for wide spectrum of ages.
The rest of your group essentially has to just sit there and make suggestions.
Maybe it is your curriculum which misuses this program? If you limit group size to 2 you might try your hand at "pair programming": a valid and often used programming practice.