The document discusses problem solving using computers. It explains that programming languages allow problems to be solved repeatedly by telling the computer the logic or algorithm to follow. An algorithm is a series of steps, like pseudocode or a flowchart, that represent the procedure for solving a problem. It then provides examples of algorithms for calculating the factorial of a number in different formats, including English steps, flowcharts, and pseudocode. Programming implements the algorithm by translating it line-by-line into source code.