Sensor networks are finding applications in several areas. They enable tight integration of the physical world with a computing system infrastructure, thereby permitting better information sensing, access and control. However, development of sensor network applications has been extremely difficult: there is very little or no development support. This proposal is aimed at developing programming languages, compilers and middleware services that will make it easier to implement, deploy and manage sensor network applications. The programming languages will provide novel abstractions for defining sensor nodes and groups of nodes, node and group behaviors, and interaction among nodes and groups. The node and group behaviors are completely separated, which supports reusability. The languages will also provide intrinsic support for group level aggregation, state management, group leader selection, and one-many and many-many method invocations. The objective is to capture common patterns of node and group instantiations, data sharing, and communication so that applications can be developed easily. The middleware will implement a scalable infrastructure for group management, inter-node communication, group-node interactions and code distribution. The research will also explore the performance characteristics of the language abstractions and middleware services. The proposed research will have significant impact on development of applications in several areas, including environmental sciences, disaster recovery, civilian infrastructure monitoring, education, precision agriculture and pervasive computing. The research plan also integrates educational and research activities by involving undergraduate and graduate students through courses, open source software development projects, project