Teaching wireless sensor networks (WSNs) at the undergraduate level is both challenging and rewarding. WSNs include low-level programming and debugging, power-aware operations, novel communication paradigms and interdisciplinary applications in real world environments. These characteristics enable the students to learn how to cope with complete systems, starting with hardware design and low-level programming throughout applications and data processing. They learn to recognize complex software-hardware crossdependencies and to manage them successfully. In this paper we share our experience from a new course