PreprintPDF Available

Teaching Internet of Things (IoT) Literacy: A Systems Engineering Approach

Preprints and early-stage research may not have been peer reviewed yet.

Abstract and Figures

The Internet of Things (IoT) invades our world with billions of smart, interconnected devices, all programmed to make our lives easier. For educators, teaching such a vast and dynamic field is both a necessity and a challenge. IoT-relevant topics such as programming, hardware, networking and artificial intelligence are already covered in core computing curricula. Does this mean that fresh graduates are well prepared to tackle complex IoT problems? Unfortunately, nothing could be further from the truth. The problem is that IoT devices are complex systems, where software, hardware, and humans interact with each other. From this interaction, unique behavior and hazardous situations can emerge that might easily stay undetected, unless systems are analyzed as a whole. This paper presents two differently flavored courses that teach IoT using a holistic, system-centric approach. The first is a broad introduction to Pervasive Computing, focused on the intelligence of "Things". The second is an advanced course that zooms on the process of testing a software-intensive system. The key characteristics of our approach are : (1) teaching only the bare essentials (topics needed for end-to-end engineering of a smart system), (2) a strong, hands-on project component, using microcontroller-based miniature systems, inspired by real-life, and (3) a rich partnership with industry and academic idea incubators. Positive student evaluations gathered during the last five years demonstrate that such an approach brings engagement, self-confidence and realism in IoT classrooms. We believe that this success can be replicated in other courses, by shifting the focus on different IoT-relevant aspects.
Content may be subject to copyright.
A preview of the PDF is not available
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
Smart devices are everywhere, yet the Internet of Things revolution is still in its infancy. In the Internet of Things (IoT) everyday objects share data over networks, with or without human intervention. Teaching IoT entails selecting among many technical and social topics, such as hardware, networking, data storage, data analysis, data presentation, human-computer interaction, platforms, embedded systems programming, web technologies, ethics, privacy, and security. In addition to the many variations on each of these topics, other challenges for computer science educators include connecting and integrating hardware and software, finding adequate physical space and infrastructure, preparing instructors and teaching assistants for the content, and implementing realistic security measures. This report considers four major approaches computer science educators are using to integrate IoT concepts and courses into their curricula, summarizes the choices and challenges related to teaching IoT, and describes some tools that allow new IoT teachers to get started.
Conference Paper
Full-text available
The Internet of Things (IoT) represents a new computing paradigm that may soon add a new dimension to the skillset expected from a well-rounded computing professional. Computer Science education is addressing these demands by adding IoT-centric courses to the curriculum and including relevant content into a broad range of existing courses. This paper presents the experience of incorporating IoT projects into an existing Systems Programming course. We examine several suitable hardware platforms, provide a sampling of student projects implemented using the Raspberry Pi with a variety of sensors, and discuss a number of lessons learned that could benefit other educators planning to incorporate the IoT material into their coursework.
Full-text available
Previous research found that inexperienced software engineers may tend to view automatic testing as a waste of time and as an activity completely separate from programming. This could have a negative impact on their later careers and could be a sign that improvements in software engineering education are needed when it comes to testing. At the same time, this stance could negatively influence the perception that practitioners have of recent university graduates. To explore this issue, we conducted a qualitative study and surveyed 170 and interviewed 22 practitioners about their experiences with recent graduates, focusing on software testing skills. We find that practitioners do recognize a skill gap between university graduates and industry expectations and that this perception could be engrained deeply enough already to influence hiring practices. Practitioners use different and at times costly strategies to alleviate this skill gap, such as training and mentoring efforts. We validated core findings in a survey with 698 professional software developers. Our qualitative insights can help industry, research, and educational institutions guide in-depth studies that explore the severity of the effects we have found. The coping strategies we have found can provide valuable starting points that can inform changes in how we educate the software engineers of the future.
In this chapter, we analyse new possibilities for STEM and CS education with regard to the Internet-of-Things (IoT). Typically, researchers define the IoT as an emerging networked infrastructure penetrated by embedded smart devices, called things, which have identities, sensing-actuating and computing capabilities, are connected via the Internet, can communicate with each other and with humans and can provide semantics of some useful services such as education. With this chapter, we aim to achieve two objectives: (i) to introduce the terminology of IoT for the book readers to start more thorough studies and (ii) to show the relevance of this topic to the ones we have discussed so far in the previous chapters. We present the architecture for considering tasks relevant to the IoT and CS education. We discuss a framework for solving some IoT tasks and a case study and experiments with these tasks.
Conference Paper
Although no one doubts that ubiquitous software should be tested thoroughly, a dedicated course on software testing (ST) does not commonly feature in most CS curricula. Even when this is the case, existing courses often fail to offer a real-world testing experience, essential for a successful software engineering career. In our opinion, the main underlying reasons are twofold. First, abstracting software from its socio-technical system context, creates the false impression that ST “equals” unit testing based on functional requirements. Second, practicing on small, anonymously pre-engineered artifacts, conveys a detached and truncated view of the whole testing process. This paper describes an original approach to teach ST that addresses these two limitations by adopting a system engineering paradigm, with an additional strong emphasis on safety. Targeting CS graduates, the course consists of two modules. In the core module, students build fundamental testing knowledge in a software engineering context, and put this knowledge to work in both roles of developer and tester. In the project module, students get hands-on experience in engineering, and in particular testing, of microcontroller-based, safety-critical systems. Software risk and test experts from industry are actively involved in both modules, for advising, guest lectures and project steering. Enthusiastic students’ evaluations throughout years demonstrate that cultivating safety- and hardware-awareness, although unusual for CS programs at non-engineering universities, creates a unique testing experience, while revealing remarkable technical and psychological trade-offs. All this brings more realism, and contributes to a meaningful and efficient learning in ST classrooms.
Conference Paper
The rapid proliferation of Internet of Things devices around the world has led to a major increase in demand from industry for students equipped with the skills necessary to make continued advances in this area. Consequently, advanced analytical skills are in urgent need to capitalize the massive amount raw data collected by various IoT devices. To address the market demand in IoT and Analytics, the Information Sciences and Technologies department at the Rochester Institute of Technology has proposed an advanced certificate in IoT Analytics that extends across its three Master of Science degree programs. The central focus of this work is a presentation of this advanced certificate program that is designed to encompass the four pillars of IoT, namely Sensors, Communications, Computing Devices, and Analytics.