Explanation should include
defining and understanding the problem
developing the algorithm (i.e., clearly defining a list of steps for solving a problem)
coding the program
testing and debugging the program
documenting and maintaining the program.