This document provides an overview of programming and computational thinking concepts including algorithms and flowcharts. It defines algorithms and their key properties such as finiteness, definiteness, inputs, outputs, and effectiveness. Common flowchart symbols are explained and examples of algorithms and flowcharts are provided to illustrate simple problems and their solutions. The document discusses advantages of algorithms like effective problem solving and consistency, and advantages of flowcharts like communication and documentation. Limitations of flowcharts with respect to complexity and modifications are also noted.