skip to main |
skip to sidebar
How do you teach individual components like functions to beginning programming students? Can you guess? Play a game, of course!I’ve determined in my previous research that giving my introductory programming students a choice to program either a game or a real-life use project is the best way to go. This should counteract any gender bias.However, I have noticed that when I introduce certain topics – such as functions or methods (some call them subroutines), students have a difficult time regardless of the project they have chosen.What are functions? Functions require using logic that will cause the program to branch off to execute another set of blocked code. Most students begin to learn to program by placing all their code into the main function. At first, that’s acceptable, but as the program becomes more intricate, you need to be able to block your code to make it easily readable and fixable. It is agreeable that you think of the main function as a to-do list and let the functions do the work. For example, you’ve been given the task to program a hangman game. You understand the rules of the game and you understand what you must to do to code the project, but your instructor has required you to use functions. Simply put, it’s just a different way to program! The outcome, whether or not the programmer uses functions, will be the same to the player of the game, but not to the programmer.The question remains: How do you teach functions?My director of our department sent this game to me last semester thinking it would be useful in my introduction to programming course to initiate the concept of functions and reusable code. I opened the link with a delighted surprise – it’s actually very fun to work with. Initially, I was concerned since most pre-programmed games I have come across have some juvenile aspect to it, but this game is just a bit different.The name of the game is light-Bot developed by Coolio-Niato, sponsored by Armor Games on Kongregate. You program the robot to go through different obstacle courses. Eventually you run out of room with the commands, which forces you to begin using repeating code in functions. My students usually have a difficult time with functions in some manner and this game actually became fun for them.
I have to tell you as I was working through this again, my 12-year-old son couldn’t wait to give it a try. He actually did great!
You literally drag commands to the blocks in the order you want the robot to perform.
The site gives this description:
“light-Bot is a programming-style game version of Lego Mindstorms game. Give commands to your robot to light up the factory. Very soon you will realize though that using the main method on it's own is not enough and you will have to start creating re-usable functions to achieve the ultimate goal.”
Give it a quick try (it really only takes a moment!):
http://www.kongregate.com/games/Coolio_Niato/light-bot?email=invitation&referrer=
After level 6 (see image), you run out of spaces to drag commands and you are forced to watch for repeating code to put into your f1 and f2 slots. Then in the main function, you call the functions you have programmed.
Before I introduced this to my class, I wanted to do some research to see if other studies have indicated any successes using games such as light-Bot. Guess what I found:
Developing Understanding of Programming Principles using Flash Actionscript
Graham Routledge, Amin Aminaei, Phillip Benachour
Department of Communication Systems
Infolab21, Lancaster University, UK
http://www.ics.heacademy.ac.uk/italics/vol6iss4/Routledgeetal.pdf
The authors’ noted, “It is important as a result to find ways of engaging students in activities where programming is seen as a tool to demonstrate other concepts and ideas visually which can in turn help in the teaching of programming principles.”
The concepts and methods used when writing programming code can seem very abstract and difficult to understand. How can you program something you don’t understand?
The authors concluded that for many students entering higher education to study information and media technology with no or little programming experience, it is not always obvious what a ‘function’ is or how an ‘if’, or ‘else if’ statement or an ‘array’ works and where it should be used.
Also, In general, basic programming should not be too difficult for beginners, but concepts can be difficult to visualize for some students, while for others the written example code alone is enough to build a mental image of what is happening within the program and this often leads to varying learning rates for different students.
In conclusion, the authors’ stated, “When evaluating student feedback, the results show that a majority of students –with and without previous programming experience- will engage well with an application environment where visualisation is involved. A high majority of students with previous programming experience (82%) said that they felt that learning to program without visualisation was hard and slowed their progress.”
My Thoughts
I didn’t introduce light-Bot to my class right away. I really wanted them to learn syntax – that is C++ code – before getting “lazy” by dragging commands. We had been burned by using Alice before, so I was hesitant to use this immediately.
However, when time came around for repeating code and the introduction of functions, I introduced them to this game. Again, it doesn’t take very long before you are forced to use functions – which helps the students understand the concept of repeating code and how smaller functions can be reused over and over.
The good part of this is that the students “get” exactly what is happening when a call to a function is added to their program. That’s half the battle! In fact, when it came time to write their program, they understood exactly what types of functions to use and where to put them.
The not-so-good part of this is that while the students began to see the usefulness of functions, they had a tough time getting functions to behave using the C++ syntax. Pass by reference or pass by value? Does the order of the arguments matter? Regardless, that’s another issue for another post.
In light-Bots, you also don’t pass parameters or use arguments in these functions, but the whole idea is just getting the students to recognize the value of reusable code.
Once you’ve done that – you’re on your way!
Tell me what you think of light-Bots. I’d love to hear your thoughts and results.
References:
Kongregate, “Play light-Bot”, Web Site: http://www.kongregate.com/games/Coolio_Niato/light-bot?email=invitation&referrer=
Routledge, G., Aminaei, A., Benachour, P. (October 2007). “Developing Understanding of Programming Principles using Flash Actionscript”, Retrieved: April 19, 2009. Web Site: http://www.ics.heacademy.ac.uk/italics/vol6iss4/Routledgeetal.pdf
Several times in my research I've noticed conclusions that stated that women do not like to program games. This intrigued me so I thought I would research just a bit on some women studies regarding gaming in CS1.
Problem Solving in Community: A Necessary Shift in CS Pedagogy
Sarah Monisha Pulimood
Department of Computer Science
The College of New Jersey
Ursula Wolz
Computer Science and Interactive Multimedia
The College of New Jersey
http://delivery.acm.org/10.1145/1360000/1352209/p210-pulimood.pdf?key1=1352209&key2=1767099321&coll=GUIDE&dl=GUIDE&CFID=31476945&CFTOKEN=33370313
The authors’ noted, “Supporting a workforce that can create, not simply consume, computing technology requires a shift in pedagogy toward problem solving in a gender neutral, culturally and ethnically diverse community. It requires an authentic learning environment in which students solve real problems as a collaborative community with their peers from other disciplines.”
One study mentioned in this article noted that, in general, women were drawn more to a curriculum that utilizes real-world uses – not just the dry, mathematical problems or male-oriented applications like sports statistics and missile trajectories.
In one of my previous posts, I noted that when students are asked to choose between two assignments, one that is typically considered to be ‘traditional, male-oriented’ and one that is set in a more real-world context, that women almost always selected the “real-world” assignment. There appears to be no selection bias among males.
The authors’ noted that in earlier semesters when students typically proposed and implemented games-based projects, their feedback at the end of the semester included positive commentary on the communication and teamwork skills they had gained (in addition to the usual technical skills) but not much on their satisfaction levels.
Only after they were discouraged from games-based projects and were encouraged to implement other types of interesting projects, there was a marked increase in feedback on the satisfaction with the project work experience, all of it positive.
The authors’ stated, “It is clear from this experience that students, regardless of race or gender, respond favorably to assignments that are real-world and need-based.”
Another factor that comes into satisfaction is the amount of time spent outside of class that is needed to complete an assignment. Students were asked at the onset of class to estimate the time needed outside of class they would spend on the course. The average estimate was 3 hours.
At the end of the course, students were asked how much time they actually committed to the class. The average estimate was just over 7 hours.
Furthermore 87% of the students overall rate the experience as valuable.
On an interesting side note, the authors detailed a small study that combined students from different disciplines, such as computer science and education together to create educational games. Each registered for separate courses within their discipline. Faculty from these disciplines would give reciprocal guest lectures and assign collaborative projects with the expectation that the students would meet between classes.
According to the authors, the primary outcome was the discovery that students found countless ways to avoid collaboration outside class! In addition, the most common complaint from the students was that students from the other classes did not attend meetings, and they themselves “did all the work”.
Priceless!
My Thoughts
According to my previous research, I was concerned that if I introduced gaming into my CS1 class, that the women in the class may not find gaming interesting. That would conflict with the purpose of my redesign and research.
Generally speaking, if women enjoy programming real-life uses and men enjoy programming games, this confirms my previous research that offering two different projects per concept is the way to go. One of the projects would be a real-life use and the other could be a game.
In addition, perhaps the student’s expectation of time spent outside of class to work on a project is a bit off. It appears they will ultimately spend double the amount of time than they had initially expected. In essence, if you’re going to spend a lot of time outside of class to work on projects, they might as well be projects you like to code.
I couldn’t help but chuckle when I read the short study on collaboration between disciplines to complete a project. That’s such a common complaint, even if they are students within the same section! Someone ends up doing all the work. Indeed. I do believe this because as an undergraduate computer science student, any group project assigned ended up with me (and maybe one other) completing the entire application and everyone getting credit for it. I certainly don’t miss those days!
What do you think?
Reference:
Pulimood, S. &Wolz, U. (2008). “Problem Solving in Community: A Necessary Shift in CS Pedagogy”. Proceedings of the 39th SIGCSE technical symposium on Computer science education. Web Site:
http://delivery.acm.org/10.1145/1360000/1352209/p210-pulimood.pdf?key1=1352209&key2=1767099321&coll=GUIDE&dl=GUIDE&CFID=31476945&CFTOKEN=33370313
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=16402446The 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
The Media Equation
For this blog posting, I’m using Chapter 1 from the resource “The Media Equation” by Reeves and Nass given to us by our course professor.
I enjoyed reading this chapter and was able to identify with many points in this paper. Does Media = Real Life? According to many of the studies completed, this appears to be true.
An example of this would be using the statement, “Everyone expects media to obey a wide range of social and natural rules”. (pg. 5) If you’ve ever programmed a game, you’ll find that the programmer took into consideration the common rules of the game that most people would expect to find. If a game deviates off course too much, the general public tends to become hostile to the game – “It cheats!” or “It doesn’t play properly!” and will promptly discard the game. That’s certainly not the ultimate goal of a game developer.
In addition, on page 5, the statement, “People are polite to those who ask questions about themselves” as well as “People are polite to computers, too”, certainly rings true as well. If a game asks for information about the player before hand, generally speaking, these people will fill out whatever information is necessary. That’s not to say that the all questions are received warmly, but that by and large, most folks will give an email address or answer other relevant questions.
While on this same thread, I think that’s why the Windows environment became so popular. It “thinks” as we humans think. The old DOS screens and commands were so convoluted that most people just couldn’t memorize or complete simple tasks. The Windows environment is more visual and gives people a normal view of what is happening in the system.
Did you ever wonder why some games are such a big hit and others simply vanish without a trace? I believe the media equation helps define why there is such a big discrepancy between games. On page 8, the statement, “Because people have a strong positive bias toward social relationships and predictable environments, the more a media technology is consistent with social and physical rules, the more enjoyable the technology will be to use.”
The closer a game comes to a player’s reality – and I don’t mean in our everyday lives, but that the social rules and norms are something the player can identify with – the better results the game will have overall. Those that are too vague or too complex are too much for the player to process and they will simply move on another game that is more like the way the player thinks.
I have to admit that page 10 really hit home with me, specifically the Big Issues category. This page tells us, “research shows that media are perceived as real people and places. “ Who of us has never “talked back” to the television or expressed our impatience when the computer responds a tad too slowly?
Another common assumption about technology is that when people treat media as human, they are guilty of anthropomorphism, a mistaken belief that inanimate objects are human.”
How about when our games don’t respond exactly as we would have them behave? Lastly, if a game ran too slowly or the rules weren’t clearly defined, would you want to play it? Not according to this article on page 11, “There is also a strong tendency in discussions about media to consider the real similarities between media machines that think and the thinking done by humans.”
In addition to all of this, I could relate best to page 11, “Anything that seemed to be a real person or place was real.” The article gave an example of a scary movie. I don’t like scary movies because I tend to perceive them as real and I have to spend a great deal of time processing the details of the movie, “it’s only a movie, it’s only a movie” is my mantra! The paper goes on to state, “The fact that the movie scared us in the first place is good evidence that media are real first, and false only after we think about it.” That’s a very true statement in my world!
Although this last example is a bit off my topic of games in education, I have to share one item of interest that correlates well with this paper. As an undergraduate student, I chose to take a psychology course as an elective. It was very interesting and one of the precepts of the course was that each student had to complete a few experiments in which the student was the “lab rat”. So, I sign up for my first experiment, not really sure what I was going in for, but knew I had to.
There were several of us, including my roommate. We were all led to separate rooms and was told to fill out this questionnaire. Not too bad! Many of the questions were judgment questions, such as, if you were a mediator between two people and one person had reason A and the other had reason B. What would you do? There were several options and you had to choose one.
The person who was administering this experiment (and I assume it was a PhD candidate writing his/her dissertation looking for data) would take our answers and return shortly with a “grading” of our judgment. In my case, I was told that I had excellent judgment and asked me another judgment type situation. At the end of this, I received a notice that I had excellent judgment and would I change my major to some sort of a judicial-type career? Boy, I was feeling great!
Afterward, my roommate and I shared our “judgments”. She answered the judgments exactly as I did, but was told repeatedly that she had poor judgment and that she should not consider a judicial-type career. She was devastated until I told her my results – we had been played so well! How funny that we would respond the way we did based on a simple psychology experiment! As stated on page 14, "People like to be praised by other people, even if the praise is undeserved."
Did I mention we were freshman? Perhaps that tells the whole story there.
References:
Reeves, Byron, and Clifford Nass. 1996. "Ch 1, The Media Equation," pp. 3-18 in The Media Equation. Cambridge University Press.
As I continue my research with Microsoft XNA gaming, I came across this publication and it struck my interest.
My research so far indicates that gaming is a good way to introduce programming concepts to beginning students, but the next question is:
WHAT MAKES A “GOOD” GAME PROGRAMMING ASSIGNMENT?
Daniel C. Cliburn
Department of Computer Science
The University of the Pacific
Susan M. Miller
Educational Foundations and Special Services
Kent State University
http://www1.pacific.edu/~dcliburn/ccsc-cp08.pdf
Based on my findings in my last posing, research has shown that when students are given a choice they prefer game to non-game assignments.
What key elements are necessary to create a “good” game assignment?
These assignments would be appealing and motivating to all students, in addition to helping them learn the material a project is intended to teach.
The authors believe it is important to understand specific characteristics of game assignments that students do select to determine why students choose these projects.
The first research question was whether students prefer structured or unstructured game assignments.
In this study, students had the option to create projects that were unstructured using Alice. The other option was to create projects in a structured environment using Java. Unstructured assignments were those that allowed students a great deal of latitude in writing a game or adventure story of their own choice. Structured assignments explicitly directed the students what to write (create the game tic-tac-toe or code the solution to a specific problem from the text book).
A student noted, “With the non-structure we did not know where to start.” This student went on to say that structure makes the project easier and makes students more motivated to get the project completed because they know exactly what to do.
The student who chose the unstructured assignments stated that he liked open-ended projects. He stated that this type of assignment provided the most opportunity to try to learn new things. This student was one of the most motivated in the course, producing excellent assignments and scoring high on exams.
Responses suggest that students were unable to judge whether they could complete an unstructured assignment given their current level of knowledge.
The question remains: Why did some students choose non-game assignments over games?
The research revealed that students did not avoid game assignments because of a dislike for designing or programming games. Instead, students chose non-game assignments because of their need for structure, a perception that it would take less time, and limitations in creating the game option.
Authors' Conclusions
Open-ended assignments may be best suited for an upper division game programming course.
The authors suggested the following recommendations to guide the creation of future game assignments for CS1:
1) Provide as much structure as possible.
2) Well-known games should be assigned when possible.
3) When possible, give the games a graphical element.
My Thoughts
I agree with the conclusions that the authors suggested. When I do assign games, I try to use games that most everyone is familiar with: guessing game, hangman, etc. I found students tend to enjoy programming these types of games much more than games the student has never played.
I once assigned a poker game to my C++ class. Those who understood all the variations of a hand (full house, royal flush, etc.) were much more involved with the game than those who didn’t understand all the different permutations.
The same data held true for my class that was assigned to design a Craps game. Those who understood the combinations of the dice really programmed fascinating projects. Those who did not still programmed nice games, but without all the “extras”. I assuming these students needed to take time to learn the game before they could begin to program it!
As I begin to redesign my introduction to programming class, the three suggestions from these authors will be paramount to the games I assign.
If you’ve ever assigned a game to a class, let me know your results. Did the students get into the game or did the game concepts kill the fun?
References:
Cliburn, D., Miller, S. (2008), "What Makes a Good Gaming Assignment?", ASEE/IEEE Frontiers in Education Conference. Web Site: http://www1.pacific.edu/~dcliburn/ccsc-cp08.pdf
As I was researching for my blog entries this week, I came across several articles that discuss students’ perspectives on gaming assignments when given the choice between two assignments. One of the assignments had a gaming theme to it and the other assignment did not. Very interesting results.
The study:
The Effectiveness of Games as Assignments in an Introductory Programming Course
Daniel C. Cliburn
Hanover College
http://www1.pacific.edu/~dcliburn/fie1171.pdf
In essence, this paper presents the results of a study that attempts to quantify the effectiveness of computer games as programming projects over non-games.
Students completed five major programming assignments during the semester in an introductory programming course. For each assignment, students were given an option between two programming projects, a game and a non-game.
In this study, the assignments offered were:
Project 1A: Number Guessing Game
Project 1B: Change Making Program.
Project 2A: The Marble Game
Project 2B: Factors of Numbers
Project 3A: The Casino Game
Project 3B: The Movie Theatre
Project 4A: Tic-Tac-Toe
Project 4B: Blob Finder
Project 5A: Hang Man
Project 5B: A Bookcase
Throughout the term, 78.9% of the assignments submitted by students were the game option. The average grade, however, on game assignments was 89.1%, while the non-game average was 95.1%.
Most notably, games tend to be more appealing to the male students, and competitive games may even “turn off” some females.
However, both genders did attempt more game assignments than non-games, supporting a conclusion that both genders prefer game assignments to non-games. As the assignments became longer and more complex, the games became even more popular.
The author stated, “the best students in the course were the ones choosing the non-game assignments.” In an informal conversation with a student early in the term, the author asked the student what criteria he was using for selecting projects. The student replied that he looked at both assignments and chose the one that he thought looked more difficult. That way, if he could figure out how to do the more difficult project, he was probably learning more in the course.
In a survey at the end of the course, the students were asked several questions. The most notable ones were:
Which project was your favorite? The casino project (Project 3A) was the top selection.
Did you enjoy working on game assignments? 22 out of 25 students (88%) responded “yes”.
Did the games provide any extra motivation for you to complete the project with a high level of quality? 21 out of 25 students (84%) answered “yes”.
The Study Conclusion
The study described by this paper attempted to answer the following questions:
Did students prefer game assignments to non-games? Students chose substantially more game assignments than non-games over the course of the term (78.9% to 21.1%)
Did games assignments improve student scores? No, they did not. Non-game assignments had a higher overall average (95.1%) than non-games (89.1%).
Was the motivation of students to learn programming skills increased when they had game assignments compared to non-games? 84% of the students surveyed answered “yes” when asked if the games provided any extra motivation to complete the projects with a high level of quality.
Probably the greatest lesson learned by the author while conducting this study was that all of the students enjoyed having a choice on the programming projects.
My Thoughts:
Although some of my previous research indicated that using some games to teach programming concepts was a positive move, this study gave me a prospect to consider.
The idea of giving a gaming AND a non-gaming assignment is intriguing. I had not thought of that before. I have given students choices between assignments, but typically they did not differ significantly in concepts.
I may actually try this for the last project in my introduction class this semester. If I can get all my ducks in a row, I’ll be sure to give you feedback from this project.
Clearly, providing students with a choice between a game and a non-game seems to offer the best of both worlds. The students who enjoy games and find them motivating are provided with this option. Any students who do not want to work on games do not have to.
References:
Cliburn, D., (2006). “The Effectiveness of Games as Assignments in an Introductory Programming Course”, ASEE/IEEE Frontiers in Education Conference. http://www1.pacific.edu/~dcliburn/fie1171.pdf
As I continue my research for more Microsoft XNA studies, I found this interesting article that gives gaming feedback from the perspective of the faculty. At first, I thought it was a deviation from my research, but as I continued to read this article, I found that many of the points hit home with my desire to hook students into programming. This article gave me several gears to think about as I search for gaming components into the curriculum. This article does utilize Microsoft XNA as the platform used.
Before I continue, I’d like to share why this article touched home with me. When I was an undergraduate student, I learned to program on very large mainframe computers. Imagine card punches and hoppers. Of course, as time progressed and I entered industry, computing migrated away from mainframes and began distributive computing. PCs became the norm, of course linked to a server to program my projects. I’ve developed many things, modem software, artificial intelligence, robotics, payroll systems, etc. Nowhere in my assigned projects did I ever develop gaming software. Note that I’ve always enjoyed playing games, but I haven’t been on the forefront to develop gaming software.
Now, onto the study:
Game Themed Programming Assignments: The Faculty Perspective
Kelvin Sung
University of Washington, Bothell
Michael Panitz
Cascadia Community College
Scott Wallace
Washington State University, Vancouver
Ruth Anderson
University of Washington, Seattle
John Nordlinger
Microsoft Research
http://faculty.washington.edu/ksung/pub/2008.sigcse53-sung.pdf
The authors begin with promoting their previous research in teaching computer games. They became inspired by the positive feedback they received from students and industry so they began to observe faculty that had little or no gaming/graphics experience.
In today’s society, students demand multimedia experiences, i.e., real time interaction in a visual environment. The authors noted, “Because existing results demonstrating that students' needs can be met and that the learning outcomes can be achieved, our work focuses on the needs of the faculty.”
The authors have two objectives in this study:
· First, develop materials that are suitable for adoption. In essence, the faculty could pick and choose within these materials to combine them with their current curriculum.
· Second, adopt the materials in existing courses and study the following: faculty effort; student learning outcome; and student engagement.
I am more focused on what effort was required of the faculty that used these items as well as student learning outcomes and engagement. I’m willing to put the effort into this gaming curriculum, but does it pay off in student learning outcomes and engagement?
Design Considerations:
The following are the categories the authors used when designing this game material. It’s relevant due to the fact that the faculty were required to implement these changes:
Institutional Oversight: Department committee consensus is often required for significant changes to the core courses. It can be challenging to arrive at a consensus, so each project was self-contained that did not require a complete rewrite of the entire curriculum.
Material Neutrality: It is important that the materials built are gender and expertise neutral. For example, it is important to avoid violence (shooting), and unnecessary competitions.
Academic Integrity: The authors stated, “The goal of this work is to facilitate students' learning about core CS concepts. Any dilution, in favor of even acquiescing to their motivation as game developers, would do the students a disservice.”
The Platform
The study indicated that platform selected to utilize these gaming components would be the C# programming language and the Microsoft XNA framework. This was selected by the fact that C#, XNA, and Microsoft's Games Studio Express combination is the only publicly and freely available solution that provides seamless integration of the development environment, programming language, GUI API, and graphics API. Students like FREE.
Due to the fact that this study was conducted for the faculty that had little or no previous experience with gaming development, each assignment had a console-based and a gamed-theme solution. This way, faculty who may feel comfortable with console-based games could make a slow transition to the same game based on a gamed-theme version. The problem came just making sure that the two solutions were equivalent.
The authors included an implementation tutorial that took the faculty step-by-step into the gamed-theme version. Many of the faculty in this study understood the concepts used in the console-based game, but were unable to make the leap to the game-themed version without assistance.
Assessment
Feedback from the faculty on using these assignments was posted via a custom evaluation form.
The focus of the evaluations was assessed on two areas:
a) Quality of the assignment, which focuses on the technical equivalence between the console and game-themed assignments, and the supporting materials (e.g., pre/post test, etc.).
b) Potential for adoption, which focuses on the factors that may prevent adoption of high quality assignments.
Based on the review feedback, the assignments were well received overall. For those assignments that received lower scores, the assignment were revised and reassessed.
The authors stated, “As expected, all of the low scores were caused by game-themed assignments.” The reasons for this are:
· Differences in difficulties: initial game-themed assignments are often too difficult, complex, or intimidating.
· Inappropriate use of concept: designing assignments around negative results from game play is a bad.
· Deficiency in support: the development team often overlooked important details. For example, in the beginning, a specialized hardware controller was the only way to control a game. This problem was remedied with keyboard simulation.
When the authors received consistently lower scores in the potential for adoption area, they became aware that the language issue must be addressed for wide adoption.
Since both versions of any given assignment covered identical technical topics, the hope was that faculty would adopt the game-themed version transparently. The authors were interested in verifying that the game-themed assignments would not require extra resources from the faculty, that they would achieve similar student learning outcomes, and that they would increase student interest and engagement.
In Conclusion
The study was very relevant to my research because the authors clearly stated, “We must verify that we can replace individual console-based assignment with the corresponding game-themed assignment without negative impact.”
In addition, this study was focused on, “one of the major motivations of our work is to further engage students via interesting and/or relevant assignments.”
This study is still going on as we “speak”. The early results indicate that the students enjoyed the assignments that used gaming specifications; however, not ALL assignments were games. In fact, most courses in this study only utilized 2 to 3 games per semester.
The faculty involved in this study (and I would have loved to participated!) were receptive to these new game-themed assignments, but the learning curve was difficult since most faculty have many other irons in the fire to deal with, much less to learn a new gaming system.
My thought is that I wouldn’t transform the entire introductory course to game-based programming, but introduce a few games here and there each semester.
Several faculty here at SFC have indicated that if we only teach gaming, won’t gaming become boring as well? That thought does hold some validity and upholds my thought of only using a few games per semester.
I will continue my research with Microsoft XNA and report any findings. In the meantime, if you do teach programming using a game-themed curriculum, please share your thoughts and findings with me. I’d love to see where you are and where you’re headed.
--Debbie
References:
Sung, K., Panitz, M., Wallace, S., Anderson, R. Nordlinger, J., (2008). "Game Themed Programming Assignments: The Faculty Perspective", from http://faculty.washington.edu/ksung/pub/2008.sigcse53-sung.pdf
As I was downloading the Microsoft XNA framework today, I began to research studies that have been conducted with CS1 courses using Microsoft XNA. I was curious to do some background work on XNA and its uses and how it may fit into our programming curriculum – especially an introductory programming concept course.
I noticed numerous papers written by Kelvin Sung, PhD from the University of Washington at Bothell. This paper caught my interest right away:
The Game-Themed Introductory Programming Project
http://depts.washington.edu/cmmr/Research/XNA_Games/index.php
The entire proposal can be found at:
http://depts.washington.edu/cmmr/Research/XNA_Games/OriginalProposal/ProjectDescription.pdf
The Purpose:
According to the author, the project was conceived as part of the efforts in addressing the recent decline in enrollments across Computer Science (CS) departments. It has been demonstrated that teaching CS concepts based on programming interactive graphical games motivates and engages students while accomplishing desired student learning outcomes. When properly integrated into introductory programming (CS1/2) courses, these approaches can build excitement and enthusiasm for the CS discipline and attract a bright new generation of students early in their academic careers.
The project addresses these issues by designing CS1/2 game-themed courseware materials.
Goals
To develop Game-Themed materials targeted specifically for selective adoption by faculty members with no background in computer graphics or computer games.
To develop supporting materials for interested faculty members building their own Game-Themed materials.
To assess and demonstrate the effectiveness of the Game-Themed materials in classrooms.
The primary targets are introductory programming courses (CS1/2).
Projects
Currently, there are two projects in progress:
XGA: XNA Game-themed Assignments:
* Seven (7) XNA-based game-themed assignment modules that can be transparently replaced into existing CS1/2 courses.
* Neither the adopting faculty nor the students need to have any knowledge in computer graphics or gaming.
XGC1: XNA Game-themed CS1:
* Examples organized according to typical approaches of covering foundational programming concepts.
* All examples run on the Xbox360 gaming console.
* Assignments and students self-test questions.
* Tutorials for faculty to develop their own game-themed CS1 materials
This is a client of games approach where designing games-themed assignments will teach foundational programming concepts.
Expected Outcome
The author stated that the most significant outcome from this work would be excitement from empowerment: for both students and faculty. For students, the XNA based assignments empower them to apply the mundane programming construct and abstract programming concepts in implementing games that they can play on their favorite gaming console. For faculty members, the XNA based assignments provide a simple and clear pathway and thus empower them to integrate games into their courses.
Pedagogically, from the programming language perspective, C# and Java are similar languages. Currently, many CS1/2 courses are based on Java. With the success of XNA-based games-themed programming assignment modules, an increase is expected in interest from faculty members switching from Java to C# in teaching their CS1/2 courses.
This study will oversee student learning outcomes by administering pre/posttests, collecting student perceptions, grading the assignments, and gathering faculty self-assessment based on faculty reflections on in class activities.
This course proposal was delivered at the SIGCSE 2009 conference in Nashville, TN on March 4 – 7, 2009.
At that time, the author delivered the course outline, exercises and exams, labs, projects, video demonstrations, audiovisual content, slides, tutorials, source code, and reference materials. These can be found at:
http://www.facultyresourcecenter.com/curriculum/FacetMain.aspx?ShowResults=1&FT=Search&Inline=1&SearchType=1&SearchText=Sung&LanguageList=
There is a plethora of information waiting to be read and digested.
My thoughts:
This study is still in progress as I write this. It sounds very promising and I’m anxiously awaiting the results. I checked with the MSDN Academic Alliance Repository to see what results, if any, have come in. Coming soon, it says.
From this perspective, I will continue exploring Microsoft XNA Game Express Edition on my own and use some of the materials that this research has derived to see if our students will glean the necessary constructs needed to be able to move to a university or perform tasks immediately in industry.
When I read a bio on Dr. Sung I found this statement in regard to his programming courses that utilized these types of games:
“His students have used the knowledge they acquired in his classes to advance their careers at Microsoft, to succeed in CS programs at four year schools, and to succeed at programming positions taken directly after graduation.”
Hmm…didn’t I just say that? Did I find a match?--Debbie