Research suggests that different teaching styles and multiple exposures of different styles to material can aid in the learning process. While there are guidelines for identifying the best teaching style for material, new and evolving areas can present unique challenges. The emerging area of mobile software development, which combines aspects of software, hardware, and interpersonal interaction, captures many such challenges; e.g., understanding how to develop for multiple screen sizes, designing for GPS time lag, dealing with unreliable sensor data. Teaching these challenging materials seemed well suited for multiple approaches that leveraged different learning styles. This paper examines three teaching approaches employed in ten teaching modules across two semesters of a mobile software development course. The approaches included lectures, interactive tutorials, and Pair Programming. Lectures were used to introduce topics and explore underlying theories of development. The lectures included time for questions from and for the students, but otherwise did not have an active learning component. Two active learning approaches used in the class were interactive tutorials and Pair Programming. Interactive tutorials presented applied development approaches, then explored their use in an individual-based hands-on demos. Pair Programming is an agile software development practice, used in both industry and education, which enforces a role-based approach to learning new programming concepts. Homeworks were used to assess learning, and surveys reflected student satisfaction. Results show areas of promise and of concern with regard to the learning styles. It seems that repetition of topics is important for mastery of the topics. Foundational theories seem well suited for lectures, while programming concepts work better in active learning situations. Additional learning took place through office hours, online question forums, and individual and group online exploration. The findings suggest specific approaches to teaching challenging and unique mobile software development topics as well as a general approach to identifying ways to distribute learning objectives across lectures, interactive tutorials, and Pair Programming sessions.
['Mohammed Seyam', 'D. Scott McCrickard', 'Shuo Niu', 'Andrey Esakia', 'Woongsup Kim']
Teaching mobile application development through lectures, interactive tutorials, and Pair Programming