Teaching Adaptability of Object-oriented Programming Language Curriculum

The evolution of object-oriented programming languages includes update of their own versions, update of development environments, and reform of new languages upon old languages. In this paper, the evolution analysis of object-oriented programming languages is presented in term of the characters and development. The notion of adaptive teaching upon object-oriented programming language curriculum is proposed. Many principles and strategies of adaptive teaching are expatiated in detail. An online scoring platform for learning object-oriented programming languages is also introduced finally


Introduction
Object-oriented programming (OOP) is a programming paradigm using "objects" -whose data structures consisting of data fields and methods together with their interactions.It becomes general to use the object-oriented programming language in today's software development.For this reason, colleges start offering the computer courses on object-oriented programming language, such as C++ programming language design, C# programming language design, and Java programming language design.Ranging from the early SmallTalk Language to the later C++ and Java, until the latest C# and Python, the amount of the programming languages is raising, and the performance of the programming languages are becoming better.Each language has its place in the market.However, the colleges cannot offer the computer courses for every popular language, and the languages are improving and updating themselves as well.These problems are urgent for the college deputies: How to choose the object-oriented programming languages, and which is the best way to teach the programming thinking in the teaching courses.
Mr. Comer and Mr. Roggio (2002) researched what is the effective way to teach the course of object-oriented programming in the classes in which most of the students are computer major students.Mr. Liu (2010) created some valuable teaching models depended on the experiment of programming courses.Mr. Wu (2009) created a case teaching method of VB programming course which can increase the students' interests and creative abilities.Gallant (2008) gave a teaching strategy for Java programming language teaching.Basic teaching methods for freshmen were introduced in some research (Kaplan, R. 2010). In Canada, McMaster (2011) gave some advice in term of the objected-oriented programming language teaching.'Implements program for the courses of Computer Science and Technology Specialty' was published by China Higher Education Press (Ministry of Education of PRC, 2009).It analyzed the teaching strategy of the basic programming courses based on the procedural programming language.

Computer Programming Language
There are some close relations among the programming languages.The appearance of these languages is a great improvement in the programming language system.There are some similarities on the grammar among languages Java, C# and C/C++.If one of the object-oriented languages, such as Java, C# and C/C++, was understood, it is easy to understand the rest.However, the Microsoft Company pointed it out that it is easy to cause memory leak while C# tries its best to cover the problem of the pointer operation.The Java language of the SUN Company is trying to cover the inconvenience that programmers rescue memory when using C++ language.Both of C# language and Java language have the sufficient preponderance on supporting the construction of Internet platform and web service, etc.The programming language ranking is released on the TIBOE website (http://www.tiobe.com),which is updated once a month.See the table 1.It indicates the popularity of programming languages.The ratings are based on the number of skilled engineers world-wide, courses and third party vendors.From the early SmallTalk, C++ to the latest Java, C#, the development of the object-oriented programming language is very fast.Figure 1 is the evolution of the C language, C++ language and Java language.In this figure, the vertical axis is the closeness between language and computer bottom hardware as well as the application environment.The horizontal axis is the language structural feature and the object-oriented feature.
Figure 1.The contrast of the superior languages In figure 2, a kind of educational topological optimization of programming language is designed.In the figure, computer application basis and media technique are the leading courses of the C language programming.It is necessary to minor a kind of leading course such as computer application basis before learning C language programming.From the courses of computer application basis and media technique, students can learn the procession of computer operation, the keyboards, the transformation of the 4 kinds of multi-band and the Von Neumann architecture of computer.These courses can also raise the students' interests of computer courses.
From the observation of the undergraduates' high level language programming course, the author found that students have serious fingering problems in the C language practical courses.This reflected that students' education of computer were different.So that it is necessary to offer a leading course of C language.It is normally to choose C language as the first computer high level programming language for students to learn.
There are two reasons to make this choice.One is that C language is more flexible than Fortran language.The other reason is that Fortran focuses on science calculation which is not as widely used as C language.The C language is close to the bottom hardware.It is a kind of language which is used in many embedded system.It has an incomputable effect in the aeronautical and space field and the program operation on the sophisticated equipment.Though C language is not an object-oriented programming language, it has many similarities on grammar with some mainstream object-oriented programming languages, such as Java, C#, C++.It is the basis of learning these languages.From the view of grammar, C language is the ancestor of the object-oriented programming language.Thus, it is suitable that choosing C language as the leading course of object-oriented programming language.

Teaching Adaptability
From the evolution of the object-oriented programming languages, the teaching adaptability of the object-oriented programming language course is proposed.It means that based on the evolution of the languages, teachers need to adjust the headline, the contents and the software of the course during the course of object-oriented programming languages, not clinging to outdated customs.So that the best teaching effect can be reached and the students can adapt the needs of the society.
Based on the experience in teaching the object-oriented programming language, the teaching adaptability principles of teaching the object-oriented programming language is proposed.They are listed as follows.
(1) Choosing a programming language needs to keep the pace with the times.The appearance of every object-oriented programming language is based on a kind of old object-oriented programming language.For example, though C++ language is an object-oriented programming language, it still retains the pointer which is complex but has strong function.But C# improved this problem.C# is a kind of pure object-oriented language.It supports the next generation of internet service and operating platform by supporting .NET.As the same, Java language also improved many problems of C++ language.It has a good platform portability.
As an efficient teacher, it is necessary to know this principle well, not still focusing on the old programming language.Therefore, the teaching can meet the needs of the companies and the society.
(2) Teachers need to adapt the development of programming.The development of object-oriented programming language and the updated versions of the developing software.In the practicing course, the development environment has changed for several times, from the early Turbo C 2.0 and 3.0 of Borland, to Visual C++ 6.0 of Microsoft, to the latest Visual Studio 2005Studio , 2008Studio and 2010, etc. , etc. over time more and more versions of developing software support the development of C language.Table 2 compares development environments of programming languages.
(3) The courses for the non-computer majors should be changed to meet the needs of these majors.Nowadays, C language becomes many majors' required courses in many non-computer majors, such as mathematics, Mechanical and Power Engineering in science and engineering field.During the teaching processes, teachers can improve the plans of the courses by following the topological diagram in the Figure 1 and the needs of the majors.Teachers can star the courses from C language to the data-structure, database and computer network, etc, ignoring the object-oriented programming.because they cannot leave each other.Only through the project practice can students experience the problems in programming and then debug and solve it.The ratio of theory lesson to practice lesson can be 1: 1 or 2: 1.The practice lesson should focus on the integration of the programming course and the system development, not only the knowledge on textbooks.In the class, students can design small-sized MIS (management information system) in teams.For example, students can register free and complete the exercises and competition subject on the website named POJ built by Beijing University.
See the website (http://zxd.openjudge.cn).The author listed several competition questions about programming courses, the students could do these work online at any time before the deadline.The website automatically ranks the students according accepted number and other factors.Figure 3 shows the submission status of students while doing the "A+B problem" using the C or C++ language.The teacher could see the status clearly.
Figure 3. Online scoring platform for programming language learning

Conclusion
From the contrast of present object-oriented programming languages, we can find that C# and Java are more superior than C++ on the object-oriented character.For the similar grammars of C#, Java and C language, teachers can arrange the courses of C language, C# and Java language, ignoring other languages.It is suitable to describe the objective world by using the object-oriented thought.Thus, teacher should guide students' programming by using the object-oriented thought from the view of the objective world.The thesis analyzes the evolution of the object-oriented programming.Based on the analysis, author put forward the teaching tactic.We can forecast the deeper development of the object-oriented programming language by the deeper development of the object-oriented thinking.

Figure 2 .
Figure 2. Educational topological optimization of programming language

Table 1 .
Top ten programming languages of May 2012