This paper describes a course to introduce high school students
to software engineering in practice using the Internet Of
Things (IoT). IoT devices allow students to get quick, visible
results without watering down technical aspects of
programming and networking. The course has three broad
goals: (1) to make software engineering fun and applicable,
with the aim of recruiting traditionally underrepresented
groups into computing; (2) to make young students begin to
approach problems with a design mindset; and (3) to show
students that computer science, generally, and software
engineering, specifically, is about much more than
programming. The course unfolds in three segments. The first
is a whirlwind introduction to a subset of IoT technologies.
Students complete a specific task (or set of tasks) using each
technology. This segment culminates in a “do-it-yourself”
project, in which the students implement a simple IoT
application using their basic knowledge of the technologies.
The course’s second segment introduces software engineering
practices, again primarily via hands-on practical tutorials. In
the third segment of the course, the students conceive of,
design, and implement a project that uses the technologies
introduced in the first segment, all while being attentive to the
good software engineering practices acquired in the second
segment. In addition to presenting the course curriculum, the
paper also discusses a first offering of the course in a threeweek
summer intensive program in 2017, including
assessments done to evaluate the curriculum.Cockrell School of Engineerin