Invent Your Own Computer Games with Python

This looks like a great resource for teaching young people how to program in Python.

http://inventwithpython.com/

“Invent Your Own Computer Games with Python” is a free e-Book that teaches you how to program in the Python programming language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the example.

“Invent with Python” was written to be understandable by kids as young as 10 to 12 years old, although it is great for anyone of any age who has never programmed before.

This second edition has revised and expanded content, including using the Pygame library to make games with graphics, animation, and sound.

Programming isn’t hard. But it is hard to find learning materials that teach you to do interesting things with programming. Other computer books go over many topics that most newbie coders don’t need. This book will teach you how to program your own computer games. You will learn a useful skill and have fun games to show for it!

This book is for:

Anyone who wants to teach themselves computer programming, even if they have no previous experience programming.
Kids and teenagers who want to learn computer programming by creating games. Kids as young as 9 or 10 years old should be able to follow along.
Adults and teachers who wish to teach others programming.
Anyone, young or old, who wants to learn how to program by learning a professional programming language.

Exploring Computer Science lessons

Here is a tremendous set of lessons for teach computer science to high schoolers.

http://www.csta.acm.org/Curriculum/sub/CurrFiles/ExploringCSv2.pdf

The goals of Exploring Computer Science are to develop the computer science skills of algorithm development, problem solving and programming. Students will also be introduced to topics such as interface design, limits of computers and societal and ethical issues of software engineering.
This curriculum has been developed for a culturally, linguistically, and socially diverse group of students in Los Angeles Unified School District.

There’s 292 pages of lessons on:

Computers

Human Computer Interaction

Web Design

Problems Solving

Scratch

Robotics

Python

Project GUTS – Growing Up Thinking Scientifically

Here is a Web site that talks about a project to get kids involved in computational science.

http://www.projectguts.org

“In Project GUTS and our partnering programs, we address this urgent
need (prepared students for STEM professionals,and addressing current
complex systems issues) by introducing students to computational science starting in middle school.”

They use StarLogo TNG.

Here are some slides about the project.

http://www.projectguts.org/files/GUTS-SC-MSAC-2009.pptĀ ( I like slide 9 )

There are some very good video tutorials

http://www.projectguts.org/?q=node/2808

Some links to info about Bluetooth and NXT

Communicating with LEGO NXT via Bluetooth in C#
http://www.codeproject.com/KB/cs/nxtBluetooth.aspx

NXT_Python is a package for controlling a LEGO NXT robot using the Python programming language. It can communicate using either USB or Bluetooth.

http://home.comcast.net/~dplau/nxt_python/

This simple remote control can be used to control another NXT creation by Bluetooth wireless remote control, if you have two NXTs, or by wired remote control to a two-motor creation without another NXT.
http://www.nxtprograms.com/dial_remote/index.html

leJOS NXJ can be used for remote control of an NXT. Not sure how yet!
http://lejos.sourceforge.net/

A brief primer on LEGO NXT Bluetooth
http://www.pages.drexel.edu/~rs429/dasl/bt-controller/index.html

Uses the axyz library to read sensor values and send commands to LEGO NXT
http://goodan28.googlepages.com/xyz2nxt

Example Python code using lightblue and nxt modules.
http://forums.nxtasy.org/index.php?showtopic=3612

Good lab for trying out Bluetooth communication on the NXTs.
http://www.ece.gatech.edu/academic/courses/ece1882/docs/Lab%202.pdf

Using Lego Mindstorms NXT in the Classroom, some very good slides from Gabriel J. Ferrer of Hendrix College
http://ozark.hendrix.edu/~ferrer/presentations/TutorialNXT.ppt

Adding speech capabilities to robots

http://www.go-talk.info/en/main/index.php

GoTalk is a long-awaited software product to make your robot talk with you. Without requiring programming skills or experiences, you can create any interaction you wish to enjoy with your favorite robot.

GoTalk lets a user to create various levels of program, from a simple speech interaction of exchanging greeting to a complex program to make a robot ask back the user and make action accordingly, so it is good for a beginner and geeks.

Robotic Machine Vision Software

http://www.roborealm.com/index.php

RoboRealmĀ® is an application for use in computer vision, image analysis, and robotic vision systems. Using an easy point and click interface RoboRealm simplifies vision programming! Using an inexpensive USB webcam and the PC you already have you can now add machine vision to your robotic projects!

This only costs $89 so it could be used for educational purposes.

Lego NXT Ball Picker
http://www.roborealm.com/tutorial/ball_picker/slide010.php