Paper Menu >>
Journal Menu >>
![]() Vol.2, No.2, 124-129 (2010) Natural Science http://dx.doi.org/10.4236/ns.2010.22021 Copyright © 2010 SciRes. OPEN ACCESS ALICE as a tool for programming at schools Ewa Graczyńska Institute of Mathematics, Opole University of Technology, Opole, Poland; [email protected] Received 7 November 2009, revised 24 November 2009, accepted 5 January 2010. ABSTRACT We present some possible application of ALICE in the context of a possible attraction of pupils (especially girls) in early programming course. Our examples presented in the paper are fully explained on the base of [1]. Keywords: Interactive 3D Graphics; Animation Authoring Tools 1. INTRODUCTION Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory com- puting. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first pro- gramming experience. In Alice’s interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. This information was found at www site: www.alice.org. A free ALICE 2.2 programme may be found there, together with some other introductory materials. Alice allows students to immediately see how their animation programs run, enabling them to easily under- stand the relationship between the programming state- ments and the behaviour of objects in their animation. By manipulating the objects in their virtual world, stu- dents gain experience with all the programming con- structs typically taught in an introductory programming course. Our aim is to point out that in our opinion this pro- gramme may be very useful as a tool for teaching in the Middle schools to attract pupils (especially girls) in: early programming, making short videos with MP3 mu- sic and adding some pieces of translations of that music, for example. Other possible applications at school is useful for learning foreign languages, especially English or German and other subjects as well. We intend to ex- plain our ideas on three examples. These examples were examined on a group of pupils with a positive result. It is not the purpose of this paper to publish statistical results on an application of the methods proposed but to show how a short presentation at school can be made in order to attract pupils in programming simple videos with their favourite MP3 music or with their own re- cordings of poems in their own or foreign language. In the third we use special effects. It is obvious that these three simple methods combined together presents a pos- sibility of early introductory into programming in the Middle schools. 2. AN EXAMPLE OF PRESENTING MP3 MUSIC WITH A DOMESTIC OR FOREIGN TEXT The author of [4] mentioned that: “Women are currently underrepresented in Computer Science”. In the opinion of the author of [3] and many others: “middle school is a critical age, during which may girls turn away from sci- entific and mathematical pursuits, including Computer Science. By giving middle school girls a positive first programming experience, we may be able to increase girl’s participation in Computer Science”. Also the opinion above has been made in USA, we have observed that the situation is quite similar in Po- land and some other EU countries. In middle schools girls are less interested in Computer science as boys. As the result we observe that girls constitute a minority on Technical Faculties in our Technical Universities (in- cluding Opole University of Technology), on Informatics studies, while mathematical studies in Poland, surpris- ingly, are sometimes occupied by girls (for example at the University of Opole). Despite that fact, we have ob- served many times, that the scientific way for women, very often, is much more complicated and difficult as for men. However, this is not a topic of that article. Our goal is to concentrate on the particular problem of a possibil- ity of increasing an interest of pupils in Computer Sci- ences in Middle schools, using the particular programme, namely ALICE. To achieve this goal, we present three possible ways of: ![]() E. Graczyńska / Natural Science 2 (2010) 124-129 Copyright © 2010 SciRes. OPEN ACCESS 125 1) implementing MP3 popular songs using ALICE, 2) implementing poems via ALICE, 3) using special effects and sounds. We have observed that, programming short 1-3 min- utes videos with MP3 music is very interesting for pupils, because one may learn programming and train its imag- ination at the same time, learn the text of the song plus English (or other language) by the way, Therefore we present here an example of a presentation of a piece of one popular song in Germany. Our translation is a sample of possible texts which may appear in such video. First we present some pictures from the video then a possible code of such presentation, made with ALICE programme. Example 1. We present a photo made from a scene of our video: Party.mv by ALICE: Diagram 1. A photo from video Party.mov. Party’s Code made for a 3 minutes video with MP3 music in German. Party’s Code Created by: Ewa Graczyńska World Events When the world starts Do: world.music When A is typed Do: ground.dance1 Let move Any Object When 1 is typed Do: world.dialog1 When 2 is typed Do: girl.dialog2 Methods world.music( ) No variables palmTree play sound world.10-AudioTrack 10 (3:44,896) duration = 150 seconds world.dialog1 ( ) No variables evilStepsister1 say It’s party time! duration = 2 seconds world.dialog3 ( ) No variables randomGuy2 say You are super! duration = 2 seconds Ground Meyhods ground.dance1 ( ) No variables Do in order light resize 2 duration = 2 seconds evilStepsister1 move right 5 meters duration = 1 second evilStepsister1 turn left 2 revolutions duration = 1 second Do together evilStepSister2 turn right 2 revolutions duration = 1 second palmTree.leaf2 point at evilStepSister2 duration = 2 seconds evilStepSister2 move amount = 0,25 meters toward target = camera duration = 1 second Do together palmTree.leaf6 point at evilStepSister2 evilStepsister1 move left 1 meter duration = 2 seconds evilStepSister2 move left 1 meter duration = 2 seconds maleBalletDancer move left 5 meters duration = 2 seconds Do together Loop 10 times times Do together maleBalletDancer turn left 2 revolutions duration = 2 seconds Do in order maleBalletDancer.torso turn at speed left speed = 1 revolutions per second maleBalletDancer.torso turn at speed right speed = 1 revolutions per second evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2.stomach.torso roll at speed left speed = 2 revolutions per second duration = 1 second evilStepSister2.stomach.skirt turn left 2 revolutions duration = 2 seconds evilStepSister2.stomach.leftThigh turn right 2 revolutions ![]() E. Graczyńska / Natural Science 2 (2010) 124-129 Copyright © 2010 SciRes. OPEN ACCESS 126 evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2.stomach.rightThigh turn left 2 revo- lutions evilStepSister2.stomach.skirt roll at speed left speed = 2 revolutions per second randomGuy2 point at girl duration = 2 seconds style = abruptly Do together maleBalletDancer turn left 2 revolutions duration = 2 seconds Do in order maleBalletDancer.torso turn at speed left speed = 1 revolutions per second maleBalletDancer.torso turn at speed right speed = 1 revolutions per second evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2.stomach.torso roll at speed left speed = 2 revolutions per second duration = 1 second evilStepSister2.stomach.leftThigh turn right 2 revolutions evilStepSister2 turn left 2 revolutions duration = 2 seconds evilStepSister2.stomach.rightThigh turn left 2 revo- lutions evilStepSister2.stomach.skirt roll at speed left speed = 2 revolutions per second randomGuy2 point at girl duration = 2 seconds style = abruptly Loop 10 times times Do together camera move backward 1 meter duration = 2 seconds girl stand up duration = 1 second style = gently girl turn left 0,25 revolutions duration = 2 seconds girl move left 1 meter duration = 2 seconds girl turn right 2 revolutions duration = 1 second girl move forward 1 meter duration = 2 seconds girl turn at speed left speed = 2 revolutions per second evilStepsister1.hips orient to palmTree duration = 2 seconds Do together girl.body.leftArm turn left 2 revolutions girl.body.rightArm turn right 2 revolutions Do in order girl.body.neck turn left 0,25 revolutions girl.body.neck turn right 0,5 revolutions girl.body.neck turn left 0,25 revolutions girl.leftLeg.lowerLeg orient to girl.body.leftArm evilStepsister1.hips.skirt turn to face girl.body evilStepsister1.hips.leftThigh.leftCalf turn left 2 revolutions evilStepsister1.hips.rightThigh.rightCalf turn right 2 revolutions Loop 2 times times light turn left 1 revolution duration = 2 seconds style = gen- tly camera get a good look at randomGuy2 asSeenBy = evil- Stepsister1 randomGuy2 orient to camera duration = 2 seconds randomGuy2 turn right 0,5 revolutions duration = 2 seconds randomGuy2 turn left 2 revolutions duration = 2 seconds randomGuy2 orient to camera duration = 2 seconds randomGuy2 turn left 0,5 revolutions randomGuy2.upperBody turn at speed left speed = 2 revolutions per second randomGuy2.leftLeg.knee turn at speed left speed = 2 revolutions per second randomGuy2.rightLeg turn at speed right speed = 2 revo- lutions per second randomGuy2.leftLeg.knee turn right 2 revolutions camera get a good look at girl duration = 2 seconds style = abruptly girl move amount = 1 meter toward target = camera duration = 2 seconds girl orient to camera duration = 2 seconds style = abruptly Do in order light orient to girl duration = 2 seconds girl orient to camera duration = 2 seconds Loop 5 times times girl.leftLeg turn right 2 revolutions duration = 1 second girl.rightLeg turn right 2 revolutions duration = 1 sec- ond girl.body turn right 0,25 revolutions duration = 1 second girl.body turn right 0,5 revolutions duration = 1 second girl.body turn left 0,25 revolutions duration = 1 second girl.body.neck turn left 0,25 revolutions duration = 1 second girl.body.neck turn right 0,5 revolutions duration = 1 second girl.leftLeg orient to camera duration = 2 seconds style = abruptly girl.rightLeg orient to camera duration = 2 seconds style = abruptly girl.rightLeg.lowerLeg turn right 2 revolutions duration = 1 second girl.leftLeg.lowerLeg roll left 2 revolutions duration = 1 second girl.body.leftArm roll left 2 revolutions duration = 1 second ![]() E. Graczyńska / Natural Science 2 (2010) 124-129 Copyright © 2010 SciRes. OPEN ACCESS 127 girl.body.neck.head orient to camera duration = 2 sec- onds style = gently girl.body.leftArm.forearm roll left 2 revolutions dura- tion = 1 second girl.rightLeg roll right 2 revolutions duration = 1 second girl.body.rightArm.forearm roll right 2 revolutions duration = 1 second girl.body.neck turn left 0,25 revolutions duration = 1 second girl turn left 2 revolutions duration = 1 second style = abruptly light orient to girl girl orient to camera duration = 1 second style = gently Do together randomGuy2 stand up duration = 1 second style = gen- tly camera get a good look at randomGuy2 duration = 1 second Do together camera get a good look at randomGuy2 duration = 2 seconds randomGuy2 point at girl duration = 2 seconds camera get a good look at girl duration = 2 seconds light orient to girl duration = 2 seconds camera get a good look at girl.body duration = 2 seconds light orient to girl.body duration = 2 seconds style = gently girl orient to camera duration = 2 seconds style = gently Do together camera get a good look at randomGuy2 duration = 2 seconds Do in order randomGuy2 say Hey! duration = 2 seconds randomGuy2 say You are super! duration = 2 sec- onds evilStepSister2 Methods evilStepSister2.dialog2 ( ) No variables girl say We are dnacing and dancing. duration = 2 seconds girl Methods girl.dialog2 ( ) No variables girl say We are dancing! duration = 2 seconds Diagram 2. Party’s Code We explain that in the code, MP3 music was arranged to play for 230 seconds. This time may be changed ac- cordingly. “Sounds” are presented in ALICE as “seldom used properties”. However, our experience led us to the conclusion that this kind of attracting pupils in making videos with ALICE work perfectly and gives many posi- tive results. 3. AN EXAMPLE OF PRESENTING OWN RECORDING Example 2. Video Plato.mov may be considered for teachers in middle schools as another possibility to attract pupils in combining programming videos using ALICE and add- ing own sound, for example singing a song. This exer- cise in fact is quite difficult for beginners, as one should record its own graphical presentation of a poem (or a song) together with the voice suitably implemented. As our group of girls have practiced that to make a good recording via ALICE of a short poem or a song needs sometimes many tries. During these multiple repetitions, girls usually were able to learn to recite the poem which gave them additional advantage. Especially if the poem or a song was in a foreign language. Expressing the ides of a poem as a video was another positive experience which gave pupils a possibility to express more fully their emotions via colourful visualization. For some of them it was really a great pleasure to express thoughts in an animation powered with a piece of music or own declamation. Diagram 3. A photo from video Plato.mov. Plato’s CodePlato’s Code Created by Ewa Graczyńska World Events When 1 is typed Do: world.metoda1 When 2 is typed ![]() E. Graczyńska / Natural Science 2 (2010) 124-129 Copyright © 2010 SciRes. OPEN ACCESS 128 Do: plato.metoda2 When 3 is typed Do: plato.metoda3 Methods world.metoda1 ( ) No variables plato resize 2 plato Methods plato.metoda2 ( ) No variables plato play sound plato.plato1 (0:04,650) duration = Full Length plato.metoda3 ( ) No variables Do together light set point of view to plato.body duration = 2 seconds plato.body.neck turn right 0,25 revolutions duration = 2 seconds plato.body.rightArm turn right 0,25 revolutions duration = 2 seconds Do in order plato.body.rightArm.rightForeArm constrain to face cam- era plato.body.rightArm.rightForeArm.rightHand turn right 1 revolution duration = 2 seconds plato.body.rightArm.rightForeArm point at light duration = 2 seconds plato.body.rightArm.rightForeArm turn left 0,5 revolutions duration = 2 seconds plato.body.rightArm.rightForeArm.rightHand turn left 0,5 revolutions duration = 2 seconds plato.body.leftArm point at light duration = 2 seconds plato.body.rightArm.rightForeArm.rightHand turn left 0,5 revolutions duration = 2 seconds plato.body.rightArm.rightForeArm.rightHand.playDoe point at light duration = 2 seconds light orient to plato.body.leftArm.leftForearm duration = 2 seconds plato.leftLeg.leftShin.leftFoot turn left 0,25 revolutions duration = 2 seconds camera get a good look at plato duration = 2 seconds Diagram 4. Plato’s Code 4. AN EXAMPLE OF PRESENTING SPECIAL EFFECTS We studied monograph [1] to find some more possibili- ties for examples. Example 3. It presents a method of combining implementing sounds with special effects, as fire animations, to attract the presentation, based on Example 1 of [1], p. 307 where a class level variable timeLeft has been created to illustrate how a block of a possible game instructions can be controlled by a timer. TIMER1’s Code Created by: Ewa Graczyńska World Events When the world starts Do: World.playGame When the world starts Do: World.my first method When the world starts Do: chicken.metoda1 Let move Any Object When C is typed Do: cloud.claud1 When F is typed Do: fire.fire1 When G is typed Do: fire.spin like crazy When the world starts Do: chicken.metoda2 When H is typed Do: fireAnimation.fire2 Methods World.my first method ( ) No variables timer.initialize amountOfTime = 30 Do together World.playGame timer.countDown World.countdown ( ) No variables ![]() E. Graczyńska / Natural Science 2 (2010) 124-129 Copyright © 2010 SciRes. OPEN ACCESS 129 Do in order While ( timer.timeLeft > 0 ) Do in order timer set text to ( timer. timeLeft as a string ) duration = 0 seconds Wait 1 second decrement timer.timeLeft by 1 duration = 1 second // Prints out when the timeLeft hits 0 timer set text to ( timer.timeLeft as a string ) duration = 0 sec- onds World.game ( ) No variables Do in order chicken play sound World.doorbell (0:02,602) chicken play sound World.splash (0:00,734) chicken move amount = 2 meters toward target = timer timer turn at speed right speed = 1 revolutions per second timer turn to face World World.playGame ( ) No variables Do in order While ( ( timer.howMuchtimeLeft ) > 0 ) chicken turn left 2 revolutions duration = 1 second Loop 10 times times chicken turn left 1 revolution duration = 1 second Wait 1 second chicken turn right 1 revolution duration = 1 second Diagram 5. Timer1’st Code. Diagram 6. A photo from video Timer1.mov. We used instructions in Example 1 on p. 307 of [1] to create a timer that counts down in seconds. This exercise was exiting for pupils, as they used some new anima- tions from the CD attached to the monograph [1]. Some pupils were very satisfied with that kind of programming as an early exercise before programming a more com- plicated game. During our short course of programming in Alice with a use of [1], in the group, the growth of an interest in programming games and also several other subjects was noted. Among them there were foreign languages, especially those in which the MP3 music was listened (English or German) or in which the poems were declaimed. A possibility of a computer visualiza- tion of ideas or some natural phenomenon was highly appreciated by the pupils as an additional effect of their experiments. 5. ACKNOWLEDGEMENTS The author is very grateful to the referee for her/his valuable comments during the preparation of this paper. Due thanks are expressed to Wanda Dann for her early help to the author with Alice. REFERENCES [1] Cooper, S., Dann, W. and Pausch, R. (2009) Learning to program with ALICE, Pearson International Edition, Sec- ond Edition, Prentice Hall, London. [2] Cooper, S., Dann, W. and Pausch, R. (2003) Teaching Objects-First in Introductory Computer Science. http://www.alice.org/publications/pubs/TeachingObjects- firstInIntroductoryComputerScience.pdf. [3] Kelleher, C. and Pausch, R. (2006) Lessons learned from designing a programming system to support middle school girls creating animated stories. IEEE Symposium on Visual Languages and Human-Centric Computing. [4] Vegso, J., CRA Taulbee Trends: Female Students & Fac- ulty, http://www.cra.org/info/taulbee/women.html. Three files: Party.mov and Plato.mov and Timer1.mov are available at: www.egracz.po.opole.pl. |







