Gaming for Computer Science Instruction

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.