4-step Programming Process