"Game Development with XNA and Microsoft Technologies: Kinect Development"

Teaching resources have a special place in my heart and in seeing this course, 34 class rooms sessions, with all the lesson plans, resources, labs, etc for learning to develop with the Kinect, well, how could I not share it?

Game Development with XNA and Microsoft Technologies: Kinect Development

These Kinect lessons are intended to be project-based classes for high school and older students, with the teacher introducing the topic, showing a quick demo, discussing the code with the students, and then letting the students work. The teacher will assume the role of a guide, support, and class assistant. Student learning will be facilitated by labs and activities.

The goal of this series of lab assignments is not to make students experts on specific code, but rather to provide opportunities to use and experience the code with enough explanation to allow them to quickly begin writing their own games, simulations, and activities.

The following material is contained in this file:

  • Teacher Roadmap: A scope and sequence for classroom implementation and teaching suggestions.
  • The Kinect EXPLORER demonstrates the depth and video cameras and shows the skeleton tracking provided by the SDK. Download this file of samples if they are not available in the Kinect SDK.
  • Unit 1 will review the Kinect sensor, how it can be used, how it connects, setup, testing, and how to write programs which interact with it.
  • Unit 2 will introduce receiving and displaying live video from the Kinect sensor. Additionally, you will use skeletal tracking and a version of depth tracking, so that they can bring in the background and body image in 2D and 3D. Students will explore a simple version of “virtual” reality. It is important to note that some of the code in this section, especially the specific code to communicate with the Kinect camera for video and for color, is quite complex.
  • Unit 3 will focus on an aspect that may be one of the most interesting, and less known, features of the Kinect SDK - the ability to receive and interpret audio input. The Kinect SDK comes with a complete voice recognition system! The recognition system is relatively simple to use and incredibly powerful to the developer.

Project Information URL: http://www.facultyresourcecenter.com/curriculum/8965-Kinect-Development.aspx

Project Download URL: http://www.facultyresourcecenter.com/curriculum/8965-Kinect-Development.aspx

Project Source URL: http://www.facultyresourcecenter.com/curriculum/8965-Kinect-Development.aspx

Here's a snip from the Teacher's Roadmap;

These Kinect lessons are intended to be project-based classes, with the teacher introducing the topic, showing a quick demo, discussing the code with the students, and then letting the students work. The teacher will assume the role of a guide, support, and class assistant. Student learning will be facilitated by labs and activities.

The goal of this series of lab assignments is not to make students experts on specific code, but rather to provide opportunities to use and experience the code with enough explanation to allow them to quickly begin writing their own games, simulations, and activities.

...

Similarly to Unit 1 and Unit 2, Unit 3 Labs provide an introduction to the capabilities of the Kinect. The main goal is to introduce what is possible, try to stir students’ imagination, give sufficient knowledge and hands-on experience for success, and offer opportunities to explore the SDK further based on the students motivation and abilities.

Especially with audio, getting the audio stream ready to be “heard” and interpreted requires a great deal of setup work. Part of the reason for that comes from the fact that the speech engine is a generic engine that is can be able to be used for any language, even local dialects. The good news is that once the required code is entered, writing code to create cool programs is pretty straight forward.

...

Pedagogy:

Some of the code involved in accessing and interpreting data from the Kinect sensor can be very complicated. Not only the algorithms, but the code as well, might be more than your students can do on their own. There is a balance you will need to discover between their ability to “understand” the code and their experiences “using” the code to accomplish tasks.

This series of lessons attempts to balance those concerns, but will always err on the side of USING the code to accomplish new tasks and instilling excitement and eagerness to learn more computer science. Certain sections of code can extremely complicated but it is included in these lessons because it is necessary to accomplish a specific task and can be a step in developing the students’ problem solving skills. As the teacher you will need to decide on the balance. Is it more important that they can use existing code to help accomplish new tasks, or is it more important to spend time studying the existing code to understand why it works? Both are important, so finding that balance is crucial.

The lab exercises can be completed either by going through the step-by-step tutorials or on-your-own by using the information provided in the descriptions and videos. The goal in either approach is for the students to conceptually understand what tasks and procedures are required to complete the program. In the on-your-own scenario students are responsible to create a plan to accomplish the tasks, and then implement a program without the assistance of the tutorials.

These lessons are intended to provide a wide range of activities and experiences for students to build their programming skills. There are a variety of options in using these labs.

1. Follow the Leader: Students work through the tutorials step-by-step on their own or with a partner. Then students attempt the extensions for each lab.

2. Students and teacher read through the tutorials together to get a feel for the logic of implementing the program and then students write the programs on their own without using the lab tutorials.

3. Flexible Plan: The teacher can build a custom scope and sequence by assigning only those lessons and labs that will be most appropriate based upon the students’ computer science experience, level of expertise, time restraints, or course objectives. Students would complete only those labs with or without the step-by-step tutorials. More time can be allocated for the MYOKA (Make Your Own Kinect Application) at the end of each unit, a large project chosen, planned, and implemented by the students that can be used as a major assessment tool. Use the short preview videos and the activity descriptions to help select labs and activities.

Prerequisite skills

  • Basic XNA development skills
  • Experience with handling input in XNA

Mastery Objectives/Results:

Unit 1:

  • Use the Kinect sensor as an active user interface in contrast to mouse and keyboard
  • Access and interpret the data that is being streamed by the sensor
  • Use code to identify a body skeleton
  • Analyze the data from the sensor to interpret position and location in 2D
  • Evaluate the data from the sensor to interpret action and intention
  • Create programs that will respond based upon interpreting data from the sensor

Unit 2:

  • Use the Kinect sensor to receive and display live video feed
  • Access and interpret the data that is obtained by the camera
  • Analyze the data that is obtained by the camera to interpret position and movement in 2D and 3D
  • Create a program which will take an action(s) as a result of interpreting video data from camera
  • Create a program which will allow the person in the video to interact , or have impact upon, the objects that are not actually in the video

Unit 3:

  • Use the Kinect sensor to receive audio
  • Access and interpret the audio data that is received by the sensor
  • Analyze the audio data
  • Create a program which respond to the audio data

Suggested Timeline

  • The Lesson Plan document for each unit includes a detailed timeline and description of the labs and activities. Class period is defined as a 50-minute session.
  • Unit 1: 13 days
  • Unit 2: 10 days
  • Unit 3: 11 class periods + additional days or weeks for the optional capstone project

Tags:

Follow the Discussion

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.