Abstract:
Over a period spanning more than ten years I developed a programme of learning in the area of embedded systems for secondary school students at Mount Roskill Grammar School. This programme currently involves 12 classes totalling 350 students. Learning is centred on the ATMEL AVR range of microcontrollers and forms part of students’ studies in Technology Education. It is taught by four teachers some of whom do not have strengths in electronics and programming. Resources I have developed to support students and colleagues include a website, a textbook and a computer program called ‘System Designer’. For a number of years there has been a developing awareness of issues concerning my own students’ understandings of software for embedded systems which are confounded by the hidden nature of embedded systems and the disparate nature of embedded systems development. This research presents a journey towards a deeper appreciation of students learning needs and the development and testing of a novel visualisation tool for embedded systems targeted at novice embedded systems learners. Literature about the difficulties of novice programmers along with the learning needs of novices in the field of embedded systems was reviewed to inform this research. The context of this study is secondary school learning so other pertinent literature that informs learning in the classroom was also reviewed; this includes educational theory, pedagogy, model-based learning, research from engineering education, the New Zealand Curriculum and the changing metaphor for learning in New Zealand technology education from an acquisition to a participatory model. To facilitate development of the visualiser a range of program visualisers and embedded systems simulators were analysed using research into best practices for model-based learning tools. Lexers and parsers were then written to create interpreters for both C and BASIC languages and the visualiser incorporating these was integrated into the existing System Designer application. Further the visualiser was developed as a staged learning tool to negate cognitive load issues for learners. To support colleagues who will use the tool a range of tasks have been developed and options to extend some features of the visualiser have been implemented as well. The visualiser and some tasks were tested in a qualitative study with second year engineering students who were unfamiliar with embedded systems. Lecturers were also interviewed to gain their insights into the new tool. The goals of the study were to understand how novice embedded systems learner’s related to the visualiser as a model-based learning environment and secondly to identify its benefits for novice learners of embedded systems. The study was positive for the visualiser as a model-based learning tool, and valuable for revealing errors and modifications before implementation at school. A visualiser is an analogy of a real system, as such it has limitations which experts recognise but which novice learners do not. A planned result was to explore limitations of the visualiser. One key limitation is well known and relates to when learners single step through program code rather than run it at normal speed; in this case understandings of the real-time and reactive nature of embedded systems are not fully appreciated by novice learners. While modifications to the visualiser were made to counter some of this effect, teachers must work within this limitation and not expect students to comprehend it for themselves. For novice learners of embedded systems the visualiser showed significant benefits in terms of the interrelatedness of hardware and software, the concept of state and the reactive nature of embedded systems. Some of these understandings are inherent in the visualiser and some of them require careful choice of contextualised tasks for students to engage their understandings. Exploration of real-time and concurrent aspects of programming embedded systems is still required. Programming thinking was an important part of this research because for students learning about embedded systems at school this is their introduction to programming as well. Literature into programming thinking revealed a range of surface and deep understandings that novice programmers need to develop as well as the importance of engaging students in their own learning via the tasks given to them. The results of testing showed how the visualiser and the tasks used with students contribute to these understandings; specifically that deeper understandings require tasks with real-life contexts. One significant outcome of this research has been how the literature review and the opportunity to engage in depth with a few learners has informed understandings about what students experience while learning; this has deepened my pedagogical content knowledge - the blend of subject matter with educational practice. Key words: program visualisation, mental model, novice learner, embedded systems learning, learning to program