An algorithm is a precise set of unambiguous instructions that must be completed in a finite number of steps to solve a problem or reach a desired outcome. Key features of algorithms include being precise, unambiguous, terminating after a finite number of steps, avoiding infinite repetition of instructions, and obtaining the desired result upon termination. Examples provided calculate equality of two numbers, print the first 10 natural numbers, and find the sum of the first N natural numbers. Flow charts and pseudo code can be used to represent algorithms graphically or as informal high-level descriptions.