Lately we are witnessing an overwhelming proliferation of wireless communication. It is nowadays common that most modern devices communicate wirelessly, via protocols like WiFi, Bluetooth or mobile communication protocols (GSM, UMTS, LTE). There exist however numerous applications for which the mentioned protocols are not suitable: the term Wireless Sensor Networks (WSN) refers to a wide family of wireless systems characterised by very tight constraints on energy availability. This motivates the design of power-efficient network protocols able to run on low-power low-cost devices, with limited processing and transmission capabilities. The pursue for minimum energy consumption, coupled with the wide diversity of possible WSN applications, drives the design of WSN protocols towards high levels of customisation: the optimal WSN protocol is must be highly tailored to the particular profile of application requirements and operating conditions. In other words, efficient WSN systems (and associated protocols) tend to be highly application-specific.
The quest for maximal energy-saving imposes particular challenges and calls for the adoption of a number of techniques --- e.g., in-network processing, heavy use of duty-cycles --- that are peculiar to this class of wireless systems.

This course addresses the challenges of WSN systems and is intended to familiarise the students with the key concepts and fundamental aspects of WSN development. The student will learn to identify the key requirements of WSN applications and, based on that, to design and implement an efficient WSN system from the application at hand, from node programming to network deployment. Laboratory projects are based on real WSN nodes. The course is given entirely in English.