450 likes | 519 Views
Richard Liston Ursinus College. Gaming in the Classroom: Essential Elements Pitfalls Bad/Successes Good. $ whoami. $ whoami. Currently: CS Professor/Networking Researcher. $ whoami. Currently: CS Professor/Networking Researcher Formerly: Musician. $ whoami.
E N D
Richard Liston Ursinus College Gaming in the Classroom: Essential ElementsPitfalls Bad/Successes Good
$ whoami Currently: CS Professor/Networking Researcher
$ whoami Currently: CS Professor/Networking Researcher Formerly: Musician
$ whoami Currently: CS Professor/Networking Researcher Formerly: Musician • IF (“Adventure”)
$ whoami Currently: CS Professor/Networking Researcher Formerly: Musician • IF (“Adventure”) • Hofstadter: “Gödel, Escher, Bach”
$ whoami Currently: CS Professor/Networking Researcher Formerly: Musician • IF (“Adventure”) • Hofstadter: “Gödel, Escher, Bach” • Math/CS…and still love learning…
Gaming, Learning and I NITLE Seminar, Summer 2005 Incorporated into my courses (various sources) • Intro to CS: quiz game (User I/O, designing for generality: reading from file) • Data Structures: artificial life (arrays, simple image file formats), minesweeper (recursion, 2D arrays) • Computer Networks: networked QuadraPong (protocol design/implementation, protocol interoperability) • CIE: Interactive Fiction (explore moral dilemmas w/Inform 7)
Why Does Gaming Work? • Students play games
Why Does Gaming Work? • Students play games • Professors play games
Why Does Gaming Work? • Students play games • Professors play games • Designing/implementing games is fun for all
Why Does Gaming Work? • Students play games • Professors play games • Designing/implementing games is fun for all • Advantages (disadvantages?) of peer reviews • Learning value
Learning Value • Immersion • Active thought • Requires broad knowledge • Game domain • Interdisciplinary skills • Learn good process: complete design
Coming Up • Experience: successes and challenges • Possible projects in other disciplines (non-CS) • Some recommendations • Discussion
Quiz Game Assignment: • Choose a topic about which you have a great deal of knowledge • Create a series of questions with multiple choice answers • Devise a scoring system • Administer the quiz • Print scores and some associated comment about the score
Successes • All working games
Successes • All working games • Topics • Math • Music • Television Shows • Sports: baseball, hockey • Geography • Food • “The Godfather”
Challenges • Time to grade: plan this!
Challenges • Time to grade: plan this! • Scoring system too open-ended
Cellular Automata • AKA “Artificial life” • Assignment: • Use arrays (low-level data structure) • Read file describing initial conditions and rules • Write out image representing “generations”
Successes • Beautiful pictures • Experience with emergent properties • Work with image file formats • Work with low-level data structures
Challenges • Time to grade: plan this! • Scoring system too open-ended • Short time, many new details • Complex: risky!
QuadraPong Assignment: • Design network protocol • Use real IETF process • Modify game code with protocol • Test against other implementations
Successes Game Engine Credit: Scott Kulp
Successes Game Engine Credit: Scott Kulp
Successes • Mostly properly working games • Learn about design in the real world • Work with real-time protocols • Solid software development process • Play during exam time!
Challenges • Time to grade: plan this! • Scoring system too open-ended • Short time, many new details • Very complex: risky! • Managing group dynamics
Challenges • Time to grade: plan this! • Scoring system too open-ended • Short time, many new details • Very complex: risky! • Managing group dynamics • Quiet during exam period!
Games in other disciplines • Languages: • To create: must know vocabulary, structure • Can reinforce, steadily increase difficulty • Sciences • Solve math/physics/chemistry puzzles • Anthropomorphize photosynthesis • History: create historically accurate virtual world • Fixed in time • Historical events unfold over time
Elements • Clear goal • Realistic time frame • Access to information • Domain of topic • Facility with development environment • Process • Schedule • Revision control: SubVersion • Shipping Product? • Maintenance?
Some Recommendations • Employ solid software engineering practice (optimal)
Some Recommendations • Employ solid software engineering practice (optimal) • Choose teams well • Different skills (may not be able to)
Some Recommendations • Employ solid software engineering practice (optimal) • Choose teams well • Different skills (may not be able to) • Good idea (aye, there’s the rub)
Some Recommendations • Employ solid software engineering practice (optimal) • Choose teams well • Different skills (may not be able to) • Good idea (aye, there’s the rub) • Design/design review • User studies using prototype (HCI techniques) • Thinkaloud: user talks while using the product • Task Completion: user completes specific tasks according to script
Some Recommendations • Employ solid software engineering practice (optimal) • Choose teams well • Different skills (may not be able to) • Good idea (aye, there’s the rub) • Design/design review • User studies using prototype (HCI techniques) • Thinkaloud: user talks while using the product • Task Completion: user completes specific tasks according to script • Implement/review/debug
Some Recommendations • Employ solid software engineering practice (optimal) • Choose teams well • Different skills (may not be able to) • Good idea (aye, there’s the rub) • Design/design review • User studies using prototype (HCI techniques) • Thinkaloud: user talks while using the product • Task Completion: user completes specific tasks according to script • Implement/review/debug • Testing: user studies with real system
Some Recommendations • Know your system • Use • Features • Capabilities (don’t exceed)
Some Recommendations • Don’t Panic! They’re learning: • Group skills (not all students enter college with the skills that would make them a good team members) • Development process (not just for CS) • Use of a game development environment; knowing something about what software can do won’t hurt anyone
Some Recommendations • Plan a reasonable, complete schedule (How??) • Keep eyes open for red flags of schedule slip • Watch for group “issues” • Make the group think through the tasks in detail • Too easy to say “we’ll get it done in time” • Because we can imagine it, we can do it? • Implement when the design is complete • But is delay of gratification still fun? Yes, with support. • Keep everyone focused on a common end result