0% found this document useful (0 votes)
212 views

Steps of Problem Solving in Computer Science

The document discusses the six main steps for solving problems in computer science: 1) problem analysis, 2) program design using algorithms, flowcharts, and pseudocode, 3) coding, 4) compilation and execution, 5) debugging and testing, and 6) program documentation.

Uploaded by

jimohfathia301
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
212 views

Steps of Problem Solving in Computer Science

The document discusses the six main steps for solving problems in computer science: 1) problem analysis, 2) program design using algorithms, flowcharts, and pseudocode, 3) coding, 4) compilation and execution, 5) debugging and testing, and 6) program documentation.

Uploaded by

jimohfathia301
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/351493978

Steps of Problem Solving in Computer Science

Presentation · March 2021

CITATIONS READS

0 47,234

1 author:

Ishaq Zakari
Umaru Musa Yar'adua University Katsina
10 PUBLICATIONS 1 CITATION

SEE PROFILE

All content following this page was uploaded by Ishaq Zakari on 11 May 2021.

The user has requested enhancement of the downloaded file.


PRESENTATION

By:

ISHAQ ZAKARI

DEPARTMENT OF COMPUTER SCIENCE

FEDERAL COLLEGE OF EDUCATION, KATSINA STATE, NIGERIA.

+2347066377161, +2349079945536

[email protected]
[email protected]

TOPIC:

Steps of solving problems in Computer Science

MARCH, 2021

1
PROLOGUE

Solving problems is the core of computer science. Programmers must

first understand how a human solves a problem, then understand how to

translate this "algorithm" into something a computer can do, and finally how to

"write" the specific syntax (required by a computer) to get the job done. It is

sometimes the case that a machine will solve a problem in a completely

different way than a human.

Problem solving consists of using generic or ad hoc methods in an orderly

manner to find solutions to problems. Some of the problem-solving techniques

developed and used in philosophy, artificial intelligence, computer

science, engineering, mathematics, medicine and societies in general are related

to mental problem-solving techniques studied in psychology and cognitive

sciences.

PROBLEM SOLVING IN COMPUTER SCIENCE

In computer science and in the part of artificial intelligence that deals

with algorithms, problem solving includes techniques

of algorithms, heuristics and root cause analysis. The amount of resources (e.g.

time, memory, energy) required to solve problems is described

by computational complexity theory. In more general terms, problem solving is

part of a larger process that encompasses problem determination, de-

duplication, analysis, diagnosis, repair, and other steps.

2
Other problem solving tools are linear and non – linear

programming, queuing systems, and simulation. Much of computer science

involves designing completely automatic systems that will later solve some

specific problem – systems to accept input data and, in a reasonable amount of

time, calculate the correct response or a correct – enough approximation.

In addition, people in computer science spend a surprisingly large amount of

human time finding and fixing problems in their programs: Debugging.

The following are six steps that must be followed to solve a problem using

computer

1. Problem Analysis
2. Program Design - Algorithm, Flowchart and Pseudocode
3. Coding
4. Compilation and Execution
5. Debugging and Testing
6. Program Documentation

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. Thus, the problem analysis would report that

the lighting was not the cause of the problem, saving the company time and

money.

The following are steps involves in problem analysis

3
a. Understand your problem
b. Break the problem
c. Define problem goals
d. Decide how to measure progress towards goals.
1. Understand Your Problem: You must understand the issue, problem or

symptom you are experiencing before you can realistically try to figure out what

to do about it. As a first step towards self – help, take steps to understand the

nature of your problem.

2. Break the Problem Down Into Small Parts: Even when you understand

what your problem is, it may be too big and too well established for you to

figure out how to fix all at once. Instead of trying to tackle the entire problem

all at once, break it down into manageable parts. Then, make a plan for how you

will fix or address each part separately.

3. Define Problem Goals: For each of your small manageable problem parts,

figure out what your goals are; where you want to end up at the end of the self-

help process for each part of your problem. If you don't know what you are

working towards, you will never know when you've arrived there.

4. Decide How To Measure Progress Towards Goals: Find ways to measure

progress you make towards accomplishing each of your problem goals, so that

you will always know:

a. What your problem starting point looked like,

b. How far you've come towards meeting your goals at any given moment,

and

4
c. How you'll know when you've met your goals and are done.

ALGORITHM

In mathematics and computer science, an algorithm is a finite sequence

of well-defined, computer – implementable instructions, typically to solve a

class of problems or to perform a computation. Algorithms are

always unambiguous and are used as specifications for

performing calculations, data processing, automated reasoning, and other tasks.

In computer systems, an algorithm is basically an instance

of logic written in software by software developers, to be effective for the

intended "target" computer(s) to produce output from given (perhaps null) input.

An optimal algorithm, even running in old hardware, would produce faster

results than a non-optimal (higher time complexity) algorithm for the same

purpose, running in more efficient hardware; that is why algorithms, like

computer hardware, are considered technology.

FLOWCHART

A flowchart is a type of diagram that represents a workflow or process. A

flowchart can also be defined as a diagrammatic representation of an algorithm,

a step-by-step approach to solving a task.

The flowchart shows the steps as boxes of various kinds, and their order

by connecting the boxes with arrows. This diagrammatic representation

illustrates a solution model to a given problem. Flowcharts are used in

5
analyzing, designing, documenting or managing a process or program in various

fields.

PSEUDOCODE

In computer science, pseudocode is a plain language description of the

steps in an algorithm or another system. Pseudocode often uses structural

conventions of a normal programming language, but is intended for human

reading rather than machine reading.

for (i = 1; i <= 100; i++) {


set print_number to true;
If i is divisible by 3 {
print "Fizz";
set print_number to false; }
If i is divisible by 5 {
print "Buzz";
set print_number to false; }
If print_number, print i;
print a newline;
}
}

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 algorithms' accuracy

and resource consumption, and the implementation of algorithms in a

chosen programming language (commonly referred to as coding).

6
COMPILATION:

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.

High – level language, Machine language, Programming terms.

The translation process influences the design of computer languages, which

leads to a preference of compilation or interpretation.

EXECUTION:

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. As the

executing machine follows the instructions, specific effects are produced in

accordance with the semantics of those instructions.

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

7
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. Software testing can also provide an objective, independent view of the

software to allow the business to appreciate and understand the risks of software

implementation. 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.

Software testing involves the execution of a software component or

system component to evaluate one or more properties of interest. 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.

8
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. Types of

documentation include:

 Requirements – Statements that identify attributes capabilities,

characteristics, or qualities of a system. This is the foundation for what will

be or has been implemented.

 Architecture/Design – Overview of software. Includes relations to an

environment and construction principles to be used in design of software

components.

 Technical – Documentation of code, algorithms, interfaces, and APIs.

 End user – Manuals for the end-user, system administrators and support

staff.

 Marketing – How to market the product and analysis of the market demand.

9
REFERENCES

Malakooti, Behnam (2013). Operations and Production Systems with Multiple


Objectives. John Wiley & Sons. ISBN 978-1-118-58537-5.

"The Definitive Glossary of Higher Mathematical Jargon — Algorithm". Math


Vault. August 1, 2019. Archived from the original on February 28, 2020.
Retrieved November 14, 2019.

"The Definitive Glossary of Higher Mathematical Jargon — Algorithm". Math


Vault. August 1, 2019. Archived from the original on February 28, 2020.
Retrieved November 14, 2019.
SEVOCAB: Software Systems Engineering Vocabulary. Term: Flow chart.
Retrieved 31 July 2008.

Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Ravi Sethi,


Jeffrey D. Ullman - Second Edition, 2007.

S. Gill, The Diagnosis of Mistakes in Programmes on the EDSAC, Proceedings


of the Royal Society of London. Series A, Mathematical and Physical
Sciences, Vol. 206, No. 1087 (May 22, 1951), pp. 538-554.

Thomas T. Barker, Writing Software Documentation, Preface, xxiv. Part of


the Allyn & Bacon Series in Technical Communication, 2nd ed. Upper
Saddle .

10

View publication stats

You might also like