An Activity-Based Sensor Networks Course for Undergraduates with Sun SPOT Devices Damon Tyman Portland State University Portland, OR damont@pdx.edu Nirupama Bulusu Portland State University Portland, OR nbulusu@cs.pdx.edu Jens Mache Lewis and Clark College Portland, OR jmache@lclark.edu ABSTRACT Wireless sensor networks are revolutionizing the instrumentation of the physical world, across scientific, industrial and military applications. In this paper, we describe our efforts developing and classroom-testing hands-on materials for use in undergraduate- accessible courses on sensor networks. In Winter 2008 at Portland State University, we introduced an in-class laboratory component to a sensor networks course that had previously been entirely lecture-based. For the laboratory exercises, we utilized Sun’s Java-programmable Sun SPOT [7] sensor network technology. We found the Sun SPOT based laboratory activities to be quite powerful as a teaching and excitement-fostering tool. Categories and Subject Descriptors C.3 [Special-Purpose and Application-Based Systems]: Real Time and Embedded systems, Microprocessor/Microcomputer Applications, Signal Processing Systems; C.2.1 [Network Architecture and Design]: Wireless Communication; K.3.2 [Computer and Information Science Education]: Computer Science General Terms Algorithms, Design, Experimentation, Human Factors Keywords: Wireless sensor networks, Java, Sun SPOTs, embedded computing. 1. INTRODUCTION Wireless sensor networks were named by MIT Technology Review in 2003 as “one of the ten technologies that will change the world in the 21 st century.” They are increasingly being utilized to monitor the physical world across a wide array of applications, ranging from habitat monitoring to reducing energy consumption in data centers. Though interest in wireless sensor networks has been increasing amongst computer scientists in recent years, institutions that offer courses dedicated to the topic are still in the minority. Additionally, what courses are offered tend mostly to be designed for and taught only at the graduate level. Our aim is to make our introductory wireless sensor networks class accessible to as many individuals and groups as possible, while still offering a thorough and engaging survey of the field. Primarily, we want the course to be open to undergraduates. By fostering student excitement early, we believe we increase the likelihood that they finish a computer science degree and consider graduate school. We hope that in the future, more schools will include similar undergraduate sensor network courses. One of the challenges of teaching sensor networks to undergraduates is the lack of pre-existing educational materials appropriate for this level. There are textbooks on the subject, but most focus on a specific research problem or sub-domain. A few do provide solid introductions to all the most important sensor network concepts, but if used in a class, the instructor must still carefully select what topics to cover, the order of coverage, and the level of detail for each concept. Due to the rapid rate at which research in this area has been advancing recently, a textbook from a few years ago may already be out-of-date in regards to many of the latest techniques and algorithms favored for certain important tasks. Thus, only those instructors firmly immersed in the sensor network research community are properly equipped to take on a class of this kind. Figuring out how to properly incorporate a hands-on in-class laboratory component to a course can also be a formidable challenge. Since wireless sensor networks are inherently a more hands-on technology than most others encountered in computer science, we figured adding this aspect to the in-class experience would help increase student excitement by requiring students to do things and witness the results themselves, rather than just reading about what should happen. Also, we think properly designed laboratory exercises are an invaluable way to reinforce the lecture concepts because they allow students to study each key concept from a theoretical, research-based perspective (in lecture) as well as experiencing related practical implications or implementation challenges on their own. Unfortunately, most embedded sensors run special operating systems, like TinyOS [9], and require learning new programming languages such as NesC [6]. With the amount of effort required for students to become proficient in programming TinyOS and NesC, a course that chooses to familiarize students with them would need to allow for a long learning period and make significant sacrifices in lecture concepts covered. Furthermore, students’ abilities are not likely to be such that laboratory exercises based on lecture concepts would be reasonable. The reasons described above motivated us to choose Sun Microsystems’ relatively new Java-programmable sensor network Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGCSE'09, March 3-7, 2009, Chattanooga, Tennessee, USA. Copyright 2009 ACM 978-1-60558-183-5/09/03...$5.00.