I feel confident from my previous research that introducing games to learn programming concepts can be beneficial if done correctly. What exactly is considered “done correctly”? That’s my new focus and based on this, I found this research that gives some interesting tips on using games.
Using Games in Introductory Courses: Tips From the Trenches
Jessica D. Bayliss
Rochester Institute of Technology
http://delivery.acm.org/10.1145/1510000/1508989/p337-bayliss.pdf?key1=1508989&key2=8187859321&coll=GUIDE&dl=GUIDE&CFID=30881536&CFTOKEN=16402446
The author noted that one of the areas with a record of success is with using games in introductory programming courses. While there are several successful programs, the drawbacks of these approaches are not commonly discussed along with their benefits. The author stated, “Having run a successful game-based program that retained students within the CS major at a 93% rate, we discuss both the benefits of the program as well as the problems that need to be considered and overcome.”
TIPS FOR SUCCESS
Based on the author’s experiences with using games in the introductory course sequence, the following tips would be considered helpful for others to follow.
In essence, instructors who wish to use games in introductory courses should:
- learn about modern games through playing them and before using them in a course. A professor or lecturer teaching games should play them and know about them.
- consider course outcomes and add game assignments to meet them. Games are flashy and it is easy to become lost in trying to program the prettiest graphical user interface when the real goal is study movement algorithms. All game assignments should directly relate to course outcomes.
- scaffold by either having students program small parts of an existing game or through using a game framework.
- allow creativity in assignments.
- encourage risk taking from students, but know when to pull them back.
- use games in a variety of ways.
- consider gender when planning assignments.
- consider having a special CS1-CS3 section concentrating on development through the use of games if there are enough enrolled students. If not, then use games in a portion of CS1-CS3 courses.
- leave enough time for learning a framework or planning assignments with games.
- rigorously assess the introduction of games into a course in order to make sure that the appropriate course outcomes are being met.
Games may be used in three different ways in an introductory course and not all uses of games need to be complex.
Students may learn through:
- programming a game
- playing a game
- the analysis of elements in a game
POTENTIAL PROBLEMS
The author noted that while using games in an introductory course may be very successful, there are potential pitfalls that need to be avoided.
Here are some of the potential problems that may occur when trying to introduce games as an application area into computer science courses:
- Game technology fails
- Not everybody likes games
- Games aren’t serious
- Not enough time
Bayliss stated, “There are several questions that we believe are of primary importance when deciding whether or not to use games in the classroom.
1. Is the teacher of the class willing to do the extra preparation for using games and does the teacher have the necessary time to prepare for using games?
2. Are games being used to learn a certain concept or are they being used primarily to engage students and get them interested in the field of computer science?
3. Is the school environment conducive towards using games in order to teach concepts?”
If the teacher of the course has minimal preparation time, then the author stated that it is better to hold off on using games or to use simple games that are well known. Students invariably find out when a teacher does not understand a game concept.
Some school environments are more conducive to using games in order to teach concepts and some are less so. It is important to assess learning very carefully when comparing game and nongame assignments. It is possible that a poorly planned game assignment will actually perform worse than a non-game assignment.
My Thoughts
Indeed, I have experienced some of these benefits as well as problems first hand when I’ve attempted to add a few games to the assignments for my introductory programming course.
An example: We use C++ now, but before this, we used Visual Basic to introduce programming. My, oh my, our students could create the most magnificent forms! They were beautiful and had so many intricate details, but can you guess? These beautiful forms did nothing. The students spent so much time on the form; they did not actually complete the programming portion of the project. If they did begin the programming, often times it was incomplete. What a disappointment. Only when they took the second level programming course (console-based C++) did they actually learn how to program.
As I continue to work through the redesign of the curriculum of the introduction to programming course, I’ll certainly heed the advice of the author.
If you’ve experienced any of these, please let me know what you thought worked well and what you needed to change in order to get the problems to be a minimum. Your experience would be fascinating to hear!
Reference:
Bayliss, J.D., (2006), “Using Games in Introductory Courses: Tips From the Trenches”, Technical Symposium on Computer Science Education Publication. Web Site: http://delivery.acm.org/10.1145/1510000/1508989/p337-bayliss.pdf?key1=1508989&key2=8187859321&coll=GUIDE&dl=GUIDE&CFID=30881536&CFTOKEN=16402446
Wednesday, April 15, 2009
Subscribe to:
Post Comments (Atom)
Hi Debbie,
ReplyDeleteGreat post! I am so glad you focused on HOW to use games in a programming course. That’s one of the main things I object to when people talk about adding new technologies or using them in new, innovative ways. More isn’t always better nor is new. Adding chili peppers to my Cheerios may be a new idea but is it a good idea? Blech.
I especially liked the idea “learn about modern games through playing them and before using them in a course.” Finally! I can have fun and call it work! Seriously, I loved learning to use Second Life and played around for hours, guilt-free, because it was for my class. The only problem with this (and it would be the same for playing games) is that I had to exert a lot of self-discipline to keep myself from getting lost for hours in the world.
Re: the potential problems you identified:
**Game technology fails: Sure, this would be horrible. But in an intro course, the games you’d consider would not require intricate technology
**Not everybody likes games: So what? Not everybody is particularly interested in finding the sale price of an item or calculating a monthly car payment, but we assign these programs anyway. The point is to learn how to use the constructs. If someone doesn’t like games, he/she can still use the assignment to learn the concepts.
**Games aren’t serious: Not sure what this means. Learning to program to get the output to be a triangle made with *’s or X’s isn’t rocket science either.
**Not enough time: This is the only problem I think is valid. If it takes an inordinate amount of time to get the students ready to program the game, then it may not be worth it. The time has to be spent learning a specific amount of content and I think that should come first.
I guess you know how I feel about the wasted time spent creating elaborate forms when we taught Visual Basic at Santa Fe. I would definitely hate to see a repeat of that—students turning in projects that looked beautiful and didn’t work. It was bad enough that the programs didn’t work, but what bothered me the most was that the students really didn’t understand why a beautiful-looking non-functioning program was worthless in the class.
One other thing I just thought of—it seems that programming a game with an elaborate interface may be best left to advanced courses. Maybe we can develop something like a capstone course where students use all they learned in Web Authoring 2, Internet Programming, SQL, your COP2551 (or is it COP2552?) to come up with one giant (semester-long) project. Maybe they could choose from a few options: a game, a business site with a database, etc. I would almost like to see that course as an alternative to the internship we now require.
I really enjoyed reading this posting. Thanks so much for the great ideas!
Liz
Debbie,
ReplyDeleteGreat post! The tips for success make sense. A teacher should definitely educate themselves before teaching any topic. The students should be the ones to explore and come to conclusions, while the teacher is the resource.
As for the potential problem, not everyone likes games-not everyone is going to be happy all the time. The purpose of the games is to get more people than usual to become interested in pursuing a career in computer programming.