Elementary Patterns

A growing number of folks are interested in elementary patterns, patterns at a level appropriate for students just learning to design and write programs. These patterns can serve a role in how we help novices learn to program, and they also can serve as the foundation for the more advanced patterns that we document in the software world

This community first took concrete form at the "Elementary Patterns and their Role in Instruction" Hot Topic workshop at ChiliPLoP'98. (See the final report of the workshop at http://www.cs.uni.edu/~wallingf/patterns/elementary/chiliplop98/summary.html) There we focused on pattern languages for use in the first year of academic computer science instruction. Others have broader interests in elementary patterns, and I'm not even sure if, and to what extent, our demarcation of boundaries is meaningful. As a result, I have created a web page at http://www.cs.uni.edu/~wallingf/patterns/elementary/ to appeal to a very broad definition of elementary patterns and of teaching and learning. The community may well evolve toward a better understanding over time.

-- EugeneWallingford

I think these are great stuff. They are a careful re-examination of things I thought I understood 20 years ago. Reading them, I gained a new appreciation for recursion and looping. These patterns are much in line with my vision of patterns- making the easily screwed up easy. --KentBeck


Some time back, I was explaining the idea of patterns to someone and was lead by his background to a particular quasi-example. CobolLanguage programmers the world over have written tens of thousands (or more!) of match-merge programs. The classic case is a "master file" and a "transaction file" with records being added to and updated in the master.

Around this same time, an associate of mine was inheriting a system that had previously been developed and maintained by contractors directly engaged by the users. A CeePlusPlus program had been in development and was "ready" to go into production. It was lovely C++ with everything you want in C++ and more! There were classes, there were templates, there were lovely comments and there was a very consistent coding style.

And it didn't work! Incorrect results when you got them, infinite loops more often. My associate spent two days debugging it with the contractors. Seems they didn't know how to write a match-merge. --KielHodges

Guess I should add that those CeePlusPlus guys shouldn't have been reinventing the wheel. But, in addition, there are people every day reinventing minor variations of wheels. I know I did when I was writing such stuff ten years ago.


EditText of this page (last edited May 21, 2004) or FindPage with title or text search