Wednesday, March 25, 2009

Microsoft's Answer to Enhance CS Curriculum

I found this amazing study from Microsoft regarding the use of computer gaming for computer science curriculum. What was amazing about it was that our college uses the Microsoft Academic Alliance (where students can obtain software for free or for significantly reduced prices). In addition this paper also discusses the use of Alice.

What is so significant about Alice is that our department (Information Technology Education at Santa Fe College) utilized Alice in our Programming and Logic course.

The title of the paper is


Computer Gaming to Enhance CS Curriculum
“Strengthening the CS Pipeline”

http://research.microsoft.com/en-us/collaboration/papers/computergamingtoenhancecscurriculum.doc

The following are a few excerpts from this paper:

· In light of recent enrollment trends in undergraduate computer science (primarily in North America), Microsoft is interested in enhancing computer science curriculum, and correspondingly the student attraction, comprehension and retention rates, with innovative use of computer gaming concepts and assets.

· Microsoft Research has been supporting a number of curriculum initiatives, all meant to provide assets to academia in our Curriculum Repository within the MSDN Academic Alliance Developer Center, (hereto referred to as the Curriculum Repository) in hopes of increasing interest in computer science careers.

· In discussions with Academia and partners in industry, Microsoft has come to the conclusion that one way to improve student interest and participation in Computer Science is to enhance the curriculum with themes that resonate with today’s students. In general, today’s incoming Freshman has spent more time playing computer games than watching TV or going to the movie cinema. This includes women who make up about half the participants in the rapidly growing massively multiplayer gaming market.

· So, by enhancing CS curriculum with game-related sophisticated environments and more tangible results to coding problems, students are more engaged.

. Recently a paper submitted to the National Science Foundation (NSF) by Carnegie Mellon University demonstrated the power of using a computer gaming environment (Alice) to enhance computer science curriculum. They have documented performance improvements for Computer Science freshmen in CS1, showing that when these students use Alice, they achieve B average grades compared with students in the control group (not using Alice), who achieve C average grades. When teaching CS1 with Alice, retention for CS students into CS2 also went up from 47% to 88%.

--------------------------------------------------------------------------------

In my tenure using Alice, I found that my students really enjoyed using this tool to learn programming concepts. Mind you, the students don’t actually code a program per se, they slide over commands that they want an object to do. They must put them in order and to what extent they would like the command to perform.

An example: using Alice, I had my students program a dragon flying around a hot-air balloon. In Alice, every segment of the dragon is an object. That means you control the wings, legs, head, neck, eyes, spines, etc… with a separate command. It is actually very inventive, but for beginning students, it could be a bit overwhelming.

If you program the wing to flap, the wing may not stay attached to the body! Of course, you must go back to your program and control the body that the wing is attached to. If the dragon moves his head, his eyes may not follow and literally be off the dragon!

But, I digress. In this one example, my students spent countless hours in lab and at home finishing this project. Some students had the dragon breathe fire to blow up the hot-air balloon. Some had the dragon swoop down trying to grab some item on the ground. I hope I’ve made my point that students went above and beyond the scope of the project. It was exciting to see my students get so excited about programming.

However, I did find that other students became so frustrated with Alice (see the above scenario) that a simple flap of a wing took hours to figure out. Not only can the wing move up and down, it can roll, jump, and bend. How fast do you want it to move up and down? In what increments – a quarter turn or a half turn? It simply became too overwhelming to many students and they simply gave up. That’s one reason why we tabled Alice and moved to Raptor as a introduction to programming logic. (Another blog posting – be on the lookout!)

In conclusion, there appears to be a fine line where students are eager to complete an assignment and hopefully learn a programming concept, but along that line, many students are simply overwhelmed with all the bells and whistles.

If the games are simplistic in nature to a beginning programmer, the results will show that the student was not only able to complete the assignment, but learned the conceptual lesson being taught. If you’ve ever programmed before, the feeling of accomplishment is like none other!

I’d be interested to know if you have ever used Alice and what you thought about it.

4 comments:

  1. Hi Debbie,

    I noticed at the SIGCSE conference that gaming is definitely increasing in importance in CS curricula. But you know my feeling about Alice.

    I also found, at the conference, that people who used Alice did so at the high school or middle school level. There was little interest in Alice for college-level classes.

    The problem I see with Alice (aside from the fact that students become intrigued with creating the environment and spend little time on "programming") is that it removes the programming from the programming... For example, to get a skater to circle a rink 5 times, you tell Alice to make the skater circle the rink 5 times. Fine -- that's a loop. Or you could tell Alice to have the skater circle the rink until the dragon appears. Another type of loop. But I could tell a child to walk around a table 5 times or walk around the table until his mother comes home and that doesn't mean the child understands how a loop in a computer program works.

    Alice just didn't resonate with me -- in my opinion, the programming part was too simplistic for beginners and didn't teach them anything. Sure, you could create incredible programs with Alice -- but to do so, you had to learn advanced programming concepts which you had to learn in a traditional manner.

    Sorry about this...

    ReplyDelete
  2. One more thing -- I don't "get" Commenting on Blogs! I wrote my Comment, clicked Preview, wanted to edit something, but there was no "edit" option. After Preview, my only choice was to Post... what am I doing wrong?

    ReplyDelete
  3. Hi Liz,

    After many embarrassing posts since I published before I was ready, I understand your question completely. You have to "hide preview" or X out of the preview. You will then return to edit mode.

    Thank you for re-iterating my thoughts about Alice. It could be fun, if you kept it VERY simplistic, but the students didn't actually learn programming. I did have students who LOVED it, but more students became frustrated with it (including me) than those who LOVED Alice.

    If you wanted to program something more than an ice-skater circling, you needed more programming concepts. When you reached that level, students who LOVED it became very frustrated with it.

    --Debbie

    ReplyDelete
  4. Everyone,

    The Alice discussion is very interesting to me. I'm always looking for a programming environment that provides a good balance of control and sophistication with ease of use. I worked with Alice many years ago, and after some initial excitement I came to the conclusion that it didn't demonstrate pure programming concepts the way I wanted.

    What are some of the tools you use? I've often gravitated toward Director because of the tie between the Lingo language and the ability to manipulate visual objects pretty easily. My students would go through the Aha phase when they could move a graphic element on the screen by writing code as opposed to using the traditional animation techniques.

    - Hap Aziz

    ReplyDelete