Introduction to Problem Solving
Lesson Objective
In this lesson you will learn how Programming is primarily a problem-solving skill and explore some real-world problems that are solved through programming. This is a live class and a warm welcome to the class on Problem solving. You will find more exciting things in this lesson. Happy learning!!
Why is Problem solving important?
You probably ask yourself this question everyday, “Why is this important and why am I doing this?” So, let’s see why problem solving is so important in our lives. Solving problems means making choices. Typically, effective problem-solving skills result in “happier, more confident, and more independent” individuals. This skill builds confidence in you and helps you make better decisions.
What can you expect from this course?
You will find back to back problems to solve, that will help you get into the mode of Problem solving.
What’s unique about Kalvi’s course?
Usually programming courses deals with teaching you the syntax and formats to learn a Programming Language. But this course is a blend of Problem solving with Programming where through programs you get to solve problems. And the most unique thing about this course is you will learn 2 Programming languages (the most in-demand) parallely. Yes, you heard it right!! You will learn C++ and Python in all the lessons.
About this course
You should know how this course is split across weeks to plan your learning better.
No. of hours dedicated for this course per week: 8 hours
Course duration in weeks: 16 weeks course
Course duration in hours: 128 weeks course
No. of modules in the course: 4 modules
Continuous Assessment: Once in 3 weeks
Source: Giphy
Reading content on the topic
You are here because engineering is your career choice, you must question yourself why the world needs engineers.
Engineers are needed to solve the world’s problems (from ‘developing’ a bridge for crossing a water body to ‘developing’ computers for processing data)
In the last 2 decades, computer hardware got less expensive and the Internet opened the gates for many advanced technologies
The job of a ‘software’ engineer is to solve problems by building software using various technologies that have evolved over the years.
Some technologies and domains trending in computer science are:
- AI (Artificial intelligence)
- Big Data Analytics
- IoT (Internet of Things)
- VR & AR (Virtual Reality & Augmented Reality)
- Blockchain
- Cybersecurity
Now let’s get on with looking at the various steps involved in solving a problem ( yes, any problem)
Steps in Problem Solving
1. Define the problem The first step in solving a problem is to actually understand the problem and specifically identify the situation & circumstances that make it a problem. You have to evaluate various characteristics of the problem at hand. This process works in the following manner
- Diagnose the problem
- Understand its context
- Understand its background and behaviour/circumstances that made it a problem
- Segregation of symptoms from the actual problem
2. Determine the root cause
Generally, complex problems require a team to explore and solve them. In this next step, the team agrees on the problem definition and explores the possible and probable causes of the problem.
Various causes are studied and observed by the team until the root cause of the problem is identified.
The discovery of the root cause further helps in improving the problem definition and its understanding.
3. Develop the alternative solutions
- The next step is to identify and develop various possible solutions to the problem. These multiple alternative solutions can significantly enhance the quality of your ideal solution.
- The solutions proposed are then assessed on how each of them relate to the root cause and symptoms of the problem.
- The less desirable solutions are discarded after noting down useful elements from them.
- The remaining solutions are then evaluated for advantages and disadvantages.
4. Select a solution
The next step is making a choice. You have to choose the best possible solution from the list you may have curated and this choice is made using 3 steps:
a. Judge Feasibility: The efficiency of the solutions and whether these solutions will solve the problem without causing any unanticipated issues is evaluated.
b. Select ‘Best-fit’ for the user: The most ideal solution according to the user requirements and engineering constraints is decided upon by the team
c. A solution is chosen
5. Implement the solution
- After a solution has been selected, the team decides and agrees upon various roles and responsibilities of members.
- The team prepares a “plan of action” or plan for the process(how the problem will be solved)
- The tools and technologies that will be used are decided based on the expertise of the team members and the characteristics of the solution.
- The start date is determined and the key milestones are set.
6. Evaluate the outcome
- In the last step, the effectiveness of the solution is evaluated. This is done by monitoring the outcome and its performance and comparing the data obtained with the set expectations.
- Other parameters like cost and schedule are examined to identify the feasibility of the process for future projects.
- The findings are then used to decide how the existing plan should be revised to better tackle similar problems in the future.
- If the solution to the problem is not agreeable by the user or it is not upto the mark, then the problem is tackled again using the experience from the previous iteration and the steps are repeated in a similar manner.
Presentation handled in the class
You can use this Presentation for future reference, this was handled in the live class as a part of the lecture.
PS0001 - Introduction to Problem Solving
Useful resources for you
Here are some interesting videos that can help you post-class to dive deeper into this topic.