mullins

11-17-2007, 12:33 PM

Hello all,

This is intended to share some data and ask for some input...

At my 4 year, state university we are currently using Alice in our equivalent of Cs101o. We use Java in CS102o and CS103o. Obviously the truly OO topics are moved into CS102o & CS103o, but we are able to move graphics, multimedia and user interface topics into the Alice course. The second two courses are thus the equivalent of a traditional CS1 & CS2 in content.

We are in our third semester of a two year experiment using Alice and from the beginning there has been significant resistance to using Alice. The argument is essentially that Alice is not a "real" language and that programming in Alice is not "real" programming.

The objections moved from our own department to the sciences and mathematics, carried by skeptical colleagues. Our current advising system lets any student that has taken OO programming previously and, more recently, the science & math majors to skip the Alice course.

As general information the Alice course (or a replacement) are a required part of the major curriculum in CS, IS and IT along with an "emerging technology" program in another department. Other departments have in the past required or recommended the course. It also counts as a liberal studies course.

For those interested in how we are doing so far, enrollment in the Alice course has increased both years (Spring registration just ended) despite declining enrollment of CS, IS and IT majors. The withdrawal rate declined significantly. More women are taking the course also. Pass rates are not stable enough to be certain, but appear to be increasing also.

I agree with the skeptics in one regard. Very open ended assignments are not necessarily teaching traditional programming skills. I have found myself specify a skeleton structure that must be implemented and upon which students can then elaborate to make the program their own. I believe this is working.

In a recent interim report, I pointed out the above data (They got charts.) and mentioned several "real" programs that I use to demonstrate topics and capabilities to students. These are mostly not intended as code for the students to dig through, though advanced students often do. The list I provided includes:

54 self-paced tutorials written in Alice on Alice

Graphics, syntax, variables, recursion, lists…

Recursive square root (Newton’s method) - error shown graphically

Bubble sort based on object properties – array visualization

Entirely event-based chase with random movement – hawk & mouse

Bouncing ball – basketball starts in free fall accelerated by gravity

Backtracking through a maze

Projectile motion – drop causes a splash

Sci. Visualization – heat diffusion in thin metal bar, reconfigurable finite elements (event-based)

“IQ Test” peg game w/ heuristics

Tic-Tac-Toe: 1 or 2 player

Donkey Kong level 1

There are many more that are specific to Alice, such as turning the drop and splash into a special effect animation, but I don't think they make the case for being able to write "real" programs in Alice.

Since these are all things I have thrown together myself. I thought many of you might be able to extend this list of "real" programs implemented in Alice. I would greatly appreciate a quick response if you care to share what you or your students have written.

BTW, noting that version 3 is on the horizon brought a sour look the faces of the skeptics. :D

This is intended to share some data and ask for some input...

At my 4 year, state university we are currently using Alice in our equivalent of Cs101o. We use Java in CS102o and CS103o. Obviously the truly OO topics are moved into CS102o & CS103o, but we are able to move graphics, multimedia and user interface topics into the Alice course. The second two courses are thus the equivalent of a traditional CS1 & CS2 in content.

We are in our third semester of a two year experiment using Alice and from the beginning there has been significant resistance to using Alice. The argument is essentially that Alice is not a "real" language and that programming in Alice is not "real" programming.

The objections moved from our own department to the sciences and mathematics, carried by skeptical colleagues. Our current advising system lets any student that has taken OO programming previously and, more recently, the science & math majors to skip the Alice course.

As general information the Alice course (or a replacement) are a required part of the major curriculum in CS, IS and IT along with an "emerging technology" program in another department. Other departments have in the past required or recommended the course. It also counts as a liberal studies course.

For those interested in how we are doing so far, enrollment in the Alice course has increased both years (Spring registration just ended) despite declining enrollment of CS, IS and IT majors. The withdrawal rate declined significantly. More women are taking the course also. Pass rates are not stable enough to be certain, but appear to be increasing also.

I agree with the skeptics in one regard. Very open ended assignments are not necessarily teaching traditional programming skills. I have found myself specify a skeleton structure that must be implemented and upon which students can then elaborate to make the program their own. I believe this is working.

In a recent interim report, I pointed out the above data (They got charts.) and mentioned several "real" programs that I use to demonstrate topics and capabilities to students. These are mostly not intended as code for the students to dig through, though advanced students often do. The list I provided includes:

54 self-paced tutorials written in Alice on Alice

Graphics, syntax, variables, recursion, lists…

Recursive square root (Newton’s method) - error shown graphically

Bubble sort based on object properties – array visualization

Entirely event-based chase with random movement – hawk & mouse

Bouncing ball – basketball starts in free fall accelerated by gravity

Backtracking through a maze

Projectile motion – drop causes a splash

Sci. Visualization – heat diffusion in thin metal bar, reconfigurable finite elements (event-based)

“IQ Test” peg game w/ heuristics

Tic-Tac-Toe: 1 or 2 player

Donkey Kong level 1

There are many more that are specific to Alice, such as turning the drop and splash into a special effect animation, but I don't think they make the case for being able to write "real" programs in Alice.

Since these are all things I have thrown together myself. I thought many of you might be able to extend this list of "real" programs implemented in Alice. I would greatly appreciate a quick response if you care to share what you or your students have written.

BTW, noting that version 3 is on the horizon brought a sour look the faces of the skeptics. :D