Gaming for Computer Science Instruction [part 2] Andrew Phelps Director, Game Design & Development College of Computing & Information Sciences Rochester Institute of Technology Programming Education Hurdles Problems with an objects-first approach (CC2001): Problems with materials Lack of experience Object-oriented thinking not natural for the introductory course Libraries & GUI’s overwhelm the student May not be reinforced in upper level courses [33][34][35][36][37][38][39][40][41] Programming Education Hurdles Students don’t have the conceptual framework to understand object-oriented programmingP – toy problems without reference to current understanding Too hard to go to applications made up of objects and relationships from individual classes Need to teach control structures, etc along with object-oriented programming techniques All of this leads to a decline in student enrollment and self-efficacy in computing as a profession! Perceived Problem Gulf of Expectation: Today’s student is motivated by games, modding, music-lists and collaborative computing. [1][2][3] In contrast, today’s programming classroom is (still) isolationist, focused on syntax rather than intellectual meat [4], and revolves around toy problems that can often be solved with a calculator, which sidesteps real learning. [5][6][7] Perceived Problem Divisional Groups: Upper Division Groups: Have learned the introductory material and have “suffered through” to get to the “good stuff” (i.e. the game engine courses) Lower Division Groups: Are just arriving on campus eager to change the world, but don’t know how to get started. Zero Meaningful Interaction Strategies for Successful Objects First Experiences Using gaming ideas as a basis for teaching. Teaching design before coding syntax Immediate feedback for actions Teaching object-oriented concepts early Showing the relationships between classes Carrying object-oriented concepts into later courses No “toy problems” – tie programming to realworld problem solving [42][43][44][45][46][47][48][49][50][51][52][38][53][54][55] Approach Create a virtual environment that allows students to realize gameworld-like achievement / artifacts, and allows for socialization across the capability gap. Background SAGE [UNT] Logo (now StarLogo) @ MIT [26] NGP Karel the Robot [27] Alice @ CMU [28][29][30] SecondLife [secondlife.com] Rapunsel @ NYU [32] Moose Crossing DXFramework [U of M] PigWorl d [31] We wanted something that felt more gameworld like in terms of graphics, interactions, and social constructs, but that also preserved the compilation / authorship process common to first-year computing curricula. Introducing M.U.P.P.E.T.S.: The Multi-User Programming Pedagogy for Enhancing Traditional Study: [8][9][10][11][12][13][14][15] Will not dictate curriculum (although objects first is best ) Will not dictate collaboration level (although more is better) What is it? Collaborative virtual environment Integrated IDE Ability to compile, instantiate, debug and recompile from inside the environment (or VS2005) Ability for students to share objects and interact. C# & Java IDE User Created Objects Shared 3D Environment Impact as a Teaching Aid Show class relationships Composition to create new objects from other objects Association to show a “knows of” relationship between objects Ability to display a UML diagram showing relationships visually. A trooper avatar exploring his own class diagram Collaborative & Constructivist Learning Classroom exercises based on constructivist principles, using M.U.P.P.E.T.S. as a scaffold as knowledge is gained. [5][16][17][18][19][20] 1. There is no sense of universal truth. Instead, the learner constructs knowledge, and therefore a concept of truth, through interactions with the real world combined with past experiences. 2. The formation of new knowledge must be built upon knowledge already constructed by the learner. 3. Learning is framed through social interaction with others including peers and experts. 4. Meaningful learning can only occur when the learner is engaged in complex, authentic tasks Collaborative & Constructivist Learning “the instructional use of small groups so that students work together to maximize their own and each other’s learning” (with an emphasis on interdependence) Collaborative projects are encouraged to break the cultural mode. [21][22][23][24] Anecdotal Success Assignment Type Traditional Robocode TankBrain 30 25 20 Count They think they learned more (not clear that they actually did) Closer to their goals and expectations? More relevant to their peers? 15 10 5 0 Practically nothing Little Moderate A lot amount Amount Learned Exceptional amount Table 1: Mean Ranks for Perceived Amount Learned by Assignment Type Assignment Type Amount Learned Traditional Robocode TankBrain Total N 55 21 42 Mean Rank 57.41 38.90 72.54 118 Work previously presented by A. Phelps, C Egert, K Bierre and P Ventura at SIGCSE 2006 Breaking Down Barriers TankBrain Tag Gomoku OMGZ, an Art1sT in teh comp l4b!!!11!!one Gomoku by D. Parks and E. Huyer, Tank Brian by Prof. K. Bierre’s 219 Class, Robot by Michael P. Clark. All rights reserved, Rochester Institute of Technology 2002-2006 A Quick Tour of M.U.P.P.E.T.S. Andrew Phelps Director, Game Design & Development Rochester Institute of Technology Acknowledgements RIT Provost’s Learning Initiatives Grants RIT Information Technology Department RIT Entertainment Technology Lab Microsoft Research (John Nordlinger and others) Contact Information Andrew M. Phelps MUPPETS.RIT.EDU Director, Game Design & Development Associate Professor Interactive Media Group Department of Information Technology College of Computing & Info. Sciences Rochester Institute of Technology amp@it.rit.edu andysgi.rit.edu SlipField game by RIT Information Technology students © 2005-2006 References [1] M. Guzdial and E. Soloway, "Log on Education: Teaching the Nintendo generation to program," Communications of the ACM, vol. 45, no. 4, pp. 17-21, 2002 [2] E. Soloway, "How the Nintendo Generation Learns," Communications of the ACM, vol. 34, no. 9, pp. 23-26, 1991 [3] M. Prensky, Digital Game-Based Learning. New York, NY: McGraw-Hill, 2001 [4] K. Becker, "Teaching with Games: The Minesweeper and Asteroids Experience," Journal of Computing Sciences in Colleges, vol. 17, no. 2, pp. 23-33, 2001 [5] J. G. Brooks and M. G. Brooks, In Search of Understanding: The Case for Constructivist Classrooms. Alexandria, VA: Association for Supervision and Curriculum Development, 1999 [6] D. P. Kauchak and P. D. Eggen, Learning and Teaching: Research-based Methods, 4th ed. Boston, MA: Pearson, 2003 [7] K. Powers and D. T. Powers, "Making Sense of Teaching Methods in Computing Education," in Proceedings of the 29th ASEE/IEEE Frontiers in Education Conference, San Juan, Puerto Rico, pp. 11B3/30-22B3/35, 1996 [8] K. Bierre and A. Phelps, "The Use of MUPPETS in an Introductory Java Programming Course," in Proceedings of the 5th Conference on Information Technology Education, pp. 122-127, 2004 [9] K. Bierre, P. Ventura, A. Phelps, and C. Egert, "Motivating OOP by Blowing Things Up: An Exercise in Cooperation and Competition in an Introductory Java Programming Course," in Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, pp. In Press, 2006 [10] A. Phelps, K. Bierre, and D. Parks, "MUPPETS: Multi-User Programming Pedagogy for Enhancing Traditional Study," in Proceedings of the 4th Conference on Information Technology Education. Lafayette, IN, 2003, pp. 100-105. [11] A. Phelps, C. Egert, and K. Bierre, "MUPPETS: Multi-User Programming Pedagogy for Enhancing Traditional Study: An Environment for both Upper and Lower Division Students," in Frontiers in Education, 2005 [12] A. Phelps, C. Egert, K. Bierre, and D. Parks, "An Open-Source CVE for Programming Education: A Case Study," in The 32nd International Conference on Computer Graphics and Interactive Techniques (SIGGRAPH) Supplemental Notes - Educators Half Day Session, 2005 References (continued) [13] A. Phelps and D. Parks, "Fun and games with multi-language development," QUEUE, vol. 1, no. 10, pp. 2-12, 2004 [14] A. Phelps, C Egert and K. Bierre. “Games First Pedagogy, Using Virtual Worlds to Enhance Programming Education,” in The Journal of Games Development, vol. 1, no. 4. forthcoming. [15] C Egert, K Bierre, P Ventura and A. Phelps. “M.U.P.P.E.T.S.: Using a 3D Collaborative Virtual Environment to Motivate Fundamental Object-Oriented Learning,” in Proceedings of the ACM SIGPLAN Object Oriented Programming, Systems, Languages and Applications (OOPSLA) Conference 2006. forthcoming. [16] J. S. Bruner, Towards a Theory of Instruction. Cambridge, MA: Harvard University Press, 1966 [17] S. Haderjerrrouit, "A Constructivist Approach to Object-Oriented Design and Programming," in Proceedings of the ACM Conference on Innovation and Technology in Computer Science Education. Cracow, Poland, 1999, pp. 171-174. [18] D. P. Kauchak and P. D. Eggen, Learning and Teaching: Research-based Methods, 4th ed. Boston, MA: Pearson, 2003 [19] K. Powers and D. T. Powers, "Making Sense of Teaching Methods in Computing Education," in Proceedings of the 29th ASEE/IEEE Frontiers in Education Conference, San Juan, Puerto Rico, pp. 11B3/30-22B3/35, 1996 [20] T. C. Reeves and J. R. Okey, "Alternative Assessment for Constructivist Learning Environments," in Constructivist Learning Environments: Case studies in Instructional Design, B. G. Wilson, Ed. Englewood Cliffs, NJ: Educational Technology Publications, pp. 191-220, 1996 [21] D. W. Johnson and R. T. Johnson, "Cooperative Learning and Achievement," in Cooperative Learning: Theory and Research, S. Sharan, Ed. New York, NY: Praeger, pp. 23-37, 1990 [22] D. W. Johnson and R. T. Johnson, Working Together and Alone: Cooperation, competition, and individualization, 4th ed. Needham Heights, MA: Allyn and Bacon, 1994 [23] D. W. Johnson, R. T. Johnson, and K. A. Smith, "Cooperative Learning: Increasing College Faculty Instructional Productivity (ASHE-ERIC Higher Education 4)," The George Washington University, School of Education and Human Development, Washington, DC 1991 [24] R. Slavin, Cooperative Learning, 2nd ed. Needham Heights, MA: Allyn and Bacon, 1995 [25] http://www.joystiq.com/2006/05/03/seattle-named-top-video-game-city-in-the-nation/ References (continued) [26] Logo Foundation: http://el.media.mit.edu/logo-foundation/logo/index.html [27] R. Pattis, Karel the Robot: A Gentle Introduction to the Art of Programming with Pascal: John Wiley and Sons, 1981 [28] M. J. Conway, "Alice: Easy-to-Learn 3D Scripting for Novices," in Computer Science, vol. Doctor of Philosophy: University of Virginia, 1997. [29] S. Cooper, W. Dann, and R. Pausch, "Teaching Objects-first in Introductory Computer Science," in Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education. Reno, NV, 2003, pp. 191-195. [30] F. Culwin, "Object Imperatives!," in Proceedings of the 30th SIGCSE Technical Symposium on Computer Science Education. New Orleans, LA, 1999, pp. 31-36. [31] R. Lister, "Teaching Java First: Experiments with a Pigs-Early Pedagogy," in Proceedings of the 6th Australasian Computing Education Conference. Dunedin, New Zealand, 2004, pp. 177-183. [32] M. Flanagan, D. C. Howe, and H. Nissenbaum, "Values at Play: Design Tradeoffs in Socially-Oriented Game Design," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. Portland, OR, 2005, pp. 751-760. [33] D. Clark and P. McacNish, "Java as a Teaching Language: Opportunities, Pitfalls, and Solutions," in Proceedings of the 3rd Australasian Conference on Computer Science Education. The University of Queensland, Australia, 1998, pp. 173-179. [34] J. Lewis, "Myths About Object-Orientation and its Pedagogy," in Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education. Austin, TX, 2000, pp. 245-249. [35] K. B. Bruce, "Controversy on How to Teach CS 1: A discussion on the SIGCSE-members Mailing List," SIGCSE Bulletin, vol. 36, no. 4, pp. 29-34, 2004 [36] R. Decker and S. Hirshfield, "The Top 10 Reasons Why Object-Oriented Programming Can't Be Taught in CS 1," in Proceedings of the 25th SIGCSE Technical Symposium on Computer Science Education. Phoenix, AZ, 1994, pp. 51-55. References (continued) [37] E. Wallingford, "Towards a First Course Based on Object-Oriented Patterns," in Proceedings of the 27th SIGCSE Technical Symposium on Computer Science Education. Philadelphia, PA, 1996, pp. 27-31. [38] P. Ventura, "On the Origins of Programmers: Identifying Predictors of Success for an Objects-First CS1," in Computer Science and Engineering, vol. Doctor of Philosophy. Buffalo, NY: University at Buffalo, SUNY, 2004. [39] W. Mitchell, "A Paradigm Shift to OOP has Occurred... Implementation to Follow," Journal of Computing Sciences in Colleges, vol. 16, no. 2, pp. 95-106, 2001 [40] B. J. Neubauer and D. D. Strong, "The Object-Oriented Paradigm: More Natural or Less Familiar," Journal of Computing Sciences in Colleges, vol. 18, no. 1, pp. 280-289, 2002 [41] P. Ventura, "On the Origins of Programmers: Identifying Predictors of Success for an Objects-First CS1," in Computer Science and Engineering, vol. Doctor of Philosophy. Buffalo, NY: University at Buffalo, SUNY, 2004. [42] C. Nevison and B. Wells, "Teaching Objects Early and Design Patterns in Java Using Case Studies," in Proceedings of the 8th Annual Conference on Innovation and Technology in Computer Science Education. Thessaloniki, Greece, 2003, pp. 94-98. [43] C. Nevison and B. Wells, "Using a Maze Case Study to Teach Object-Oriented Programming and Design Patterns," in Proceedings of the 6th Australasian Computing Education Conference. Dunedin, New Zealand, 2004, pp. 207-215. [44] N. Parlante, "Astrachan's Law," SIGCSE Bulletin, vol. 35, no. 4, pp. 26-27, 2003 [45] K. B. Bruce, "Controversy on How to Teach CS 1: A discussion on the SIGCSE-members Mailing List," SIGCSE Bulletin, vol. 36, no. 4, pp. 29-34, 2004 [46] K. B. Bruce, A. Danyluk, and T. Murtagh, "A Library to Support a Graphics-based Object-First Approach to CS 1," in Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education. Charlotte, NC, 2001, pp. 6-10. [47] R. Rasala, "Toolkits in First Year Computer Science: A Pedagogical Imperative," in Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education. Austin, TX, 2000, pp. 185-192. [48] R. Lister, "Teaching Java First: Experiments with a Pigs-Early Pedagogy," in Proceedings of the 6th Australasian Computing Education Conference. Dunedin, New Zealand, 2004, pp. 177-183. References (continued) [49] O. Astrachan, G. Berry, L. Cox, and G. Mitchener, "Design Patterns: An Essential Component of the CS Curricula," in Proceedings of the 29th SIGCSE Technical Symposium on Computer Science Education. Atlanta, GA, 1998, pp. 153-160. [50] C. Alphonce and P. Ventura, "Object Orientation in CS1-CS2 by Design," in Proceedings of the 7th Annual Conference on Innovation and Technology in Computer Science Education. Aarhus, Denmark, 2002, pp. 70-74. [51] C. Alphonce and P. Ventura, "Using Graphics to Support the Teaching of Fundamental Object-Oriented Principles in CS1," in Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). Anaheim, CA, 2003, pp. 156-161. [52] K. B. Bruce, A. Danyluk, and T. Murtagh, "A Library to Support a Graphics-based Object-First Approach to CS 1," in Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education. Charlotte, NC, 2001, pp. 6-10. [53] P. Ventura and B. Ramamurthy, "Wanted: CS1 Students. No Experience Required," in Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education. Norfolk, VA, 2004, pp. 240-244. [54] D. Mutchler and C. Laxer, "Using Multimedia and GUI programming in CS 1," in Proceedings of the 1st Conference on Integrating Technology into Computer Science Education. Barcelona, Spain, 1996, pp. 63-65. [55] P. Ventura, C. Egert, and A. Decker, "Ancestor Worship in CS1: On the primacy of arrays," in Companion to the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). Vancouver, British Columbia, Canada, 2004, pp. 68-72. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.