{'fraction_non_alphanumeric': 0.018083182640144666, 'fraction_numerical': 0.0030138637733574444, 'mean_word_length': 5.720647773279352, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Hands-On Cross-Platform Mobile Programming Approach to Teaching OOP Concepts and Design Patterns

This study explores the learning outcomes of utilizing a hands-on cross-platform mobile programming approach for introducing two important software engineering topics, namely, object-oriented programming (OOP) concepts and design patterns. This approach presents an innovative teaching methodology that aims to help addressing unique needs and expectations of Millennials and their prospective employers with regards to software engineering education. To conduct this project, a widely adopted cross-platform mobile application development framework in the industry called Codename One (CN1) is used. This paper first presents an extensive review of literature relevant to the use of mobile programming in computer science curricula. Then, based on experience on using CN1 as a novel teaching tool, insights are provided as to why CN1 is a suitable framework for teaching OOP concepts and design patterns, and how CN1 can be utilized to effectively teach these topics using hands-on learning techniques. Recommendations for the educators who would like to adapt CN1 as a teaching tool are also provided. Reflecting Millennials' intrinsic tendency to explore emerging mobile platforms, the learning outcomes of this study show that this programming approach increases Millennials' interest towards these software engineering concepts and improves student success. In addition, feedback from students suggests that this approach provides a competitive advantage to Millennials in the job market, which increasingly demands mobile application development skills.