DIGITAL LIBRARY
A PROPOSAL OF AN EDUCATIONAL SUPPORT WEB SYSTEM AND SAMPLE PROBLEMS IN JAVA PROGRAMMING EXERCISES FOR OBJECT-ORIENTED DEVELOPMENT BY STEPWISE REFINEMENT
Kagawa University (JAPAN)
About this paper:
Appears in: EDULEARN19 Proceedings
Publication year: 2019
Pages: 6071-6076
ISBN: 978-84-09-12031-4
ISSN: 2340-1117
doi: 10.21125/edulearn.2019.1466
Conference name: 11th International Conference on Education and New Learning Technologies
Dates: 1-3 July, 2019
Location: Palma, Spain
Abstract:
An introductory programming exercise in an information engineering course of a university often uses a procedural programming language such as C language. After that, exercises of object-oriented programming (OOP) with Java language and so on are performed. However, we think that such OOP exercises tend to be mainly grammar verification problems as the object-oriented language. As a result, students often stay in coding similar to procedural languages they have learned so far. In order to improve this, it is important for students to learn object-oriented style coding and realize the benefits. In object-oriented modeling, describing a physical object with some appearance features is not enough to realize the functional object. It is important to acquire skills that express behavior and responsibility as each object. We propose a Java exercise for beginners as object-oriented programming. We use various execution tests based on stepwise refinement as continuous development. We consider several suitable exercise problems with effective execution tests. We design a support system on a Web server for the exercises. In this exercise, A teacher gives an exercise project with some problems. In the project, each team with about three members must solve them with cooperation. The teacher creates exemplar code and execution tests. He selects where to make a code block by block of methods or classes. To the student, the code is disclosed in the state of hiding the block of the problems part. The students implement partial codes that complement the block in a local environment. Then, they submit each code as an answer to the Web server. Their answer codes are evaluated in two aspects of external result tests and internal quality tests. The former tests are concerned with functional requirements like output result and processing speed by given specification. First, each member tries implementation of a class or method as assigned task and examines a unit test. Second, the team examines the join test by combined their answer codes. The latter tests are concerned with non-functional requirements by advanced tests and static analysis with software metrics. An advanced test treats robustness and extensibility. We are developing a support system TooDex in the Web server. It offers several test functions and indicates the result for feedback. We focus implementation and refactoring of sorting algorithm as a typical problem used at the beginning of the exercise. In this problem, we show a code written in a procedural programming language as an exemplar. It makes the object-oriented style coding aware by comparing the exemplar code and a students' answer codes. Also, it lets the students experience expressing behavior as an abstractive object, using functional specification that is difficult to grasp as physical objects. In this paper, we describe functions of a trial version of the support system and prepared some easy problems for stepwise development. And we discuss the appropriateness of the problems in the exercise.
Keywords:
Java exercise for beginners, object-oriented programming, stepwise refinement with partial specification, continuous development by test driven, sort algorithm.