(a)

Break the problem into smaller parts suitable for computational solutions, justifying any decisions made.