What Is Problem Solving? How Software Engineers Approach Complex Challenges

HackerRank AI Promotion

From debugging an existing system to designing an entirely new software application, a day in the life of a software engineer is filled with various challenges and complexities. The one skill that glues these disparate tasks together and makes them manageable? Problem solving . 

Throughout this blog post, we’ll explore why problem-solving skills are so critical for software engineers, delve into the techniques they use to address complex challenges, and discuss how hiring managers can identify these skills during the hiring process. 

What Is Problem Solving?

But what exactly is problem solving in the context of software engineering? How does it work, and why is it so important?

Problem solving, in the simplest terms, is the process of identifying a problem, analyzing it, and finding the most effective solution to overcome it. For software engineers, this process is deeply embedded in their daily workflow. It could be something as simple as figuring out why a piece of code isn’t working as expected, or something as complex as designing the architecture for a new software system. 

In a world where technology is evolving at a blistering pace, the complexity and volume of problems that software engineers face are also growing. As such, the ability to tackle these issues head-on and find innovative solutions is not only a handy skill — it’s a necessity. 

The Importance of Problem-Solving Skills for Software Engineers

Problem-solving isn’t just another ability that software engineers pull out of their toolkits when they encounter a bug or a system failure. It’s a constant, ongoing process that’s intrinsic to every aspect of their work. Let’s break down why this skill is so critical.

Driving Development Forward

Without problem solving, software development would hit a standstill. Every new feature, every optimization, and every bug fix is a problem that needs solving. Whether it’s a performance issue that needs diagnosing or a user interface that needs improving, the capacity to tackle and solve these problems is what keeps the wheels of development turning.

It’s estimated that 60% of software development lifecycle costs are related to maintenance tasks, including debugging and problem solving. This highlights how pivotal this skill is to the everyday functioning and advancement of software systems.

Innovation and Optimization

The importance of problem solving isn’t confined to reactive scenarios; it also plays a major role in proactive, innovative initiatives . Software engineers often need to think outside the box to come up with creative solutions, whether it’s optimizing an algorithm to run faster or designing a new feature to meet customer needs. These are all forms of problem solving.

Consider the development of the modern smartphone. It wasn’t born out of a pre-existing issue but was a solution to a problem people didn’t realize they had — a device that combined communication, entertainment, and productivity into one handheld tool.

Increasing Efficiency and Productivity

Good problem-solving skills can save a lot of time and resources. Effective problem-solvers are adept at dissecting an issue to understand its root cause, thus reducing the time spent on trial and error. This efficiency means projects move faster, releases happen sooner, and businesses stay ahead of their competition.

Improving Software Quality

Problem solving also plays a significant role in enhancing the quality of the end product. By tackling the root causes of bugs and system failures, software engineers can deliver reliable, high-performing software. This is critical because, according to the Consortium for Information and Software Quality, poor quality software in the U.S. in 2022 cost at least $2.41 trillion in operational issues, wasted developer time, and other related problems.

Problem-Solving Techniques in Software Engineering

So how do software engineers go about tackling these complex challenges? Let’s explore some of the key problem-solving techniques, theories, and processes they commonly use.

Decomposition

Breaking down a problem into smaller, manageable parts is one of the first steps in the problem-solving process. It’s like dealing with a complicated puzzle. You don’t try to solve it all at once. Instead, you separate the pieces, group them based on similarities, and then start working on the smaller sets. This method allows software engineers to handle complex issues without being overwhelmed and makes it easier to identify where things might be going wrong.

Abstraction

In the realm of software engineering, abstraction means focusing on the necessary information only and ignoring irrelevant details. It is a way of simplifying complex systems to make them easier to understand and manage. For instance, a software engineer might ignore the details of how a database works to focus on the information it holds and how to retrieve or modify that information.

Algorithmic Thinking

At its core, software engineering is about creating algorithms — step-by-step procedures to solve a problem or accomplish a goal. Algorithmic thinking involves conceiving and expressing these procedures clearly and accurately and viewing every problem through an algorithmic lens. A well-designed algorithm not only solves the problem at hand but also does so efficiently, saving computational resources.

Parallel Thinking

Parallel thinking is a structured process where team members think in the same direction at the same time, allowing for more organized discussion and collaboration. It’s an approach popularized by Edward de Bono with the “ Six Thinking Hats ” technique, where each “hat” represents a different style of thinking.

In the context of software engineering, parallel thinking can be highly effective for problem solving. For instance, when dealing with a complex issue, the team can use the “White Hat” to focus solely on the data and facts about the problem, then the “Black Hat” to consider potential problems with a proposed solution, and so on. This structured approach can lead to more comprehensive analysis and more effective solutions, and it ensures that everyone’s perspectives are considered.

This is the process of identifying and fixing errors in code . Debugging involves carefully reviewing the code, reproducing and analyzing the error, and then making necessary modifications to rectify the problem. It’s a key part of maintaining and improving software quality.

Testing and Validation

Testing is an essential part of problem solving in software engineering. Engineers use a variety of tests to verify that their code works as expected and to uncover any potential issues. These range from unit tests that check individual components of the code to integration tests that ensure the pieces work well together. Validation, on the other hand, ensures that the solution not only works but also fulfills the intended requirements and objectives.

Explore verified tech roles & skills.

The definitive directory of tech roles, backed by machine learning and skills intelligence.

Explore all roles

Evaluating Problem-Solving Skills

We’ve examined the importance of problem-solving in the work of a software engineer and explored various techniques software engineers employ to approach complex challenges. Now, let’s delve into how hiring teams can identify and evaluate problem-solving skills during the hiring process.

Recognizing Problem-Solving Skills in Candidates

How can you tell if a candidate is a good problem solver? Look for these indicators:

  • Previous Experience: A history of dealing with complex, challenging projects is often a good sign. Ask the candidate to discuss a difficult problem they faced in a previous role and how they solved it.
  • Problem-Solving Questions: During interviews, pose hypothetical scenarios or present real problems your company has faced. Ask candidates to explain how they would tackle these issues. You’re not just looking for a correct solution but the thought process that led them there.
  • Technical Tests: Coding challenges and other technical tests can provide insight into a candidate’s problem-solving abilities. Consider leveraging a platform for assessing these skills in a realistic, job-related context.

Assessing Problem-Solving Skills

Once you’ve identified potential problem solvers, here are a few ways you can assess their skills:

  • Solution Effectiveness: Did the candidate solve the problem? How efficient and effective is their solution?
  • Approach and Process: Go beyond whether or not they solved the problem and examine how they arrived at their solution. Did they break the problem down into manageable parts? Did they consider different perspectives and possibilities?
  • Communication: A good problem solver can explain their thought process clearly. Can the candidate effectively communicate how they arrived at their solution and why they chose it?
  • Adaptability: Problem-solving often involves a degree of trial and error. How does the candidate handle roadblocks? Do they adapt their approach based on new information or feedback?

Hiring managers play a crucial role in identifying and fostering problem-solving skills within their teams. By focusing on these abilities during the hiring process, companies can build teams that are more capable, innovative, and resilient.

Key Takeaways

As you can see, problem solving plays a pivotal role in software engineering. Far from being an occasional requirement, it is the lifeblood that drives development forward, catalyzes innovation, and delivers of quality software. 

By leveraging problem-solving techniques, software engineers employ a powerful suite of strategies to overcome complex challenges. But mastering these techniques isn’t simple feat. It requires a learning mindset, regular practice, collaboration, reflective thinking, resilience, and a commitment to staying updated with industry trends. 

For hiring managers and team leads, recognizing these skills and fostering a culture that values and nurtures problem solving is key. It’s this emphasis on problem solving that can differentiate an average team from a high-performing one and an ordinary product from an industry-leading one.

At the end of the day, software engineering is fundamentally about solving problems — problems that matter to businesses, to users, and to the wider society. And it’s the proficient problem solvers who stand at the forefront of this dynamic field, turning challenges into opportunities, and ideas into reality.

This article was written with the help of AI. Can you tell which parts?

Get started with HackerRank

Over 2,500 companies and 40% of developers worldwide use HackerRank to hire tech talent and sharpen their skills.

Introduction to Scientific Computing and Problem Solving

Welcome to CS4, Introduction to Scientific Computing and Problem Solving . CS4 provides an introduction to using computers to solve STEM (Science, Technology, Engineering, and Mathematics) data analysis, visualization, simulation, and numerical analysis problems. The course begins with an introduction to the basics of programming, accompanied by several applications of fundamental coding elements and concepts. As we do this we will explore some of the breadth of Computer Science as a discipline. The first part of the course (which runs until Spring Break) will be taught in Python. Following this, we will explore more specialized topics related to scientific computing and mathematics that will allow students to access and analyze a number of "real world" problems. The later portion of the course will be taught in MATLAB.

Requirements: No prior programming experience is required to take this course (Python and MATLAB are easy and fun to use!). A calculus course (perhaps in high school) is highly recommended.

If you have any feedback about assignments or the course in general, please fill out the Anonymous Feedback Form to let the course staff know. If you have any academic/SEAS accommodations that we should be aware of, please fill out this form so that the course staff can best support you. We understand that being a student can be stressful and that certain circumstances can affect your performance in the course. Please refer to the syllabus for more information about receiving academic support for CS0040 or email the HTAs or Prof. Gaudette for more information regarding accommodations. You can also find some resources the CS department has compiled for students here and a helpful message from your TAs here

COURSE DOCUMENTS

Quick links, working from home, how do ta hours work, diversity and inclusion goals.

to link-->
NameOutDue
1/231/30
1/302/6
2/62/13
2/132/20
2/202/27
2/273/6
3/63/13
3/133/20
4/34/10
4/104/17
4/174/24
3/123/17
NameOutDue
2/72/28
3/13/21
4/44/25
to link-->
TopicsDateSection Notes
1/23
1/28
1/30
2/4
2/6
2/11
2/13
Long Weekend!2/18
2/20
2/25
2/27
3/4
3/6
3/11
3/13
3/18
3/20
Spring Break!3/27
4/1
4/3
4/8
4/10
4/15
4/17
4/22
4/24
MATLAB Quiz4/29

introduction to computer and problem solving

Jason Gaudette (jegaudet)

Team: Puppies

Welcome to CS4! I am happy to be your instructor this semester. As a research engineer with loads of real-world experience in scientific computing, my goal is to teach you the art and joy of the field. Outside of my main job, I coach kids in FIRST LEGO robotics, volunteer for the IEEE, teach programming and electronics courses, sail a Hobie Cat, and run with my dog Luna."

E-mail us at [email protected] if you have administrative or private questions.

introduction to computer and problem solving

Griffin Kao (gk16)

Team: Babies

Hi there, I’m a junior from Philadelphia studying computer science and engineering. A fun fact about me is that Kobe Bryant went to my high school!

introduction to computer and problem solving

Hersh Gupta (hgupta1)

Hey everybody! My name is Hersh and I’m a junior concentrating in chemistry and computational biology. I’m a big sports fan and love going on Netflix binges but never actually finishing the show.

introduction to computer and problem solving

Joy Bestourous (jbestour)

Hi hello! I'm a junior studying computer science while filling pre-med requirements (and maybe pre-law! Who knows!). I like New York pizza, iced coffee, going to the gym, dancing, and singing Disney songs. Loudly.

E-mail us at [email protected] or post a question (privately!) on Piazza if you have any questions about the course.

introduction to computer and problem solving

Annie He (ahe6)

Hey y’all! I’m a junior from Dallas, TX concentrating in computational biology. If you don’t see me in the scili, I’m either chilling in my pjs or exploring new restaurants! I also love to rock climb, ski, bungee jump, basically anything adventurous! :)

introduction to computer and problem solving

Alex Liu (aliu31)

I am a junior concentrating in Applied Mathematics and Computer Science. I’m from Eugene, Oregon and outside of class I am involved with the Socially Responsible Investment Fund, I play golf whenever I get the chance, and I try my best to keep up on practicing the Piano. I also run Brown Data Science, a club that, much like this class, brings educational opportunities related to Data Science to undergraduates of all academic backgrounds.

introduction to computer and problem solving

Aryan Srivastava (asriva11)

I am a freshman concentrating in CS (probably). I love watching and playing basketball (1v1 me), reading and talking philosophy, and watching artisan videos on youtube! My favorite thing to eat at Brown is a warm Blue Room Chocolate Chip Muffin.

introduction to computer and problem solving

Ellen Ling (eling)

Hi, I’m a junior from Shanghai studying physics and CS. I like good movies and dance and babies!

introduction to computer and problem solving

Irene Rhee (irhee)

Sup dudes, my name is Irene and I’m a junior from Corvallis, OR studying computer science! I like to drink my coffee black, am part of a dance group called Daebak (come to our spring show!!), and enjoy dim sum, boba, and tagging people in memes (go like my post on subtle asian traits). My favorite word is lit.

introduction to computer and problem solving

Joseph Chen (jchen88)

Hey everyone! I’m a junior from California concentrating in Neuroscience and CS, and I’m a big fan of all things related to swimming, playing basketball, Game of Thrones, and stand-up comedy.

introduction to computer and problem solving

Jarrett Huddleston (jhuddle1)

Hey! I’m a sophomore from Eastern Massachusetts concentrating in computer science. Outside of classes I enjoy camping and music, and I’m always looking for a good book!

introduction to computer and problem solving

Milla Shin (mshin7)

I’m a junior from Tokyo studying computer science. I like going to the beach. I like food and cooking! I like snowboarding and scuba diving! I love sweet potatoes, avocado, and matcha! Yummy. I like puppies but I like babies too.

introduction to computer and problem solving

Pedro de Freitas (pfreitas)

Senior from Portland, Maine studying cognitive neuroscience. I’m a lyra performer/instructor who also enjoys painting.

introduction to computer and problem solving

Solomon Rueschemeyer-Bailey (sruesche)

I am a junior trying not to let school get in the way of college. Come to my hours or my section if you want to learn about: The Bucket Theorem, whether or not true Love exists, and the future of teleportation.

introduction to computer and problem solving

Tiffany Ding (tding5)

Hi! I’m a sophomore from upstate NY studying applied math, economics, and computer science. When I’m not in the CIT, you can find me going for a run or taking photos for the Brown Daily Herald. I also love puns, penguins, and podcasts!

  • Class 6 Maths
  • Class 6 Science
  • Class 6 Social Science
  • Class 6 English
  • Class 7 Maths
  • Class 7 Science
  • Class 7 Social Science
  • Class 7 English
  • Class 8 Maths
  • Class 8 Science
  • Class 8 Social Science
  • Class 8 English
  • Class 9 Maths
  • Class 9 Science
  • Class 9 Social Science
  • Class 9 English
  • Class 10 Maths
  • Class 10 Science
  • Class 10 Social Science
  • Class 10 English
  • Class 11 Maths
  • Class 11 Computer Science (Python)
  • Class 11 English
  • Class 12 Maths
  • Class 12 English
  • Class 12 Economics
  • Class 12 Accountancy
  • Class 12 Physics
  • Class 12 Chemistry
  • Class 12 Biology
  • Class 12 Computer Science (Python)
  • Class 12 Physical Education
  • GST and Accounting Course
  • Excel Course
  • Tally Course
  • Finance and CMA Data Course
  • Payroll Course

Interesting

  • Learn English
  • Learn Excel
  • Learn Tally
  • Learn GST (Goods and Services Tax)
  • Learn Accounting and Finance
  • GST Tax Invoice Format
  • Accounts Tax Practical
  • Tally Ledger List
  • GSTR 2A - JSON to Excel

Are you in school ? Do you love Teachoo?

We would love to talk to you! Please fill this form so that we can contact you

You are learning...

Chapter 4 Class 11 - Introduction to Problem Solving

Click on any of the links below to start learning from Teachoo ...

Do you want to learn how to  solve problems  using computers? Do you want to develop your  logical thinking  and  programming skills ? Do you want to explore the fascinating world of  algorithms  and  data structures ? If you answered yes to any of these questions, then this chapter is for you! 🙌

In this chapter, you will learn about the basic concepts and techniques of problem solving using computers. You will learn how to:

  • Define a problem and its specifications 📝
  • Analyze a problem and identify its inputs, outputs and processing steps 🔎
  • Design an algorithm to solve a problem using various methods such as pseudocode, flowcharts and decision tables 📊
  • Implement an algorithm using a programming language such as Python 🐍
  • Test and debug your program to ensure its correctness and efficiency 🛠️
  • Evaluate your solution and compare it with other possible solutions 💯

By the end of this chapter, you will be able to apply your problem solving skills to various domains such as mathematics, science, engineering, games, art and more. You will also be able to appreciate the beauty and elegance of algorithms and data structures, and how they can help you solve complex and challenging problems. 😍

This chapter is designed for students who have some basic knowledge of computers and programming, but want to improve their problem solving abilities. It is also suitable for anyone who is interested in learning more about computer science and its applications. 🚀

MCQ questions (1 mark each)

True or false questions (1 mark each), fill in the blanks questions (1 mark each), very short answer type questions (1 mark each), short answer type questions (2 marks each), long answer type questions (3 marks each).

What's in it?

Hi, it looks like you're using AdBlock :(

Please login to view more pages. it's free :), solve all your doubts with teachoo black.

MyCSTutorial- The path to Success in Exam

THE PATH TO SUCCESS IN EXAM...

Introduction to Problem Solving – Notes

Introduction to problem solving.

  • Steps for problem solving ( analysing the problem, developing an algorithm, coding, testing and debugging).
  • flow chart and
  • pseudo code,

Decomposition

Introduction

Computers is machine that not only use to develop the software. It is also used for solving various day-to-day problems.

Computers cannot solve a problem by themselves. It solve the problem on basic of the step-by-step instructions given by us.

Thus, the success of a computer in solving a problem depends on how correctly and precisely we –

  • Identifying (define) the problem
  • Designing & developing an algorithm and
  • Implementing the algorithm (solution) do develop a program using any programming language.

Thus problem solving is an essential skill that a computer science student should know.

Steps for Problem Solving-

1. Analysing the problem

Analysing the problems means understand a problem clearly before we begin to find the solution for it. Analysing a problem helps to figure out what are the inputs that our program should accept and the outputs that it should produce.

2. Developing an Algorithm

It is essential to device a solution before writing a program code for a given problem. The solution is represented in natural language and is called an algorithm.

Algorithm: A set of exact steps which when followed, solve the problem or accomplish the required task.

Coding is the process of converting the algorithm into the program which can be understood by the computer to generate the desired solution.

You can use any high level programming languages for writing a program.

4. Testing and Debugging

The program created should be tested on various parameters.

  • The program should meet the requirements of the user.
  • It must respond within the expected time.
  • It should generate correct output for all possible inputs.
  • In the presence of syntactical errors, no output will be obtained.
  • In case the output generated is incorrect, then the program should be checked for logical errors, if any.

Software Testing methods are

  • unit or component testing,
  • integration testing,
  • system testing, and
  • acceptance testing

Debugging – The errors or defects found in the testing phases are debugged or rectified and the program is again tested. This continues till all the errors are removed from the program.

Algorithm is a set of sequence which followed to solve a problem.

Algorithm for an activity ‘riding a bicycle’: 1) remove the bicycle from the stand, 2) sit on the seat of the bicycle, 3) start peddling, 4) use breaks whenever needed and 5) stop on reaching the destination.

Algorithm for Computing GCD of two numbers:

Step 1: Find the numbers (divisors) which can divide the given numbers.

Step 2: Then find the largest common number from these two lists.

A finite sequence of steps required to get the desired output is called an algorithm. Algorithm has a definite beginning and a definite end, and consists of a finite number of steps.

Characteristics of a good algorithm

  • Precision — the steps are precisely stated or defined.
  • Uniqueness — results of each step are uniquely defined and only depend on the input and the result of the preceding steps.
  • Finiteness — the algorithm always stops after a finite number of steps.
  • Input — the algorithm receives some input.
  • Output — the algorithm produces some output.

While writing an algorithm, it is required to clearly identify the following:

  • The input to be taken from the user.
  • Processing or computation to be performed to get the desired result.
  • The output desired by the user.

Representation of Algorithms

There are two common methods of representing an algorithm —

Flowchart — Visual Representation of Algorithms

A flowchart is a visual representation of an algorithm. A flowchart is a diagram made up of boxes, diamonds and other shapes, connected by arrows. Each shape represents a step of the solution process and the arrow represents the order or link among the steps. There are standardised symbols to draw flowcharts.

Start/End – Also called “Terminator” symbol. It indicates where the flow starts and ends.

Process – Also called “Action Symbol,” it represents a process, action, or a single step. Decision – A decision or branching point, usually a yes/no or true/ false question is asked, and based on the answer, the path gets split into two branches.

Input / Output – Also called data symbol, this parallelogram shape is used to input or output data.

Arrow – Connector to show order of flow between shapes.

Question: Write an algorithm to find the square of a number. Algorithm to find square of a number. Step 1: Input a number and store it to num Step 2: Compute num * num and store it in square Step 3: Print square

The algorithm to find square of a number can be represented pictorially using flowchart

introduction to computer and problem solving

A pseudocode (pronounced Soo-doh-kohd) is another way of representing an algorithm. It is considered as a non-formal language that helps programmers to write algorithm. It is a detailed description of instructions that a computer must follow in a particular order.

  • It is intended for human reading and cannot be executed directly by the computer.
  • No specific standard for writing a pseudocode exists.
  • The word “pseudo” means “not real,” so “pseudocode” means “not real code”.

Keywords are used in pseudocode:

Question : Write an algorithm to calculate area and perimeter of a rectangle, using both pseudocode and flowchart.

Pseudocode for calculating area and perimeter of a rectangle.

INPUT length INPUT breadth COMPUTE Area = length * breadth PRINT Area COMPUTE Perim = 2 * (length + breadth) PRINT Perim The flowchart for this algorithm

introduction to computer and problem solving

Benefits of Pseudocode

  • A pseudocode of a program helps in representing the basic functionality of the intended program.
  • By writing the code first in a human readable language, the programmer safeguards against leaving out any important step.
  • For non-programmers, actual programs are difficult to read and understand, but pseudocode helps them to review the steps to confirm that the proposed implementation is going to achieve the desire output.

Flow of Control :

The flow of control depicts the flow of process as represented in the flow chart. The process can flow in

In a sequence steps of algorithms (i.e. statements) are executed one after the other.

In a selection, steps of algorithm is depend upon the conditions i.e. any one of the alternatives statement is selected based on the outcome of a condition.

Conditionals are used to check possibilities. The program checks one or more conditions and perform operations (sequence of actions) depending on true or false value of the condition.

Conditionals are written in the algorithm as follows: If is true then steps to be taken when the condition is true/fulfilled otherwise steps to be taken when the condition is false/not fulfilled

Question : Write an algorithm to check whether a number is odd or even. • Input: Any number • Process: Check whether the number is even or not • Output: Message “Even” or “Odd” Pseudocode of the algorithm can be written as follows: PRINT “Enter the Number” INPUT number IF number MOD 2 == 0 THEN PRINT “Number is Even” ELSE PRINT “Number is Odd”

The flowchart representation of the algorithm

flow_chart_if_else

Repetitions are used, when we want to do something repeatedly, for a given number of times.

Question : Write pseudocode and draw flowchart to accept numbers till the user enters 0 and then find their average. Pseudocode is as follows:

Step 1: Set count = 0, sum = 0 Step 2: Input num Step 3: While num is not equal to 0, repeat Steps 4 to 6 Step 4: sum = sum + num Step 5: count = count + 1 Step 6: Input num Step 7: Compute average = sum/count Step 8: Print average The flowchart representation is

flow_chart_repetition

Once an algorithm is finalised, it should be coded in a high-level programming language as selected by the programmer. The ordered set of instructions are written in that programming language by following its syntax.

The syntax is the set of rules or grammar that governs the formulation of the statements in the language, such as spelling, order of words, punctuation, etc.

Source Code: A program written in a high-level language is called source code.

We need to translate the source code into machine language using a compiler or an interpreter so that it can be understood by the computer.

Decomposition is a process to ‘decompose’ or break down a complex problem into smaller subproblems. It is helpful when we have to solve any big or complex problem.

  • Breaking down a complex problem into sub problems also means that each subproblem can be examined in detail.
  • Each subproblem can be solved independently and by different persons (or teams).
  • Having different teams working on different sub-problems can also be advantageous because specific sub-problems can be assigned to teams who are experts in solving such problems.

Once the individual sub-problems are solved, it is necessary to test them for their correctness and integrate them to get the complete solution.

Computer Science Answer Key Term 2 Board Examination

  • Input Output in Python

introduction to computer and problem solving

Related Posts

society law ethics

Society, Law, and Ethics: Societal Impacts – Notes

Data structure: stacks – notes.

Class 12 computer science Python revision tour - I

Python Revision Tour I : Basics of Python – Notes

python module math random statistic

Introduction to Python Module – Notes

sorting_techniques_bubble_insertion

Sorting Techniques in Python – Notes

Dictionary handling in python – notes, tuples manipulation in python notes, list manipulation – notes, leave a comment cancel reply.

You must be logged in to post a comment.

You cannot copy content of this page

introduction to computer and problem solving

  • Computer Science and Engineering
  • Introduction to Problem Solving and Programming (Video) 
  • Co-ordinated by : IIT Kanpur
  • Available from : 2009-12-31
  • Watch on YouTube
  • Assignments
  • Transcripts
Sl.No Chapter Name English
1Lecture 1PDF unavailable
2Lecture 2PDF unavailable
3Lecture 3PDF unavailable
4Lecture 4PDF unavailable
5Lecture 5PDF unavailable
6Lecture 6PDF unavailable
7Lecture 7PDF unavailable
8Lecture 8PDF unavailable
9Lecture 9PDF unavailable
10Lecture 10PDF unavailable
11Lecture 11PDF unavailable
12lecture 12PDF unavailable
13Lecture 13PDF unavailable
14Lecture 14PDF unavailable
15Lecture 15PDF unavailable
16Lecture 16PDF unavailable
17Lecture 17PDF unavailable
18Lecture 18PDF unavailable
19Lecture 19PDF unavailable
20Lecture 20PDF unavailable
21Lecture 21PDF unavailable
22Lecture 21PDF unavailable
23Lecture 23PDF unavailable
24Lecture 24PDF unavailable
Sl.No Language Book link
1EnglishNot Available
2BengaliNot Available
3GujaratiNot Available
4HindiNot Available
5KannadaNot Available
6MalayalamNot Available
7MarathiNot Available
8TamilNot Available
9TeluguNot Available

Introduction to Problem Solving Skills

What is problem solving and why is it important.

Defining problem solving skills

The ability to solve problems is a basic life skill and is essential to our day-to-day lives, at home, at school, and at work. We solve problems every day without really thinking about how we solve them. For example: it’s raining and you need to go to the store. What do you do? There are lots of possible solutions. Take your umbrella and walk. If you don't want to get wet, you can drive, or take the bus. You might decide to call a friend for a ride, or you might decide to go to the store another day. There is no right way to solve this problem and different people will solve it differently.

Problem solving is the process of identifying a problem, developing possible solution paths, and taking the appropriate course of action.

Why is problem solving important? Good problem solving skills empower you not only in your personal life but are critical in your professional life. In the current fast-changing global economy, employers often identify everyday problem solving as crucial to the success of their organizations. For employees, problem solving can be used to develop practical and creative solutions, and to show independence and initiative to employers.

Throughout this case study you will be asked to jot down your thoughts in idea logs. These idea logs are used for reflection on concepts and for answering short questions. When you click on the "Next" button, your responses will be saved for that page. If you happen to close the webpage, you will lose your work on the page you were on, but previous pages will be saved. At the end of the case study, click on the "Finish and Export to PDF" button to acknowledge completion of the case study and receive a PDF document of your idea logs.

What Does Problem Solving Look Like?

IDEAL heuristic strategy for problem solving

The ability to solve problems is a skill, and just like any other skill, the more you practice, the better you get. So how exactly do you practice problem solving? Learning about different problem solving strategies and when to use them will give you a good start. Problem solving is a process. Most strategies provide steps that help you identify the problem and choose the best solution. There are two basic types of strategies: algorithmic and heuristic.

Algorithmic strategies are traditional step-by-step guides to solving problems. They are great for solving math problems (in algebra: multiply and divide, then add or subtract) or for helping us remember the correct order of things (a mnemonic such as “Spring Forward, Fall Back” to remember which way the clock changes for daylight saving time, or “Righty Tighty, Lefty Loosey” to remember what direction to turn bolts and screws). Algorithms are best when there is a single path to the correct solution.

But what do you do when there is no single solution for your problem? Heuristic methods are general guides used to identify possible solutions. A popular one that is easy to remember is IDEAL [ Bransford & Stein, 1993 ] :

  • I dentify the problem
  • D efine the context of the problem
  • E xplore possible strategies
  • A ct on best solution

IDEAL is just one problem solving strategy. Building a toolbox of problem solving strategies will improve your problem solving skills. With practice, you will be able to recognize and use multiple strategies to solve complex problems.

Watch the video

What is the best way to get a peanut out of a tube that cannot be moved? Watch a chimpanzee solve this problem in the video below [ Geert Stienissen, 2010 ].

[PDF transcript]

Describe the series of steps you think the chimpanzee used to solve this problem.

  • [Page 2: What does Problem Solving Look Like?] Describe the series of steps you think the chimpanzee used to solve this problem.

Think of an everyday problem you've encountered recently and describe your steps for solving it.

  • [Page 2: What does Problem Solving Look Like?] Think of an everyday problem you've encountered recently and describe your steps for solving it.

Developing Problem Solving Processes

Problem solving is a process that uses steps to solve problems. But what does that really mean? Let's break it down and start building our toolbox of problem solving strategies.

What is the first step of solving any problem? The first step is to recognize that there is a problem and identify the right cause of the problem. This may sound obvious, but similar problems can arise from different events, and the real issue may not always be apparent. To really solve the problem, it's important to find out what started it all. This is called identifying the root cause .

Example: You and your classmates have been working long hours on a project in the school's workshop. The next afternoon, you try to use your student ID card to access the workshop, but discover that your magnetic strip has been demagnetized. Since the card was a couple of years old, you chalk it up to wear and tear and get a new ID card. Later that same week you learn that several of your classmates had the same problem! After a little investigation, you discover that a strong magnet was stored underneath a workbench in the workshop. The magnet was the root cause of the demagnetized student ID cards.

The best way to identify the root cause of the problem is to ask questions and gather information. If you have a vague problem, investigating facts is more productive than guessing a solution. Ask yourself questions about the problem. What do you know about the problem? What do you not know? When was the last time it worked correctly? What has changed since then? Can you diagram the process into separate steps? Where in the process is the problem occurring? Be curious, ask questions, gather facts, and make logical deductions rather than assumptions.

Watch Adam Savage from Mythbusters, describe his problem solving process [ ForaTv, 2010 ]. As you watch this section of the video, try to identify the questions he asks and the different strategies he uses.

Adam Savage shared many of his problem solving processes. List the ones you think are the five most important. Your list may be different from other people in your class—that's ok!

  • [Page 3: Developing Problem Solving Processes] Adam Savage shared many of his problem solving processes. List the ones you think are the five most important.

“The ability to ask the right question is more than half the battle of finding the answer.” — Thomas J. Watson , founder of IBM

Voices From the Field: Solving Problems

In manufacturing facilities and machine shops, everyone on the floor is expected to know how to identify problems and find solutions. Today's employers look for the following skills in new employees: to analyze a problem logically, formulate a solution, and effectively communicate with others.

In this video, industry professionals share their own problem solving processes, the problem solving expectations of their employees, and an example of how a problem was solved.

Meet the Partners:

  • Taconic High School in Pittsfield, Massachusetts, is a comprehensive, fully accredited high school with special programs in Health Technology, Manufacturing Technology, and Work-Based Learning.
  • Berkshire Community College in Pittsfield, Massachusetts, prepares its students with applied manufacturing technical skills, providing hands-on experience at industrial laboratories and manufacturing facilities, and instructing them in current technologies.
  • H.C. Starck in Newton, Massachusetts, specializes in processing and manufacturing technology metals, such as tungsten, niobium, and tantalum. In almost 100 years of experience, they hold over 900 patents, and continue to innovate and develop new products.
  • Nypro Healthcare in Devens, Massachusetts, specializes in precision injection-molded healthcare products. They are committed to good manufacturing processes including lean manufacturing and process validation.

Making Decisions

Now that you have a couple problem solving strategies in your toolbox, let's practice. In this exercise, you are given a scenario and you will be asked to decide what steps you would take to identify and solve the problem.

Scenario: You are a new employee and have just finished your training. As your first project, you have been assigned the milling of several additional components for a regular customer. Together, you and your trainer, Bill, set up for the first run. Checking your paperwork, you gather the tools and materials on the list. As you are mounting the materials on the table, you notice that you didn't grab everything and hurriedly grab a few more items from one of the bins. Once the material is secured on the CNC table, you load tools into the tool carousel in the order listed on the tool list and set the fixture offsets.

Bill tells you that since this is a rerun of a job several weeks ago, the CAD/CAM model has already been converted to CNC G-code. Bill helps you download the code to the CNC machine. He gives you the go-ahead and leaves to check on another employee. You decide to start your first run.

What problems did you observe in the video?

  • [Page 5: Making Decisions] What problems did you observe in the video?
  • What do you do next?
  • Try to fix it yourself.
  • Ask your trainer for help.

As you are cleaning up, you think about what happened and wonder why it happened. You try to create a mental picture of what happened. You are not exactly sure what the end mill hit, but it looked like it might have hit the dowel pin. You wonder if you grabbed the correct dowel pins from the bins earlier.

You can think of two possible next steps. You can recheck the dowel pin length to make sure it is the correct length, or do a dry run using the CNC single step or single block function with the spindle empty to determine what actually happened.

screenshot of cnc problem

  • Check the dowel pins.
  • Use the single step/single block function to determine what happened.

You notice that your trainer, Bill, is still on the floor and decide to ask him for help. You describe the problem to him. Bill asks if you know what the end mill ran into. You explain that you are not sure but you think it was the dowel pin. Bill reminds you that it is important to understand what happened so you can fix the correct problem. He suggests that you start all over again and begin with a dry run using the single step/single block function, with the spindle empty, to determine what it hit. Or, since it happened at the end, he mentions that you can also check the G-code to make sure the Z-axis is raised before returning to the home position.

ask help from a more experienced person

  • Run the single step/single block function.
  • Edit the G-code to raise the Z-axis.

You finish cleaning up and check the CNC for any damage. Luckily, everything looks good. You check your paperwork and gather the components and materials again. You look at the dowel pins you used earlier, and discover that they are not the right length. As you go to grab the correct dowel pins, you have to search though several bins. For the first time, you are aware of the mess - it looks like the dowel pins and other items have not been put into the correctly labeled bins. You spend 30 minutes straightening up the bins and looking for the correct dowel pins.

Finally finding them, you finish setting up. You load tools into the tool carousel in the order listed on the tool list and set the fixture offsets. Just to make sure, you use the CNC single step/single block function, to do a dry run of the part. Everything looks good! You are ready to create your first part. The first component is done, and, as you admire your success, you notice that the part feels hotter than it should.

You wonder why? You go over the steps of the process to mentally figure out what could be causing the residual heat. You wonder if there is a problem with the CNC's coolant system or if the problem is in the G-code.

  • Look at the G-code.

After thinking about the problem, you decide that maybe there's something wrong with the setup. First, you clean up the damaged materials and remove the broken tool. You check the CNC machine carefully for any damage. Luckily, everything looks good. It is time to start over again from the beginning.

You again check your paperwork and gather the tools and materials on the setup sheet. After securing the new materials, you use the CNC single step/single block function with the spindle empty, to do a dry run of the part. You watch carefully to see if you can figure out what happened. It looks to you like the spindle barely misses hitting the dowel pin. You determine that the end mill was broken when it hit the dowel pin while returning to the start position.

idea at cnc machine

After conducting a dry run using the single step/single block function, you determine that the end mill was damaged when it hit the dowel pin on its return to the home position. You discuss your options with Bill. Together, you decide the best thing to do would be to edit the G-code and raise the Z-axis before returning to home. You open the CNC control program and edit the G-code. Just to make sure, you use the CNC single step/single block function, to do another dry run of the part. You are ready to create your first part. It works. You first part is completed. Only four more to go.

software or hardware problem

As you are cleaning up, you notice that the components are hotter than you expect and the end mill looks more worn than it should be. It dawns on you that while you were milling the component, the coolant didn't turn on. You wonder if it is a software problem in the G-code or hardware problem with the CNC machine.

It's the end of the day and you decide to finish the rest of the components in the morning.

  • You decide to look at the G-code in the morning.
  • You leave a note on the machine, just in case.

You decide that the best thing to do would be to edit the G-code and raise the Z-axis of the spindle before it returns to home. You open the CNC control program and edit the G-code.

While editing the G-code to raise the Z-axis, you notice that the coolant is turned off at the beginning of the code and at the end of the code. The coolant command error caught your attention because your coworker, Mark, mentioned having a similar issue during lunch. You change the coolant command to turn the mist on.

  • You decide to talk with your supervisor.
  • You discuss what happened with a coworker over lunch.

As you reflect on the residual heat problem, you think about the machining process and the factors that could have caused the issue. You try to think of anything and everything that could be causing the issue. Are you using the correct tool for the specified material? Are you using the specified material? Is it running at the correct speed? Is there enough coolant? Are there chips getting in the way?

Wait, was the coolant turned on? As you replay what happened in your mind, you wonder why the coolant wasn't turned on. You decide to look at the G-code to find out what is going on.

From the milling machine computer, you open the CNC G-code. You notice that there are no coolant commands. You add them in and on the next run, the coolant mist turns on and the residual heat issues is gone. Now, its on to creating the rest of the parts.

Have you ever used brainstorming to solve a problem? Chances are, you've probably have, even if you didn't realize it.

You notice that your trainer, Bill, is on the floor and decide to ask him for help. You describe the problem with the end mill breaking, and how you discovered that items are not being returned to the correctly labeled bins. You think this caused you to grab the incorrect length dowel pins on your first run. You have sorted the bins and hope that the mess problem is fixed. You then go on to tell Bill about the residual heat issue with the completed part.

Together, you go to the milling machine. Bill shows you how to check the oil and coolant levels. Everything looks good at the machine level. Next, on the CNC computer, you open the CNC G-code. While looking at the code, Bill points out that there are no coolant commands. Bill adds them in and when you rerun the program, it works.

Bill is glad you mentioned the problem to him. You are the third worker to mention G-code issues over the last week. You noticed the coolant problems in your G-code, John noticed a Z-axis issue in his G-code, and Sam had issues with both the Z-axis and the coolant. Chances are, there is a bigger problem and Bill will need to investigate the root cause .

Talking with Bill, you discuss the best way to fix the problem. Bill suggests editing the G-code to raise the Z-axis of the spindle before it returns to its home position. You open the CNC control program and edit the G-code. Following the setup sheet, you re-setup the job and use the CNC single step/single block function, to do another dry run of the part. Everything looks good, so you run the job again and create the first part. It works. Since you need four of each component, you move on to creating the rest of them before cleaning up and leaving for the day.

It's a new day and you have new components to create. As you are setting up, you go in search of some short dowel pins. You discover that the bins are a mess and components have not been put away in the correctly labeled bins. You wonder if this was the cause of yesterday's problem. As you reorganize the bins and straighten up the mess, you decide to mention the mess issue to Bill in your afternoon meeting.

You describe the bin mess and using the incorrect length dowels to Bill. He is glad you mentioned the problem to him. You are not the first person to mention similar issues with tools and parts not being put away correctly. Chances are there is a bigger safety issue here that needs to be addressed in the next staff meeting.

In any workplace, following proper safety and cleanup procedures is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly and sometimes dangerous equipment. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money.

You now know that the end mill was damaged when it hit the dowel pin. It seems to you that the easiest thing to do would be to edit the G-code and raise the Z-axis position of the spindle before it returns to the home position. You open the CNC control program and edit the G-code, raising the Z-axis. Starting over, you follow the setup sheet and re-setup the job. This time, you use the CNC single step/single block function, to do another dry run of the part. Everything looks good, so you run the job again and create the first part.

At the end of the day, you are reviewing your progress with your trainer, Bill. After you describe the day's events, he reminds you to always think about safety and the importance of following work procedures. He decides to bring the issue up in the next morning meeting as a reminder to everyone.

In any workplace, following proper procedures (especially those that involve safety) is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money. One tool to improve communication is the morning meeting or huddle.

The next morning, you check the G-code to determine what is wrong with the coolant. You notice that the coolant is turned off at the beginning of the code and also at the end of the code. This is strange. You change the G-code to turn the coolant on at the beginning of the run and off at the end. This works and you create the rest of the parts.

Throughout the day, you keep wondering what caused the G-code error. At lunch, you mention the G-code error to your coworker, John. John is not surprised. He said that he encountered a similar problem earlier this week. You decide to talk with your supervisor the next time you see him.

You are in luck. You see your supervisor by the door getting ready to leave. You hurry over to talk with him. You start off by telling him about how you asked Bill for help. Then you tell him there was a problem and the end mill was damaged. You describe the coolant problem in the G-code. Oh, and by the way, John has seen a similar problem before.

Your supervisor doesn't seem overly concerned, errors happen. He tells you "Good job, I am glad you were able to fix the issue." You are not sure whether your supervisor understood your explanation of what happened or that it had happened before.

The challenge of communicating in the workplace is learning how to share your ideas and concerns. If you need to tell your supervisor that something is not going well, it is important to remember that timing, preparation, and attitude are extremely important.

It is the end of your shift, but you want to let the next shift know that the coolant didn't turn on. You do not see your trainer or supervisor around. You decide to leave a note for the next shift so they are aware of the possible coolant problem. You write a sticky note and leave it on the monitor of the CNC control system.

How effective do you think this solution was? Did it address the problem?

In this scenario, you discovered several problems with the G-code that need to be addressed. When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring and avoid injury to personnel. The challenge of communicating in the workplace is learning how and when to share your ideas and concerns. If you need to tell your co-workers or supervisor that there is a problem, it is important to remember that timing and the method of communication are extremely important.

You are able to fix the coolant problem in the G-code. While you are glad that the problem is fixed, you are worried about why it happened in the first place. It is important to remember that if a problem keeps reappearing, you may not be fixing the right problem. You may only be addressing the symptoms.

You decide to talk to your trainer. Bill is glad you mentioned the problem to him. You are the third worker to mention G-code issues over the last week. You noticed the coolant problems in your G-code, John noticed a Z-axis issue in his G-code, and Sam had issues with both the Z-axis and the coolant. Chances are, there is a bigger problem and Bill will need to investigate the root cause .

Over lunch, you ask your coworkers about the G-code problem and what may be causing the error. Several people mention having similar problems but do not know the cause.

You have now talked to three coworkers who have all experienced similar coolant G-code problems. You make a list of who had the problem, when they had the problem, and what each person told you.

Person When Problem Description
Sam last week No coolant commands in G-code
John Yesterday Coolant was turned off and there were Z-axis problems
Me today Coolant was turned off at both beginning and end of program

When you see your supervisor later that afternoon, you are ready to talk with him. You describe the problem you had with your component and the damaged bit. You then go on to tell him about talking with Bill and discovering the G-code issue. You show him your notes on your coworkers' coolant issues, and explain that you think there might be a bigger problem.

You supervisor thanks you for your initiative in identifying this problem. It sounds like there is a bigger problem and he will need to investigate the root cause. He decides to call a team huddle to discuss the issue, gather more information, and talk with the team about the importance of communication.

Root Cause Analysis

flower root cause of a problem

Root cause analysis ( RCA ) is a method of problem solving that identifies the underlying causes of an issue. Root cause analysis helps people answer the question of why the problem occurred in the first place. RCA uses clear cut steps in its associated tools, like the "5 Whys Analysis" and the "Cause and Effect Diagram," to identify the origin of the problem, so that you can:

  • Determine what happened.
  • Determine why it happened.
  • Fix the problem so it won’t happen again.

RCA works under the idea that systems and events are connected. An action in one area triggers an action in another, and another, and so on. By tracing back these actions, you can discover where the problem started and how it developed into the problem you're now facing. Root cause analysis can prevent problems from recurring, reduce injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money. There are many different RCA techniques available to determine the root cause of a problem. These are just a few:

  • Root Cause Analysis Tools
  • 5 Whys Analysis
  • Fishbone or Cause and Effect Diagram
  • Pareto Analysis

5 whys diagram root cause

How Huddles Work

group huddle discussion meeting

Communication is a vital part of any setting where people work together. Effective communication helps employees and managers form efficient teams. It builds trusts between employees and management, and reduces unnecessary competition because each employee knows how their part fits in the larger goal.

One tool that management can use to promote communication in the workplace is the huddle . Just like football players on the field, a huddle is a short meeting where everyone is standing in a circle. A daily team huddle ensures that team members are aware of changes to the schedule, reiterated problems and safety issues, and how their work impacts one another. When done right, huddles create collaboration, communication, and accountability to results. Impromptu huddles can be used to gather information on a specific issue and get each team member's input.

The most important thing to remember about huddles is that they are short, lasting no more than 10 minutes, and their purpose is to communicate and identify. In essence, a huddle’s purpose is to identify priorities, communicate essential information, and discover roadblocks to productivity.

Who uses huddles? Many industries and companies use daily huddles. At first thought, most people probably think of hospitals and their daily patient update meetings, but lots of managers use daily meetings to engage their employees. Here are a few examples:

  • Brian Scudamore, CEO of 1-800-Got-Junk? , uses the daily huddle as an operational tool to take the pulse of his employees and as a motivational tool. Watch a morning huddle meeting .
  • Fusion OEM, an outsourced manufacturing and production company. What do employees take away from the daily huddle meeting .
  • Biz-Group, a performance consulting group. Tips for a successful huddle .

Brainstorming

brainstorming small lightbulbs combined become a big idea

One tool that can be useful in problem solving is brainstorming . Brainstorming is a creativity technique designed to generate a large number of ideas for the solution to a problem. The method was first popularized in 1953 by Alex Faickney Osborn in the book Applied Imagination . The goal is to come up with as many ideas as you can in a fixed amount of time. Although brainstorming is best done in a group, it can be done individually. Like most problem solving techniques, brainstorming is a process.

  • Define a clear objective.
  • Have an agreed a time limit.
  • During the brainstorming session, write down everything that comes to mind, even if the idea sounds crazy.
  • If one idea leads to another, write down that idea too.
  • Combine and refine ideas into categories of solutions.
  • Assess and analyze each idea as a potential solution.

When used during problem solving, brainstorming can offer companies new ways of encouraging staff to think creatively and improve production. Brainstorming relies on team members' diverse experiences, adding to the richness of ideas explored. This means that you often find better solutions to the problems. Team members often welcome the opportunity to contribute ideas and can provide buy-in for the solution chosen—after all, they are more likely to be committed to an approach if they were involved in its development. What's more, because brainstorming is fun, it helps team members bond.

  • Watch Peggy Morgan Collins, a marketing executive at Power Curve Communications discuss How to Stimulate Effective Brainstorming .
  • Watch Kim Obbink, CEO of Filter Digital, a digital content company, and her team share their top five rules for How to Effectively Generate Ideas .

Importance of Good Communication and Problem Description

talking too much when describing a problem

Communication is one of the most frequent activities we engage in on a day-to-day basis. At some point, we have all felt that we did not effectively communicate an idea as we would have liked. The key to effective communication is preparation. Rather than attempting to haphazardly improvise something, take a few minutes and think about what you want say and how you will say it. If necessary, write yourself a note with the key points or ideas in the order you want to discuss them. The notes can act as a reminder or guide when you talk to your supervisor.

Tips for clear communication of an issue:

  • Provide a clear summary of your problem. Start at the beginning, give relevant facts, timelines, and examples.
  • Avoid including your opinion or personal attacks in your explanation.
  • Avoid using words like "always" or "never," which can give the impression that you are exaggerating the problem.
  • If this is an ongoing problem and you have collected documentation, give it to your supervisor once you have finished describing the problem.
  • Remember to listen to what's said in return; communication is a two-way process.

Not all communication is spoken. Body language is nonverbal communication that includes your posture, your hands and whether you make eye contact. These gestures can be subtle or overt, but most importantly they communicate meaning beyond what is said. When having a conversation, pay attention to how you stand. A stiff position with arms crossed over your chest may imply that you are being defensive even if your words state otherwise. Shoving your hands in your pockets when speaking could imply that you have something to hide. Be wary of using too many hand gestures because this could distract listeners from your message.

The challenge of communicating in the workplace is learning how and when to share your ideas or concerns. If you need to tell your supervisor or co-worker about something that is not going well, keep in mind that good timing and good attitude will go a long way toward helping your case.

Like all skills, effective communication needs to be practiced. Toastmasters International is perhaps the best known public speaking organization in the world. Toastmasters is open to anyone who wish to improve their speaking skills and is willing to put in the time and effort to do so. To learn more, visit Toastmasters International .

Methods of Communication

different ways to communicate

Communication of problems and issues in any workplace is important, particularly when safety is involved. It is therefore crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. As issues and problems arise, they need to be addressed in an efficient and timely manner. Effective communication is an important skill because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money.

There are many different ways to communicate: in person, by phone, via email, or written. There is no single method that fits all communication needs, each one has its time and place.

In person: In the workplace, face-to-face meetings should be utilized whenever possible. Being able to see the person you need to speak to face-to-face gives you instant feedback and helps you gauge their response through their body language. Be careful of getting sidetracked in conversation when you need to communicate a problem.

Email: Email has become the communication standard for most businesses. It can be accessed from almost anywhere and is great for things that don’t require an immediate response. Email is a great way to communicate non-urgent items to large amounts of people or just your team members. One thing to remember is that most people's inboxes are flooded with emails every day and unless they are hyper vigilant about checking everything, important items could be missed. For issues that are urgent, especially those around safety, email is not always be the best solution.

Phone: Phone calls are more personal and direct than email. They allow us to communicate in real time with another person, no matter where they are. Not only can talking prevent miscommunication, it promotes a two-way dialogue. You don’t have to worry about your words being altered or the message arriving on time. However, mobile phone use and the workplace don't always mix. In particular, using mobile phones in a manufacturing setting can lead to a variety of problems, cause distractions, and lead to serious injury.

Written: Written communication is appropriate when detailed instructions are required, when something needs to be documented, or when the person is too far away to easily speak with over the phone or in person.

There is no "right" way to communicate, but you should be aware of how and when to use the appropriate form of communication for your situation. When deciding the best way to communicate with a co-worker or manager, put yourself in their shoes, and think about how you would want to learn about the issue. Also, consider what information you would need to know to better understand the issue. Use your good judgment of the situation and be considerate of your listener's viewpoint.

Did you notice any other potential problems in the previous exercise?

  • [Page 6:] Did you notice any other potential problems in the previous exercise?

Summary of Strategies

In this exercise, you were given a scenario in which there was a problem with a component you were creating on a CNC machine. You were then asked how you wanted to proceed. Depending on your path through this exercise, you might have found an easy solution and fixed it yourself, asked for help and worked with your trainer, or discovered an ongoing G-code problem that was bigger than you initially thought.

When issues and problems arise, it is important that they are addressed in an efficient and timely manner. Communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost, and save money. Although, each path in this exercise ended with a description of a problem solving tool for your toolbox, the first step is always to identify the problem and define the context in which it happened.

There are several strategies that can be used to identify the root cause of a problem. Root cause analysis (RCA) is a method of problem solving that helps people answer the question of why the problem occurred. RCA uses a specific set of steps, with associated tools like the “5 Why Analysis" or the “Cause and Effect Diagram,” to identify the origin of the problem, so that you can:

Once the underlying cause is identified and the scope of the issue defined, the next step is to explore possible strategies to fix the problem.

If you are not sure how to fix the problem, it is okay to ask for help. Problem solving is a process and a skill that is learned with practice. It is important to remember that everyone makes mistakes and that no one knows everything. Life is about learning. It is okay to ask for help when you don’t have the answer. When you collaborate to solve problems you improve workplace communication and accelerates finding solutions as similar problems arise.

One tool that can be useful for generating possible solutions is brainstorming . Brainstorming is a technique designed to generate a large number of ideas for the solution to a problem. The method was first popularized in 1953 by Alex Faickney Osborn in the book Applied Imagination. The goal is to come up with as many ideas as you can, in a fixed amount of time. Although brainstorming is best done in a group, it can be done individually.

Depending on your path through the exercise, you may have discovered that a couple of your coworkers had experienced similar problems. This should have been an indicator that there was a larger problem that needed to be addressed.

In any workplace, communication of problems and issues (especially those that involve safety) is always important. This is especially crucial in manufacturing where people are constantly working with heavy, costly, and sometimes dangerous equipment. When issues and problems arise, it is important that they be addressed in an efficient and timely manner. Effective communication is an important tool because it can prevent problems from recurring, avoid injury to personnel, reduce rework and scrap, and ultimately, reduce cost and save money.

One strategy for improving communication is the huddle . Just like football players on the field, a huddle is a short meeting with everyone standing in a circle. A daily team huddle is a great way to ensure that team members are aware of changes to the schedule, any problems or safety issues are identified and that team members are aware of how their work impacts one another. When done right, huddles create collaboration, communication, and accountability to results. Impromptu huddles can be used to gather information on a specific issue and get each team member's input.

To learn more about different problem solving strategies, choose an option below. These strategies accompany the outcomes of different decision paths in the problem solving exercise.

  • View Problem Solving Strategies Select a strategy below... Root Cause Analysis How Huddles Work Brainstorming Importance of Good Problem Description Methods of Communication

Communication is one of the most frequent activities we engage in on a day-to-day basis. At some point, we have all felt that we did not effectively communicate an idea as we would have liked. The key to effective communication is preparation. Rather than attempting to haphazardly improvise something, take a few minutes and think about what you want say and how you will say it. If necessary, write yourself a note with the key points or ideas in the order you want to discuss them. The notes can act as a reminder or guide during your meeting.

  • Provide a clear summary of the problem. Start at the beginning, give relevant facts, timelines, and examples.

In person: In the workplace, face-to-face meetings should be utilized whenever possible. Being able to see the person you need to speak to face-to-face gives you instant feedback and helps you gauge their response in their body language. Be careful of getting sidetracked in conversation when you need to communicate a problem.

There is no "right" way to communicate, but you should be aware of how and when to use the appropriate form of communication for the situation. When deciding the best way to communicate with a co-worker or manager, put yourself in their shoes, and think about how you would want to learn about the issue. Also, consider what information you would need to know to better understand the issue. Use your good judgment of the situation and be considerate of your listener's viewpoint.

"Never try to solve all the problems at once — make them line up for you one-by-one.” — Richard Sloma

Problem Solving: An Important Job Skill

Problem solving improves efficiency and communication on the shop floor. It increases a company's efficiency and profitability, so it's one of the top skills employers look for when hiring new employees. Recent industry surveys show that employers consider soft skills, such as problem solving, as critical to their business’s success.

The 2011 survey, "Boiling Point? The skills gap in U.S. manufacturing ," polled over a thousand manufacturing executives who reported that the number one skill deficiency among their current employees is problem solving, which makes it difficult for their companies to adapt to the changing needs of the industry.

In this video, industry professionals discuss their expectations and present tips for new employees joining the manufacturing workforce.

Quick Summary

  • [Quick Summary: Question1] What are two things you learned in this case study?
  • What question(s) do you still have about the case study?
  • [Quick Summary: Question2] What question(s) do you still have about the case study?
  • Is there anything you would like to learn more about with respect to this case study?
  • [Quick Summary: Question3] Is there anything you would like to learn more about with respect to this case study?

W

  • General & Introductory Statistics
  • Applied Probability & Statistics

introduction to computer and problem solving

Probability and Stochastic Processes: A Friendly Introduction for Electrical and Computer Engineers, International Student Version, 3rd Edition

ISBN: 978-1-118-80874-0

PREFER DIGITAL VERSIONS OF YOUR TEXTBOOKS?

Get instant access to your Wiley eBook. Buy or rent eBooks for a period of up to 150 days.

Digital Evaluation Copy

introduction to computer and problem solving

Roy D. Yates , David J. Goodman

This text introduces engineering students to probability theory and stochastic processes. Along with thorough mathematical development of the subject, the book presents intuitive explanations of key points in order to give students the insights they need to apply math to practical engineering problems. The first five chapters contain the core material that is essential to any introductory course. In one-semester undergraduate courses, instructors can select material from the remaining chapters to meet their individual goals. Graduate courses can cover all chapters in one semester. 

  • Material reorganized and expanded based on authors' teaching experience and feedback from students and instructors.
  • New chapters on Sequential Trials, Derived Random Variables and Conditional Probability Models.
  • Solutions manual includes step-by-step solutions .
  • Advanced material on Signal Processing and Markov has been posted online.
  • Student-friendly narrative  aids intuitive understanding of real-world principles underlying mathematical concepts. Motivates engineering students who often perceive the subject as abstract and irrelevant to their practical interests.
  • MATLAB applications encourage students to gain hands-on experience with material presented in the text. Instructors have access to program files provided by the authors and do not need to create and debug their own code.
  • Extensive collection of exercises (examples, quizzes, and homework problems) assists students with the most difficult part of learning probability—going from theory to practical applications. The degree of difficulty of each homework problem is clearly labeled.
  • Separate treatment of discrete and continuous random variables . Students, especially those encountering this material for the first time, can learn basic principles without the confusion of two different ways of calculating probabilities and averages (sums and integrals). Seeing the same principles twice reinforces the learning experience.
  • Online support for instructors , including solutions to homework problems. A graphical interface enables instructors to generate customized solutions handouts and offers flexibility in the way homework problems are used. Saves instructor time in solving exercises and preparing information for students.

Browse Course Material

Course info, instructors.

  • Dr. George Kocur
  • Dr. Christopher Cassa
  • Prof. Marta C. Gonzalez

Departments

  • Civil and Environmental Engineering

As Taught In

  • Programming Languages
  • Software Design and Engineering
  • Computational Science and Engineering

Learning Resource Types

Introduction to computers and engineering problem solving, recommended.

Text : Horstmann, Cay. Big Java . 4th ed. Wiley, 2009. ISBN: 9780470509487. [Preview with Google Books ] Look for discounted pricing, and you may be able to find it used. You may use the 3rd edition.

NR : Press, William, Saul Teukolsky, et al. Numerical Recipes in C: The Art of Scientific Computing . Cambridge University Press, 1992. ISBN: 9780521437202. [Preview with Google Books ]

Phidgets documentation

The following table lists readings from the required and optional texts.

LEC # TOPICS READINGS (3D ED.) READINGS (4TH ED.)
L 1 Course Overview, Introduction to Java
L 2 Interactive Development Environment: Eclipse Text: 1.1–1.8 Text: 1.1–1.7
L 3 Operators, Control Structures Text: 4.1–4.5 Text: 4.1–4.4
L 4 Data Types, More Operators Text: 5.1–5.4 Text: 5.1–5.4
L 5 More Data Types, Control Structures, Intro to Methods Text: 6.1–6.4 Text: 6.1–6.4
L 6 Methods and Scope Text: 2.1–2.4, 8.8 Text: 2.1–2.5, 8.8
L 7 Classes and Objects Text: 2.5–2.10, 3.1–3.8 Text: 2.6–2.10, 3.1–3.8
L 8 Classes II Text: 8.1–8.5 Text: 8.1–8.5
L 9 Methods and Objects, Access Text: 8.9 Text: 8.9
L 10 Static Methods and Data Text: 8.6–8.7 Text: 8.6–8.7
L 11 Arrays, Arraylists Text: 7.1–7.7 Text: 7.1–7.4, 7.6, 7.8
L 12 Recursion Text: 13.1–13.4 Text: 13.1–13.4
L 13 Inheritance: Subclasses Text: 10.1–10.4 Text: 10.1–10.4
QUIZ I
L 14 Inheritance II: Abstract classes, methods Text: 10.5–10.7 Text: 10.5–10.6
L 15 Inheritance III: Interfaces Text: 9.1–9.4 Text: 9.1–9.4
L 16 Design Lab I - Inheritance Text: 12.1–12.5 Text: 12.1–12.5
L 17 Introduction to Swing Text: 2.11–2.13, 3.9 Text: 2.11–2.13, 3.9
L 18 Swing Event Model Text: 9.6–9.10 Text: 9.7–9.11
L 19 Inner Classes, Layout Managers Text: 9.5, 18.3 Text: 9.5, 18.3
L 20 Model-View-Controller, Timers Text: 18.1 Text: 18.3
L 21 2D API, 2D Transformations
L 22 Design Lab II- Swing
L 23 Streams I, Exceptions Text: 11.1, 19.1–19.2 Text: 11.1, 19.1–19.2
L 24 Streams II Text: 19.3–19.4 Text: 19.3–19.4
QUIZ II
L 25 Sensors I Phidgets documentation Phidgets documentation
L 26 Sensors II Phidgets documentation Phidgets documentation
L 27 Design Lab III - Sensors
L 28 Threads Text 21.1–21.3 Text 20.1–20.3
L 29 Threads and Sensors Text 21.4 Text 20.4
L 30 Matrices Numerical Recipes (NR) 32–36 NR 32–36
L 31 Linear Systems NR 37–42 NR 37–42
L 32 Integration NR 129–139 NR 129–139
L 33 Root Finding NR 347–368 NR 347–368
L 34 Sorting Text: 14.1–14.3 Text: 14.1–14.3
L 35 Stacks, Queues Text: 15.4 Text: 15.4
L 36 Lists Text: 15.1–15.3 Text: 15.1–15.3
L 37 Storing Data: Trees, Hash Tables Text: 16.5–16.7 Text: 16.5–16.6

facebook

You are leaving MIT OpenCourseWare

arXiv's Accessibility Forum starts next month!

Help | Advanced Search

Computer Science > Machine Learning

Title: nddes: a deep neural network framework for solving forward and inverse problems in delay differential equations.

Abstract: This article proposes a solution framework for delay differential equations (DDEs) based on deep neural networks (DNNs) - the neural delay differential equations (NDDEs), aimed at solving the forward and inverse problems of delay differential equations. This framework embeds the delay differential equations into the neural networks to accommodate the diverse requirements of DDEs in terms of initial conditions, control equations, and known data. NDDEs adjust the network parameters through automatic differentiation and optimization algorithms to minimize the loss function, thereby obtaining numerical solutions to the delay differential equations without the grid dependence and discretization errors typical of traditional numerical methods. In addressing inverse problems, the NDDE framework can utilize observational data to perform precise estimation of single or multiple delay parameters. The results of multiple numerical experiments have shown that NDDEs demonstrate high precision in both forward and inverse problems, proving their effectiveness and promising potential in dealing with delayed differential equation issues.
Subjects: Machine Learning (cs.LG)
Cite as: [cs.LG]
  (or [cs.LG] for this version)
  Focus to learn more arXiv-issued DOI via DataCite

Submission history

Access paper:.

  • HTML (experimental)
  • Other Formats

References & Citations

  • Google Scholar
  • Semantic Scholar

BibTeX formatted citation

BibSonomy logo

Bibliographic and Citation Tools

Code, data and media associated with this article, recommenders and search tools.

  • Institution

arXivLabs: experimental projects with community collaborators

arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.

Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.

Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs .

COMMENTS

  1. PDF An Introduction to Computer Science and Problem Solving

    COMP1405/1005 - An Introduction to Computer Science and Problem Solving Fall 2011 - 4- There are also other types of programming languages such as functional programming languages and logic programming languages. According to the Tiobe index (i.e., a good site for ranking the popularity of programming languages), as of February 2011 the 10 most

  2. PDF Introduction to Problem Solving

    "Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable techniques to solve it." -A. Aho and J. Ullman Chapter 4 Introduction to Problem Solving In this chapter » Introduction » Steps for Problem Solving » Algorithm » Representation of Algorithms » Flow of Control

  3. What is Problem Solving? An Introduction

    As you can see, problem solving plays a pivotal role in software engineering. Far from being an occasional requirement, it is the lifeblood that drives development forward, catalyzes innovation, and delivers of quality software. By leveraging problem-solving techniques, software engineers employ a powerful suite of strategies to overcome ...

  4. PDF Problem Solving Basics and Computer Programming

    We can do this in four steps. 1. Identify all of the nouns in the sentence. Given the 3 dimensions of a box (length, width, and height), calculate the volume. The nouns in the problem specification identify descriptions of information that you will need to either identify or keep track of.

  5. Introduction to Computers and Engineering Problem Solving

    This course presents the fundamentals of object-oriented software design and development, computational methods and sensing for engineering, and scientific and managerial applications. It cover topics, including design of classes, inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures. Students use Java{{< sup "®" >}} programming language to ...

  6. PDF Chapter 1

    Display File Extensions (Vista & Windows 7) Click on Windows Start button. Type Folder Options into Search box. Press Enter key. Click on View tab in dialog box. Uncheck ′′Hide extensions for known file types′′. Click on OK. Display File Extensions (Vista & Windows 7 cont.)

  7. Lecture 3: Problem Solving

    Please be advised that external sites may have terms and conditions, including license rights, that differ from ours. MIT OCW is not responsible for any content on third party sites, nor does a link suggest an endorsement of those sites and/or their content.

  8. Lecture Notes

    Course Overview, Introduction to Java (PDF) L 2 Interactive Development Environment: Eclipse (PDF) L 3 Operators, Control Structures (PDF) Lecture 3 code (ZIP) (This ZIP file contains: 1 .java file.) L 4 Data Types, More Operators (PDF) Lecture 4 code (ZIP) (This ZIP file contains: 2 .java files.) L 5

  9. CS4: Introduction to Scientific Computing and Problem Solving

    CS4 provides an introduction to using computers to solve STEM (Science, Technology, Engineering, and Mathematics) data analysis, visualization, simulation, and numerical analysis problems. The course begins with an introduction to the basics of programming, accompanied by several applications of fundamental coding elements and concepts. As we ...

  10. PDF Introduction to Problem Solving in Computer Science CS 2104

    I -- Catalogue Description. This course introduces the student to a broad range of heuristics for solving problems in a range of settings that are relevant to computation. Emphasis on problem-solving techniques that aid programmers and computer scientists. Heuristics for solving problems "in the small" (classical math and word problems ...

  11. PDF Unit 2: Problem Solving

    Introduction. In order for students to become "computational thinkers" they need experience solving a wide range of problems and the opportunity to experiment with a variety of solution strategies. This unit begins with an introduction to the problem solving process. Students are asked to solve new problems by planning a strategy, designing ...

  12. Computational Thinking for Problem Solving

    Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data.

  13. CS2104: Introduction to Problem Solving in Computer Science

    CS2104: Introduction to Problem Solving in Computer Science. This course introduces the student to a broad range of heuristics for solving problems in a range of settings. Emphasis on problem-solving techniques that aid programmers and computer scientists.

  14. Problem Solving Using Computational Thinking

    Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand. The course includes an introduction to computational thinking and a broad definition of each concept, a series of real-world cases that ...

  15. Algorithms

    We've partnered with Dartmouth college professors Tom Cormen and Devin Balkcom to teach introductory computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges.

  16. PDF An Introduction to Problem Solving

    a history of success with problem solving. Dismissers have a history of failure. Of course, you might be an engager for one type of problem, and a dismisser for another. Many students do significant problem solving for recreation - Sodoku puzzles, computer games with meaningful problem solving tasks, and all sorts of "puzzles."

  17. Chapter 4 Class 11

    In this chapter, you will learn about the basic concepts and techniques of problem solving using computers. You will learn how to: Define a problem and its specifications 📝. Analyze a problem and identify its inputs, outputs and processing steps 🔎. Design an algorithm to solve a problem using various methods such as pseudocode, flowcharts ...

  18. Introduction to Problem Solving

    Step 1: Find the numbers (divisors) which can divide the given numbers. Step 2: Then find the largest common number from these two lists. A finite sequence of steps required to get the desired output is called an algorithm. Algorithm has a definite beginning and a definite end, and consists of a finite number of steps.

  19. Introduction to Problem Solving and Programming

    NPTEL :: Computer Science and Engineering - Introduction to Problem Solving and Programming. About us. Courses. Contact us. Courses. Computer Science and Engineering. Introduction to Problem Solving and Programming (Video) Co-ordinated by : IIT Kanpur. Available from : 2009-12-31.

  20. Introduction to Problem Solving Skills

    Good problem solving skills empower you not only in your personal life but are critical in your professional life. In the current fast-changing global economy, employers often identify everyday problem solving as crucial to the success of their organizations. For employees, problem solving can be used to develop practical and creative solutions ...

  21. UNIT 1

    UNIT I. INTRODUCTION TO PROBLEM SOLVING. Problem solving is a process of transforming the description of a problem into the solution of that problem by using our knowledge of the problem domain and by relying on our ability to select and use appropriate problem-solving Strategies, Techniques and Tools.

  22. Introduction to Computer Science and Programming in Python

    6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.

  23. Probability and Stochastic Processes: A Friendly Introduction for

    <p>This text introduces engineering students to probability theory and stochastic processes. Along with thorough mathematical development of the subject, the book presents intuitive explanations of key points in order to give students the insights they need to apply math to practical engineering problems. The first five chapters contain the core material that is essential to any introductory ...

  24. [2408.11371] Solving Decision Theory Problems with Probabilistic Answer

    Solving a decision theory problem usually involves finding the actions, among a set of possible ones, which optimize the expected reward, possibly accounting for the uncertainty of the environment. In this paper, we introduce the possibility to encode decision theory problems with Probabilistic Answer Set Programming under the credal semantics via decision atoms and utility attributes. To ...

  25. [2408.08853v1] CPS-TaskForge: Generating Collaborative Problem Solving

    Teams can outperform individuals; could adding AI teammates further bolster performance of teams solving problems collaboratively? Collaborative problem solving (CPS) research commonly studies teams with two agents (human-human or human-AI), but team research literature finds that, for complex tasks, larger teams are more effective. Progress in studying collaboration with more than two agents ...

  26. Readings

    Textbooks Recommended. Text: Horstmann, Cay.Big Java. 4th ed. Wiley, 2009.ISBN: 9780470509487. [Preview with Google Books] Look for discounted pricing, and you may be able to find it used.You may use the 3rd edition. Optional. NR: Press, William, Saul Teukolsky, et al. Numerical Recipes in C: The Art of Scientific Computing.Cambridge University Press, 1992.

  27. [2408.10592v1] Hologram Reasoning for Solving Algebra Problems with

    Solving Algebra Problems with Geometry Diagrams (APGDs) is still a challenging problem because diagram processing is not studied as intensively as language processing. To work against this challenge, this paper proposes a hologram reasoning scheme and develops a high-performance method for solving APGDs by using this scheme. To reach this goal, it first defines a hologram, being a kind of ...

  28. NDDEs: A Deep Neural Network Framework for Solving Forward and Inverse

    This article proposes a solution framework for delay differential equations (DDEs) based on deep neural networks (DNNs) - the neural delay differential equations (NDDEs), aimed at solving the forward and inverse problems of delay differential equations. This framework embeds the delay differential equations into the neural networks to accommodate the diverse requirements of DDEs in terms of ...