Using the Internet of Things to Teach Good Software Engineering Practice to High School Students
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
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.