{'fraction_non_alphanumeric': 0.02115100836202656, 'fraction_numerical': 0.003935071323167732, 'mean_word_length': 4.954612005856515, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool

Introduction The BlueJ programming environment (Kolling & Rosenberg, 1996) was designed and implemented by Michael Kolling and John Rosenberg in order to improve the teaching and learning of introductory programming in an object-oriented style using Java as the implementation language. BlueJ gives students a graphical picture of the classes and objects in a system, allows students to interact with them directly, simplifies testing of methods and classes, and removes the necessity for much difficult and confusing Java code such as the main method in a class. An earlier paper (Hagan & Markham, 2000b) described the advantages of using BlueJ to teach Java to novice programmers, and the kinds of help offered to students, and reported on the results of an initial evaluation of the effectiveness of BlueJ. This evaluation was done during the first semester of the use of BlueJ, in 1999, when it was still a comparatively unstable Beta version and many students found its installation procedure complicated. That study found that, of the one-third of students who participated in the study, most warmed to BlueJ during the semester after an initial period of frustration, and felt by the end of semester that BlueJ had been a help to them in learning Java. However, these self-selected students had significantly better results in the unit than students who did not participate in the study, and therefore it was felt that more evaluation was needed. This is a follow-up study to that first one. It examines the perceptions of students in the second of the two consecutive first year programming units, when they have become more experienced in programming and in using BlueJ. It was hoped that, by this time, students would no longer confuse BlueJ and Java and would be able to appreciate the benefits that BlueJ offers. The Two First Year Programming Units The first of these two units focuses on the basics of object-oriented programming. It covers classes and objects; message passing; sequence, selection, and repetition; basic data types and some library classes; arrays of basic data types and objects; objects as attributes of other classes; and testing of classes and methods. As part of their assessment, students are required individually to write a program that uses six to eight interacting classes, including at least one that is supplied by the teaching staff. Examples of assignments that have been used include a board game, a video shop, a gift registry system and an online cinema ticketing system. Most students find this unit difficult and time consuming. This is partly because there is a great deal to learn, but also because it is their first semester at university. Many of them are disoriented for weeks, learning how the university system works, and not used to being expected to motivate themselves to work consistently on several different units. International students are adjusting to a different language and culture, finding accommodation, and generally concentrating on many other things besides learning to program. For these reasons, we offer a great deal of help with their programming units, as documented in Hagan & Markham (2000b). Student resources include lectures, discussion classes and lab sessions, a helpdesk staffed by tutors in the unit, availability of lecturers and tutors for personal contact by email and in person, and a unit website including an anonymous feedback facility. The unit assessment consists of two unit tests during the semester, three stages of the assignment, and a final examination. At the end of the first semester, students are expected to be able to design and write small programs in Java, debug them, and test them properly. There is an emphasis on software engineering principles such as coding standards, test strategies and maintainability of programs. By the time students reach the second programming unit, they are expected to have settled into university life and know how to learn and motivate themselves. …