Problem Solving

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.

Computer Programmers are problem solvers. In order to solve a problem on a computer you must:

Know how to represent the information (data) describing the problem.

Determine the steps to transform the information from one representation into another.

Information Representation

A computer, at heart, is really dumb. It can only really know about a few things... numbers, characters, booleans, and lists (called arrays) of these items. (See Data Types). Everything else must be "approximated" by combinations of these data types.

A good programmer will "encode" all the "facts" necessary to represent a problem in variables (See Variables). Further, there are "good ways" and "bad ways" to encode information. Good ways allow the computer to easily "compute" new information.

An algorithm (see Algorithm) is a set of specific steps to solve a problem. Think of it this way: if you were to tell your 3 year old neice to play your favorite song on the piano (assuming the neice has never played a piano), you would have to tell her where the piano was, and how to sit on the bench, and how to open the cover, and which keys to press, and which order to press them in, etc, etc, etc.

The core of what good programmers do is being able to define the steps necessary to accomplish a goal. Unfortunately, a computer, only knows a very restricted and limited set of possible steps. For example a computer can add two numbers. But if you want to find the average of two numbers, this is beyond the basic capabilities of a computer. To find the average, you must:

We "compute" all the time. Computing is the act of solving problems (or coming up with a plan to solve problems) in an organized manner. We don't need computers to "compute". We can use our own brain.

Encapsulation and Abstraction and Complexity Hiding

Computer scientists like to use the fancy word "Encapsulation" to show how smart we are. This is just a term for things we do as humans every day. It is combined with another fancy term: "Abstraction".

Abstraction is the idea of "ignoring the details". For example, a forest is really a vastly complex ecosystem containing trees, animals, water paths, etc, etc, etc. But to a computer scientist (and to a normal person), its just "a forest".

For example, if your professor needs a cup of coffee, and asks you the single item: "Get me a cup of coffee", he has used both encapsulation and abstraction. The number of steps required to actually get the coffee are enumerable. Including, getting up, walking down the hall, getting in your car, driving to a coffee stand, paying for the coffee, etc, etc, etc. Further, the idea of what a cup of coffee is, is abstract. Do you bring a mug of coffee, or a Styrofoam cup? Is it caffeinated or not? Is it freshly brewed or from concentrate? Does it come from Africa or America?

All of this information is TOO MUCH and we would quickly be unable to funciton if we had to remember all of these details. Thus we "abstract away" the details and only remember the few important items.

This brings us to the idea of "Complexity Hiding". Complexity hiding is the idea that most of the times details don't matter. In a computer program, as simple an idea as drawing a square on the screen involves hundreds (if not thousands) of (low level) computer instructions. Again, a person couldn't possible create interesting programs if every time they wanted to do something, they had to re-write (correctly) every one of those instructions. By "ecapsulating" what is meant by "draw square" and "reusing" this operation over and over again, we make programming tractable.


The idea behind encapsulation is to store the information necessary to a particular idea in a set of variables associated with a single "object". We then create functions to manipulate this object, regardless of what the actual data is. From that point on, we treat the idea from a "high level" rather than worry about all the parts (data) and actions (functions) necessary to represent the object in a computer.

Brute Force

Brute force is a technique for solving problems that relies on a computers speed (how fast it can repeat steps) to solve a problem. For example, if you wanted to know how many times the number 8 goes into the number 100, you could do the following:

Of course this is a silly way for a computer (or a human) to solve this problem. The real way we would do it is:

When in doubt, you can often use "brute force" to solve a problem, but it often saves time (at least computer time) to think about the problem and solve it in an elegant manner.

examples of problem solving in computer science

1.3. What Is Computer Science? ¶

Computer science is difficult to define. This is probably due to the unfortunate use of the word “computer” in the name. As you are perhaps aware, computer science is not simply the study of computers. Although computers play an important supporting role as a tool in the discipline, they are just that–tools.

Computer science is the study of problems, problem-solving, and the solutions that come out of the problem-solving process. Given a problem, a computer scientist’s goal is to develop an algorithm , a step-by-step list of instructions for solving any instance of the problem that might arise. Algorithms are finite processes that if followed will solve the problem. Algorithms are solutions.

Computer science can be thought of as the study of algorithms. However, we must be careful to include the fact that some problems may not have a solution. Although proving this statement is beyond the scope of this text, the fact that some problems cannot be solved is important for those who study computer science. We can fully define computer science, then, by including both types of problems and stating that computer science is the study of solutions to problems as well as the study of problems with no solutions.

It is also very common to include the word computable when describing problems and solutions. We say that a problem is computable if an algorithm exists for solving it. An alternative definition for computer science, then, is to say that computer science is the study of problems that are and that are not computable, the study of the existence and the nonexistence of algorithms. In any case, you will note that the word “computer” did not come up at all. Solutions are considered independent from the machine.

Computer science, as it pertains to the problem-solving process itself, is also the study of abstraction . Abstraction allows us to view the problem and solution in such a way as to separate the so-called logical and physical perspectives. The basic idea is familiar to us in a common example.

Consider the automobile that you may have driven to school or work today. As a driver, a user of the car, you have certain interactions that take place in order to utilize the car for its intended purpose. You get in, insert the key, start the car, shift, brake, accelerate, and steer in order to drive. From an abstraction point of view, we can say that you are seeing the logical perspective of the automobile. You are using the functions provided by the car designers for the purpose of transporting you from one location to another. These functions are sometimes also referred to as the interface .

On the other hand, the mechanic who must repair your automobile takes a very different point of view. She not only knows how to drive but must know all of the details necessary to carry out all the functions that we take for granted. She needs to understand how the engine works, how the transmission shifts gears, how temperature is controlled, and so on. This is known as the physical perspective, the details that take place “under the hood.”

The same thing happens when we use computers. Most people use computers to write documents, send and receive email, surf the web, play music, store images, and play games without any knowledge of the details that take place to allow those types of applications to work. They view computers from a logical or user perspective. Computer scientists, programmers, technology support staff, and system administrators take a very different view of the computer. They must know the details of how operating systems work, how network protocols are configured, and how to code various scripts that control function. They must be able to control the low-level details that a user simply assumes.

The common point for both of these examples is that the user of the abstraction, sometimes also called the client, does not need to know the details as long as the user is aware of the way the interface works. This interface is the way we as users communicate with the underlying complexities of the implementation. As another example of abstraction, consider the Python math module. Once we import the module, we can perform computations such as

This is an example of procedural abstraction . We do not necessarily know how the square root is being calculated, but we know what the function is called and how to use it. If we perform the import correctly, we can assume that the function will provide us with the correct results. We know that someone implemented a solution to the square root problem but we only need to know how to use it. This is sometimes referred to as a “black box” view of a process. We simply describe the interface: the name of the function, what is needed (the parameters), and what will be returned. The details are hidden inside (see Figure 1 ).


Figure 1: Procedural Abstraction ¶

Problem Solving Using Computer (Steps)

Computer based problem solving is a systematic process of designing, implementing and using programming tools during the problem solving stage. This method enables the computer system to be more intuitive with human logic than machine logic. Final outcome of this process is software tools which is dedicated to solve the problem under consideration. Software is just a collection of computer programs and programs are a set of instructions which guides computer’s hardware. These instructions need to be well specified for solving the problem. After its creation, the software should be error free and well documented. Software development is the process of creating such software, which satisfies end user’s requirements and needs.

The following six steps must be followed to solve a problem using computer.


Lesson 1. problem solving with computer programming – part i.

Current course

Login to your account

Change password, password changed successfully.

Your password has been changed

Create a new account

Can't sign in? Forgot your password?

Enter your email address below and we will send you the reset instructions

If the address matches an existing account you will receive an email with instructions to reset your password

Request Username

Can't sign in? Forgot your username?

Enter your email address below and we will send you your username

If the address matches an existing account you will receive an email with instructions to retrieve your username

World Scientific

Cookies Notification

System upgrade on tue, oct 25th, 2022 at 2am (edt).

Computer-Based Problem Solving Process cover

Computer-Based Problem Solving Process

One side-effect of having made great leaps in computing over the last few decades, is the resulting over-abundance in software tools created to solve the diverse problems. Problem solving with computers has, in consequence, become more demanding; instead of focusing on the problem when conceptualizing strategies to solve them, users are side-tracked by the pursuit of even more programming tools (as available).

Computer-Based Problem Solving Process is a work intended to offer a systematic treatment to the theory and practice of designing, implementing, and using software tools during the problem solving process. This method is obtained by enabling computer systems to be more Intuitive with human logic rather than machine logic. Instead of software dedicated to computer experts, the author advocates an approach dedicated to computer users in general. This approach does not require users to have an advanced computer education, though it does advocate a deeper education of the computer user in his or her problem domain logic.

This book is intended for system software teachers, designers and implementers of various aspects of system software, as well as readers who have made computers a part of their day-today problem solving.

Sample Chapter(s) Chapter 1: Introduction to System Software (149 KB)

Type on 05/12/2014

Book received on 20/3/2015

Updated pp on 20/3/2015

Updated descrip on 06/10/15


Part 1 Systems Methodology

Chapter 1: introduction to system software.

Chapter 2: Formal Systems

To understand how can one carry out actions that handle software systems (in software) we examine first how can one handle formal systems (in mathematics). We use set theory [Enderton (1977)] to discuss formal systems.

Chapter 3: Ad Hoc Systems

However, we handle ad hoc systems. For a complete specification, ad hoc systems should be characterized by the rules of math. Unfortunately, ad hoc systems are not constructed from ideal (mathematical) objects. Rather, ad hoc systems are models of behavior (representations) of real and very heterogeneous objects — sometimes expensive…

Chapter 4: Common Systems in Software Development

The most common systems in computer science are probably the state transition systems related to the finite automata theory [Hopcroft and Ullman (1979)]. However, while state transition systems are used as models of computation in general, transition systems are more appropriate as model of computations as performed by a computer. We follow Manna and Pnueli [Manna and Pnueli (1992)] to discuss this concept in the framework of system software.

Part 2 Computer Architecture and Functionality

Chapter 5: hardware system.

until system performs according to its major behavior specified at (1).

Chapter 6: Functional Behavior of Hardware Components

Chapter 7: Algorithmic Expression of a Hardware System

Step 4 of the systematic approach requires an algorithmic expression for the behavior of the system in terms of its components. The algorithmic expression of a hardware system using SSL is…

Chapter 8: Using Computers to Solve Problems

We need to emphasize the importance of the algorithmic expression of a computer system, developed previously as an ad hoc system, over and over in this text, thus justifying the computer use as a universal problem solving tool. Therefore, though redundantly, we start the discussion of computer based problem solving methodology by the reproduction of this expression…

Part 3 Software Tools Supporting Program Execution

Chapter 9: computer process manipulation by programs.

System software tools are programs which manipulate processes, software resources, hardware resources, and events. Processes are abstractions that represent computations performed by hardware. Software resources are programs written in various PL-s, data, and documents. Hardware resources are processors, memories, devices. Events, are interrupts, exceptions, and messages that occur during program execution. We dedicate this chapter to the software tools used to manipulate processes.

Chapter 10: Memory Management System

Various programs existent in memory at a given time require memory to be partitioned among computer users. The two main memory partitions are system memory area, occupied by programs in system software and user memory area, which is the memory available for user programs. While system memory area remains occupied by the same programs over long periods, the user memory area changes continuously…

Chapter 11: I/O Device Management System

As in the case of processor and memory, to manipulate I/O devices by program they need to be represented as data. To develop a device data representation we first look at the device functional characterization.

Chapter 12: Computation Activity and Its Management Tools

Unlike other computer resources, which are tangible entities and require management tools, computation performed by a computer platform is not tangible. It is a dynamic abstraction observable through the effect the events that occur during a computation task have on the other resources of the system. For example, an interrupt event may result in a switch-context operation (see section 9.8), an exception may result in the increase or decrease of the resources allocated to the currently running program, a message may result in complete change of computation configuration. Therefore, software tools that manage computation activity actually manipulate the events that may occur during computation and have the goal to preserve computation consistency and to maintain the computer busy as long as possible.

Part 4 Software Tools Supporting Program Development

Chapter 13: problem solving by software tools.

We examined the development of ESE tools in Part 3 of this book. Here we examine the design and evolution of PSE tools which are called System Programs (SP). More recent computer based problem solving methodology is identified with the process of program development. Therefore the collection of system programs are also called Problem Solving Environment. So here the acronym PSE is dually used. Collectively we refer to the ESE and PSE as software tools.

Chapter 14: Web-Based Problem Solving Process

WBPSP is an extension of computer based problem solving process by developing software tools dedicated to problem domain experts. That is, during WBPSP, while solving a problem of the domain D , problem solver can use a Domain Algorithmic Language (DAL(D)), characteristic to the domain, instead of using a programming language. Looking back at the CBPSP, this means that problem solver executes problem solving algorithms using her own brain instead of converting them into programs to be executed by the computer. This can be done because with WBPSP the computer is used by problem solver as a “brain assistant” that perform the operations involved in the problem solving algorithm upon the problem solver requests. In other words, problem solver communicates with her computer using her natural language. But natural language evolves dynamically with problem domain and it is strongly ambiguous. This was the reason to interpose translators from domain language to the computer language, i.e., programming, in the problem solving process in the first place. However, looking carefully at this situation we observe that the problem lies in the requirement that programming languages be Turing complete. That is, programming languages have been developed as universal problem solving tools. On the other hand human oriented problem solving is domain characteristic. For a given problem domain (such as mathematics, physics, chemistry, engineering, business, etc.) problem solving algorithm uses a DAL, which is a fragment of natural language spoken by the problem domain experts. Domain algorithmic languages are learned by domain experts during their domain education process and their ambiguities are removed by the domain context. Therefore if a DAL is formally defined and if every concept employed by a DAL algorithm is associated with a computer artifact representing its computational meaning in the domain, DAL expressions can be evaluated by problem solver using a computer in a similar way in which an arithmetic expression is evaluated using a calculator. Moreover, if the domain concept represented by a DAL algorithm that solves certain problem P is automatically associated with the computer program performing that algorithm as the concept's meaning, then DAL evolves with problem domain. Consequently the computer becomes a cognitive tool used by problem solver as a brain assistant during problem solving process…

Chapter 15: Software Tool Development Illustration

Software tool design and implementation may be very complex. The best illustration of a software tool is the design and implementation of a translator. This is because we understand and use translators which are mappings Translator : SL → TL where SL is a languages called the Source Language, and TL is another language called the Target Language. If SL and TL are computer languages, depending upon their level of abstraction, the Translator is called a Compiler, an Interpreter, an Assembler, and/or a Loader/linker. The algorithm performing the mapping depends on our ability to structure SL and TL as mathematical abstractions. Further in this chapter we discuss the compiler implementation as a problem solved during WBPSP where the domain of expertise is Programming Languages. Hence, DAL for us is any programming language one would like to chose to express the compiler implementation algorithm. However, we hope this discussion to be a model for the Web-Based Problem Solving Process carried out for other problem domains.

Chapter 16: Software Tools for Correct Program Development

Programs are programming language expressions developed by people (programmers) who are experts on the syntax and the semantic rules defining the programming language they use. However, since program development is a human activity, according to the Latin proverb “errare humanum est”, which translates in “to err is human”, a program may contain errors. So, the problem faced by software developers becomes the development of tools that allow programmers to create correct programs during computer based problem solving process. For that the software developers need first to define the meaning of the expression “correct program”. Since programs are algorithms expressed using programming languages, the program correctness becomes the correctness of the algorithms they represent. But irrespective whether we talk about the correctness of the algorithm or of the program, we need to remember that programs (or algorithms) are language expressions. And as language expressions they may contain two kind of errors: syntactic errors and semantic errors. Syntactic errors are violations of the language syntax during program development. Since language syntax is usually formally specified, syntax errors can be handled by the compiler. Semantic errors however are more difficult to handle…

Part 5 Computer Operation by Problem Solving Process

Chapter 17: using first computers to solve problems.

The use of the first man-made computer for problem solving was performed by the programmer and is summarized in Figure 17.1…

Chapter 18: Batch Operating System

The computing environment of CP allows two types of programs to coexist in main memory: system programs, that perform actions initiated by CP, and user programs, that perform user computations. They must cooperate while executing a job. However, while performing their functions these programs perform destructive operations, such as read(JobFile) which can replace the contents of a memory area with the information read from the JobFile, thus destroying information stored in computer memory. The destruction of information would be a consequence of user programs and system programs violating their interaction protocol. For example, a user program may input a data record into a buffer that covers a portion of a system program memory area. A system program may input a control record into a buffer that covers a portion of a user program memory area. How can we prevent such situations…

Chapter 19: Problem of Protection

The mode bit and the interrupt mechanism are used to enforce a controlled communication between the BOS and the programs initiated by BOS, (among which the user program is). They cannot provide protection against malicious actions that the agents that share the computer can exercise against each other.

Chapter 20: Timing Program Execution

Timing program execution is particularly important to avoid the infinite looping of a program, thus preventing the denial of service aspect of system security. It is of equal interest when computation time becomes a shared resource of the computer platforms as required by real-time applications and time-sharing systems. Timing program execution requires a new architectural change which consists of providing hardware support for clocks and appropriate software support to manipulate these clocks. Hardware support for timing program execution consists of two kind of time measuring gadgets called clocks and timers. Clock registers (CLK) are used to time instruction execution and Timer registers (TMR) are used to time program execution. Clocks and timers behave similarly, they interrupt computation after each time unit they can measure…

Chapter 21: Efficiency of Batch Operating Systems

BOS has been developed as an automaton that controls the operation of a computing system consisting of: an operator batching jobs at one end of a JobFile, a computer which processes jobs from the other end of the JobFile, and devices that perform I/O operations encoded in the records of that JobFile. BOS evolved by automating the procedure performed by a human operator controlling the system while answering such questions as: is this automaton correct? and is this automaton reliable? . However, since computer is an expensive tool used by humans during problem solving process, questions such as: is this automaton efficient? , is this automaton convenient? , and does this automaton evolve with problem domains? , need also be answered.

Chapter 22: Convenience of the BOS

Computer based problem solving process evolved the BOS to perform the action…

Chapter 23: Real-Time Systems

A real-time system is a computing system that interacts in real-time with its environment. Real-time systems are used as control devices in dedicated applications. Examples such applications are surgical operations, aircraft control, industrial plant control, embedded-devices in house-hold appliances, etc. Software systems which control these applications are real-time systems also called control devices…


Teodor Rus is among the few people who have set the foundation of current computer technology. He spent 22 years (1960–1982) developing software systems working on Romanian, French, and German software industry. His books Data Structures and Operating Systems , John Wiley, 1979 and Formal Tools for Language Specification (in Romania), Romanian Academy, 1983 are among the first monographs that initiated current trends on software development. Thereafter, his other books System Software and Software Systems, Concepts and Methodology , Vols. 1 and 2, published by World Scientific in 1993, and 1994 respectively, covering a large spectrum of computer science curricula, were written for the undergraduate and graduate to learn computing inductively as problem solving tools, not blindly following and sitting on platform developed by experts to program for solutions.

examples of problem solving in computer science

Related Books

examples of problem solving in computer science

An Introduction to the Analysis of Algorithms

examples of problem solving in computer science

An Elementary Approach to Design and Analysis of Algorithms

examples of problem solving in computer science

C++ Programming with Applications in Administration, Finance and Statistics

examples of problem solving in computer science

Introduction to Windows ® and Graphics Programming with Visual C++ ®

examples of problem solving in computer science

Voronoi Diagrams and Delaunay Triangulations

examples of problem solving in computer science

Introduction to Windows ® and Graphics Programming with Visual C++ ® .Net

examples of problem solving in computer science

Hybrid Metaheuristics

examples of problem solving in computer science

Advances in Chinese Computer Science

examples of problem solving in computer science

Programming: A Primer

examples of problem solving in computer science

Designs from Linear Codes

examples of problem solving in computer science

Handbook of Software Engineering and Knowledge Engineering

examples of problem solving in computer science

Multimedia Modeling

examples of problem solving in computer science

Collaborative Recommendations

examples of problem solving in computer science

Algorithms for Analysis, Inference, and Control of Boolean Networks

examples of problem solving in computer science

Mathematical Tools in Computer Graphics with C# Implementations

examples of problem solving in computer science

Building Secure and High-Performance Software Systems

examples of problem solving in computer science

Geometric Computation

examples of problem solving in computer science

Scientific Programming

examples of problem solving in computer science

Computational Intelligence in Software Engineering


  1. Problem Solving

    examples of problem solving in computer science

  2. computer algorithm science problem solving process with programming language code concept light

    examples of problem solving in computer science

  3. 🎉 Computer science problem solving. How is computer science related to problem solving?. 2019-01-23

    examples of problem solving in computer science

  4. Knowledge Model Update: Technological Method of Problem Solving

    examples of problem solving in computer science

  5. ️ Problem solving step. 5 Problem Solving Steps. 2019-01-14

    examples of problem solving in computer science

  6. What Is Problem Solving

    examples of problem solving in computer science


  1. Problem Solving Techniques

  2. Programming for Problem Solving

  3. Problem Solving

  4. Introduction to Problem Solving

  5. Problem solving 1st Lec (Programming Fundamentals)

  6. Programming is Problem Solving


  1. What Are the Six Steps of Problem Solving?

    The six steps of problem solving involve problem definition, problem analysis, developing possible solutions, selecting a solution, implementing the solution and evaluating the outcome. Problem solving models are used to address issues that...

  2. How Are Statistics Used in Computer Science?

    Statistics in computer science are used for a number of things, including data mining, data compression and speech recognition. Other areas where statistics are use in computer science include vision and image analysis, artificial intellige...

  3. The Secret Science of Solving Crossword Puzzles

    Curious by nature? Then you probably can’t resist the mystery of a good puzzle. From jigsaw puzzles to mind-bending brain teasers, puzzles have challenged the brains and stubborn natures of humans for centuries.

  4. Problem Solving

    Solving problems is the core of computer science. Programmers must first understand how a human solves a problem, then understand how to translate this

  5. What are some examples of extremely clever problem solving in the

    Zoom meeting/ Google Meet - You are using it for you daily live classes and meetings. · YouTube - Where you go and learn things. · Telegram/Facebook/Whatsapp/

  6. Computer Programming Problem Solving Process

    Review the following example, and note the steps a programmer could take to solve the problem. Example problem: Find and display the largest

  7. An Introduction to Computer Science and Problem Solving

    For example, within the field of database systems you can work on theoretical.

  8. 1.3. What Is Computer Science?

    Computer science is the study of problems, problem-solving, and the solutions that come out of the problem-solving process. Given a problem, a computer

  9. Problem Solving Skills For Programming

    This video on problem solving in programming enables you to learn the importance and ways to improve knowledge over programming.

  10. Examples of Algorithm| Problem Solving Chapter no.1

    Examples of Algorithm| Problem Solving Chapter no.1 | Computer Science 9th Class New Book 2020 By Info Pack. In this video examples of

  11. Problem Solving Using Computer (Steps)

    Computer based problem solving is a systematic process of designing, implementing and using programming tools during the problem solving stage.


    Lesson 1. PROBLEM SOLVING WITH COMPUTER PROGRAMMING – PART I · 1. [Initialise variables] sum ← 0 · 2. [set up a for loop, which iterates ten times] for i ← 1

  13. Unit 2: Problem Solving EXPLORING COMPUTER SCIENCE

    For example, the city council wants to find out about trash disposal in the community in order to clean up the streets. o Have students work in groups of 3-4 to

  14. Computer-Based Problem Solving Process

    Computer-Based Problem Solving Process is a work intended to offer a systematic treatment to the theory and practice of designing, implementing, and using