to program a word frequency counter to analyze any input text file, to select and substitute words from a list into a document template using both ArrayList and HashMap, to create new lists to use in templates, to recognize brittle code, and to improve code with flexible, object-oriented design.