Educating Embedded Systems Hackers A practitioner’s perspective Sagar Behere Kungliga Tekniska Högskolan Brinellvägen 85 Stockholm, Sweden behere@kth.se Martin Törngren Kungliga Tekniska Högskolan Brinellvägen 85 Stockholm, Sweden martint@kth.se ABSTRACT Theoretical skills imparted during university education in Embedded Systems often surpass their practical counter- part. The contribution of this paper is a defined set of prac- tical skills which bridge the gap between a sound theoretical education in embedded systems and the skillset acquired by experienced practitioners in the field. The presentation of each skill is accompanied by common solution patterns, state-of-practice technologies, and a set of exercises to pro- vide practical uptake of each skill. The proposed skillset is based on consistent observations over the years, of graduat- ing students performing ”hands-on” projects; the proposed approach for imparting the skillset is motivated by experi- ences with Embedded Systems education at The Royal In- stitute of Technology (KTH) in Sweden. Keywords Cyber-Physical Systems, Realtime, Data logging, Commu- nication, education 1. INTRODUCTION The term hacker traditionally[38] refers to ”A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.” The term is used in a more general sense in this paper, to refer to a person who complements good theoret- ical knowledge of embedded systems with a strong compe- tence in the practical aspects of constructing and program- ming those systems. Such a person would be ideally suited for specifying the overall technical architectures for complex embedded systems, selecting appropriate hardware and soft- ware stacks for different parts of the system, coordinating and integrating output from individual contributors (code, models, algorithms etc.) and in general, bootstrapping and nurturing the development of a complex embedded system. As a norm, hacking pushes the boundaries of what is prac- tically possible and supplements good engineering, which This work is based on an earlier work: Educating Embedded Systems Hackers, in Workshop on Embedded and Cyber-Physical Systems Education, WESE, (c) ACM, 2015. http://dx.doi.org/10.1145/2829957.2829958. deals with applying known knowledge within a set of con- straints (economic budget, safety, etc.). The embedded sys- tems hacker, in our portrayal, is differentiated from domain specific technical specialists by having the ability to make and execute good system level technical choices. In most situations the hacker would prioritize the practical ability to create, while retaining a desire to eventually explore the theoretical intricacies. Embedded systems hackers as described above are formed today, more often than not, by dint of their own enthusiasm and curiosity. Their practical technical skills are acquired and honed through multiple projects and each individual creates (and hopefully updates) his/her own toolbox of tech- nological solutions and solution patterns which are then re- peatedly applied to subsequent projects. In every classroom, there are some motivated students who go beyond the cur- riculum and tinker and play and teach themselves the tools and technologies in vogue. They go on to become natural technical leaders of their projects, and are appreciated in industry and academia alike. As educators, it is our duty to stimulate more students to fall into this category. Therefore, it is worthwhile for embedded systems educa- tors to inquire into the practical skills and familiarity with technological solutions that should be imparted via aca- demic curricula in order to facilitate the creation of such hackers. This paper suggests a set of such skills and tech- nological solutions. The suggestions are based on a decade of experience in building complex embedded systems (e.g. the Scoop project[52]), discussions and investigation with industry and academic representatives including in the con- text of developing an agenda for Cyber-Physical Systems[12, 17], as well as experiences in embedded and mechatronics education[51, 54], and observations of students who are near- ing the completion of their academic degrees and involved in research projects. The presentation of each skill in this pa- per is accompanied by some relevant solution patterns, cur- rent technological solutions, and exercises to hone the skill under consideration. The technological solutions mentioned are based on state-of-the-art, popular, open source software and hardware. The target audience is educators developing curricula for embedded systems education as well as aspir- ing embedded systems hackers looking to expand their skills and making themselves more marketable. The focus of this paper is on embedded systems hardware and software aspects, especially during the early prototyping phase of product development.