Algorithms have cometo be recognizedasthe cornerstone of computing. Surprisingly, there has been little research or discussion of general techniques for designing algorithms. Though severalsuch techniqueshave been identitied, there are serious shortcomings in the existing taxonomy. The paperpoints out theseshortcomings,reevaluates someof the techniques, and proposesa new, hierarchical classification schemeby grouping techniquesaccording to their level of generality. A variety of examplesfrom different areasof computing are used to demonstratethe power and flexibility of the taxonomy being proposed. Keywords Algorithm designtechniques,taxonomy