1. Define an algorithm. What are the key characteristics of a good
algorithm? 2. What is a flowchart, and how is it used in program design? Draw a simple flowchart to demonstrate the process of finding the largest number among three numbers. 3. Explain the concept of decision tables and their use in decision-making processes. Provide an example of a simple decision table. 4. What is pseudocode? Write pseudocode for a program that calculates the factorial of a number. 5. List and explain at least five key characteristics of a good programming language. %1. Explain the steps involved in problem-solving when designing a computer program. %1. Define the concept of problem definition in programming. Why is it important to clearly define a problem before writing a program? %1. Design a program that reads two numbers and calculates their greatest common divisor (GCD). Provide the algorithm, flowchart, and pseudocode for your design. %1. What is debugging in the context of programming? Why is it an important step in program development? %1. Describe the three main types of programming errors: syntax errors, runtime errors, and logical errors. Provide an example of each. %1. What is program documentation? Explain its importance and list the key types of documentation in software development. %1. What is structured programming? Explain its main concepts, including sequence, selection, and iteration. %1. Discuss the benefits of using structured programming compared to unstructured programming. %1. Compare and contrast the top-down and bottom-up programming approaches. When would each approach be most suitable in software development? %1. Analyze how top-down programming helps in breaking down complex problems into manageable sub-problems. Provide an example of a problem that can be solved using the top-down approach. %1. Evaluate the advantages and disadvantages of structured programming. Why is it widely used in modern software development?