problem solving and the development of abstract categories in programming languages cover letter introduction for resume