80 likes | 177 Views
Designing your own Game-Themed Assignments. Remember: Student Learning Objective. It is NOT about games! Games is a means, not the end! Goal is: Learn concepts!! Games is nice, but … cannot let it get in the way of learning!. Suggested Approach. Identify Technical Topic
E N D
Remember: Student Learning Objective • It is NOT about games! • Games is a means, not the end! • Goal is: Learn concepts!! • Games is nice, but … • cannot let it get in the way of learning!
Suggested Approach • Identify Technical Topic • Choose a ‘game’ type • Brainstorm a ‘game’ to implement • Implementing the example solution • Write the assignment, create student starter project
Identify Technical Topic • Suggestion: Pick an existing homework assignment, and use the topic(s) that it covers. • E.g., Linked Lists, Binary Search Tree, 2D Arrays
Brainstorming A Game:Places To Incorporate Technical Topics • Game Rules: • Reversi: Traverse 2D array & figure out if proposed move is valid • Game Results / Game State: • Use a BST to store the letters • General Interaction: • Link list (as a Queue) supporting structure for dropping toys • Constrained Interaction: • conditional statements keep the hero on-screen
Game-Themed Assignments • Sample assignment should be built around: • An assignment specification • (to be given to the students, so they know what to do) • A starter project • (so students don’t have to know about the video-game specific stuff) • The BST example: Solution vs Starter Project
Choose A ‘Game’ Type • Graphical Picture • Nothing moves, No user interaction • Good for CS1, very simple assignments • Animation / Visualization • A sequence of pre-defined movements • No user interaction • Also good for CS1 simple assignments • Interactive Game • Movement of objects responds to user interaction
Background: Starter Project • Ideally, students work to implement something with a very clean, “API-like” interface • Allows you to spend “NO” time spent teaching about graphics or games in-class • Avoid giving students partially completed source code files that they “fill-in-the-blanks”, while trying to figure out how their code interacts with the rest of the program