Computer Science

Problem Solving Techniques

Problem solving techniques in computer science refer to systematic approaches used to identify, analyze, and solve complex problems. These techniques often involve breaking down problems into smaller, more manageable components, using algorithms and data structures, and applying logical reasoning to find efficient solutions. Common problem-solving techniques in computer science include divide and conquer, dynamic programming, and greedy algorithms.

Written by Perlego with AI-assistance

10 Key excerpts on "Problem Solving Techniques"

  • Book cover image for: Computational Thinking for the Modern Problem Solver
    So it is impossible to understand computational thinking without under-standing the problem-solving skills and techniques of the computer sci-entist. Of course, problem solving did not begin with computers, nor are computers essential to solve many problems; and, of course, the problem-solving skills common to computer scientists are useful far outside the world of computers. It would be impossible to capture all the ways that computer scien-tists solve problems, but there are four strategies regularly employed by computer scientists that are at the core of this modern style of problem solving: 1. Problem definition 2. Logical reasoning 3. Decomposition 4. Abstraction In addition to their significant utility in computational problem solving, each of these techniques has numerous applications aside from computer science. 4.1 PROBLEM DEFINITION Like the scientific investigation process begins with a hypothesis, soft-ware development begins with a careful problem definition . The problem definition specifies what task(s) are to be performed by the associated software. The problem definition also serves as the software developer’s goal. Without such a goal it is impossible to know whether the problem has been solved, impossible to say whether a computer application is correct. Software engineers recognize at least three major phases to the process of developing software: 1. Analysis 2. Design 3. Implementation Solving Problems ◾ 95 The latter two phases involve the creation of a problem solution, but analysis is all about defining the problem. In some sense analysis is the most important phase, because, as every good software engineer knows, successful design and implementation is only possible given adequate analysis. Problem definition involves more than just computer scientists.
  • Book cover image for: Artificial Intelligence Problems and Their Solutions
    [1] . Each of these approaches helps us understand the problem better.
    Once we understand the problem, we go on to planning to solve it. It is a way to manage the complexity of the problem. It is observed that if planning leads to faster solutions, the degree of planning increases [4] .
    One of the ways to deal with a complex problem is to solve a simpler version of the problem. The solutions and methods used for the simpler problem can then be used to plan for the harder problems [5] .
    Solving a problem involves searching through a large number of possibilities consisting of a set of paths leading to a goal state. We may also create subgoals and solve them to reach the final goal [6] . Algorithms and heuristics are two of the basic ways to solve a problem.
    Algorithms in computer science will typically be computationally intensive and involve an exhaustive search in the state space. Therefore, they will always lead to the goal state and are 100% correct [7] . The heuristic approach to problem solving is more suitable for humans with their limitations in terms of memory capacity and processing speed.
    A heuristic is a rule of thumb that allows one to select one or a few of the possible paths through the state space that are more likely to lead to the goal state. Though heuristics usually lead to solutions with relatively less processing [4] , this does not always guarantee a solution and sometimes may even lead us in the wrong direction [7] .
    2.2  Problem-Solving Techniques
    We will now examine some problem-solving techniques. Whole books can be written about many of these techniques, but our purpose here is simply to introduce and distinguish these techniques from one another in the hope that the problem solver will find them useful.
      Induction
    In mathematics, induction is often used as a soundproof technique. Unfortunately, when used in the real world, it is not necessarily sound.
    Example 1:
  • Book cover image for: Introduction to Computational Models with Python
    I Problem Solving 1 C H A P T E R 1 Problem Solving and Computing 1.1 INTRODUCTION Computer problem solving attempts to derive a computer solution to a real-world problem, and a computer program is the implementation of the solution to the problem. A computational model is a computer implementation of the solution to a (scientific) problem for which a mathematical representation has been formulated. These models are applied in various areas of science and engineering to solve large-scale and complex scientific problems. A computer program consists of data definitions and a sequence of instruc-tions. The instructions allow the computer to manipulate the input data to carry out computations and produce desired results when the program exe-cutes; an appropriate programming language is used. This chapter discusses problem solving principles and presents elementary concepts and principles of problem solving, computational models, and pro-grams. 1.2 COMPUTER PROBLEM SOLVING Problem solving is the process of developing a computer solution to a given real-world problem. The most challenging aspect of this process is discovering the method to solve the problem. This method of solution is described by an algorithm. A general process of problem solving involves the following steps: 1. Understand the problem. 2. Describe the problem in a clear, complete, and unambiguous form. 3. Design a solution to the problem (algorithm). 4. Develop a computer solution to the problem. 3 4 squaresolid Introduction to Computational Models with Python An algorithm is a description of the sequence of steps performed to pro-duce the desired results, in a clear, detailed, precise, and complete manner. It describes the computations on the given data and involves a sequence of instructions or operations that are to be performed on the input data in order to produce the desired results (output data).
  • Book cover image for: Algorithmic Problem Solving
    • Roland Backhouse(Author)
    • 2014(Publication Date)
    • Wiley
      (Publisher)
    Algorithmic problem solving is about the skills that are needed to meet the new challenges that we face. This book is based on a first-year, first-semester module that was first introduced at the University of Nottingham in September 2003. Initially the module was optional but, in 2006, it was made compulsory for all first-year Computer Science and Software Engineering students (as well as still being optional for students on other degree programmes) and has remained so ever since. The module is taught at each of the University’s three campuses in China, Malaysia and the UK. The aim of the book is to instill good problem-solving skills, particularly but not exclusively in cases where the solution to a problem involves the design of an algorithm. The approach is problem-driven: the main part of the book consists of a series of examples that introduce the principles of algorithmic problem solving in a systematic fashion. The use of a problem-driven approach is crucial to exciting students’ natural propensity to take on a challenge; however, examples without theory are meaningless, so the second part of the book is about the mathematics that underpins the principles. Boxes within the text point the reader to the mathematics that is relevant to a particular example. The presentation deviates from traditional mathematical practice in a number of ways. The treatment of boolean algebra and logic, for example, is non-standard and some notation is also non-standard. These deviations are, however, based on developments in algorithmic problem solving that have been well understood for at least twenty years. (Although twenty years is a very short time-span in the development of mathematics, it is a relatively long period in the modern computer age.) Potential teachers who are not already convinced or unfamiliar with the material are asked to approach it with an open mind.
  • Book cover image for: Problem Solving: Methods, Programming and Future Concepts
    • O.V. German, D.V. Ofitserov(Authors)
    • 1995(Publication Date)
    • North Holland
      (Publisher)
    However, these systems of computer mathematics are not recognized as problem solving ones because they do not deal with the problem logical structure (regularities) and the search for a solution as it is understood, for example, in heuristic programming. 5.4. Expert systems The traditional problem solving technology is based on running the program compiled by the human-solver on the computer. The majority of programs consist of an imperative set of precise instructions for the computer. Each instruction is exact and unambigious. We can see that in this case, the program represents a complete version of 348 Chapter 5 an algorithm written in the input language of the computer. Two basic points should be clarified when building a programming paradigm of problem solving: A: How to solve a problem (in general)? B: How to organize solution process in the human-machine media ? The traditional paradigm is the following: A: As it may be solved by every individual. B: Computer simply scans and performs presented solving procedure. The expert-system paradigm is as follows A: As it may be solved by well qualified experts. B: Computer derives the solution from the knowledge base by means of an inference mechanism. As the reader can see, the most significant difference in the latter paradigm is in point B. This is due to the fact that a solving algorithm is considered to be a priori unknown and is searched for on the basis of a logical inference machine or a Bayes' resolution strategy. Thus, the development of informal solving strategies is an important part of the theory of expert systems. The paradigms given above may be represented in other forms. Thus, a traditional conception has the form: Data + Algorithm = Program similarly, an expert-system paradigm takes the following form Knowledge + Inference Strategies = Problem Solving In fact, both knowledge and inference mechanisms are tightly connected to each other.
  • Book cover image for: Problem solving activities in post-editing and translation from scratch : A multi-method study
    Computer science frequently deals with problem solving and much literature has been published in special areas like artifcial in-telligence (e.g. Zhang & Zhang 2004 ”Agent-based hybrid intelligent systems: An agent-based framework for complex problem solving”) and on how to solve prob-lems in or with the help of programming languages (e.g. Hanly et al. 2013 “Prob-lem solving and program design in C” or Savitch & Carrano 2012 “Java: An intro-duction to problem solving & programming”). Specifc models and methods have been developed to help solve problems in engineering (e.g. Gómez-Pérez 2010 “TRIZ for engineers; Enabling inventive problem solving”) and economics (e.g. Gómez-Pérez 2010“Acquisition and understanding of process knowledge using problem solving methods”). Medicine deals with strategies to diagnose illnesses accurately and rapidly (e.g. Aghamohammadi & Rezaei 2012 “Clinical cases in pri-mary immunodefciency diseases: A problem-solving approach”) and pharmacy tries to use nature to fnd cures to illnesses (e.g. Mehlhorn 2011 “Nature helps -How plants and other organisms contribute to solve health problems”). In the following, two felds will be analysed to determine a theoretical frame-work: problem solving in psychology (§5.2) and in translation studies (§5.3). Psy-chology was selected for analysis because it, just like translation, does not belong to the hard sciences but deals with the concept of problems and problem solving also on a theoretical basis. Finally, psychology does not only apply the concepts, but also deals with their very nature. Problem solving is a much discussed topic in psychology. Hence, it is not the scope of this chapter to describe every detail and approach in the feld, but only a selection will be introduced. Tis selection concentrates in particular on notions that can be related to translation studies. Te psychological theories and fndings will be used to evaluate and extend the work on problem solving in translation studies (§5.4).
  • Book cover image for: Problem Solving in Mathematics Education
    • Uldarico Malaspina, Manuel Santos-Trigo, Peter Liljedahl(Authors)
    • 2016(Publication Date)
    • Springer Open
      (Publisher)
    The purpose of this section is to present and discuss important themes that emerged in problem solving approaches that rely on the systematic use of several digital technologies. In the last 40 years, the accumulated knowledge in the problem solving fi eld has shed lights on both a characterization of what mathematical thinking involves and how learners can construct a robust knowledge in problem solving environments (Schoenfeld 1992 ). In this process, the fi eld has contributed to identify what types of transformations traditional learning scenarios might consider when teachers and 20 Problem Solving in Mathematics Education students incorporate the use of digital technologies in mathematical classrooms. In this context, it is important to brie fl y review what main themes and developments the fi eld has addressed and achieved during the last 40 years. 1.3.2 Problem Solving Developments There are traces of mathematical problems and solutions throughout the history of civilization that explain the humankind interest for identifying and exploring mathematical relations (Kline 1972 ). P ó lya ( 1945 ) re fl ects on his own practice as a mathematician to characterize the process of solving mathematical problems through four main phases: Understanding the problem, devising a plan, carrying out the plan, and looking back. Likewise, P ó lya ( 1945 ) presents and discusses the role played by heuristic methods throughout all problem solving phases. Schoenfeld ( 1985 ) presents a problem solving research program based on P ó lya ’ s ( 1945 ) ideas to investigate the extent to which problem solving heuristics help university stu-dents to solve mathematical problems and to develop a way of thinking that shows consistently features of mathematical practices.
  • Book cover image for: Six Sigma and Beyond
    eBook - PDF

    Six Sigma and Beyond

    Problem Solving and Basic Mathematics, Volume II

    • D.H. Stamatis(Author)
    • 2001(Publication Date)
    • CRC Press
      (Publisher)
    Historically and to the present day, the term problem solving has been used with considerably greater frequency in reference to outcomes or products, particularly the success/failure aspect of the activity, rather than the process per se. Problem solving as a process became the focus of research with the weakening of interest of research workers in the perceptual and experiential aspects of thought, as had been pursued by associationists and Gestalt psychologists. As was noted earlier, the Gestalt approach to research into problem solving might be described as subject oriented. The more recent, important contributions of the information processing and artificial intelligence studies, though concerned with the investigation of the problem solving process itself, focused primarily on the demand characteristics and structure of certain problem solving tasks (e.g., Newell and Simon, 1972; Scandura, 1973, 1977; and Wickelgren, 1974). The term problem solving can refer to all overt and covert activities that take place to reach a solution or otherwise accomplish a goal or purpose in a problem solving situation. For the purposes of the six sigma methodology, the term problem solving is used to broadly describe the results of the interaction of components from the following five domains of variables: Step 1. The problem or task, T Step 2. The problem solver or subject, S Step 3. The situational circumstances or the environment in which the problem is presented or presents itself, E Step 4. The behaviors or processes which take place between the point of initial contact with the problem by S and the solution produced by S, X Step 5. The solution or product of the problem solving activity, P Regardless of the type of problem or the manner in which task (T), subject (S), environment (E), and process (X) variables interact, the product (P), whatever form it might take, is always a function of the interaction of variables from the remaining domains.
  • Book cover image for: TQM Engineering Handbook
    • D.H. Stamatis(Author)
    • 1997(Publication Date)
    • CRC Press
      (Publisher)
    13 Problem Solving Problem solving is a fundamental process that remains the same regardless of the problem; however, the complexity of the process changes with the nature of the problem. Problem solving is basically the scientific approach simplified so that it can be applied to any problem; everyone can and should use it to resolve problems and/or discover opportunities. I. OVERVIEW Problem solving is creating change to bring actual conditions closer to con-ditions that are desired. A problem is a discrepancy between current conditions and desired conditions, and the goal of problem solving is to reduce or eliminate the discrepancy. A typical problem-solving process is shown in graphical format in Figures 13.1 through 13.5. Figure 13.1 presesnts an ap-proach for the initial steps of concern analysis. Figure 13.2 presents the actual problem solving process in the most basic format of what, where, when, and magnitude. Figures 13.3 and 13.4 present a format for identifying and defin-ing decision-making alternatives and risks, respectively. Finally, Figure 13.5 presents a methodological approach to planning for problem solving. No 317 Figure 13.1 Process of problem solving—concern analysis. 318 Chapter 13 Figure 13.2 Process of problem solving—problem solving. Problem Solving 319 Figure 13.3 Process of problem solving—decision making alternatives. 320 Chapter 13 Figure 13.4 Process of problem solving-decision making risks. 'ti 0 CT ;-3 g> < :;· CCI w N ... Figure 13.5 Process of problem solving—planning. 322 Chapter 13 Problem Solving 323 matter how one defines and/or approaches the problem solving process, the fact remains that there are two basic aspects to it. 1. Differentiate between decision making and problem analysis. Deci-sion making consists of determining goals and choosing courses of action to reach those goals. Problem analysis consists of identifying factors that impede goal achievement and determining the forces that bear on those factors.
  • Book cover image for: Introduction to Elementary Computational Modeling
    eBook - PDF

    Introduction to Elementary Computational Modeling

    Essential Concepts, Principles, and Problem Solving

    Part I Understanding Problem Solving This page intentionally left blank This page intentionally left blank Chapter 1 Understanding Word Problems 1.1 Introduction Although a computational problem may be solved using mathematics, a calculator, or a computer program, developing a solution to these problems begins with a description of the problem in a human language (e.g. English). To solve such problems, it is necessary to understand what the (English) problem statement is saying. One may say “well, I already understand English,” and that is correct — for casual conversations. In this case, one only needs to have a general understanding of what is being said. The problem statement of real-world situations is often described in a very ambiguous, incomplete, and confusing manner. However, for developing com-putation models from problem statements, one needs to understand precisely what is being said. Therefore, there is a need to focus on every word that is be-ing said (not just the general context). Otherwise, the appropriate computations will most likely not be performed. The first important step in developing computational models is understand-ing the problem. This is part of the general approach of computational think-ing that is required for any problem that involves calculations. This chapter discusses how to understand a precise problem description. Computational thinking is an approach for developing computational mod-els and is used for problem solving in the following application areas: • Sciences (biology, chemistry, computing, physics, geology, etc.) • Social Sciences (psychology, sociology, geography, etc.) • Engineering (electrical engineering, civil engineering, mechanical engi-neering, etc.) • Business (accounting, finance, marketing, economics, risk management, etc.) 3 4 Introduction to Elementary Computational Modeling 1.2 Nouns and Verbs Consider the following example: To calculate the area of a rectangle, multiply the width and height.
Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.