Exploring the Educational Benefits of Introducing Aspect-Oriented Programming Into a Programming Course

This paper explores the educational benefits of introducing the aspect-oriented programming paradigm into a programming course in a study on a sample of 75 undergraduate software engineering students. It discusses how using the aspect-oriented paradigm, in addition to the object-oriented programming paradigm, affects students' programs, their exam results, and their overall perception of the theoretically claimed benefits of aspect-oriented programming. The research methodology, consisting of automating the analysis of student-created computer programs, administering surveys, and collecting exam results, provided an objective measurement of the benefits of the paradigm for novice programmers, as well as evaluating their perception of its usefulness. The results show that the use of aspect-oriented programming as a supplement to object-oriented programming enhances the productivity of novice program code software engineering students and leads to increased understanding of theoretical concepts. Students readily accepted the new paradigm and recognized its benefits.

[1]  Sebastián Ventura,et al.  Using mobile and web‐based computerized tests to evaluate university students , 2009, Comput. Appl. Eng. Educ..

[2]  Susan Wiedenbeck,et al.  A comparison of the comprehension of object-oriented and procedural programs by novice programmers , 1999, Interact. Comput..

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Michael Kölling,et al.  The Greenfoot Programming Environment , 2010, TOCE.

[5]  Matthew Alexander Webster,et al.  Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools , 2004 .

[6]  James E. Heliotis Easing up on the introductory computer science syllabus: a shift from syntax to concepts , 2009, OOPSLA Companion.

[7]  Jens Mache,et al.  Learning CUDA: lab exercises and experiences , 2010, SPLASH/OOPSLA Companion.

[8]  Nazir S. Hawi,et al.  Causal attributions of success and failure made by undergraduate students in an introductory-level computer programming course , 2010, Comput. Educ..

[9]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[10]  E. Dijkstra On the Role of Scientific Thought , 1982 .

[11]  Janche Sang,et al.  Factors related to the difficulty of learning to program in Java--an empirical study of non-novice programmers , 2004, Inf. Softw. Technol..

[12]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[13]  Yvonne Coady,et al.  Understanding abstraction: a means of leveling the playing field in CS1? , 2010, SPLASH/OOPSLA Companion.

[14]  Christopher A. Egert,et al.  Hello, M.U.P.P.E.T.S.: using a 3D collaborative virtual environment to motivate fundamental object-oriented learning , 2006, OOPSLA '06.

[15]  Martin Rinard,et al.  Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion , 2010 .

[16]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[17]  William Pugh,et al.  Helping students appreciate test-driven development (TDD) , 2006, OOPSLA '06.

[18]  Peri L. Tarr,et al.  Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications , 2006, OOPSLA 2006.

[19]  Katherine Malan,et al.  Examples that can do harm in learning programming , 2004, OOPSLA '04.

[20]  Dorian P. Yeager,et al.  A different kind of programming languages course , 2009, OOPSLA Companion.

[21]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[22]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[23]  David West,et al.  Apprenticeship agility in academia , 2005, OOPSLA '05.

[24]  Edsger W. Dijkstra,et al.  Selected Writings on Computing: A personal Perspective , 1982, Texts and Monographs in Computer Science.

[25]  Christopher H. Nevison From concrete to abstract: the power of generalization , 2004, OOPSLA '04.

[26]  Jürgen Börstler Improving CRC-card role-play with role-play diagrams , 2005, OOPSLA '05.

[27]  Natascha van Hattum-Janssen,et al.  Teaching a CS introductory course: An active approach , 2009, Comput. Educ..

[28]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[29]  Michael Kölling,et al.  A novice's process of object-oriented programming , 2006, OOPSLA '06.

[30]  Colin Depradine,et al.  Active participation of integrated development environments in the teaching of object-oriented programming , 2004, Comput. Educ..

[31]  Rachel Harrison,et al.  An exploratory study of the effect of aspect-oriented programming on maintainability , 2008, Software Quality Journal.

[32]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[33]  Gary T. Leavens,et al.  Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications , 2009, OOPSLA 2009.

[34]  Axel Schmolitzky A laboratory for teaching object-oriented language and design concepts with teachlets , 2005, OOPSLA '05.

[35]  Alexander Serebrenik,et al.  Mining student capstone projects with FRASR and ProM , 2011, OOPSLA Companion.