ProblemSolving
ProblemSolving
PROBLEM SOLVING
Presented by:
Mariam Fatima
Problem Solving
Problem solving is the process of
identifying a problem, developing an
algorithm for the identified problem and
finally implementing the algorithm to
develop a computer program.
It allows us to take a complex problem,
understand what the problem is and develop
possible solutions. These solutions can then
be presented in a way that a computer, a
human, or both, can understand.
Steps of Problem
Solving
The following are six steps
that must be followed to solve a
problem using computer.
Define a problem
Problem Analysis
Program Design - Algorithm,
Flowchart and Pseudo code
Coding
Compilation and Execution
Debugging and Testing
Implemententaion
Maintainance
Problem Analysis
A Problem Analysis investigates a situation/problem
in order to allow the researcher to understand more fully
the problem, in order to recommend
practical solutions for solving it.
The following are steps involves in problem analysis:
Understand your problem
Break the problem
Define problem goals
Decide how to measure progress towards goals.
Design
The design process is a tool that helps you break down
large projects into smaller, easier-to handle stages. It's
prominent in engineering, architecture, and manufacturing
because it helps companies deliver finished solutions that
customers want and need.
In this part, the logic of the program is designed. We
specify different steps required to solve a problem and the
sequence of these steps. Ways to design a problem include:
Algorithm
Flowchart
Pseudo code
Coding
Coding or computer programming is the process of
designing and building an executable computer program to
accomplish a specific computing result or to perform a
specific task.
Programming involves tasks such as: analysis,
generating algorithms, profiling algorithm’s accuracy and
resource consumption, and the implementation of
algorithms in a chosen programming language (commonly
referred to as coding).
Compilation &
Execution
Compilation is the process the computer takes to
convert a high – level programming language into a
machine language that the computer can understand.
The software which performs this conversion is called a
compiler.
While Execution in computer and software
engineering is the process by which a computer or
virtual machine reads and acts on the instructions of a
computer program. Each instruction of a program is a
description of a particular action which must be carried
out, in order for a specific problem to be solved.
Debugging
In computer programming and software
development, debugging is the process of finding and
resolving bugs (defects or problems that prevent correct
operation) within computer programs, software, or
systems.
Debugging tactics can involve interactive
debugging, control flow analysis, unit testing, integration
testing, log file analysis, monitoring at the application or
system level, memory dumps, and profiling. Many
programming languages and software development tools
also offer programs to aid in debugging, known as
debuggers.
Testing
Software testing is an investigation conducted to provide
stakeholders with information about the quality of the software
product or service under test. Test techniques include the process
of executing a program or application with the intent of finding
failures, and verifying that the software product is fit for use.
In general, these properties indicate the extent to which the
component or system under test:
Meets the requirements that guided its design and development,
Responds correctly to all kinds of inputs,
Performs its functions within an acceptable time,
Is sufficiently usable,
Can be installed and run in its intended environments
Achieves the general result its stakeholder’s desire.
Program
Documentation
Software documentation is written text or
illustration that accompanies computer software or is
embedded in the source code. The documentation either
explains how the software operates or how to use it, or
may mean different things to people in different roles.
Documentation is an important part of software
engineering.
THE
END