🧭 Topic: Problem Solving

Quick Overview

This foundational topic introduces the core skill of programming: problem-solving. It’s not about writing code immediately, but about learning how to think logically and systematically. We will explore how to break down complex problems into smaller, manageable steps using a structured approach. By the end of this lecture, students will understand the principles of algorithmic thinking and be able to plan solutions using tools like flowcharts and pseudocode before writing a single line of code.


📌 Covered in This Topic

  • The Art of Problem Solving: An introduction to planning, creativity, innovation, and clearly defining the cause, goal, and potential solutions to a problem.
  •   Stages of Algorithmic Thinking: A 7-step logical process for solving problems:
    1.  Define the Problem
    2.  Analyze and Understand
    3.  Identify Potential Solutions
    4.  Evaluate and Choose a Solution
    5.  Plan Actions
    6.  Implement the Code
    7.  Review the Results
  •   What is an Algorithm? Defining an algorithm as a step-by-step procedure or a recipe for solving a problem.
  •   Introduction to Flowcharts: Learning to visualize the flow of a solution using standard symbols to represent actions, decisions, and data flow.
  •   Introduction to Pseudocode: Understanding how to write a plain-language, structured description of an algorithm’s steps before translating it into a programming language.
  •   Choosing the Best Algorithm: An introduction to the criteria for evaluating different solutions, focusing on time and space efficiency, reliability, and simplicity.

📑 Slides & Materials


🛠️ Workshop & Assignments


🌐 Additional Resources


⏩ Navigation


Tip

If something doesn’t make sense — don’t stay stuck alone. Ask the TA to clarify it right away. Often, a quick question can save you a lot of time and frustration. Remember: if you’re confused, chances are others are too.