Papers by Stelios Xinogalos
This paper focuses on enhancing software quality in students' programs. To this end, related work... more This paper focuses on enhancing software quality in students' programs. To this end, related work is reviewed and proposals for applying pedagogical software metrics in programming courses are presented. Specifically, we present the main advantages and disadvantages of using pedagogical software metrics, as well as some proposals for utilizing features already built in contemporary programming environments for familiarizing students with various software quality issues. Initial experiences on usage of software metrics in teaching programming courses and concluding remarks are also presented.
Evaluating objectKarel - an educational programming environment for object oriented programming
A common experience of those who teach introductory programming courses is that learning to progr... more A common experience of those who teach introductory programming courses is that learning to program is difficult. So, special programming languages and educational environments have been devised with the aim of making the learning process easier. Unfortunately, in many cases the true value of these methods was not evaluated. Based on previous research findings and our experience in teaching object-oriented
Microworlds, games, animations, mobile apps, puzzle editors and more: What is important for an introductory programming environment?
Education and Information Technologies, 2015
Microworlds, Games and Collaboration
Proceedings of the 7th Balkan Conference on Informatics Conference - BCI '15, 2015
ABSTRACT
Evaluating the Effects of Scripted Distributed Pair Programming on Student Performance and Participation
IEEE Transactions on Education, 2015
Proceedings 3rd IEEE International Conference on Advanced Technologies, 2003
In this paper we propose a new integrated programming environment, objectKarel, for teaching the ... more In this paper we propose a new integrated programming environment, objectKarel, for teaching the objectoriented programming paradigm. Its main features are: a series of e-lessons, a special kind of structure editor, runtime error detection, program animation and recordability of students' actions. Finally, we describe the results of a pilot use of objectKarel to teach objectoriented programming to undergraduate students.
objectKarel
ACM SIGCSE Bulletin, 2003

Informatics in Education, 2014
Games for learning are currently used in several disciplines for motivating students and enhancin... more Games for learning are currently used in several disciplines for motivating students and enhancing their learning experience. This new approach of technology-enhanced learning has attracted researchers' and instructors' attention in the area of programming that is one of the most cognitively demanding fields in Computer Science. Several educational, or else serious, games for learning programming have been developed and the first results of their evaluation as a means of learning are quite positive. In this paper, we propose using arcade games as a means for learning programming. Based on this approach students first play a simple game, such as Snake or Tetris, study its code and then extend it. In a pilot study carried out in the context of an undergraduate programming course, students studied the source code of the well-known game Snake and extended it with new functionalities. The analysis of students' replies in a questionnaire showed that using arcade games as a means of learning programming concepts enhances students' motivation for learning programming, supports them in comprehending complex concepts and engages them in carrying out programming activities.

The main concern of this paper is the exploration of current challenges, teaching techniques, cou... more The main concern of this paper is the exploration of current challenges, teaching techniques, course design methods and topics covered when attempting to teach a web programming course in technology-oriented higher education departments. The authors attempted a literature review of the subject in order to identify, compare and analyse the existing experience upon which one can establish solid guidelines towards a manageable, efficient and comprehensible course model. In the paper, the presentation of the value of teaching web programming is followed by an extensive listing of the underlying challenges. Consequently, the various teaching approaches are presented comparatively and comments are made as regards the topics covered and the tools used. The study and analysis of this gathered experience naturally leads to certain outcomes. An extensive list of questions is summed in a list view and this list aims to help educators of the field to prepare the respective structure, content, m...

Object oriented programming (OOP) is a complex domain in the education field and requires proper ... more Object oriented programming (OOP) is a complex domain in the education field and requires proper technological underpinning for the facilitation of the process. However, the vast variety of available programming environments makes the selection of the most efficient technology that will cover students' needs and will lead to the teachers' desired learning outcomes a significant challenge. These technologies, such as Educational Programming Environments and Programming Microworlds, are often applied on OOP courses in order to underpin the process and help students develop internal incentives, thus foster the feeling of challenge, curiosity, active control and imagination. However, students of the 21st century are growing up in a fully digital world and therefore learn and react accordingly. Alongside the growth of the Internet, high speed access and virtual communities have contributed to a new trend development called online gaming. Therefore, computer games can be considered an appropriate means to deliver knowledge to students of most courses and increase their motivation to learn. A term that is often used when referring to computer games incorporated in the learning experience is "serious games", and they can involve one or multiple players. Serious games have a higher learning value when they are used in courses that consider critical thinking, group work and decision making as essential to be developed. Therefore, it is the paper's initial intent to examine representative examples of commonly used technologies in OOP education and to derive their most prominent features that support students' successful learning experience. To this end, we carry out a theoretical research of the literature regarding Educational Programming Environments and Programming Microworlds in OOP education, as well as serious games in OOP or in computer programming in general following a concept-centric methodological approach. These concepts consist of the most prominent functionalities supported by representative technologies in the three categories. This leads to the conclusion that even serious games can enable and foster the development of skills and personal characteristics through the underpinning of group collaboration towards the motivated fulfilment of given tasks within highly interactive environments that simulate worlds and situations.

Computer science is gradually changing, evolving and adapting according to the needs of each time... more Computer science is gradually changing, evolving and adapting according to the needs of each time period by incorporating the technological developments available. However, despite the occurring changes and the current progress in the domain, computer programming is still a vital chapter within computer science, and its teaching remains a difficult endeavour. On the other hand, students have changed the way with which they learn, interact with and search for knowledge. They spend significant amounts of their everyday lives from a very young age interacting with the computers by playing games. Thus, they are used to environments with impressive special effects and graphical interfaces where they have full control of the situation and interact with the environment's elements. Therefore, today's teachers are trying to connect computer programming learning with students' everyday usage of the computer, which does not include simple textual editors for programming lines of code with no other interaction functionalities. Hence, teachers face the challenge of incorporating environments that are similar to students' existing mentality and of creating tasks and assignments that can be executed within these environments and can provide students with the necessary programming knowledge and skills. A number of software solutions were developed towards facing the aforementioned difficulties. They can be classified into three main categories, namely educational programming environments, microworlds and educational games. Educational games used in computer programming courses are considered to present added value, due to their ability to motivate students towards actively participating in the learning process and to support high levels of interaction, group work and critical thinking. Thus, we have developed an educational game that aims to further enhance computer programming education by addressing occurring problems. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we collect documented difficulties identified in computer programming learning and teaching and study existing frameworks that have been proposed for the development of software solutions for computer programming courses and for the development of successful serious games that do not however focus on computer programming education. This information is thoroughly studied and refined and results in the proposed framework that could also be employed for the design and development of other future educational games focusing on computer programming education.
Educational games for computer programming
Integrating Learning Analytics in an Educational MMORPG for Computer Programming
2014 IEEE 14th International Conference on Advanced Learning Technologies, 2014

Educational Games for Teaching Computer Programming
Research on e-Learning and ICT in Education, 2014
ABSTRACT Teaching and learning computer programming presents teachers and students respectively w... more ABSTRACT Teaching and learning computer programming presents teachers and students respectively with many challenges, especially when taught with the “traditional” approach. Several alternative teaching approaches were proposed the previous years, but they seem not to fulfil successfully the needs of the twenty-first century students. Students nowadays are raised in a digital world and they learn and react differently. Students start to use computers before they first attend formal education, while computer games have become a part of their everyday life. A growing number of teachers/researchers propose the incorporation of educational games (or serious games) in the teaching of computer programming with the aim of reinforcing instinctive motivation through challenging students, piquing their curiosity and providing them with a sense of control and imagination. This paper aims to review the functionalities that should be supported by educational games in general and the extent to which these functionalities are supported by educational games for computer programming. The comparative analysis of several educational games for programming demonstrates that the majority of games seem well established, but they teach fairly simple concepts and their actual trials and validations are limited. The paper also discusses the implications of our work for the development of educational games that can fully support the identified features and teach complex programming elements.
Systems Science & Control Engineering, 2014
As an integral element of future Internet, Internet of things (IoT) could be described as a real-... more As an integral element of future Internet, Internet of things (IoT) could be described as a real-world interaction with everything connected via intelligent network infrastructure and advanced communication technologies. Mobile cloud computing (MCC), on the other hand, offers an infrastructure wherein both data storage and data processing take place outside of the mobile device. As a more mature infrastructure, MCC offers several advantages, while the relatively new IoT has several limitations. In this paper, we present a survey of IoT limitations and MCC advantages. Specifically, we present the most advantageous aspects of MCC and how they alleviate the limitations of IoT. Furthermore, we discuss several IoT-enabled business services to highlight the benefits of converging IoT and MCC.
Mobile app development in HTML5
ABSTRACT Mobile apps have been around for only a few years, but have gained immense consumer atte... more ABSTRACT Mobile apps have been around for only a few years, but have gained immense consumer attention. Developers creating native apps are faced with the daunting task of maintaining different sources for each target platform, while web and hybrid apps are faced with a series of technical and non technical issues. Native apps function smoothly in a standard way that the user is already familiar with and provide the richest user experience having full and direct access to the onboard hardware and software. On the other hand web apps offer cross-platform compatibility, saving development time, effort and money for developers. Moreover, HTML5 is expected to enhance user experience offered by web apps, which is one of their major shortcomings. The aim of this paper is to investigate various aspects of HTML5 in mobile app development.
The Challenges of Teaching Web Programming
This paper focuses on enhancing software quality in students' programs. To this end, related work... more This paper focuses on enhancing software quality in students' programs. To this end, related work is reviewed and proposals for applying pedagogical software metrics in programming courses are presented. Specifically, we present the main advantages and disadvantages of using pedagogical software metrics, as well as some proposals for utilizing features already built in contemporary programming environments for familiarizing students with various software quality issues. Initial experiences on usage of software metrics in teaching programming courses and concluding remarks are also presented.

Computer science is gradually changing, evolving and adapting according to the needs of each time... more Computer science is gradually changing, evolving and adapting according to the needs of each time period by incorporating the technological developments available. However, despite the occurring changes and the current progress in the domain, computer programming is still a vital chapter within computer science, and its teaching remains a difficult endeavour. On the other hand, students have changed the way with which they learn, interact with and search for knowledge. They spend significant amounts of their everyday lives from a very young age interacting with the computers by playing games. Thus, they are used to environments with impressive special effects and graphical interfaces where they have full control of the situation and interact with the environment's elements. Therefore, today's teachers are trying to connect computer programming learning with students' everyday usage of the computer, which does not include simple textual editors for programming lines of code with no other interaction functionalities. Hence, teachers face the challenge of incorporating environments that are similar to students' existing mentality and of creating tasks and assignments that can be executed within these environments and can provide students with the necessary programming knowledge and skills. A number of software solutions were developed towards facing the aforementioned difficulties. They can be classified into three main categories, namely educational programming environments, microworlds and educational games. Educational games used in computer programming courses are considered to present added value, due to their ability to motivate students towards actively participating in the learning process and to support high levels of interaction, group work and critical thinking. Thus, we have developed an educational game that aims to further enhance computer programming education by addressing occurring problems. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we collect documented difficulties identified in computer programming learning and teaching and study existing frameworks that have been proposed for the development of software solutions for computer programming courses and for the development of successful serious games that do not however focus on computer programming education. This information is thoroughly studied and refined and results in the proposed framework that could also be employed for the design and development of other future educational games focusing on computer programming education.

Computer science is continuously evolving during the past decades. This has also brought forth ne... more Computer science is continuously evolving during the past decades. This has also brought forth new knowledge that should be incorporated and new learning strategies must be adopted for the successful teaching of all sub-domains. For example, computer programming is a vital knowledge area within computer science with constantly changing curriculum and its teaching remains a difficult endeavour. On the other hand, students start from a very early age to interact with computers through games and other entertaining multimedia software. Therefore, they seem to be keen on environments with impressive special effects and graphical interfaces where they interact with the environment's elements. In response, teachers are trying to connect computer programming learning with computer operations that students are familiar with, which does not include textual editors for programming lines of code with no other interaction. Educational games used in computer programming courses are considered to benefit learning, because they motivate students towards actively participating and interacting with the game's activities. Thus, we have developed an educational multiplayer game that aims to further enhance computer programming education by addressing occurring problems. This process, however, requires proper planning during the design of educational games, and thus the availability of adequate guidelines that include all characteristics that should be incorporated in such games. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we study existing frameworks that have been proposed for the design of educational games and document features currently supported by educational games that teach computer programming. We conclusively propose the framework we have constructed for the design of our game. This framework can be used for the design of other computer programming-specific educational games and extended for other educational domains.
Uploads
Papers by Stelios Xinogalos