Authoring Tools to Design Smart LOs

Nowadays the teaching and learning processes are widely supported by the adequate authoring tools. In general, the aim of using the tools is to gain the technological value in the first place, i.e. efficiency, flexibility, etc. (of course, the pedagogical value comes together if the tools are applied properly). Our approach is different in many aspects from those analysed throughout the book. The main distinguishing feature is the realization of the concept of producing and adapting the teaching content automatically. The automation, however, never comes for free. The process of developing smart LOs (SLOs) is the time-consuming and error-prone activity. It requires specific knowledge, competency and some experience of working with meta-programming. Of course, it is possible to write the meta-programming-based SLO specifications manually (by the knowledgeable CS teacher or even by knowledgeable students). Our practice shows that, at the initial phase of adoption of the approach, it is even recommended to apply the manual development. On the other hand, the human efforts are highly dependable on the complexity of SLOs (simply, it might be measured by the number of parameters and their dependency, i.e. model complexity). The more complex SLOs are, the more efforts to develop them are needed. In this case, the use of the adequate tools is highly desirable. Such a situation is with the development of SLOs.

[1]  Don S. Batory,et al.  Multilevel models in model-driven engineering, product lines, and metaprogramming , 2006, IBM Syst. J..

[2]  Tom Mens,et al.  On the Complexity of Software Systems , 2012, Computer.

[3]  Oscar Díaz,et al.  Generative metaprogramming , 2007, GPCE '07.

[4]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

[5]  Emir Pasalic,et al.  The role of type equality in meta-programming , 2004 .

[6]  Mathieu Acher,et al.  FAMILIAR: A domain-specific language for large scale management of feature models , 2013, Sci. Comput. Program..

[7]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[8]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[9]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[10]  Vytautas Stuikys,et al.  Feature transformation-based computational model and tools for heterogeneous meta-program design , 2014, 2014 IEEE 15th International Symposium on Computational Intelligence and Informatics (CINTI).

[11]  Walid Taha,et al.  Multi-Stage Programming: Its Theory and Applications , 1999 .

[12]  António José Mendes,et al.  An environment to improve programming education , 2007, CompSysTech '07.

[13]  Egon Börger,et al.  High Level System Design and Analysis Using Abstract State Machines , 1998, FM-Trends.

[14]  Mark Harman,et al.  Why Source Code Analysis and Manipulation Will Always be Important , 2010, 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.

[15]  Mathieu Acher,et al.  Support for reverse engineering and maintaining feature models , 2013, VaMoS.

[16]  Gerti Kappel,et al.  Automated verification of model transformations based on visual contracts , 2013, Automated Software Engineering.

[17]  Robertas Damasevicius,et al.  Meta-Programming and Model-Driven Meta-Program Development , 2012, Advanced Information and Knowledge Processing.

[18]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[19]  Vytautas Štuikys,et al.  Metaprogramming techniques for designing embedded components for ambient intelligence , 2003 .

[20]  Eelco Visser,et al.  A survey of strategies in rule-based program transformation systems , 2005, J. Symb. Comput..

[21]  Marcus Brown,et al.  Comparing feature assistance between programming environments and their effect on novice programmers , 2012 .

[22]  Oscar Díaz,et al.  Feature refactoring a multi-representation program into a product line , 2006, GPCE '06.

[23]  Todd L. Veldhuizen,et al.  Tradeoffs in metaprogramming , 2005, PEPM '06.

[24]  Philippe Collet,et al.  Feature modeling and separation of concerns with FAMILIAR , 2013, 2013 3rd International Workshop on Comparing Requirements Modeling Approaches (CMA@RE).

[25]  Nikolai Tillmann,et al.  The future of teaching programming is on mobile devices , 2012, ITiCSE '12.

[26]  Walid Taha,et al.  A Gentle Introduction to Multi-stage Programming , 2003, Domain-Specific Program Generation.

[27]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[28]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[29]  Jan Bosch,et al.  Systems and Software Variability Management , 2013, Springer Berlin Heidelberg.

[30]  Tim Sheard,et al.  Accomplishments and Research Challenges in Meta-programming , 2001, SAIG.

[31]  Qusay H. Mahmoud,et al.  A mobile application development approach to teaching introductory programming , 2010, 2010 IEEE Frontiers in Education Conference (FIE).

[32]  Mutua Stephen,et al.  Classifying Program Visualization Tools to Facilitate Informed Choices: Teaching and Learning Computer Programming , 2012 .

[33]  Patrick Heymans,et al.  A Toolset for Feature-Based Configuration Workflows , 2011, 2011 15th International Software Product Line Conference.