program specification~Description of a task program design~A written plan; an overview of a solution top-down development~Implement main class first, subsidiary classes later information hiding~Using private to restrict access. driver class~used to test other classes, contains main method. algorithm~step-by-step process that solves a problem. data structure~Java construct for storing a data field, such as an array. debugging~fixing errors robust program~screens out bad input compile-time error~Usually a syntax error, prevents a program from compiling. syntax error~Bad language usage, such as a missing brace. run-time error~occurs during program execution, such as divide by 0. bottom-up development~implement lowest level independent classes first Software development~Writing a program