Too many things to list, but I agree with a poster below that suggested looking at the course offerings for a computer science degree. You might be able to find outlines of the courses to get specific topics.
On a day to day basis, code coverage is something that more people should use when writing unit tests to ensure they have tests that execute all their code.