Conference Paper

An Effective Agile Teaching Environment for Java Programming Courses

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

This paper proposes an effective agile teaching environment with a new educational testing framework for especially Java programming courses. The testing framework is developed on top of JUnit that runs on the Eclipse platform. The deployed testing programs detect errors in the student's code, and then report points lost due to mistakes, and give suitable pieces of advice to correct or improve the code immediately. With automated testing the students can check the validity of their code by themselves. This means that the instructor can concentrate on mentoring the students who are most in need of support and advice. Our proposed method also ensures the evaluation of assignments to be fair and strict by applying various well-behaved input patterns based on standard software testing techniques while saving time. With our testing framework, students are continuously aware of their progress under a game-like environment, and thereby they keep concentrating on their given tasks

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... Different initiatives to improve the learning of the Java programming languages using new architectures and learning environments have been presented so far [3,4]. There also exists a field of study, called Game Based Learning, which exploits the advantages of using games to get different competencies [5]. ...
... A Midlet is a Java program that runs on embedded devices; specifically on the Java Micro-Edition (JME) virtual machine.2 RMS is a small and simple database system, but it permits to store information in the not volatile memory of the device.3 LWUIT is a graphic library that extends the functionalities of many standard JME controls. ...
Article
Full-text available
This paper presents an experience in the use of technologies and mobile games to improve programming skills. Improvement of students' achievement is evaluated to check how this kind of experiences can help them to pass their programming-related courses in information engineering degrees. MobiGame contest is the central point of students' work. In this event, they show a game or application that runs on a mobile device (cell phone or PDA). Before the main event, different technical seminars are arranged to guide students on the development environments and the suitable technologies. The Java programming language and JME technology are the most used, but it is not the only technology that seminars cover. The point is taking the Java programming Language learning process to different learning environments, not just the academics ones. This way, we promote the creation of a collaborative learning environment, among the group components and all the event contestants. After examining the results, it can be concluded that the students have acquired new skills and obtained very good academics results.
... Similarly, articles that presented the development of an educational game framework but did not mention how it was integrated in a specific curriculum were excluded, for example, [28][29][30][31]. (d) Articles, which focused on changing the controller of the software or hardware, but without elements of computer game development, were also excluded, for example, [32,33]. Most of them focus on creating a robot controller to learn algorithms or changing some component of a robot to learn artificial intelligence (AI). ...
Article
Full-text available
This study aims at reviewing the published scientific literature on the topics of a game development-based learning (GDBL) method using game development frameworks (GDFs) with the perspective of (a) summarizing a guideline for using GDBL in a curriculum, (b) identifying relevant features of GDFs, and (c) presenting a synthesis of impact factors with empirical evidence on the educational effectiveness of the GDBL method. After systematically going through the available literature on the topic, 34 relevant articles were selected for the final study. We analyzed the articles from three perspectives: (1) pedagogical context and teaching process, (2) selection of GDFs, and (3) evaluation of the GDBL method. The findings from the 34 articles suggest that GDFs have many potential benefits as an aid to teach computer science, software engineering, art design, and other fields and that such GDFs combined with the motivation from games can improve the students’ knowledge, skills, attitudes, and behaviors in contrast to the traditional classroom teaching. Furthermore, based on the results of the literature review, we extract a guideline of how to apply the GDBL method in education. The empirical evidence of current findings gives a positive overall picture and can provide a useful reference to educators, practitioners, and researchers in the area of game-based learning.
... Agile practices contribute a number of benefits to course programs and literature especially describes this for basic under-graduate capstone courses [6] . Agile practices contribute to professional routines from several domains such as project management [28, 18] and human-computer interaction [12] and have been applied in combination with supportive ICT environments [2] . Capstone course projects are often preferred as they provide a good opportunity for students to combine multidisciplinary knowledge acquisition through a coaching routine [5, 17]. ...
Conference Paper
Full-text available
Academic education of professional processes is challenged by a necessary balance of practical activities with academic reflection. In this paper we address this issue by discussing our experiences with teaching software engineering practices and their continuous improvement. By designing a graduate course we embed an intensive coaching routine based upon agile practices with research activities to leverage knowledge of students and coaches. As a concrete example of an embedded research project we conduct an experiment on the impact of two different meeting routines on the teams satisfaction with information exchange. Our results show that the intensive coaching in individual teams is shorter in nature and more appealing to the students. Our findings suggest that software engineering education can benefit from the notion of team routines and process improvement practices contributing to maturity of students and educators.
Article
The best practices of agile software development have had a significant positive impact on the quality of software and time-to-delivery. As a result, many leading software companies employ some form of agile software development practices. Some of the most important best practices of agile software development, which have received significant attention in recent years, are automated unit testing (AUT) and test-driven development (TDD). Both of these practices work in conjunction to provide numerous benefits. AUT leads to reduced time to test, discover bugs, fix bugs, and implement new features; wider and measurable test coverage; reproducibility, reusability, consistency, and reliability of tests; improved accuracy, regression testing, parallel testing, faster feedback cycle, reduced cost, and higher team morale. The benefits of TDD include flexible and adaptive program design, cleaner interfaces, higher code quality, maintainability, extensibility, reliability, detailed evolving specification, reduced time on bug fixes and feature implementation, reliable refactoring, and code changes, reduced cost, reduced development time, and increased programmer productivity. Unfortunately, students in introductory programming courses are generally not introduced to AUT and TDD. This leads to the development of bad programming habits and practices which become harder to change later on. By introducing the students earlier to these industry-standard best practices, not only the motivation and interest of students in this area can be increased but also their academic success and job marketability can be enhanced. This paper presents the detailed design and efficacy study of an introductory C++ programming course designed using the principles of AUT and TDD. The paper presents the pedagogical techniques employed to build industry-proven agile software development practices in the students. As part of the paper, all the course material including the source code for the labs and the automated unit tests are being made available to encourage people to incorporate these best practices into their curricula.
Article
Full-text available
Every day, more people are interested in learning computer science (CS), either to improve their skill set to apply for new jobs or just for personal growth. The sector of the population looking for instruction on these subjects has increased and diversified. We need new tools that appeal to this wider audience, and game-based learning is one of the most promising approaches at the moment. There is a need for more scalable game-based instruction paradigms that can be easily adapted to different levels of complexity and content related to CS (different programming languages, different programming paradigms, and so on). Throughout this paper, we present a flexible and scalable architecture to create videogames for learning CS languages. The architecture is based on the idea that students control the game using small pieces of text written in some CS language. The keys of the scalability of our approach are: 1) it separates the CS language used to write the programs from the game design and 2) the game model provides a system of levels that allows incremental learning of CS language structures. As validation and implementation of our approach, we developed Lost in Space, an educational videogame to teach the XML markup language. In this game, the player travels through several levels, guiding a spaceship by introducing small pieces of XML in a text console. Players can move and rotate the ship among other power-ups that get unblocked as they advances in the game. The game was tested with undergraduate students from CS and social sciences, by comparing it with traditional instruction (i.e., a teacher with a slides presentation). Students who played the game were much more engaged than those who attended the lecture, showing a more active attitude throughout the whole experience and also spent more time practicing after class. Findings also suggest that the game was effective for instruction, regardless of the background of the students. However, the educational gain observed with the game-based instructional approach, although effective, was not significantly higher than traditional instruction. We think that our approach is adequate to introduce CS languages in general, as well as new programming languages, and seems to be more appealing to new comers than traditional instruction.
Article
Full-text available
Do individual differences in working memory capacity (WMC) affect student learning within multimedia instructional environments? High and low WMC students, as measured by the operation span (OSPAN) task, engaged in a multimedia tutorial addressing lightning formation or car brake use. The results of two experiments indicated that students with high WMC recalled and transferred more information than students with low WMC after engaging in a multimedia tutorial. In addition, the multimedia principles of coherence (Exp 1) and signaling (Exp 2) were also assessed for validation. Each of the experiments failed to validate the previous multimedia learning principles. These results are consistent with a general individual differences WMC effect, but inconsistent with previous finding regarding the coherence and signaling effects.
Article
Full-text available
Abstract Teaching,mathematical,reasoning,is a challenge,for most,result-oriented,teachers.,In general, many strategies can be employed, including problem-based learning, technology-based learning, game-based learning, community-based learning, work- based learning, inquiry-based learning, project-based learning, team-based learning, web-based learning and participatory learning. However, none of these strategies may,address,the central,problem,of mistakes,made,with,inappropriate,application,of intuition,in mathematical,problem,solving. This paper,emphasizes,an agile method,of teaching,rapid,reconciliation,of intuition,and,controlled,mathematical,reasoning,to engineering,students,in order to overcome,inappropriate,use,of the intuitive,mode,of cognitive function. This emphasis is based on an extensive review of existing research,and,an emerging,understanding,of interactions,between,intuition,and,the controlled,mode,of cognitive,function. Key Words Intuition, agile teaching, access, metacognitive strategies, algebraic thinking
Conference Paper
The EE(electrical engineering)-related departments in universities have courses for learning the procedural and object- oriented programming languages such as C and Java. Since C and Java programming languages have the distinctive similarities and differences, it would be effective to cover both programming skills in one course. We developed an integrated course for the students in the first year of EE-related degree, where both programming languages can be learned in an efficient way. We present the results in improvements of the education effectiveness after the actual lecturing for two semesters.
Article
Full-text available
Techniques derived from mathematical logic promise to provide an alternative to the conventional methodology for constructing, debugging, and optimizing computer programs. Ultimately, these techniques are intended to lead to the automation of many of the facets of the programming process. This paper provides a unified tutorial exposition of the logical techniques, ilustrating each with examples. The strengths and limitations of each technique as a practical programming aid are assessed and attempts to implement these methods in experimental systems are discussed.
Book
Regular expressions are a central element of UNIX utilities like egrep and programming languages such as Perl. But whether you're a UNIX user or not, you can benefit from a better understanding of regular expressions since they work with applications ranging from validating data-entry fields to manipulating information in multimegabyte text files. Mastering Regular Expressions quickly covers the basics of regular-expression syntax, then delves into the mechanics of expression-processing, common pitfalls, performance issues, and implementation-specific differences. Written in an engaging style and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions offers a wealth information that you can put to immediate use. Regular expressions are an extremely powerful tool for manipulating text and data. They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, VB.NET and C# (and any language using the .NET Framework), PHP, and MySQL. If you don't use regular expressions yet, you will discover in this book a whole new world of mastery over your data. If you already use them, you'll appreciate this book's unprecedented detail and breadth of coverage. If you think you know all you need to know about regular expressions, this book is a stunning eye-opener. As this book shows, a command of regular expressions is an invaluable skill. Regular expressions allow you to code complex and subtle text processing that you never imagined could be automated. Regular expressions can save you time and aggravation. They can be used to craft elegant solutions to a wide range of problems. Once you've mastered regular expressions, they'll become an invaluable part of your toolkit. You will wonder how you ever got by without them. Yet despite their wide availability, flexibility, and unparalleled power, regular expressions are frequently underutilized. Yet what is power in the hands of an expert can be fraught with peril for the unwary. Mastering Regular Expressions will help you navigate the minefield to becoming an expert and help you optimize your use of regular expressions. Mastering Regular Expressions , Third Edition, now includes a full chapter devoted to PHP and its powerful and expressive suite of regular expression functions, in addition to enhanced PHP coverage in the central "core" chapters. Furthermore, this edition has been updated throughout to reflect advances in other languages, including expanded in-depth coverage of Sun's java.util.regex package, which has emerged as the standard Java regex implementation. Topics include: A comparison of features among different versions of many languages and tools How the regular expression engine works Optimization (major savings available here!) Matching just what you want, but not what you don't want Sections and chapters on individual languages Written in the lucid, entertaining tone that makes a complex, dry topic become crystal-clear to programmers, and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions , Third Edition offers a wealth information that you can put to immediate use. Reviews of this new edition and the second edition: "There isn't a better (or more useful) book available on regular expressions." --Zak Greant, Managing Director, eZ Systems "A real tour-de-force of a book which not only covers the mechanics of regexes in extraordinary detail but also talks about efficiency and the use of regexes in Perl, Java, and .NET...If you use regular expressions as part of your professional work (even if you already have a good book on whatever language you're programming in) I would strongly recommend this book to you." --Dr. Chris Brown, Linux Format "The author does an outstanding job leading the reader from regex novice to master. The book is extremely easy to read and chock full of useful and relevant examples...Regular expressions are valuable tools that every developer should have in their toolbox. Mastering Regular Expressions is the definitive guide to the subject, and an outstanding resource that belongs on every programmer's bookshelf. Ten out of Ten Horseshoes." --Jason Menard, Java Ranch
Article
Evolution of a framework forces a change in the design of an application, which is based on the framework. The same is the case when the Java event model changed from the Inheritance model to the Event Delegation model. We summarize our experiences when ...
Article
An abstract is not available.
Book
This long-awaited revision of a bestseller provides a practical discussion of the nature and aims of software testing. You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, and debugging. Accessible, comprehensive, and always practical, this edition provides the key information you need to test successfully, whether a novice or a working programmer. Buy your copy today and end up with fewer bugs tomorrow. The Art of Software Testing, Second Edition is a revision of the bestselling guide from a leading computer expert and author. It provides a practical discussion of the purpose and nature of software testing, offering the latest methodologies for the design of effective test cases.
Conference Paper
Due to business demands including cost cutting and schedule shortening, we see many software development projects that directly make software specifications without writing requirement specification. Such projects have many problems. This paper describes the ZC method which defines the requirement specification by visualizing the requirement features. In the ZC method, the objects to be developed are circled, and the relation among the objects are defined by lines: our empirical study discovered that a single A4 paper represents approximately 10 KLOC. We confirmed that the ZC method allows software engineers to easily and precisely define the user requirement. The ZC method is at the experimental stage, and we attempt it in the actual projects.
Conference Paper
Attention is given to methods discovered by the author that allow a person with extensive knowledge of the software and systems development process to apply his/her experience effectively to the task of final systems testing. The paradigms of the paranoid auditor, suicidal test pilot, new operator and designated fool are described. It is concluded that, with the appropriate mental image, final system testing is much more effective
GUI Testing Mage Painless, Implementation and Results of the ESSI Project Number 24306
  • T Linz
  • M Daigl