A change occurred recently in the discussion of introductory programming teaching: the procedural backlash.
Suddenly, respected and experienced teachers start claiming that teaching object orientation early is not only difficult, but impossible. Procedural programming once again is supposed to be the solution, with objects having to take a back seat.
This development is not only questionable and unfortunate, but wrong and dangerous.
Read the full article here.
Michael,
Your subtitle “A Polemic” is apt, and I think it is a shame you address these issues in such polarized terms. There are infinite shadings of approach which are possible in blending the elements of object architecture and procedural logic in the teaching of introductiory programming. We are now 21 months into an “object early” (deliberate singular) approach where we spend a semester developing individual classes (modelling entities, absoultely no “Hello World” style examples!) including selection and interation, before introducing designs with multiple objects in semester 2. Inheritance and polymorphism arrive in semester 3. It’s working well for us, and BlueJ was the key piece of the puzzle to make it possible.
Your distinction between “intrinsic” and “accidental” complexity hits the nail on the head. This is an idea which I first encountered in Fred Brooks’ widely cited 1986 paper “No Silver Bullet: Essence and Accidents of Software Engineering”, and it has always seemed to me at least as applicable to introductory programming as to real-world software engineering practice. It sums up BlueJ’s genius: to allow students to directly observe and interact with objects without the extraneous intrusion of main(), new, and so on.
If there really is a reactionary Proceduralist backlash afoot it is good that we recognise it as such, but I must say your comments have the shrill tone of an Object Ideologue. (Deliberate provocation?!) I first saw an “objects early” approach as a teaching assistant in 1990, and have been directly involved in teaching introductory programming ever since: there are no easy answers, and all the evidence I’ve seen leads me to being what you might call a Paradigmatic Eclectic!
Keep up the good work.
Paul McCard
Sunderland University, UK