Here is a summary of your work on the technique exercise. I've organized and classified your work, and I have written some responses in square brackets.
Here are some techniques that are OK, but in my experience there is a better alternative:
All these things sound good, but I can't tell how to put them into practice successfully:
Valuable qualities, but it may not always be obvious how to develop those qualities in yourself:
These are ideas that sound good and are uttered by people who mean well, but which have no agreed-upon definition in the profession. In some cases I have no idea what's being proposed. In other case I can suggest a related technique.
These are techniques that need to be used judiciously. Perhaps the cost/benefit ratio is not favorable, or perhaps there is a risk that the techniqe won't pay off at all.
Maybe half of the projects in COMP 40 will benefit from unit testing. For many projects, however, unit tests don't have much payoff, and you are better off going straight to integration testing. For some projects, like image compression, unit testing can have a very high payoff. I will try to guide you.
Sometimes this idea goes under the name ``continuous integration.'' It's great for big projects, but many of the projects in 40 are too small to benefit much. For many projects you'll benefit more from a half dozen tests that are very well thought out—and perhaps created before you begin coding.
Understanding is good, but there's a very great risk that an understanding of efficiency leads to paying too much attention to efficiency—and as noted below, that can lead to disaster.
Sadly, in software construction as in life, goals are seldom clear. It's much more common for programmers to say we don't know what we're trying to build until we try to build it. You must learn to function effectively in a world of unclear, changing goals. One helpful technique for clarifying goals is ``storyboarding,'' from the world of usability engineering.
This goal is a disaster waiting to happen. To explain why, I can do no better than quote Bill Wulf, past president of the National Academy of Engineering:
More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason—including blind stupidity.