Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

Courses, Content, and Tools for Internet of Things in Computer


Science Education
Barry Burd∗ Lecia Barker Monica Divitini
Drew University University of Colorado Boulder Norwegian University of Science and
USA USA Technology
bburd@drew.edu barkerl@colorado.edu Norway
divitini@idi.ntnu.no

Felix Armando Fermin Perez Ingrid Russell Bill Siever


National University of San Marcos University of Hartford Washington University in St. Louis
Perú USA USA
fferminp@unmsm.edu.pe irussell@hartford.edu bsiever@gmail.com

Liviana Tudor
Petroleum-Gas University of Ploiesti
University Politehnica of Bucharest
Romania
tudor.liviana@gmail.com

ABSTRACT KEYWORDS
Smart devices are everywhere, yet the Internet of Things revolution Internet of Things; IoT technologies; Computer Science Education
is still in its infancy. In the Internet of Things (IoT) everyday ob-
jects share data over networks, with or without human intervention. ACM Reference Format:
Teaching IoT entails selecting among many technical and social top- Barry Burd, Lecia Barker, Monica Divitini, Felix Armando Fermin Perez,
ics, such as hardware, networking, data storage, data analysis, data Ingrid Russell, Bill Siever, and Liviana Tudor. 2017. Courses, Content, and
presentation, human-computer interaction, platforms, embedded Tools for Internet of Things in Computer Science Education. In Proceedings
systems programming, web technologies, ethics, privacy, and secu- of ITiCSE 2017 Working Group Reports (ITICSE-WGR’17). ACM, New York,
rity. In addition to the many variations on each of these topics, other NY, USA, 15 pages. https://doi.org/10.1145/3174781.3174788
challenges for computer science educators include connecting and
integrating hardware and software, finding adequate physical space
and infrastructure, preparing instructors and teaching assistants 1 INTRODUCTION AND MOTIVATIONS
for the content, and implementing realistic security measures. This
report considers four major approaches computer science educators Self-driving cars, thermostats, door locks, pet feeders, light bulbs,
are using to integrate IoT concepts and courses into their curricula, wearables of all kinds, and smart materials for manufacturing all
summarizes the choices and challenges related to teaching IoT, and belong to the new Internet of Things (IoT). IoT integrates sensors
describes some tools that allow new IoT teachers to get started. and cloud computing to allow for object-to-object communication
for use in many application areas, such as in smart cities, homes and
buildings, energy and power grid management, health, transporta-
CCS CONCEPTS tion and mobility, manufacturing, environmental monitoring, and
• Social and professional topics → Computer science educa- many more. These few examples show the potentially pervasive
tion; Computer engineering education; Computational sci- and transformative impact IoT can have on people and businesses.
ence and engineering education; Professional topics; Definitions for IoT are plentiful, as discussed in the 86-page re-
port of the IEEE IoT Initiative [47]. Several published pedagogical
∗ Working Group Leader works that reference a definition of IoT also use the ITU’s “Overview
of the Internet of things” [58] (Cited by [15], [11], [39]). Simply
stated, the Internet of Things refers to a multi-layered system that
Permission to make digital or hard copies of all or part of this work for personal or includes hardware devices that communicate data across the Inter-
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 net. The data are analyzed either manually or automatically, and
on the first page. Copyrights for components of this work owned by others than ACM transformed into usable information. The goal of this paper is not
must be honored. Abstracting with credit is permitted. To copy otherwise, or republish,
to post on servers or to redistribute to lists, requires prior specific permission and/or a
to define IoT, but to support computer and information science ed-
fee. Request permissions from permissions@acm.org. ucators in making decisions about how to teach this multi-layered
ITICSE-WGR’17, July 3–5, 2017, Bologna, Italy sociotechnical system.
© 2017 Association for Computing Machinery.
ACM ISBN 978-1-4503-5627-5/17/07. . . $15.00
Postsecondary computer and information science educators offer
https://doi.org/10.1145/3174781.3174788 several motivations for teaching IoT concepts, such as:

125
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

• IoT is a significant trend in industry and today’s students searched the Internet and specialized databases and we conducted
will need to understand how to develop and maintain these interviews with educators. The criteria for search and selection as
systems. well as the guiding interview questions are described below.
• IoT is inherently interdisciplinary and may introduce com-
puting in a way that broadens participation in computing. 2.1 Search for Courses and Articles
• IoT systems span significant aspects of contemporary com- We conducted a search of IoT courses online using different search
puting, including embedded systems, networking, client– approaches. First, we searched on popular sites listing open on-
server architectures, cloud services, service-oriented archi- line courses and aggregators (e.g., Coursera, Class-Central) for the
tectures, and human-computer interaction. search strings “internet of things” and “IoT”. Second, we conducted
• IoT provides a rich opportunity to engage students by show- a broad search using the terms “internet of things” or “IoT” and
ing an application domain that is part of their daily life and “course” and “syllabus” and/or “.edu”. In our initial search, we iden-
may show them broader applications of computing. tified and reviewed 17 courses from U.S., Swedish, and Norwegian
• IoT can extend students’ knowledge areas as they produce, universities.
analyze, and use data to maintain systems or build solutions We searched for articles describing definitions, experience re-
in ethical and secure ways. ports with specific course approaches or components, and curricu-
Teaching IoT, however, requires addressing several challenging lum using a general web search, Google Scholar, the ACM Digital
questions, such as: How will we integrate IoT concepts and tech- Library, and the IEEE Xplore Digital Library. These sources index
nologies into existing curricula? How will we handle the mix of papers published in education-related conference proceedings, jour-
software and hardware topics that most IoT projects involve? How nals, and magazines relevant to computing education. Search terms
will we deal with the legal, social, and ethical issues? How will we include “internet of things” or “IoT” and words related to teaching,
choose from the growing number of IoT industry standards? What such as “education”, “pedagogy”, “teaching”, “course”, “curriculum”,
kinds of equipment and lab spaces are optimal for small, medium, and “learning”. These searches yielded hundreds of results before
and large-scale programs, and how will we budget for all this? What we filtered them using the following selection criteria. We selected
are the opportunities for interdisciplinary studies? How will we articles that were:
leverage the enthusiasm students feel when they create projects • Full papers, written in English language, and published in
that go beyond text, beyond graphics, beyond virtual reality and reputable proceedings or journals (i.e., most cited and con-
into the tactile, three-dimensional, realm of moving real-world ob- sidered reliable by computing educators).
jects? With the goal of supporting postsecondary educators who • With the exception of articles defining IoT in general, were
are considering teaching IoT either out of interest or because they focused on teaching students to develop or participate in the
are so assigned, we turned to the community of educators paving development of IoT systems in various ways, but not, for
the way. The research questions we address in this report are: example, how IoT might change how we teach (e.g., creating
Q1 Which types of IoT courses are currently offered? “smart lectures” by using real-time data) or machine learning
Q2 What content and technologies currently dominate the approaches for analyzing IoT data.
postsecondary IoT course landscape? • Focused on postsecondary education, primarily at the un-
To answer these questions, we conducted a review of existing dergraduate level. That is, we did not choose articles that
post-secondary courses, literature reporting experiences with IoT described experiences or tools for primary or secondary
in education, and tools that have been or could be used in the edu- education except when these could also be used at the post-
cational context. We also interviewed a small group of instructors secondary level. We found articles focused on graduate cer-
who have taught courses covering IoT topics. We present our find- tifications, which we reviewed for course topics.
ings below, with the report proceeding as follows. In Section 2, we • Focused on formal education, not informal education, boot
describe our methodological choices for conducting this study. In camps, or corporate or other specialized training (e.g., the
Section 3, we present four categories of existing courses that we IBM Watson IoT Summit).
found and provide examples of each. Section 4 addresses the kinds • Items that did not appear in our initial search, but were cited
of decisions instructors must make in teaching IoT for the first time from our initial set and met the above criteria.
and Section 5 presents examples of tools for getting a quick start This search resulted in 24 experience reports of teaching, nine
and for teaching novice computer science students. Section 6 dis- definitional papers, 19 descriptions of the use or components of
cusses what we perceive as potential challenges and opportunities specific tools or toolkits, and 11 descriptions of curriculum more
for the teaching of IoT. generally (that is, series of courses or how IoT concepts fits into
computing curriculum more broadly).
2 REVIEW METHODOLOGY
The purpose of conducting this review was to collect and present 2.2 Interviews
ideas to support postsecondary faculty who plan to or are asked Six semi-structured interviews were conducted to gain a deeper un-
to teach Internet of Things, but who have no or little experience derstanding of choices behind syllabi and course descriptions found
doing so. We focused primarily on undergraduate educators. We online. Interviewees were selected based on convenience: people to
compiled a set of information for review based on the formalized whom we reached out through email and who were willing to talk
criteria described in this section. To develop this information set, we on the phone. Qualitative data can provide deeper, more nuanced

126
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

understanding of specific cases, though it is not intended to be • Development efforts to include IoT in existing programs or
generalizable. Guiding questions fell in four categories, curricular, create new programs/degrees/certificates ([11, 30, 40, 52])
course mechanics, content, and reflections: • Experience reports, including overview of topics, from teach-
Curricular motivation for the course; intended audience and ing IoT topics ([8, 13, 16, 18, 22, 37, 39, 43, 49, 56])
level; pre-requisites to a course; working definition of IoT; • Tools of facilities to support IoT courses ([10, 27, 29, 41, 64])
other contextual information (e.g., when first taught). In reviewing this literature, course descriptions, syllabi, and inter-
Mechanics style of delivery; structure of assessment; resources viewees’ comments, we identified four general categories of courses
needed and how these are supplied. that integrate IoT. Some departments offer single courses either
Content topics covered and time on each; use made of the data as introductions of IoT or to describe use cases that employ IoT;
generated by devices and preparation of students for analyz- some integrate IoT concepts into multiple courses; and some offer a
ing data; content industry wants taught; topics taught purely series of courses that build a broader understanding of IoT concepts,
as pre-requisite material rather than being fundamental IoT often leading to a certificate or other certification. In the following
topics. sections, we describe these categories and present examples of each.
Reflections what might be done differently and why; what We do not pretend to present all possible examples as of this writing,
worked and what did not; what is missing or under-covered; nor does any single course epitomize the category. Nevertheless,
awareness of other IoT courses we should consider for this we hope that these descriptions will inspire readers to plan their
study. own offerings.
Insights from interviewees are integrated throughout the report
rather than appearing in their own section.
3.1 Category 1: Broad Introduction to Internet
of Things Concepts in a Single Course
2.3 Analysis of Documents This category of course is intended to provide an overview of IoT.
Depending on the purpose of the document, (e.g., syllabus or other Depending on the course level, this course may or may not go into
course guide; description of an evaluated teaching approach), or depth in any particular aspects of IoT, but familiarizes students with
interview notes, we identified several course components (if de- concepts. Courses of this kind vary from introductory (involving
scribed): no prerequisites) to intermediate and advanced (involving prereq-
uisites from computer science, information science, engineering,
• Course content in general; e.g., what is covered (design, or all of these). One might use IoT as an introductory course to
electronics, communication and networking, programming, support student learning of computation through tangible objects.
cloud concepts, data analytics, societal challenges including Course topics might include:
security, ethics, and privacy)
• System or product design
• Purpose of offering course (e.g., engage students)
• Introductory electronics
• How the course fits into the curriculum of the author (elec-
• Communication and networking topics
tive/required; introductory/depth; etc.)
• Programming
• Depth topics
• Cloud concepts
• Hardware devices used
• Data analytics
• Networking topics addressed
• Societal challenges such as security and privacy
• Programming languages used
• Security topics: vulnerabilities and how to avoid them Broad introductory courses cover various aspects of IoT, such as:
• Privacy (when addressed) • Society
• Use cases • Users
In reviewing the course syllabi, interview notes, and articles, pat- • Software
terns emerged in terms of the nature of courses, their content, and • Hardware
technologies used. In particular, we identified four common course An example is the introductory course on IoT offered by the Uni-
approaches, which we present in Section 3. In Section 4, we de- versity College in Oslo and Akershus, Norway [53]. The course
scribe typical topics we found across the documents. In Section 5, is intended for students at the bachelor’s level and has minimal
we describe many tools and kits that educators can choose from for prerequisites. The course’s goal is to introduce both technical and
a quick start to teaching IoT. societal challenges connected to IoT. It covers definitions and his-
torical background, core concepts related to networking, high level
3 EXISTING COURSE APPROACHES: STATE architecture and communication models, privacy and security, inter-
OF PRACTICE operability, design (at the overall application level), and algorithms
for analytics.
The literature on IoT covers a few different, but often overlapping,
Northwestern University offers a course titled “The Internet of
topics that may be of interest to those hoping to include IoT in their
Things,” [31], which requires just two prerequisites (an introduc-
programs:
tion to computer systems with C programming and Unix, and Data
• Correspondence with ACM and/or IEEE-CS curriculum or Structures). This course’s main objective is “. . . to expose the stu-
accreditation ( [14, 40, 63]) dents to the fundamentals of IoT as a paradigm and to help them

127
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

become familiar with some of the foundational problems in this into one course. Some specializations are geared to a broad range
realm, along with the approaches/methodologies for addressing of learners and require minimal technical background, typically
them.” The course begins with traditional lectures to establish basic intermediate knowledge of a programming language such as C or
terminology, followed by individual student presentations, and then Python. Intended to build an understanding of the foundational
an extended team project. principles and concepts in IoT, such certifications tend to be offered
Another approach, such as the “System Design for the Internet of through institutions’ professional and continuing education pro-
Things” [60] course offered at the Technical University of Munich, grams and whose intended audience includes working professionals
requires students to have extensive experience prior to taking the who are interested in learning more about IoT technology. Typi-
course. The course’s recommended prerequisites are embedded cally, students complete the certification in a few months and the
systems, internet communication, and programming. The course curriculum consists of an introductory overview course, followed
contents include: by several courses, each covering a topic in some detail, leading to
• Applications of IoT; a capstone type project that involves designing an IoT system.
• Design and modeling; One example is the multi-course IoT certification offered by
• Sensors and actuators; the University of California, San Diego. The courses are available
• Large data sets; via Coursera and are suitable for a broad range of learners. One
• Energy supply and constraints; of the courses in the specialization, “Internet of Things: Sensing
• Communication frameworks and protocols; and Actuation From Devices” [12], focuses on just the embedded
• Safety, information security and privacy concepts; systems component of a broader IoT system. Course topics include:
• Software design patterns for dependable systems; and • General purpose input/output (GPIO) programming with the
• Application examples, among others, from the smart energy, DragonBoard™ 410c
smart manufacturing and automotive domains. • Building an amplifier
For other examples of Category 1 courses see: [7, 8, 16, 22, 30, 43, 56]. • Running a stepper motor
• Manipulating LED matrices
3.2 Category 2: Integrate IoT Concepts into • Using infrared sensors
• Communicating with Bluetooth
Existing Courses • Monitoring and control using HTTP
Another approach integrates IoT concepts into one or more ex-
isting courses, such as courses in networking, computer security, A similar certification is offered by the University of Washington
ubiquitous computing, and embedded systems, among others. through its professional and continuing education program [51].
In some cases, e.g. courses in networking, security, IoT may be This certification is designed for software developers and those
presented in a few examples, while much of the course either covers who work with connected devices and networks. The three-course
non-IoT applications or doesn’t dwell on specific applications. For certification includes foundations of IoT, protocol and networks,
example, Washington University in St. Louis’ “Recent Advances and cloud computing and analytics.
in Networking” [35] integrates IoT concepts into an advanced net-
working course at the graduate level. 3.4 Category 4: Courses about Specific
In contrast, the “Sensor Networks, Internet of Things, and Smart Use-Cases that Employ IoT
Environments” [23] course at the University of Pisa, Italy teaches
A final approach is inclusion of IoT via a focused study of a specific
networking through the context of IoT, covering wireless sensors,
application of IoT. Themes and application areas include healthcare
architectures and network protocols, localization and routing, syn-
monitoring, smart cities, smart homes, gerontechnology, and many
chronization, energy harvesting and management, as well as con-
others. For example, the two-semester “Gerontechnology” course
tent on smart environments, ZigBee, and Bluetooth products.
at Washington State University [62] introduces students to the ag-
Ambient intelligence or Smart+ technologies have been included
ing process and assistive and monitoring technologies. Students
in Master’s degree programs in European countries. For example,
gain real experience helping aging adults. IoT concepts include an
the academic degree Master of Science in Engineering at Leopold-
introduction to engineering methods for data collection, analysis,
Franzens University Innsbruck in Austria offers a study program
and design of health-assistive tools, the smart environments, and
in Mechatronics & Smart Technologies [34] and brings together
sensors. Another use-case approach is presented in a University
mechanical engineering, electronics and IT knowledge. This pro-
of Surrey, UK course called “Smart Cities,” [42] in which students
gram promotes technologies like electronic image processing, smart
learn typical problems cities faced and how these can be managed
robotics, simulation and rapid manufacturing.
using components of IoT. Specific topics include hardware devices,
For other examples of Category 2 courses see: [14, 26, 30, 39].
communication networks and protocols, data analysis, and others.
At the University of Rhode Island, a course on “Wearable Internet of
3.3 Category 3: Focused Course Intended as Things” [45] presents IoT concepts and architectural components
Part of an IoT Specialization of wearable IoT, with applications in healthcare. Topics covered in-
Some programs offer a combination of courses intended to be taken clude design of wearable sensors for health monitoring, developing
together in order to build expertise or specialization in IoT concepts. algorithms that run on wearable sensors, generating networking
Each topic is addressed in depth and therefore cannot typically fit architecture for data transfer, data processing, and data analysis.

128
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

3.5 Observations about the Four Course 4.1 Students’ Existing Knowledge and Learning
Categories Objectives
Answering our first research question, we identified four different Before making any choices, a course designer needs to know what
course categories. Categories 1 and 3 are the natural ways for a students already know. This may seem obvious, but given the com-
new topic to fit into an existing curriculum. The topic either gets a plexity of an IoT system, stopping to identify the expected audience
course of its own (as in Category 1) or gets several courses, with and make an inventory of their preexisting knowledge may dictate
each course going deeply into a particular aspect of the topic (as in other decisions. A freshman introduction implies students have a
Category 3). modest technical background, so assuming students will be able
Categories 2 and 4 are a bit different. The ease with which we to conduct statistical analysis of data is unreasonable. Creating a
found Category 2 examples isn’t unique to IoT, but it speaks directly survey course embedded in a use-case, however, may be a suitable
to the way IoT overlaps many core computer science topics. In a way to engage IoT novices while introducing them to both the
similar way, the existence of Category 4 courses comes from the social and technical considerations of IoT. For master’s students
intersection of IoT with other disciplines and with many of today’s with a bachelor’s degree in computer science, it may be reasonable
real-world issues. to expect them to be able to generate programming code or address
This overview does not aim to provide an evaluation of the security vulnerabilities, but unreasonable to expect them to be able
different approaches or assess their effectiveness. The identified to develop a model and use statistical analysis techniques to make
course types satisfy different needs and learning objectives. The sense of the data. Similarly, students with a computer engineering
examples provided for each category are intended as inspiration background may be very familiar with sensing devices, but less
for the teachers who have to design an IoT course under similar familiar with user interfaces or visualization techniques.
conditions. Exploring students’ pre-knowledge can help instructors make
appropriate choices. For example, if students can be expected to
know a specific programming language, it makes sense to choose
platforms that support that language. If the students have no pro-
4 YOU PLAN TO TEACH IOT. WHAT NEXT? gramming knowledge, one might decide to choose a platform that
supports a novice friendly visual language.
Imagine being assigned to teach an Internet of Things course, but
Identifying the course’s learning objectives will also help the
never having done so before. The technologies comprise several
course designer determine how to address different topics. If the
IoT stack layers, which are described and counted in different ways,
course is a general introduction, then relatively superficial coverage
varying by definition of IoT. Layers include: devices that collect
of the different technologies, interfaces, use cases, etc. may make
and store data; network and communications, which allows the
the most sense. A student who wants to know more will be able
physical devices to communicate data with each other, with the
to see the big picture and understand how later instruction fits
network and with storage devices; and data storage, data analy-
into it. At the other extreme, if the goal is to establish a degree
sis, and application, which supports transformation of data into
program in IoT, then depth in several knowledge and skill areas
meaningful and usable information. Privacy and security are critical
will be important. In that case, a course might go into depth in
issues within each layer. This section is intended to give course de-
only one topic, such as hardware, machine learning, or privacy.
signers a starting point for making decisions about teaching within
Exploring learning objectives can support choices about what to
this complex system. Below, we identify the categories of decisions
include, depth of coverage, and what can be omitted.
course designers need to make and several choices for each, varying
by learning outcome goals and course types.
Figure 1 shows the complexity of a system architecture. A course
4.2 Topic Selection
designer can use this diagram as part of the decision-making pro-
cess. For example, an app developers’ course may focus on the Teaching IoT offers the possibility to touch upon different issues
topmost-center part of the diagram with units on IoT Applications of computer science, data and information science, engineering,
and Enterprise/Industrial IoT. A course for engineering students and human and societal issues within a coherent framework. This,
might emphasize the diagram’s bottommost topics such as Sen- however, creates the need to focus on breadth vs. depth, and is
sor/Actuator, Digital Logic, and the Device Layer. A system archi- the principal choice for an educator. Topics and depth of coverage
tect’s course will cover the Management Capabilities near the left should be selected based on both curricular needs and instructor
side of the diagram. expertise. However, to be considered an authentic IoT experience,
In Section 3, we described four general course types, including: a more than one layer should be included. Three core IoT issues were
standalone broad introductory course centering on IoT, the integra- consistent across nearly all examples of the state of practice and
tion of IoT concepts into multiple courses in a curriculum, in-depth should probably be addressed in any IoT-focused course: concepts of
courses intended to be taught as a series for students wanting to the “things”; connectivity, the cloud, and data; and human-computer
specialize in IoT, and a specific use-case course in which IoT con- interaction. Moreover, the interfaces between these three core ar-
cepts merely support the course’s main topic. Below we describe eas should be addressed so that students can explicitly situate the
several issues instructors can explore for making decisions about course’s topics fit in a full IoT system. Several topics are critical to
what and how to teach IoT. real-world IoT that may be covered in varying degrees of depth.
Below, we present a set of “core” and “specialized” topics.

129
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

Figure 1: Many Layers and Concerns of the Internet of Things

With this division, we do not intend to marginalize any of the unreliable hardware, and the security and privacy of data
issues connected to IoT. We identify as core the topics that are they collect and store.
connected intrinsically to the notion of IoT, i.e., as discussed in the The concepts in this part of the core depend mainly on the
Introduction, multi-layered socio-technical systems that include Sensor/Actuator topic, shown at the bottom of Figure 1. But
hardware devices communicating data across the Internet. Without other topics in the figure come into play also. These other
the core topics, students would not be able to appreciate the richness topics include Digital Logic, the Device Layer, and Security
of IoT systems. The other topics might be chosen when students Capabilities.
are ready to deal with more advanced aspects of IoT systems. The Connectivity, the Cloud, and Data Although the specific tech-
selection of topics and the time that is dedicated to each topic nologies and protocols vary based on problem domain, dig-
is strongly influenced by students’ pre-knowledge and learning ital networks are a fundamental aspect of any IoT system.
objectives of the course. Courses should address how networks are used to collect,
and disseminate, and/or analyze data being exchanged by
4.2.1 Core (Common and Strongly Recommended). the “things” and made useful to people. Students also need
to learn ways in which the networks can be vulnerable to
Concepts of Things (Hardware) One of the distinguishing hacking.
features of IoT is the pervasive use of embedded computing This part of the core belongs to the very middle of Figure 1
both to interact with the environment (e.g., motors, lights, (the Network Layer) and to topics on the right side of the fig-
and other forms of output) and to collect and process data ure (especially IoT Server, Cloud IoT, and Cloud of Sensors).
from the environment (sense light, pressure, temperature, Of course, all parts of the core should touch on the Security
vibration, distances, etc.). Students should gain some aware- Capabilities topic in Figure 1.
ness of digitization of data, the limitations of precision and Human-Computer Interaction The intent of any IoT sys-
accuracy of sensors, the volume of data being produced and tem is to facilitate human activities or interests, such as
stored, the system robustness for working with potentially home automation, smooth operation of a supply chain, or

130
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

monitoring the safety of a natural environment. IoT courses Making/Electronics/Mechanical Engineering IoT projects
should provide some insight into both the benefits and li- often combine multiple science, engineering, and human-
abilities of the IoT system, the relevant human-computer istic or social disciplines. IoT provides an opportunity for
interaction issues (e.g., high-quality user experience), and interdisciplinary projects or the ability to introduce students
theories about human behavior that inform selection and to different disciplines or interdisciplinary study.
interpretation of data. This part of the core belongs to the From Figure 1, a course may concentrate on the Raspberry Pi
upper part of Figure 1. or Arduino along with the Sensor/Actuator topic. The course
also targets the Application Layer with software for the
4.2.2 Specialized (Varying Depth of Coverage). There are a vari- enterprise, for industry, or for consumers. (For a discussion
ety of topics where the inclusion and degree of coverage may vary of the Arduino, Raspberry Pi and some alternate hardware
based on the needs and objectives of the academic program. Several platforms, see Section 5.2 of this report.)
of these specialized (or advanced) topics are summarized below. Machine Learning and Big Data Concepts IoT systems pro-
vide new opportunities for data collection, analysis, infor-
Platform-Specific Development IoT systems span multiple mation presentation, and decision-making. Courses could
platforms and, consequently, provide a rich opportunity to devote significant time to data management and storage,
provide either a broad view of platforms, deep exposure to data fusion, analytic techniques, and machine learning. Ma-
specific platforms, experience with developing and maintain- chine learning algorithms can also be applied to improve IoT
ing a platform, or experience analyzing existing platforms. system performance. IoT concepts can also be introduced
The three most significant types of platforms are: 1) embed- through use of automatic learning technologies like data min-
ded, 2) web stacks & services, and 3) mobile, as summarized ing for knowledge discovery in data, discovering analysis
below. patterns, data segmentation, or assessment of the likelihood
Embedded Platforms Many courses choose to emphasize of future actions. As can be seen in Figure 1, big data topics
the development of “things”, the embedded systems. This are a peripheral issue and typically rely on existing device,
approach provides an opportunity to cover a variety of network, and application support layers.
constraints and implementation issues that are part of Privacy, Ethics, and Societal Impact The unprecedented con-
the ACM curricular guidelines, such as the limitations of nection of devices, networks, and data has both positive and
constrained systems (potential power constraints or lim- negative potential with nontrivial consequences for indi-
ited bandwidth/connectivity), programming fundamen- viduals and society. IoT can serve a huge range of human
tals, impacts of data representation, operating systems, needs, including unethical or illegal activities. The theories
etc. Addressing this topic, students might go into detail on which applications are based must also be sound if hu-
about one or more hardware platforms. For example, see mans are to benefit and to avoid harm. Data collected and
the Raspberry Pi and Arduino topics in Figure 1. communicated by sensors may be personal and may get into
Web Stacks & Service Platforms Contemporary IoT sys- the “wrong hands.” Within each layer, therefore, considera-
tems often utilize a variety of internet technologies and tions of trust, privacy, and security should be addressed. Not
tools, such as JavaScript, HTML+CSS, PHP, webhooks, all courses address these topics, but their importance cannot
cloud-based back ends, etc. Moreover, IoT system archi- be understated. These overarching issues that pervade all
tectures often follow the architectural patterns developed aspects of IoT are shown at the top of Figure 1.
for web-based applications, such as service-oriented archi- Human-Computer Interaction Issues Considerations of user
tectures. This topic emphasizes many of the topics on the experience — making systems that are useful, usable, and
right side of Figure 1, especially WebSockets, SOA, and pleasurable to use — is relatively immature in IoT systems
Cloud IoT. The Cloud of Sensors and IoT Server topics and could be an excellent research topic for students. In-
may also be covered in depth. terfaces vary widely and a particular IoT application might
Mobile Platforms Many IoT applications employ native interface with only one device or across many, which may
mobile apps to provide a richer user experience. Conse- have very different functionalities and forms (e.g., wrist, mo-
quently, IoT courses may devote significant time to mobile bile phone, or desktop interface). Since human needs are
platforms. the main motivation behind IoT systems, Human-computer
Security Issues Security is especially important in IoT due to interaction is pictured as an overarching goal along the top
the combination of Internet access (in many IoT systems) of Figure 1.
and access to private information (e.g., a webcam), control of
personal security (e.g., a door lock), and safety (e.g., health 4.2.3 Content Knowledge and Community. Teaching an IoT course
care devices). Unlike many existing systems, IoT systems can require multiple competencies for instructional staff, includ-
pose risks to both security and privacy of information and ing teaching assistants. For example, an open project that creates
may also pose physical threats. These threats are already an entire IoT application can require knowledge of the electron-
common in other cyber-physical systems and often network ics, networking, and cloud services. Teaching IoT can therefore be
isolation provides some degree of restriction of liability. As a considerable investment in both time to learning content and
seen in Figure 1, this topic cuts across many layers of IoT time spent training teaching assistants. Team teaching may help
application stacks. to address this issue. One such multi-faculty approach was used at

131
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

Rose-Hulman Institute of Technology’s pilot IoT course using lean


startup principles [22].
Another source of support is the relevant communities of prac-
tice and potential user audiences in the local area. Access to in-
dustry and community partners as technology providers, guest
lecturers, internship providers, and “problem owners” (e.g., sources
of projects capstone courses) can support course decision-making.
Partners’ tools and approaches will then influence teaching choices
with respect to platforms, software, and competencies to address.
Moreover, partners can often aid vetting projects for merit, techni-
cal feasibility, and scope. For example, Elon University’s IoT course
has students pitch their work to a panel of faculty and alumni, who
then can negotiate to “buy-in” to projects much like on the game
show “Shark Tank” [16].

4.3 Space and Technology Challenges


The computer labs available in most universities are mainly de-
signed for software development. Working on IoT projects requires
spaces for manipulating physical devices, often as a team activ- Figure 2: The Tiles cards and workshop (Source [48]).
ity. Supporting tools might be necessary too, such as soldering
equipment, electronic test equipment, 3D printers or fabrication
equipment, tools, etc. It can be useful to understand how industrial pedagogy will be used? What kinds of examples will be presented?
or academic labs are set up or to cooperate with other departments We deal with some of these issues in the next section (Section 5).
whose labs are better suited to support the work (and have experi-
ence supporting the labs themselves). 5 TOOLS FOR A QUICK START
Network access may also be a significant consideration. Many In this section, we list some of the tools used to support new IoT
of the commonly used Wi-Fi and Ethernet based tools may have users in our IoT course review. The list is not intended to be ex-
limited support for authentication and security mechanisms and haustive, but will give ideas to those wanting to provide basic
may not work with existing campus networks. Although this may experiences. As discussed in Section 4, the choice of tools may
be overcome by installation of special purpose equipment for the depend on different situations, such as an industry partner’s plat-
course, such as a Wi-Fi access point, this incurs a cost, requires form preferences or lab support. However, educators starting from
coordination with campus infrastructure to deploy, and may limit scratch may find some useful ideas below.
students’ ability to work outside of class.
Integration of hardware with software can be a challenge too. 5.1 IoT Design
For example, batteries die and students may attribute problems to Given the novelty of IoT, it might be challenging for students to
faulty code, resulting in needless debugging. Conversely, errors imagine meaningful IoT applications, potentially limiting their moti-
in programming may be blamed on faulty hardware, such as an vation. Students in introductory courses need to be able to envision
illogical temperature value being blamed on a faulty sensor rather meaningful user experiences without getting lost in technical de-
than the code used to convert a raw voltage value to the appropri- tails. Some introductory IoT tools are based on traditional games,
ate units. Finally, the additional complexity of IoT systems often which can be quickly introduced, require no technical expertise,
introduces timing delays that also delays feedback that is often and provide a way to explore significant IoT solutions.
used by students to validate their work. For example, a delay in a For example, Tiles Cards (Figure 2) [48] use traditional playing
light turning on may be due to an error in code, an error in how cards that allow novices to explore combinations of user interface
hardware is connected, a fault in the network, of just a serious metaphors, digital services, and physical objects. The deck consists
network delay. Inexperienced developers may lose confidence as of 110 cards and is used via a workshop technique. Some cards
they struggle to identify the source of problems and debug systems. provide technology primitives that describe the IoT design space,
providing triggers for divergent and creative thinking. In addition,
there are cards offering criteria for reflecting on and evaluating the
4.4 The Selection of Tools
ideas generated. The Tiles Workshop structures the use of the cards
In Section 4, we have described the many challenges and instructor in ideation with step-by-step guidance, support for collaboration,
decisions involved in an initial offering of an IoT course. The first and complementing the cards’ use with traditional design thinking
set of challenges and choices concern topic selection, space needs, techniques and artifacts.
and other broad-stroke issues. In many cases, these challenges and The IoT Service Kit [9] is a board game based approach to intro-
choices involve other members of the department or the institution duction of IoT concepts. The board represents a specific IoT context,
as a whole. After settling questions on the broader issues, the in- such as a smart home or smart city. Tokens represent the physical
structor must decide on course specifics. For example, what kind of things in the IoT system. Players construct an IoT system in the

132
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

context using a variety of cards representing 1) enablers, like sen-


sors and networks; 2) interactions, which represents interactions
with humans; 3) users; and 4) services/APIs. Essentially players
construct a physical model representing a user story for an IoT
system in the given context.
Thingclash [59], another card based approach, has a greater focus
on the social impact of IoT. Players are given a worksheet and dealt
cards for things, places, and personas. The players then explore
potential clashes, such as unexpected problems or conflicts, that
may arise.

5.2 Hardware Platforms


When a course involves projects, the instructor needs to choose one
or more hardware platforms (e.g., Arduino, Raspberry Pi, NXP Pico,
Figure 3: Arduino
ESP8266, micro:bit, LightBlue Bean, etc.), one or more software
platforms (e.g., C, Java, Python), and one or more cloud services
(e.g., MQTT, CoAP, Custom, Peer-to-Peer). In many cases, decisions
about hardware and software are interrelated. For example:
• Particle’s [54] Photon hardware locks you into C++ and
favors Particle’s proprietary cloud service.
• Using a native iPhone app locks you into using Swift, Objective-
C, while using a native Android app locks you into using Java
or Kotlin. On the other hand, cross-platform frameworks,
like Cordova or Xamarin, often sacrifice some functionality
or look-and-feel.
• The Raspberry Pi [21] comes with Wolfram Mathematica
[65], a rich, mature language that is well suited to IoT analyt-
ics and big data applications. Mathematica is quite expensive
when purchased separately, so the Raspberry Pi platform
may be strongly preferred as a vehicle to economically access Figure 4: Raspberry Pi
Mathematica.
• High-level tools, like Node-RED, require significant process-
ing power and some access to a GUI, so they require a more sense. Regardless, we present some general observations distin-
sophisticated platform such as a Raspberry Pi or desktop- guishing Arduino and Raspberry Pi, shedding light on the state of
class machine. prototyping hardware in general.1
What is it? Arduino is a microcontroller-based board to which
Many courses are using a combination of platforms in order to take
sensor and actuators can be wired. In contrast, Raspberry Pi
advantage of their complementary strengths. Some platforms are
is a small, general-purpose computer.
based on an open source/open hardware approach, while others rely
What does it run? Arduino doesn’t run an operating system.
on proprietary solutions. An important factor when selecting the
Arduino, is a microcontroller. Technically speaking, Rasp-
hardware platform to use is the availability of an online community
berry Pi is a small, general-purpose computer and it has its
to provide examples of educational activities and access to online
own version of the Linux operating system (Raspbian) with
support.
the capability of running other operating systems as well.
5.2.1 Microcontroller and Computer Platforms. The two most How do you program it? To develop for Arduino, you run
popular prototyping platforms are Arduino [3] and Raspberry Pi the Arduino integrated development environment (IDE) on
[21] (Figures 3 and 4). Arduino was initially developed for the maker a PC, Mac, or Linux computer or via a web browser. The
community, but has gained in popularity among educators at all IDE compiles your code (also known as your “sketch”) and
levels. Thanks to software libraries that simplify the writing of code, loads the executable onto the Arduino. The Arduino runs
students are able to develop challenging projects with limited or the executable immediately. In contrast, the Raspberry Pi
no knowledge of electronics. can be connected to a monitor and keyboard and you can
The Raspberry Pi has more computational power and might develop code on the Raspberry Pi the way you would on
be an appropriate choice for handling elaborate data, executing any general-purpose computer. (Alternatively, you can use
complex tasks, or extending connectivity. remote access to eliminate the need for a dedicated key-
There are many versions of both the Arduino and Raspberry Pi board/monitor/mouse.)
platforms, with new versions being released frequently; therefore, 1 Theauthors of [36] and [6] present additional no-nonsense arguments comparing
a side-by-side feature comparison of the platforms doesn’t make the Arduino and Raspberry Pi for different projects’ needs.

133
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

How does it communicate with hardware on a low level? Micro:bit [19] a novice-friendly, low-cost board that includes
Arduino has both analog and digital inputs and outputs built- sensors (acceleration, compass, ambient light), buttons, a
in. The Raspberry Pi’s inputs and outputs are all digital. This simple 5x5 pixel "screen," and wireless communication to
makes tasks such as sensing and controlling analog values, other micro:bits or tablets/phones. It supports block-based
like brightness, easier on Arduino than on Raspberry Pi. programming languages (e.g., Scratch) and a web browser
How do you communicate with it on a higher level? The simulator for simulation, debugging, and diagramming.
Raspberry Pi’s built-in components include many of the el- Particle Photon and Electron [54] To support rapid devel-
ements of a full-sized computer, including USB ports, net- opment for its cloud service, Particle offers the Photon, a Wi-
working (Ethernet or Wi-Fi), an HDMI port, and an audio Fi based IoT platform, and the Electron, which uses cellular
jack. The high-end Arduino boards have some of these com- 2G/3G networks (and a low cost, data-only plan). Particle’s
ponents but, in general, these components come as Arduino products are programmed via a web-based IDE, reducing
add-ons. development requirements at the expense of dependence on
How powerful is it? In general, the processor on a Raspberry network access.
Pi is much faster than the processor on an Arduino board. In UDOO is a family of single board computers that uniquely have
addition, a Raspberry Pi’s memory is easily expanded with a a heterogeneous processor. The Android/Linux boards offer
microSD card. An Arduino’s program memory is limited to 9-axis motion sensors, Bluetooth 4.0, and a Wi-Fi module.
the amount of storage on the processor. UDOO is compatible with Arduino, which allows it to be
How easy is it to use? With both analog and digital I/O, and used in a wide spectrum of systems and use cases [28].
with no operating system, Arduino is easier in most respects. LightBlue Bean [55] The family of LightBlue Bean products
You can stop an Arduino simply by unplugging it. No shut- are well suited to wearables. They support development
down procedure is required. via the Arduino toolchain; include a variety of sensors, like
How versatile is it? With complexity comes versatility. The accelerometers and temperature sensors; and support Blue-
Raspberry Pi can easily multitask, while the Arduino’s mul- tooth Low Energy profiles that allow for easy integration
titasking abilities are limited. Arduinos can manage modest with apps on mobile devices or desktops via Node.js.
amounts of data while Raspberry Pis can run full data base
5.2.2 HATs and Shields. HATs and Shields3 are modules that
systems.
connect Arduino, Raspberry Pi, and other processing boards to
How much does it cost? This varies by model, manufacturer,
computers. They often contain sensors or the electronics needed
and capabilities. At the time of this writing the lowest cost
to connect to motors. Unlike simple sensors, actuators can make
Raspberry Pi, the Raspberry Pi Zero W, costs $10 US. Inclu-
changes in the environment. Each sensor and actuator can be a
sion of typical accessories, like a case, power supply, and SD
separate component, but several sensors, some simple actuators,
card may raise the price to $25 US. Since the Arduino is an
and even some networking components may come bundled together
open source platform it’s available from a variety of sources
on their own board. The board is conveniently designed to plug
besides the official Arduino organization. Entry level models
onto a particular processor board’s pins (following the Raspberry
are available from unofficial sources for as little as $7.50 US.
Pi or Arduino pin layouts, for example).
It’s common for IoT courses to use both Arduinos and Raspberry Starter kits typically include a board, sensors, and actuators bun-
Pis in a single project. For example, with its analog I/O, an Arduino dled together. A kit typically includes other hardware to facilitate
can read sensor values and relay those values to a Raspberry Pi. the connections among components, and may include a HAT and a
The Pi may relay those value to a cloud service, such as ThingSpeak power supply. A few commonly used starter kits are listed below.
[61], which can be used to plot and analyze the data.2 ARM Mbed Ethernet IoT Starter Kit This kit contains a pro-
Despite the popularity of Arduino and Raspberry Pi, other hard- cessor on an NXP K64F board with USB, push buttons, and
ware solutions are worth considering. A few of them include: Ethernet. It also contains a shield with an LCD display, a
Qualcomm Dragonboard 410c Like Raspberry Pi, but includes joystick, a speaker, an accelerometer, two potentiometers,
GPS and has support for Android. LED lights, a temperature sensor, and socket for ZigBee net-
ESP8266 A low-cost Wi-Fi capable chip that can be programmed working. The cost is about $120 US. Support and evaluation
in C++ using the user-friendly Arduino toolchain or via Lua kits are often available via ARMs University Program.
using a simple serial terminal program or a custom IDE. The Microsoft IoT Pack for Raspberry Pi 3 This kit includes a
ESP APIs simplify access to web services and a number of Raspberry Pi with an enclosing case and power supply, a
companies (e.g., AdaFruit), provide libraries to access pow- breadboard, sensors for temperature, pressure, humidity and
erful cloud-based IoT services. color, switches, LEDs, an analog input adapter, and a Mi-
NXP Pico iMX7 A low-cost board with connectors for display croSD card. The cost is about $115 US.
output, camera input, and WiFi. This board is part of the TechNexion Android Things Starter Kit Customized for use
TechNexion Android Things starter kit, which is described with Google’s Android Things SDK, this kit includes an
in Section 5.2.2. NXP Pico iMX7 board, a small display monitor, a camera
3 Arduinos use the term Shield and Raspberry Pis use the term HAT (Hardware Attached
2 Instructionsfor allowing Arduinos to interact with a variety of IoT platforms and on Top). Other common names for such modular components are bonnet, cape, and
services can be found at [5]. kippah.

134
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

module, and a Pimoroni Rainbow HAT with LEDs, pres- 5.4 Programming Languages
sure/temperature sensors, and a 14-segment alphanumeric An IoT system may involve several programs in several different lan-
display. The cost is about $200 US. guages. In a basic system, one program controls embedded hardware
SenseBoard kit [38] The Arduino-based SenseBoard has a and another may provide a user interface, data collection/analysis,
slider, a pushbutton switch, six LEDs, and analog inputs. or both. More commonly, IoT systems are a distributed application
The kit also contains a heat-sensitive resistor, a phototran- leveraging a variety of web services.
sistor, a motion detector, a motor, and a USB cable. It uses a On the embedded devices, the choice of programming language
block language in an IDE and supports student cooperation depends on the choice of hardware. Therefore, knowing which
using its own cloud infrastructure. The SenseBoard can be programming languages the hardware supports is critical. A list of
used in conjunction with a Raspberry Pi, and a version of programming languages and supported devices follows:
the Sense language has been created for the Raspberry Pi.
C++/C is supported on Arduino-based devices, like actual Ar-
duinos, ESP8266, Particle’s Photon and Electron, as well as
5.3 Networking the Raspberry Pi and platforms supported by ARM’s Mbed,
IoT applications may utilize a variety of approaches to networking. including the micro:bit.
Listed below are some common technologies that are supported by Block Based languages which are particularly convenient
typical IoT hardware. for novices or for rapid prototyping, are available for some
models of Arduino (See ArduBlock [1], Snap4Arduino [57],
Ethernet Common Ethernet is typically used for the wired and Microsoft’s TouchDevelop [46]) as well as the micro:bit
component of classroom based IoT systems. (Microsoft’s Block Editor, and Microsoft’s Touch Develop).
ZigBee Wireless Networks Based on the IEEE 802.15.4 stan- Node-RED [50], a graphical data-flow language is also novice
dard, ZigBee wireless networks allow inexpensive, long- friendly. It is supported on both cloud infrastructures, like
lasting creation of low power applications. These networks IBM’s Watson [32] and the Raspberry Pi.
include sensors and actuators and use wireless communi- LUA a scripting language, is supported by the ESP8266 proces-
cation to control electrical products (e.g., remote controls, sors.
medical, industrial, security sensors). The ZigBee protocol Python and its embedded-platform equivalent, MicroPython,
easily works on low power microcontrollers and has sup- are supported on several platforms, including the Raspberry
port from common IoT platforms like the Arduino (via a Pi, some models of Arduino, and the micro:bit. In addition,
shield). Thousands of nodes can communicate via multi-hop Python can be used in many cloud infrastructure components
mesh networks [24]. The security infrastructure is based on of IoT systems.
CCM, an authenticated encryption algorithm designed to JavaScript is also a common component of both Raspberry
provide both authentication and confidentiality for 128-bit Pi-based IoT systems (often via Node.js) and in either the
block ciphers [17]. cloud component of systems or as part of the user interface.
Bluetooth networking supports data exchange over short dis- Java and Kotlin are supported by the Android Things SDK
tances from fixed and mobile devices. Bluetooth mesh net- [25], a variant of Google’s operating system for mobile phones
working allows many-to-many communication over Blue- with additional classes for communicating with embedded
tooth radio and can communicate with wireless sensor net- hardware. Android Things runs on Raspberry Pi and NXP
works, making possible intelligent lighting and other envi- Pico boards.
ronmental and industrial applications.
Bluetooth Low Energy (BLE) BLE is a recent extension of Due to resource constraints, any particular embedded system
the Bluetooth standard. BLE is specifically designed for low will have just one or a small set of supported programming lan-
power, low data applications and is very well suited to many guages and tools. On the other hand, a full-fledged computer like
interesting IoT applications, such as wearables and battery- the Raspberry Pi or the servers in the cloud may offer many options.
operated sensor networks. Since all modern cell phones sup- When interfacing with a phone, the phone’s operating system
port Bluetooth Low Energy and provide APIs to interact with plays a role in determining the programming language:
BLE devices, it’s relatively easy to develop apps for these Swift and the older Objective-C language are the native lan-
devices. (See [19, 55]). guages for iOS (iPhone) development.
Wi-Fi Many IoT development devices already support Wi-Fi Java and Kotlin are the native languages for Android devel-
(some models of Raspberry Pi natively, others via a HAT; opment.
some models of Arduinos natively others via addition of A web page can do some of the work that a native app can do.
a shield; Particle’s Photon, the ESP8266, and ESP32 chips In a hybrid mobile app, the app is essentially a webpage with
all natively). As mentioned previously, support for security special access to features not typically available from true
authentication mechanisms varies and should be matched webpages, like Bluetooth hardware, cameras, and contact
to the courses environmental needs. information. HTML+CSS provide content and presentation
LTE/3G A few IoT products, like Particle’s Electron [54], sup- while JavaScript provides the logic. Frameworks, such as
port cellular networks. These typically require a special data Cordova, are usually used. Hybrid apps are distributed as
plan and support varies from country to country. standalone apps and can be sold in App stores.

135
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

C# can be used with the cross-platform Xamarian framework. • Amazon’s AWS Internet of Things.
Much like hybrid apps, Xamarian apps can be distributed • Google’s Cloud IoT.
and sold on App stores.
Many of the commercial services offer free support that is suit-
Often the cloud or embedded service needs dictate the choice of able for academic use, such as either: 1) a free, low-volume tier
language as well. For example, many cloud services provide APIs of support open to anyone, or 2) free limited time access open to
for iOS, Android, or JavaScript, but not Xamarian. anyone, or 3) free use in academia. In addition, there are a variety
A platform’s official tools often have better support than third- of open source tools that can be hosted locally or via a cloud based
party tools, but the most appropriate choice for an academic au- hosting service. The ability to modify open source tools provides the
dience is often influenced by other considerations, such as the potential for greater flexibility, but at the expense of maintenance
students’ prerequisite knowledge and cost. and hosting costs.

5.5 Non-Traditional User Interfaces


5.7 Example Projects and Project
In addition to traditional user interface issues, IoT topics provide an
opportunity to introduce contemporary forms of human-computer
Considerations
interaction that may not be covered elsewhere. These include in- Example projects abound online, making it easy to borrow from
teractions based on physical motion, comparable to the tilt and what others have done. The universal “Hello, World” application
rotation interactions on mobile devices as well as voice user inter- for embedded systems is making an LED turn on and off. Banal
faces (VUIs). as it may seem, this project is exciting for students because of the
Common choices for VUIs include Amazon Alexa (for the Echo newly discovered low-level IoT aspects. Students wire the board,
family of devices) and Google Assistant (for Google Home devices). select the input lines, and tweak the code to make the LED light up
Students can create scripts that respond to a voice command, report and down.
on a device’s status, control a device, and reply with generated Many of the available open source frameworks that we have
voice output. Creating a script (called a skill for Alexa and an agent seen used in IoT courses have a strong educational community, of-
for Google Assistant) involves writing code that sends a request, fering ideas and support for projects and tasks that could be used to
formatted in JSON, to a server. design intermediate or capstone projects. For example, the Arduino
Project Hub [4] maintains a repository of exercises. Many of the
5.6 Analyzing Data and Choosing Cloud and exercises can be adapted for Raspberry Pi as well. Similarly, the
Raspberry Pi forums [20] have an Education section with a Teach-
Web Services
ing and Learning Resources subsection. The subsection has many
Cloud services may be used in combination to provide a variety of posts describing projects for use in courses. Nonetheless, selecting
features to IoT applications: projects that cover the desired topics and are an appropriate fit for
• Infrastructure to collect and dispatch communications be- an academic term can be challenging. In [44] the authors outline a
tween devices, series of their desired IoT learning outcomes and an approach for
• Data storage, and assessing projects. In [22] the authors describe the IoT aspects of
• Facilities to automatically process incoming data and either interest in their course and provide a table showing how a variety
trigger actions as a result or create visualizations. of potential projects demonstrate (or fail to demonstrate) the topic.
Cloud services can provide rich, contemporary features, such as
text notifications, tweets, or posts to social media. Some services 5.8 When in Doubt, Lean Toward Commonly
that may be particularly good fits include: Used Technologies
• IFTTT (If-This-Then-That) [33], which features an easy-to- Among all the available prototyping platforms, Arduino and Rasp-
use platform for adding triggers based on actions. Common berry Pi have the richest ecosystems. Most people program Arduino
uses include triggering SMS text messages due to some event with Arduino’s own variant of C/C++. Other languages are avail-
or triggering other sorts of notifications (e-mail, phone) able for use with the Arduino, but students have the best chance of
based on interaction with web services or web sites. finding help if they search the Web for C/C++ based solutions to
• ThingSpeak [61], which is owned by Mathworks, the pub- Arduino programming problems.
lisher of Matlab. Consequently, it’s possible to use Matlab’s Raspberry Pi can be programmed in any language that compiles
concise programming language and rich API for data anal- on ARMv6, including Python, C/C++, Java, Scratch, Ruby, and oth-
ysis and visualization. Among other things, ThingSpeak is ers. If you anticipate needing support from the user community,
often used for simple visualizations and Twitter integration. Python is a very safe choice.
• AdaFruit.io [2], which provides MQTT streams, a ISO stan-
dard publish-subscribe message exchange protocol often
used in IoT, and a user friendly web based IoT dashboard for 6 PREPARING FOR THE FUTURE
their platform. In addition, AdaFruit maintains APIs for a With the emergence of IoT, what kinds of challenges and opportuni-
variety of embedded platforms. ties do we face as computer and information science educators? In
• Watson IoT (IBM’s platform for IoT) which includes access this section, we explore current concerns and the potential future
to Watson’s sophisticated analytics. of academic approaches to IoT.

136
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

6.1 Expansion of Topics Covered and Scope demands on physical resources for computer science departments.
Creep These departments need money to purchase equipment for use in
IoT instruction as well as technology replacement funds.
IoT allows us to expand the topics typically included in computer
For some courses, having each student purchase his or her own
and information science. This topic expansion can be accomplished
hardware can solve the equipment problem. A student’s equipment
at many levels in the IoT topic stack. Hardware, network connectiv-
might cost less than a printed textbook. But to learn about some ap-
ity, human-computer interaction, and ethics play heightened roles
plications, more costly equipment is required. If students purchase
when we consider smart devices as part of the curriculum. The
all of the equipment that they use, the list of topics stays within
use of embedded processors gives us another reason to emphasize
the confines of the cost and availability constraints. If a course
polyglot programming. Security plays a critical role in IoT applica-
topic requires equipment that is costly, troublesome to obtain, or
tions for transportation, healthcare, and energy management. The
infrequently used, then instructors can purchase this additional
emergence of IoT may convince many departments to introduce
hardware to supplement the students’ equipment. Of course, this
security early on in the CS curriculum.
strategy brings computer science departments back to the need for
In addition, IoT spans a variety of disciplines, especially computer
increases in purchasing budgets.
science, computer engineering, and systems engineering. Given the
Having students buy equipment has ramifications for course
breadth of topics in IoT, courses may be prone to spending excessive
management. To assign a textbook for a course, the instructor an-
time on background that is out-of-discipline. Although any effort
nounces the book’s ISBN number and (optionally) has the campus
to broaden students understanding is valuable, it may be difficult
bookstore purchase several copies in advance. But for a course’s
to ensure that overall curricular needs for individual disciplines are
equipment needs, the instructor may have to list parts from several
being met. Moreover, at this time there isn’t any work exploring
vendors. In a large class, some students are bound to purchase the
the appropriate balance between depth and breadth of coverage
wrong equipment or not have it in a timely fashion. As an alterna-
that meets curricular objectives.
tive, the instructor can purchase the equipment in bulk before the
6.2 Rapidly Evolving Technology course begins. The instructor divides the equipment into student
kits and sells the kit to the students when the course begins. This
Although computing itself and educational approaches to comput- strategy poses its own course management hurdles. In addition, as
ing are continuing to change, the pace of change for many topics with many lab sciences, equipment may fail due to mishandling or
has slowed down considerably over the past decade. In contrast, IoT misuse, adding another hurdle to management of equipment.
is in its formative years. The sheer variety of platforms and choices The work environment for people doing IoT prototyping is dif-
outlined earlier in this paper indicate that a single course will have ferent from the environment for software developers. A software
to make a variety of complex, inter-related choices about platforms developer spends at least part of the time touching a keyboard
and tools. Unfortunately, many of these changes are happening and looking at a screen. This makes solitary work a natural first
quite quickly and tools or platforms used may become obsolete at a choice. The programmer’s attention fixes on the screen, and not
faster pace than the rest of the computing industry. Moreover, as the on the other programmers in the room. Even with pair program-
industry evolves the tools used and skills of interest to employers ming, the navigator might be focusing mostly on the driver’s screen.
will continue to change. Consequently, it isn’t yet clear what skills When the driver and navigator face one another eye to eye, it’s the
and educational outcomes of IoT courses should be. exception, not the rule.
In contrast, the work environment of IoT prototyping lends itself
6.3 The Need for Training and Teamwork to cooperation. The students in a team may benefit from facing one
Few computer science instructors have deep exposure to all as- another while they work on their project. Students walk around
pects of IoT applications (embedded hardware, cloud computing, the room to get parts and to see their projects move about. The
networking, etc.). The end-to-end IoT development cycle and its work environment for IoT demands lab space, and this space may
ramifications in neighboring disciplines is also new territory for need to be configured differently from the way desktop computer
most CS teachers. Educators either need resources to help them labs have traditionally been configured. The new demand for lab
catch up in deficient areas or they need the flexibility to work in space requires planning. Space can’t be reallocated as quickly as
teams that provide all required expertise. funds are reallocated, so the planning for space must be medium-
Teaching assistants will also need training. Most computing to long-term planning.
students have little or no experience with power requirements,
analog input, circuit timing problems, and other issues surrounding
real physical hardware. On the other hand, students in electrical
or computer engineering seldom have experience with end-to-end 6.5 Model Curricular Guidelines
software engineering or cloud computation. Perhaps one of the most significant current needs is a set of guide-
lines for IoT integration that align with both industry needs and
6.4 The Need for Equipment and Space with curricular guidelines, such as the ACM and IEEE-CS curricula
Many departments can do without labs for desktop computers or accreditation requirements. In addition, exemplars of individual
because students bring their own laptop computers to classes. But courses that confirm to these guidelines could significantly improve
most students do not own Arduino or Raspberry Pi boards, which, the consistency of IoT education.
unlike laptops, may not be available at a local store. IoT puts new

137
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

Courses described in the current literature often focus on de- [10] Victor Callaghan. 2012. Buzz-Boarding; practical support for teaching computing
velopment of IoT applications and often emphasize a project com- based on the internet-of-things. In 1st Annual Conference on the Aiming for
Excellence in STEM Learning and Teaching, Imperial College, London & The Royal
ponent that is often student-selected. Although this approach is Geographical Society. 12–13.
valuable, most examples overlook significant IoT topics such as: [11] Wang Chunzhi, Xu Hui, and Mao Xia. 2012. Construction of hardware curriculum
group for transition from network to Internet of Things engineering major. In
• Data collection, storage, and analysis Computer Science & Education (ICCSE), 2012 7th International Conference on. IEEE,
• IoT system lifecycle 1575–1579.
[12] Coursera. 2017. Internet of Things: Sensing and Actuation From De-
• Hardware/software co-design vices. (2017). Retrieved Nov. 1, 2017 from https://www.coursera.org/learn/
• Design of IoT infrastructure internet-of-things-sensing-actuation
[13] Geert de Haan. 2015. Educating creative technology for the internet of things-
Although these each may be covered in other courses, curricu- research and practice-oriented approaches compared. In Proceedings of the Muliti-
lar guidelines and exemplars could rectify deficits in existing ap- media, Interaction, Design and Innnovation. ACM, 4.
proaches to IoT. [14] S J Dickerson. 2016. Preparing undergraduate engineering students for the
Internet of Things. ASEE Annual Conference and Exposition, Conference Pro-
ceedings 2016-June (2016). https://www.scopus.com/inward/record.uri?eid=2-s2.
6.6 Additional Needs 0-84983335797
[15] Dalibor Dobrilovic and Stojanov Zeljko. 2016. Design of open-source platform for
In this section, we identified key areas of concern for the near future introducing Internet of Things in university curricula. In Applied Computational
of IoT education. The far future’s needs are more difficult to discern. Intelligence and Informatics (SACI), 2016 IEEE 11th International Symposium on.
But the tidal wave of IoT technology is in its infancy, so we can IEEE, 273–276.
[16] Shannon Duvall and Joel Hollingsworth. 2016. Creating a Course on the Internet
be sure that IoT will present many more ongoing challenges for of Things for Undergraduate Computer Science Majors. J. Comput. Sci. Coll. 32,
computer science educators. 2 (Dec 2016), 97–103. http://dl.acm.org/citation.cfm?id=3015063.3015078
[17] Morris Dworkin. 2001. Recommendation for block cipher modes of operation.
methods and techniques. Technical Report. National Institute of Standards and
7 CONCLUSION Technology.
Despite the challenges, we imagine great value in adding IoT to [18] Anna Förster, Jens Dede, Andreas Könsgen, Asanga Udugama, and Idrees Zaman.
2017. TEACHING THE INTERNET OF THINGS. GetMobile: Mobile Computing
the computer and information science curriculum. In this report, and Communications 20, 3 (2017), 24–28.
we have attempted to inspire computing educators and to make it [19] Micro:bit Educational Foundation. 2017. micro:bit Homepage. (2017). Retrieved
Nov. 1, 2017 from http://microbit.org/
easier for them to add IoT to their curricula by describing typical [20] Raspberry Pi Foundation. 2017. Raspberry Pi Forums. (2017). Retrieved Nov. 1,
course offerings (introductory, in-depth, or use case courses), crite- 2017 from https://www.raspberrypi.org/forums/
ria for selecting an approach (students’ knowledge, topics, space [21] Raspberry Pi Foundation. 2017. Raspberry Pi Homepage. (2017). Retrieved Nov.
1, 2017 from https://www.raspberrypi.org/
and technology), and tools for a quick start well suited to novice [22] Valerie Galluzzi, Carlotta A Berry, and Yosi Shibberu. 2017. A Multidisciplinary
learners (games, hardware, networking, programming languages, Pilot Course on the Internet of Things: Curriculum Development Using Lean
user interfaces, data choices, and example projects). IoT allows stu- Startup Principles. In 2017 ASEE Annual Conference & Exposition. ASEE Confer-
ences, Columbus, Ohio. https://peer.asee.org/27486.
dents to connect their creativity to a wide array of domains, from [23] Michele Girolami, Alexander Kocian, and Stefano Chessa. 2016. Sensor net-
recreation to saving lives. IoT use will only continue to increase works, internet of things and smart environments. (2016). Retrieved Nov.
1, 2017 from https://www.di.unipi.it/en/phd/phd-teaching/phd-courses/2016/
and those who employ our graduates will increasingly demand 887-sensor-networks-internet-of-things-and-smart-environments
that we teach them how to design systems and turn the data into [24] Drew Gislason. 2008. ZigBee wireless networking. Newnes.
meaningful information. [25] Google. 2017. Android Things. (2017). Retrieved Nov. 1, 2017 from https:
//developer.android.com/things/index.html
[26] Jorge Guerra Guerra and Armando Fermin Peréz. 2016. Implementation of a
ACKNOWLEDGMENTS Robotics and IoT Laboratory for Undergraduate Research in Computer Science
Courses. In Proceedings of the 2016 ACM Conference on Innovation and Technology
We extend thanks to members of the ITiCSE community who gave in Computer Science Education (ITiCSE ’16). ACM, New York, NY, USA, 369–369.
us feedback on our initial conceptualization of this report. We https://doi.org/10.1145/2899415.2925494
especially want to thank Jorge Guerra for his ongoing contributions [27] Jorge Guerra Guerra and Armando Fermin Perez. 2017. Alignment of Un-
dergraduate Curriculum for Learning IoT in a Computer Science Faculty. In
and the teachers that we interviewed. Proceedings of the 2017 ACM Conference on Innovation and Technology in Com-
puter Science Education (ITiCSE ’17). ACM, New York, NY, USA, 362–362. https:
REFERENCES //doi.org/10.1145/3059009.3073001
[28] hackster.io. 2017. Udoo Projects. (2017). Retrieved Nov. 1, 2017 from https:
[1] 2017. Ardublock. (2017). Retrieved Nov. 1, 2017 from http://blog.ardublock.com/ //udoo.hackster.io/
[2] Adafruit. 2017. Adafruit IO. (2017). Retrieved Nov. 1, 2017 from https://io.adafruit. [29] Oliver Hahm, Emmanuel Baccelli, Hauke Petersen, Matthias Wählisch, and
com/ Thomas C. Schmidt. 2014. Demonstration Abstract: Simply RIOT: Teaching
[3] Arduino AG. 2017. Arduino Homepage. (2017). Retrieved Nov. 1, 2017 from and Experimental Research in the Internet of Things. In Proceedings of the 13th
https://www.arduino.cc/ International Symposium on Information Processing in Sensor Networks (IPSN ’14).
[4] Arduino AG. 2017. Arduino Project Hub. (2017). Retrieved Nov. 1, 2017 from IEEE Press, Piscataway, NJ, USA, 329–330. http://dl.acm.org/citation.cfm?id=
https://create.arduino.cc/projecthub 2602339.2602399
[5] Arduino AG. 2017. Interfacing with Other Software. (2017). Retrieved Nov. 1, [30] Jing He, Dan Chia Tien Lo, Ying Xie, and Jonathan Lartigue. 2016. Integrating
2017 from https://playground.arduino.cc/Main/InterfacingWithSoftware Internet of things (IoT) into STEM undergraduate education: Case study of a
[6] Dann Albright. 2016. Arduino vs Raspberry Pi: A Detailed Comparison. (2016). modern technology infused courseware for embedded system course. In Frontiers
Retrieved Nov. 1, 2017 from https://beebom.com/arduino-vs-raspberry-pi/ in Education Conference (FIE). IEEE, Erie, PA. https://doi.org/10.1109/FIE.2016.
[7] Farha Ali. 2015. Teaching The Internet of Things Concepts. In Proceedings 7757458
of the WESE’15: Workshop on Embedded and Cyber-Physical Systems Education [31] Lawrence J. Henschen and Goce Trajcevski. 2017. EECS 395, 495: Internet
(WESE’15). ACM, New York, NY, USA, Article 10, 6 pages. https://doi.org/10. of Things. (2017). Retrieved Nov. 1, 2017 from https://www.mccormick.
1145/2832920.2832930 northwestern.edu/eecs/courses/descriptions/395-495-68.html
[8] Zorica Bogdanovic, Konstantin Simic, Miloš Milutinovic, Božidar Radenkovic, and [32] IBM. 2017. Getting started with Watson IoT Platform using Node-RED.
Marijana Despotovic-Zrakic. 2014. A Platform for Learning Internet of Things. (2017). Retrieved Nov. 1, 2017 from https://developer.ibm.com/recipes/tutorials/
International Association for Development of the Information Society (2014). getting-started-with-watson-iot-platform-using-node-red/
[9] Ricardo Brito and Paul Houghton. 2017. IoT Service Kit. (2017). Retrieved Nov. 1,
2017 from http://iotservicekit.com/

138
Session: Working Group Presentations ITiCSE-WGR'17, July 3–5, 2017, Bologna, Italy

[33] IFTTT. 2017. IFTTT. (2017). Retrieved Nov. 1, 2017 from https://ifttt.com/ [48] Simone Mora, Francesco Gianni, and Monica Divitini. 2017. Tiles IoT Toolkit.
[34] MCI Management Center Innsbruck. 2017. Mechatronics and Smart Technologies. (2017). Retrieved Nov. 1, 2017 from http://tilestoolkit.io/
(2017). Retrieved Nov. 1, 2017 from https://www.mci.edu/en/study-program/ [49] Gary J. Mullett. 2016. Teaching the Internet of Things (IoT) Using Uni-
master/mechatronics-smart-technologies/study-program versally Available Raspberry Pi and Arduino Platforms. In 2016 ASEE An-
[35] Raj Jain. 2015. CSE570S: Recent Advances in Networking (Data Center Virtual- nual Conference & Exposition. ASEE Conferences, New Orleans, Louisiana.
ization, SDN, Big Data, Internet of Things). (2015). Retrieved Nov. 1, 2017 from https://peer.asee.org/26053.
http://www.cse.wustl.edu/~jain/cse570-15/index.html [50] Node-RED. 2017. Flow-based programming for the Internet of Things. (2017).
[36] Patrick Di Justo. 2015. Raspberry Pi or Arduino Uno? One Simple Rule to Choose Retrieved Nov. 1, 2017 from https://nodered.org
the Right Board. (2015). Retrieved Nov. 1, 2017 from https://makezine.com/2015/ [51] University of Washington Professional and Continuing Education. 2017. Cer-
12/04/admittedly-simplistic-guide-raspberry-pi-vs-arduino/ tificate in Internet of Things. (2017). Retrieved Nov. 1, 2017 from https:
[37] S. G. M. Koo. 2015. An integrated curriculum for Internet of Things: Experience //www.pce.uw.edu/certificates/internet-of-things
and evaluation. In 2015 IEEE Frontiers in Education Conference (FIE). 1–4. https: [52] Amos O Olagunju and Firasat Khan. 2016. Challenges of Interdisciplinary IoT Cur-
//doi.org/10.1109/FIE.2015.7344347 riculum. In Proceedings of the 17th Annual Conference on Information Technology
[38] Gerd Kortuem, Arosha K Bandara, Neil Smith, Mike Richards, and Marian Petre. Education. ACM, 110–110.
2013. Educating the Internet-of-Things generation. Computer 46, 2 (2013), 53–61. [53] Oslo and Akershus University College of Applied Sciences. 2016. Internet of
[39] Stan Kurkovsky and Chad Williams. 2017. Raspberry Pi as a Platform for the Things. (Oct 2016). Retrieved Nov. 1, 2017 from http://www.hioa.no/eng/Studies/
Internet of Things Projects: Experiences and Lessons. In Proceedings of the 2017 TKD/Courses-taught-in-english/ADSE1310-Internet-of-Things
ACM Conference on Innovation and Technology in Computer Science Education. [54] Particle. 2017. Particle. (2017). Retrieved Nov. 1, 2017 from https://www.particle.
ACM, 64–69. io/
[40] Linda M Laird and Nicholas S Bowen. 2016. A New Software Engineering [55] PunchThrough. 2017. PunchThrough. (2017). Retrieved Nov. 1, 2017 from
Undergraduate Program Supporting the Internet of Things (IoT) and Cyber- https://punchthrough.com/
Physical Systems (CPS). In 2016 ASEE Annual Conference & Exposition. ASEE [56] M. M. Raikar, P. Desai, and J. G. Naragund. 2016. Active Learning Explored in
Conferences, New Orleans, Louisiana. https://peer.asee.org/26192. Open Elective Course: Internet of Things (IoT). In 2016 IEEE Eighth International
[41] Zuzanna Lechelt, Yvonne Rogers, Nicolai Marquardt, and Venus Shum. 2016. Conference on Technology for Education (T4E). 15–18. https://doi.org/10.1109/T4E.
ConnectUs: A New Toolkit for Teaching About the Internet of Things. In 2016.012
Proceedings of the 2016 CHI Conference Extended Abstracts on Human Factors [57] Bernat Romagosa. 2017. Snap4Arduino Homepage. (2017). Retrieved Nov. 1,
in Computing Systems (CHI EA ’16). ACM, New York, NY, USA, 3711–3714. 2017 from http://snap4arduino.rocks/
https://doi.org/10.1145/2851581.2890241 [58] Y Series. 2001. Global Information Infrastructure, Internet Protocol Aspects and
[42] Intercommunale Leiedal. 2017. SmartCities. (2017). Retrieved Nov. 1, 2017 from Next-Generation Networks. ITU-T Recommendation Y (2001).
http://www.smartcities.info/ [59] Scott Smith, Natalie D. Kane, Susan Cox-Smith, Emma Charleston, and Sjef van
[43] Hanna Mäenpää, Sasu Tarkoma, Samu Varjonen, and Arto Vihavainen. 2015. Gaalen. 2017. Thingclash. (2017). Retrieved Nov. 1, 2017 from http://www.
Blending Problem- and Project-Based Learning in Internet of Things Education: thingclash.com/
Case Greenhouse Maintenance. In Proceedings of the 46th ACM Technical Sym- [60] Sebastian Steinhorst. 2017. System Design for the Internet of Things.
posium on Computer Science Education (SIGCSE ’15). ACM, New York, NY, USA, (2017). Retrieved Nov. 1, 2017 from https://www.esi.ei.tum.de/en/teaching/
398–403. https://doi.org/10.1145/2676723.2677262 summer-semester-2017/
[44] Hanna Mäenpää, Samu Varjonen, Arto Hellas, Sasu Tarkoma, and Tomi Männistö. [61] Inc. The Mathworks. 2016. Thingspeak Homepage. (2016). Retrieved Nov. 1, 2017
2017. Assessing IOT Projects in University Education: A Framework for Problem- from https://thingspeak.com/
based Learning. In Proceedings of the 39th International Conference on Software [62] Washington State University. 2017. Gerontechnology I. (2017). Retrieved Nov. 1,
Engineering: Software Engineering and Education Track (ICSE-SEET ’17). IEEE 2017 from http://eecs.wsu.edu/~cook/gt1/
Press, Piscataway, NJ, USA, 37–46. https://doi.org/10.1109/ICSE-SEET.2017.6 [63] Jeffrey Voas and Philip Laplante. 2017. Curriculum Considerations for the Internet
[45] Kunal Mankodiya. 2017. ELE491/ELE591: Wearable Internet of Things. (2017). Re- of Things. Computer 50, 1 (2017), 72–75.
trieved Nov. 1, 2017 from http://www.ele.uri.edu/faculty/kunalm/491_591.xhtml [64] T. Watteyne, P. Tuset-Peiro, X. Vilajosana, S. Pollin, and B. Krishnamachari.
[46] Microsoft. 2017. Touch Develop Homepage. (2017). Retrieved Nov. 1, 2017 from 2017. Teaching Communication Technologies and Standards for the Industrial
https://www.touchdevelop.com/ IoT? Use 6TiSCH! IEEE Communications Magazine 55, 5 (May 2017), 132–137.
[47] Roberto Minerva, Abyi Biru, and Domenico Rotondi. 2015. Towards a definition https://doi.org/10.1109/MCOM.2017.1700013
of the Internet of Things (IoT). IEEE Internet Initiative 1 (2015). [65] Wolfram. 2017. Wolfram Mathematica. (2017). Retrieved Nov. 1, 2017 from
http://www.wolfram.com/mathematica/

139

You might also like