The BlueJ System and its Pedagogy

  title={The BlueJ System and its Pedagogy},
  author={Michael K{\"o}lling and Bruce Quig and Andrew Patterson and John Rosenberg},
  journal={Computer Science Education},
  pages={249 - 268}
Many teachers experience serious problems when teaching object-orientation to beginners or professionals. Many of these problems could be overcome or reduced through the use of more appropriate tools. In this paper, we introduce BlueJ, an integrated development environment designed for teaching object-orientation, and discuss how the use of this tool can change the approach to teaching. 
A constructivist, mobile and principled approach to the learning and teaching of programming
Novices in programming courses need to acquire a theoretical understanding of programming concepts as well as practical skills for applying them, but in traditional learning environments students
Using BlueJ to Introduce Programming
  • M. Kölling
  • Education
    Reflections on the Teaching of Programming
  • 2008
This chapter describes the BlueJ system and discusses experiences of using the system over eight years at various institutions, and discusses successes and failures as seen retrospectively today.
Patterns for Teaching Software in Classroom
This paper presents pedagogical patterns for the general context of teaching software concepts in classroom settings. These patterns are targeted at people who teach other people, whether in industry
JeCo, a Collaborative Learning Tool for Programming
The new concept of collaborative program visualization is explained and a tool to support it is presented, called JeCo, that can help students work together on a platform that supports both collaborative authoring and program visualization.
Usage of Technology Enhanced Educational Tools for Delivering Programming Courses
Experiences gathered during years of a technology-enhanced approach in teaching Object-Oriented Programming (OOP) at two universities in two countries are presented and compared and emphasis is given on the technology- enhanced educational tools that were selected or developed by the two institutions for teaching OOP.
The Greenfoot Programming Environment
This article first describes Greenfoot and then goes on to discuss design goals and motivations, strengths and weaknesses of the system, and its relation to two environments with similar goals, Scratch and Alice.
A Case Study of an Integrated Programming Course Based on PBL
A case study of a course that uses problem-based learning (PBL) to integrate the subjects of Object-Oriented Programming, Data Structures and Software Design and aims to explore student learning when this teaching-learning approach was applied in the second term of a Computer Engineering undergraduate program.
An “objects first, tests second” approach for software engineering education
The approach of “ objects first, tests second” is introduced, which incorporates unit testing into introductory programming classes and discusses requirements that teaching materials must meet to effectively support this approach.
NoobLab: An E-learning Platform for Teaching Programming
Noob Lab is described, an e-learning platform for teaching programming that provides a complete suite of features surpassing prior work, and has successfully been used in a number of undergraduate modules to improve student outcomes, satisfaction, and inform pedagogy.
Java Teaching Based on BlueJ Platform
  • B. Sun
  • Education
    2010 2nd International Conference on Information Engineering and Computer Science
  • 2010
This paper proposes a Java language teaching method based on BlueJ platform that combines instructor-student interaction, training of students' program thinking, and how to lead Java teaching and lab experiments using this proposed method.


Guidelines for teaching object orientation with Java
How to best teach object orientation to first year students is currently a topic of much debate. One of the tools suggested to aid in this task is BlueJ, an integrated development environment
Teaching Java with the BlueJ Environment
This paper reports on the first use of BlueJ to teach Java to an introductory programming class, in a computing degree in 1999, and found that BlueJ was helpful in the class.
The Problem of Teaching Object-Oriented Programming, Part 2: Environments
  • M. Kölling
  • Computer Science
    J. Object Oriented Program.
  • 1999
This month’s column is devoted to the discussion of environments: a suitable programming environment is crucial for the success of an introductory course and the suitability of environments for first-year teaching.
Evaluating Languages and Environments for Novice Programmers
An existing method of comparing and evaluating programming languages is discussed, and how that method can be adapted to compare and evaluate integrated development environments, with a particular focus on environments for novice programmers.
Problem-Based Learning for Foundation Computer Science Courses
A summary of the experience over three years of PBL teaching and some of the pragmatic issues around introducing the radical change in teaching, maintaining staff support, and continuing refinement of the approach are discussed.
AAA and CS 1: the applied apprenticeship approach to CS 1
An application-based approach to introductory courses in computer science that follows an apprenticeship model of learning, where students begin by reading, studying, and extending programs written by experienced and expert programmers is developed.
Extreme Programming Explained
Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new
Conservatively radical Java in CS1
A “conservatively radical” middle ground where the conservatives teach the old course in Java syntax and the radicals restructure the course to include Graphical User Interfaces (GUIs) and concurrency.
The case for case studies of programming problems
The authors' case studies explain and defend the decisions made by an expert to produce a solution to the problem at hand, and contrast effective and ineffective strategies for solving this problem and related problems.