A method of implementing concurrent distributed programming projects in the classroom

TinyOS & NesC Programming

What is it: "TinyOS is an open-source operating system designed for wireless embedded sensor networks"  developed at U.C. Berkeley EECS Department

Web site: http://www.tinyos.net/

Why not just use Linux or XP?

Includes a customized version of C that uses a compiler called 'NesC'

Programming a TinyOS application using NesC:

Designed for programming concurrency with any number of nodes in a network

The language has built in systems calls depending on the device you are running.  For example on the mica motes it will have system calls for radio transmitter, receiver, light sensor, & LEDs

Sample assignments for students:

Implement any number of  distributed mutual exclusion algorithms, for example

or perhaps a deadlock detection algorithm such as:

How to install it on to your computer ( a project in itself! )

Current TinyOS & NesC Research Projects:

Remote Sensors; stationary

Robots using TinyOS

More research projects that are being done