CS W1007 Introduction to Computer Science
Eric Siegel, Columbia University

Modular Decomposition

On-line live and studio recordings

Eric Siegel wrote and performed this song when he was a computer science professor at Columbia University, 1997 - 2000.

This song is a musical theater ballad with a tone of triumph and dramaticism.
How do I program each line, and finish it on time,
when this project's so darn big and overwhelming me?
With stepwise refinement, you're breakin' down the problem,
then build it back up systematically.

Modular decomposition!
It's the way things are and ought to be.
If yer life is hierarchical, it's really quite remarkably
easy to do each sub-sub-sub-sub-sub-routine.

All the functions I service must serve a general purpose,
yet operate alone with one-track minds.
Conceptual abstraction is maintained with a module interface,
to build up libraries of every kind.


Piano Solo


You and and your abstraction, like Batman and Robin,
an inventive co-dependent relationship of epic proportions.
Who will invent a multi-purpose metaphor and meta-metaphor?
Who will architect your hamster's Habitrail (tm) with multi-purpose tubes?
Who will protect your private micro-thoughts from hacking invaders?
Who will save your code from infinite tedious intricacy?
Who knows how to use Legos really well?
A: You and your modular abstraction!


© 1998 Eric V. Siegel