Teaching Java First: Experiments with a Pigs-Early Pedagogy

This paper introduces PigWorld, a tool for teaching Java to novice programmers, via the objects-early style. Three design guidelines for object-early assignments are discussed: (1) emphasize message passing between instances of the same class; (2) use only simple loops that search for smallest or largest values in a sequence; (3) teach linked lists before collections and collections before arrays. The paper offers a first step to resolving the dilemma over whether procedural programming must be taught before objects, via the following principle: in the procedural style, algorithms are encoded explicitly within the methods of an object, but in the object oriented style, algorithms emerge implicitly from the interactions between objects.

[1]  John Leaney,et al.  First Year Programming: Let All the Flowers Bloom , 2003, ACE.

[2]  Duane Buck,et al.  JKarelRobot: a case study in supporting levels of cognitive development in the computer science curriculum , 2001, SIGCSE '01.

[3]  Acm Ieee-Cs Joint Curriculum Task Force Computing Curricula 2001: Computer Science , 2002 .

[4]  MitchellWilliam A paradigm shift to OOP has occurredimplementation to follow , 2000 .

[5]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[6]  Philip J. Burton,et al.  Teaching programming in the OOP era , 2003, SGCS.

[7]  Dean Sanders,et al.  Jeroo: a tool for introducing object-oriented programming , 2003, SIGCSE.

[8]  Richard E. Pattis Teaching OOP in C++ using an artificial life framework , 1997, SIGCSE '97.

[9]  John Leaney,et al.  Introductory programming, criterion-referencing, and bloom , 2003, SIGCSE.

[10]  Byron Weber Becker Teaching CS1 with karel the robot in Java , 2001, SIGCSE '01.

[11]  Michael Kölling,et al.  Objects First with Java - A Practical Introduction Using BlueJ (5th Edition) , 2002 .

[12]  Richard E. Pattis,et al.  Karel the Robot: A Gentle Introduction to the Art of Programming , 1994 .

[13]  W. Mitchell,et al.  A paradigm shift to OOP has occurred…implementation to follow , 2001 .

[14]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001 .

[15]  T. Lozano-Perez,et al.  Robot programming , 1983, Proceedings of the IEEE.