Solving a problem requires some essential steps that include understanding the problem well, identify the inputs and outputs, drafting the solution, and finally analyzing its correctness. This chapter explains the problem-solving steps for a computer programmer. It provides a detailed description of algorithm writing and flowchart drawing. It also includes a sufficient number of examples that describe all the concepts involved in writing algorithms. Once the reader knows how to write the algorithm, flowchart drawing is so much easier. The chapter describes the processes, rules, and characteristics of an algorithm and includes a description of how to write pseudocodes. Finally, it also has a description of several symbols used in drawing flowcharts.