588
Views
0
CrossRef citations to date
0
Altmetric
Original Article

Elective Course OOP II: Creation and Experiences

, &
Pages 62-69 | Published online: 15 Dec 2015

Abstract

As an outcome of a DAAD (German Academic Exchange Service) sub-project started in 2004 and devoted to teaching the Java programming language, a joint pool of primarily advanced topics has been created. This teaching material has since been used by teachers from different member universities and countries. In this paper we present recent modifications of the joint pool, with the main goal of innovating and improving its topics. The result of these efforts has been a realization of a completely new, elective object-oriented programming II course.

Introduction

Under the sponsorship of DAAD (German Academic Exchange Service), a project in the domain of education has been established since 2001. The central idea has been to develop joint teaching material for several courses of computer science education (CitationBothe et al. 2009). During the long duration of the project, teaching materials for different courses have been created and shared among the significant number of universities in countries that are members of the project consortium: Germany, Serbia, FYR Macedonia, Bulgaria, Croatia, Bosnia and Herzegovina, Romania, Albania, and Montenegro.

As the majority of university project members use Java as the essential programming language in their computer science and information technology curricula, a significant effort has been put into preparing the joint pool of Java teaching material. Some results of a sub-project ‘Joint teaching materials on object-oriented programming using Java’, which was started in 2004 as part of the whole DAAD project, have been presented in CitationIvanović et al. (2010). The sub-project’s main goals were:

  • Consensus in determining which Java topics should to be selected as basic and which topics should be selected as advanced.

  • Creation and development of joint teaching materials for all of these topics.

  • Creation of an educational network for cooperation and the exchange of experiences.

Within the project, teachers use different approaches and methodologies to teach the Java programming language, and so it was somewhat challenging to prepare different versions of the teaching material for the same set of Java topics. As a consequence, during the existence of the sub-project, a pool of teaching material has been constructed, covering a wide range of topics.

After the continuation of the project in 2008, we decided to continue our efforts and try to prepare additional teaching material for several new, advanced Java topics. The main idea was to cover, as much as possible, Java subjects that could be used in a number of other Java-based courses – e.g. Network Programming, Databases, Operating Systems – conducted at universities which are members of the sub-project.

During the last year, teachers from the Department of Mathematics and Informatics, University of Novi Sad went a step further and prepared the material for an elective course; Object Oriented Programming II, for the second year undergraduate students, 4th semester. The material for this course was primarily based on existing joint teaching material, but the process of creation encompassed the following steps and activities:

  • Selection of the teaching material for some advanced topics from the joint pool of material as an appropriate starting point for further improvements and innovations.

  • Redesign, innovations and improvements of these topics and the appropriate teaching material in order to fulfil the requirements for a new course.

  • Selection of additional topics for the new course (CitationThomas 2003, CitationGendreau 2004, CitationBenaya & Zur 2007), for which there is no previously prepared teaching material in the joint pool, and creation and development of the appropriate teaching material for them. New topics and presentations have also been included in the existing joint pool of Java teaching material for further usages by other project members.

The rest of the paper is organized as follows: ’Topics for the OOP II course’ discusses selected topics, their relationship and interdependencies within the OOP II course with the ‘Conclusion’ providing some concluding remarks.

Topics for the OOP II course

While thinking about possible topics for the OOP II course, we have tried to use the existing pool of Java teaching material as much as possible (CitationIvanović et al. 2010). As this was the first such course among participating universities, we had no role model, experiences or suggestions from other project colleagues. So starting with the joint pool of the teaching material, and consulting some freely available online sources of Java courses at other worldwide universities, we constructed the initial pool of topics for the OOP II course (see ). Topics are listed in alphabetical order, and for each topic a detailed description and a proposed duration in teaching weeks (two classes per week) are given. shows the relationship with the topics from the existing joint pool of material and the level of innovations that were added in order to produce new teaching material for OOP II course. The interdependency between OOP II topics is given in .

Table 1 The initial pool of OOP II topics.

Table 2 OOP II topics evolution from the joint pool of material.

Figure 1 Interdependency of the initial pool of OOP II topics.

‘Creating GUI with JFC/Swing’ appears to cover many concepts for a single-week topic. However, students are already familiar with most of the listed concepts, since there is a dedicated topic on ‘JFC/Swing’ in the mandatory OOP I course.

Database programming and information system development in Java were excluded from this pool, since they represent parts of other courses. However, some aspects of the database development are covered by the ‘Object-oriented design’ topic. Furthermore, ‘Java Persistence API’ of the ‘Java EE’ topic covers entities and object persistence in greater detail.

The main motivation behind the introduction of ‘Java 3D programming with JOGL’ was to try and boost students’ interest in Java by offering them a glimpse of the game development methodology and techniques. This would make the proposed course a bit different from the usual database and information systems-oriented courses given in the department.

A summer semester at the department includes 12 working weeks. Therefore, a sub-set of initial topics was selected, and then organized into 12 working weeks () based on the interdependency graph.

Table 3 Organization of OOP II topics – the initial proposal.

‘Java enumerated types’ and ‘Strings in Java’ were supposed to be covered during the same, first week, as both topics are relatively easy to comprehend and fit nicely together time-wise. In addition, ‘Generic types in Java’ and ‘Java collections framework’ occupy the same, second week. This is because the students have already had some experience in working with collections, during the mandatory OOP I course. Of course, because modern collections rely heavily on generics, the topic on collections was set as the continuation of the topic on generics.

Obviously, some topics from the initial pool () had to be excluded from the course:

  • Annotations in Java: The initial idea was to introduce annotations at the beginning of the course, in order to make students accustomed to using @Override. Although this was (and is) a good idea, dedicating an entire topic to annotations would require a great deal of effort with little practical outcome.

  • Java EE: Enterprise application development represents the most important and wide-spread application of Java. However, the OOP II course is primarily scheduled for the fourth semester, at which stage most students still lack enough prior knowledge of Java to fully understand this topic.

During these initial discussions a new topic, named ‘New Java 1.5 language features’, was created. The idea was to cover new features of the Java programming language introduced in version 1.5 that haven’t yet been presented to students. The topic would concentrate only on the changes made at the language level, without the description of new libraries and implementation improvements. A part of the topic would also focus on the concept and usage of built-in annotations, solving the problem of the missing annotations topic described earlier.

Previous experiences of students related to working with collections were only informal; collections have been used within some assignments during theoretical and practical exercises. But because every good Java developer should have a thorough understanding of the Java collections framework, it was finally decided to dedicate an entire week to teaching this topic.

‘New Java 1.5 language features’ was set as the very first topic because it is quite simple and provides a nice overview of the language constructs that will be covered later (e.g. enumerations and generics). The ‘Strings in Java’ topic was kept in the same week as it was also relatively simple.

This proposal, however, led to the omission of ‘Java I/O system’, which would create problems in dependent topics (see ). At the same time, ‘Java EE’ was deemed too important (from the practical and industrial point of view) to be completely excluded. Therefore, it was decided to exclude ‘Java 3D programming with JOGL’ completely, and instead include these two topics. This decision was supported by the fact that some aspects of 3D programming are covered by a separate ‘Computer graphics I’ course (the sixth semester). These thoughts led to redistribution of topics into final organization outlined in .

Table 4 Organization of OOP II topics – the final proposal.

Conclusion

During the realization of the OOP II elective course for the first time, an existing joint pool of teaching material prepared within the DAAD sub-project has been innovated. These innovations included modifications to the existing material, as well as the introduction of completely new topics.

Since this course was offered in our department for the first time, the interest among students was very high – 53 of them initially enrolled on the course. However, the majority of them were only interested in seeing ‘what the course was all about’. Therefore, out of the initial 53, 23 students (43%) have qualified for the final exam. The majority of those that did not qualify left of their own accord, describing the course as “requiring (too) much work”.

During the course, students obtained points by solving a number of practical assignments, both in the classroom and at home. In the classroom, they worked under the supervision of a teaching assistant, and using our interactive development and testing tool, named Svetovid (CitationPribela et al. 2008). Additionally, they were required to pass three theory tests. The final distribution of grades for the remaining students is given in . The maximum grade is ten, whilst the passing grade is six.

Figure 2 Distribution of grades for the total of 23 students.

In the end, a couple of general conclusions can be drawn. The prepared OOP II course is technology-driven: the topic selection process was highly influenced by the needs of our IT industry. A strong emphasis was put on the practicality, and providing solutions to real-world problems. This approach has had a significant positive impact on the students’ motivation to learn and practise their skills. Therefore, when preparing a course, it is important not only to focus on teaching programming principles, but also to give students an opportunity to apply the acquired knowledge practically.

While the course is offered primarily to second year undergraduate students, it is also available to third year students. Our observation is that, in general, third year students have obtained a higher score. This is due to the fact that, by the third year, students have acquired more programming knowledge from other courses. However, this observation still needs to be validated over a several-year period.

During the next project workshop that will be held in September 2013, the prepared course and its organization will be discussed with other sub-project member professors. We expect a fruitful discussion which will give us new insights and ideas for further changes and innovations of the available joint pool of teaching material devoted to usage in a wide range of courses.

Acknowledgements

The authors are partially supported by DAAD, through the project ‘Software Engineering: Computer Science Education and Research Cooperation’.

The work is partially supported by the Ministry of Education, Science and Technological Development of the Republic of Serbia, through project no. OI174023: ‘Intelligent techniques and their integration into wide-spectrum decision support’.

References

  • Benaya, T. and Zur, E. (2007) Understanding threads in an advanced Java course. In Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education pp23–27. Dundee, Scotland, UK.
  • Bothe, K., Schützler, K., Budimac, Z.. (2009) Experience with shared teaching materials for software engineering across countries, In Proceedings of the Informatics Education Europe IV (IEE-2009) ( eds. C.Hermann, T.Lauer, T.Ottmann and M.Welte), pp57–62. Freiburg, Germany.
  • Gendreau, T.B. (2004) Teaching networking programming with Java, Midwest Instruction and Computing Symposium, April 16 and 17. Available at: http://www.micsymposium.org/mics_2004/Gendreau.pdf (accessed 04 January 2013).
  • Ivanović, M., Budimac, Z., Mišev, A., Bothe, K. and Jurca, I. (2010) Teaching Java through different courses – multi-country experiences. In Proceedings of the 11th International Conference on Computer Systems and Technologies, CompSysTech’10, June 17–18, 2010, pp413–418. Sofia, Bulgaria, ACM International Conference Proceedings Series (ICPS). New York: ACM Press.
  • Pribela, I., Ivanović, M. and Budimac, Y. (2008) Svetovid – interactive development and submission system with prevention of academic collusion in computer programming, British Journal of Education Technology 6 (6), 1076–1093.
  • Thomas, K. (2003) Teaching databases at Southampton University, Teaching, Learning and assessment in databases, pp123–126. Centre for Information and Computer Sciences.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.