90 likes | 203 Views
XNA Game-Themed Programming Assignments. Idea. Given a “Starter Project” with All Graphics and User support Does not work! Students complete the system by implementing the “missing piece” Support Professors who does not know any graphics or games programming!.
E N D
XNA Game-Themed Programming Assignments
Idea • Given a “Starter Project” with • All Graphics and User support • Does not work! • Students complete the system by implementing the “missing piece” • Support Professors who does not know any graphics or games programming!
Our Approach: Game-Themed Assignment • A set of Programming Assignment Modules … • Designed to be adopted selectivelyin existing classes • No requirements on knowledge of graphics or gaming • 7 assignment modules on well defined CS1/2 topics: • For example: 2D Array / BST / Lists etc. • Each module includes 2 versions: • Game-themed and “traditional” console version • Console version is a good reference • Based on the same topics, the two versions may be different: e.g.: • 2D Array / BST / Lists
Assignment Module: Contents • For Faculty: • Summary page: prerequisite + learning outcomes • Sample pre and post-tests • Sample solution: console / XNA • Sample Grading rubric (console / XNA) • FAQs • XNA Implementation Guide: on Graphics + UI • For Students: • Description of the assignment (console / XNA) • Skeleton starter project (console / XNA)
All The Assignments • XGA ReleaseNote • Operator: • Console, XNA Starter, XNA Solution • Random Numbers & Arrays: • Console, XNA Starter, XNA Solution • Array of Object References: • Console, XNA Starter, XNA Solution • 2D Array: • Console, XNA Starter, XNA Solution • Class Hierarchy: • Console, XNA Starter, XNA Solution • Linked Lists: • Console, XNA Starter, XNA Solution • Binary Search Tree: • Console, XNA Starter, XNA Solution
Starter Project • Our experience: • Students must modify same source code • E.g., Operator: • Console, XNA Starter, XNA Solution • Students are given a well defined API • E.g., BST: • Console, XNA Starter, XNA Solution
Example XGAs: Switch, Modulus, Integer Division • What Worked Well: • Graphical, interactive • Forced students to think about things like mod operator, in an open-ended / real-world-ish sort of way • What Didn’t Work So Well: • Students can do this without integer division • (Do real division, then cast to int, then do mod) • One can’t really solve this without some understanding of the video game structure – Color.Red, or a clear view of the coordinate system.
Example XGAs:Binary Search Trees • Students implement a BST of chars • Add( char c ) • Find( char c ) • int FindTreeDepth() • Clone() -> new, deep copy of the tree • void Balance() // balances existing nodes in-place • Students do NOT implement: • BST also has an in-order traverse method, privately implemented in the base class, so that the video game works, but doesn’t give away answers
Example XGAs:Binary Search Trees • What Worked Well: • Graphical, interactive • Nicely isolated BST – students really did not have to know about the gaming aspects • Could potentially re-use Console based stuff, including unit tests, etc • What Didn’t Work So Well: • Example being too “academic”?