Iterative Case-Driven Method and Practice of Java Language Teaching

2019-01-04 09:31GuodongXinWeiWangJunhengHuangYangLiuBailingWang
计算机教育 2018年12期

Guodong Xin, Wei Wang*, Junheng Huang, Yang Liu, Bailing Wang

Abstract: This project intends to study and discuss the teaching method of programming languages through an iterative case-driven model, to break through the traditional syntax-based teaching method so that students can actively participate in the case analysis and design which are closely related to enterprise applications. The purpose of teaching is achieved through the gradual iterative case-driven model. This project can form the best practice for the iterative case teaching method and promote programming language course innovation.

Key words: programming language teaching; Java language teaching; iterative case-driven teaching method

1 Introduction

1.1 The research backgrounds

How to effectively cultivate the skilled programmers required by IT industry and academia has become one of the most serious problems faced by computer educators in universities around the world[1]. It is expected that through the teaching programming courses, students will be able to master programming theories and skills to form their core competitiveness. However, in most cases, the teaching effects of programming language courses are frustrated. Both teachers and students have found that it is difficult to teach and learn programming languages. From the teachers’ perspective, computer programming languages involve lots of programming theories, complicated semantics and syntaxes, great quantity of algorithms and coding skills, annoyed and perplexed debugging techniques, which are difficult to find an effective teaching arrangement for students. And from the point of view of the students, boring syntaxes and theoretical knowledge are totally a kind of torture and hard to master. Therefore, it has become an impotent and challenging issue to develop effective strategies or tools for teaching computer programming languages[2].

In order to adapt to the requirement of professional development, and constantly improve the level of teaching, and comprehensively promote quality education to cultivate the spirit of innovation, innovation ability and practice ability as the key, we introduce the project of iterative case-driven teaching method and practical research. This research can help to change the prominent problem of "emphasizing syntax and neglecting practice" in traditional programming language teaching, expand the potential of programming language teaching[3], give full play to the initiative of students and teachers[4-5], and provide an enforceable methodology for the innovative advocacy of the "MOOC/SPOC +flipping classroom teaching method" of Harbin Institute of Technology (Weihai)[6].

As one of the most widely used programming languages, Java has widely representative of computer programming languages. It is a pure object-oriented language which describes the contents of encapsulation,inheritance and polymorphism, and fully displays the characteristics of the object-oriented programming language. It is not only the pre-course of the enterprise web applications and android mobile applications,but also an important basis for software system architecture, design patterns and other related courses.

Under the traditional syntax-based teaching mode,the teaching forms are relatively simple and inefficient.Under this teaching method, students generally feel difficulty in learning Java language course. The lack of active thinking and active participation affects the students’ interests in the learning of the course. In the latter part of the course, students often fail to keep up with the teacher's teaching progress. Even the students who can keep up with the progress of teaching also lack the ability to solve practical problems and have formed the teaching consequences of "understanding syntaxes,and not programming".

This project intends to study and discuss the teaching strategy of programming languages through an iterative case-driven method, to break through the traditional syntax-based teaching methods, so that students can actively participate in the case analysis and design which are closely related to enterprise applications[7-9].The purpose of teaching is achieved through the gradual iterative case-driven model. This project can form the best practices for the iterative case teaching methods and promote programming language course innovations.

1.2 The research contents

The research contents of this paper include: developing students' object-oriented programming thinking,cultivating the ability of software analysis and design using object-oriented thinking.

We divide the subject into the two aspects: ①The reform of teaching contents; ②The reform of teaching forms.

1.3 The basic principle of research

In order to ensure the success of the research, we put forward the basic principles of the research work: In this study, we pay special attention to and highlight the characteristics of "Applied" talents training, give full attention to practical teaching, make research rich.

2 Research on the Content System

2.1 The reform of teaching content

The traditional Java teaching mode has more prominent problems in the content. Most universities take C/C++ or one of them as a preorder course for Java. So,most students have a certain C/C++ foundation when they learn Java. As we know, Java language and the C programming language have many similarities in basic data types, process control, and common data structures. There are more contents duplicated in Java and C++, including object-oriented contents, exception handling, and generics and so on. In the traditional teaching process of Java language programming, these common knowledges are treated as new, which leads to the teaching contents have little attraction to students and cannot stimulate their motivation to learn.

Therefore, in this study, team members conducted research on the syllabus and teaching contents of C/C++, analyzed the class hours that were consistent with the Java language syntax in the preorder courses, and counted the problems that students prone to appear in C/C++ language. In the Java course teaching practice,according to students' mastery of knowledge, the contents are divided into three phases: knowledge preparation, iterative case-driven knowledge application and knowledge enhancement. This strategy has greatly reduced the threshold for students to get started.

In Fig. 1, the knowledge preparation phase is arranged for a short time which introduces Java's characteristics,runtime and development environment, programming structure, code specification and object-oriented basic knowledges and so on. In this phase, if students have no programming foundation, teaching time can be increased a little, but teaching contents needs to follow Least Knowledge Principle, that is, only explain the knowledges necessary to complete a simple case.

Fig. 1. Java knowledge architecture based on iterative case-driven methodology.

The knowledge application phase is practices based on the iterative case driven model[3-6]shown in Fig.2. At this phase, according to the difficulty of Java language knowledges, several cases are planned, and each case is divided into several iterations so that the basic knowledges are applied and new knowledge can be introduced step by step to complete the case. In the course of teaching, a version of the case is constructed by using simple Java syntaxes and object-oriented knowledges. After that, we discuss the advantages and disadvantages of the completed version and simulate the user’s requirement changes, introduce multiple changes progressively, each change will increase the knowledge points of knowledge enhancement phase and code refactor, and gradually iterative to meet the user’s requirement. This phase is the main part of the method and occupies most of the teaching time of the whole course. The number of cases or iterations in each case can be increased or reduced according to the actual situation.

Knowledge enhancement is a phase which knowledge is hard to understand by students. The knowledge should be introduced in the knowledge application phase by the iterations of cases, so as to show how the knowledge can be applied.

2.2 The reform of teaching forms

The traditional teaching model focuses on students'understanding and mastery of knowledge points, but seldom involves applications of Java language. As a result, students did not know the practical application of Java related knowledge, and they become disgusted and gradually lose interest in Java language learning.

In addition, Java experiments are isolated and lack comprehensive application of knowledge. In the experimental teaching, the traditional teaching model is still "spoon-fed". The teacher sets the experiment course as the experiment purpose, experiment content and the experiment procedure. The experimental steps are explained in detail by the teacher first, then students complete the experiments according to teacher’s instructions.

During this period, students can only follow the teacher's instructions passively, step by step, and fail to give full play to their initiative and creativity.

In this research process, ideas of software engineering are introduced into Java curriculum to form an iterative case-driven teaching model as shown in Fig. 2. The iterative case-based teaching processes are as follows:

Step 1: Guide students to carry out user requirements analysis with UML.

Step 2: The iterative processes of a case.

Step2.1: Guide students to design simple class diagrams and processes of objects calls with UML.

Step2.2: Implement this design with the basic knowledge introduced in the knowledge preparation phase.

Step2.3: Submit this software version.

Step2.4: Analyze the advantages and disadvantages of this version and simulate users’ requirements changes.

Step2.5: Introduces the new knowledge in the stage of knowledge enhancement, and re-analyze, re-designs and refactor the case according to requirements.

Step2.6: Implement design with new knowledge and deliver a new software version, and then an iterative cycle has been completed. Continue to iterate until the case satisfy the OOP (Open-Close Principle) or achieve teaching purposes.

Step 3: Submit the final version of the case, the iteration finished.

In this teaching model, a student-led flipping classroom teaching was realized. Students gradually enhanced the problem-solving ability in analysis,design and coding, and greatly improved their learning interests.

3 The Research Results

The results of the project are shown in the following three aspects:

Established a set of student-based, teacher-assisted teaching methods. In the teaching process, abandoned the traditional one-way instillation mode, focusing on heuristic, open, independent and other teaching practices, to a large extent to achieve the inverted classroom.

Fig. 2. Iterative case-driven teaching model.

A set of iterative case-driven teaching process model was formed. In this model, cases are designed from simple to complex and easy to difficult. In the teaching process, the introduction of software engineering ideas,based on user’s requirements, guide students to learn independently, to complete the requirements of the analysis and design and implementation. To a great extent, the initiative of students and teachers is brought into play.

The teaching cases aiming at the enterprise talent demand were set up. The collection and collation of cases has made extensive reference to the feedback from IT enterprises. The case design fully takes into account the tools, methods, processes and technologies involved in the work process of the students and forms an iterative level from easy to difficult.

4 Conclusion

This paper presents an iterative case-driven Java language teaching method, which is the author's summary of Java language teaching practice for many years to provide reference for the reform of programming language teaching methods. This project has completed the following three aspects of the work.Firstly, the organization of the teaching content is re-optimized. In view of the characteristics of the Java language applications in the IT industry, we divide the teaching content into three levels: knowledge preparation, case driven knowledge application and knowledge enhancement.

Secondly, the design of the iterative cases is carried out. Through the feedback from IT industry, we can get the knowledge that is widely used by enterprises nowadays, which are the base of case design. The project is intended to start from the core of Java,design multiple cases, each case for multiple iterations,each iteration of each case has its focus, and give full consideration to students' understanding and difficulty to guide students discuss issues that arise during the iteration of the case and how to make changes to complete the flexible design.

Thirdly, the iterative case teaching method is studied.At the beginning of Java language teaching, you can use the inspiration-induced teaching method. During the iterative process of the case, try the discussionbased teaching method, master the advantages and disadvantages of the design and improve the design by discussing with the students. In the experimental teaching arrangement, using the project-driven teaching methods, reference teaching cases and class discussions,arrange similar cases with the teaching content for the students to guide students to think independently.

Acknowledgement

We are grateful to all colleagues at school of computer science and technology of the Harbin Institute of Technology (Weihai), in particular the valuable feedback from undergraduate students, alumnus or alumna. We also appreciate for many valuable comments and helpful suggestions of the reviewers.