Principles of Programming
correctness and reliability
maintainable
well-designed
Software Development Processes
Analysis: figure out what should be done (requirements/specifications)
Design: determine the overall structure of the system (focus on problem-solving)
Implementation: writing code + debugging/testing
Repeat: thinking about the probelm (analysis) + experimentations (design + implementation)