Computer Science

Designing algorithms

Designing algorithms involves creating step-by-step procedures for solving specific problems. It requires careful consideration of the problem's requirements, constraints, and potential solutions. Effective algorithm design aims to optimize efficiency, accuracy, and scalability in order to produce reliable and practical solutions for a wide range of computational tasks.

Written by Perlego with AI-assistance

5 Key excerpts on "Designing algorithms"

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.
  • The Social Power of Algorithms
    • David Beer, David Beer(Authors)
    • 2019(Publication Date)
    • Routledge
      (Publisher)

    ...The efficiency of an algorithm can be enhanced by either refining the logic component or by improving the control over its use, including altering data structures (input) to improve efficiency (Kowalski, 1979). As reasoned logic, the formulation of an algorithm is, in theory at least, independent of programming languages and the machines that execute them; ‘it has an autonomous existence independent of “implementation details”’ (Goffey, 2008, p. 15). Some ideas explicitly take the form of an algorithm. Mathematical formulae, for example, are expressed as precise algorithms in the form of equations. In other cases problems have to be abstracted and structured into a set of instructions (pseudo-code) which can then be coded (Goffey, 2008). A computer programme structures lots of relatively simple algorithms together to form large, often complex, recursive decision trees (Neyland, 2015; Steiner, 2012). The methods of guiding and calculating decisions are largely based on Boolean logic (e.g., if this, then that) and the mathematical formulae and equations of calculus, graph theory and probability theory. Coding thus consists of two key translation challenges centred on producing algorithms. The first is translating a task or problem into a structured formula with an appropriate rule set (pseudo-code). The second is translating this pseudo-code into source code that when compiled will perform the task or solve the problem. Both translations can be challenging, requiring the precise definition of what a task/problem is (logic), then breaking that down into a precise set of instructions, factoring in any contingencies such as how the algorithm should perform under different conditions (control). The consequences of mistranslating the problem and/or solution are erroneous outcomes and random uncertainties (Drucker, 2013). The processes of translation are often portrayed as technical, benign and commonsensical...

  • Lessons in Teaching Computing in Primary Schools
    • James Bird, Helen Caldwell, Peter Mayne(Authors)
    • 2017(Publication Date)
    • Learning Matters
      (Publisher)

    ...This can be achieved without the need for ‘expert’ knowledge and even in many cases without the need to use a computer! The New Collins Concise English Dictionary (2011) defines algorithms as any method or procedure of computation, usually a series of steps. Computational thinking should be seen as a problem-solving process, which incorporates the use of algorithms by analysing and logically organising data. Lesson idea: introducing algorithms This lesson focus is on algorithms being a sequence of precise instructions and related to the need for digital devices also to have precise instructions, in order to follow a preset program with a predetermined outcome. Before you start Be clear in your own mind what an algorithm is and how the concept can be embedded in a cross-curricular way. Pupils need to be grouped according to ability. Things you need •    Toaster, bread, knife and margarine for the teacher demonstration. •    Laminated cards – on each card should be one of the steps for cleaning teeth (the sequence has been decomposed into smaller steps), Blu-tack, mini-whiteboards. Context After an initial teacher demonstration, this particular lesson plan focuses on creating an algorithm for cleaning teeth, which would link well to personal, social, health and economic education, and with a topic on ‘All About Me’. The principle of this lesson could also be used in many different contexts, for example, crossing a road, making a sandwich, getting dressed. Learning objectives •    To understand the term ‘algorithm’. •    To understand the precise nature of algorithms. •    To understand that algorithms provide the precise instructions for common digital devices. Lesson outline In order for pupils to understand the term ‘algorithm’, they need to create some of their own and try them out in the physical sense...

  • Cognitive Skills and Their Acquisition
    • John R. Anderson, John R. Anderson(Authors)
    • 2013(Publication Date)
    • Psychology Press
      (Publisher)

    ...8 The Processes Involved in Designing Software Robin Jeffries, Althea A. Turner, Peter G. Polson University of Colorado Michael E. Atwood Science Applications, Inc., Denver Introduction The task of design involves a complex set of processes. Starting from a global statement of a problem, a designer must develop a precise plan for a solution that will be realized in some concrete way (e.g., as a building or as a computer program). Potential solutions are constrained by the need to eventually map this plan into a real-world instantiation. For anything more than the most artificial examples, design tasks are too complex to be solved directly. Thus, an important facet of designing is decomposing a problem into more manageable subunits. Design of computer systems, software design, is the particular design task to be focused on in this chapter. Software design is the process of translating a set of task requirements (functional specifications) into a structured description of a computer program that will perform the task. There are three major elements of this description. First, the specifications are decomposed into a collection of modules, each of which satisfies part of the problem requirements. This is often referred to as a modular decomposition. Second, the designer must specify the relationships and interactions among the modules. This includes the control structures, which indicate the order in which modules are activated and the conditions under which they are used. Finally, a design includes the data structures involved in the solution. One can think of the original goal-oriented specifications as defining the properties that the solution must have. The design identifies the modules that can satisfy these properties. How these modules are to be implemented is a programming task, which follows the design task. This chapter presents a theory of the global processes that experts use to control the development of a software design...

  • Epistemological Approaches to Digital Learning in Educational Contexts
    • Linda Daniela(Author)
    • 2020(Publication Date)
    • Routledge
      (Publisher)

    ...Chapter 3 The role of algorithmic thinking development in the learning of elementary school pupils aged 10–13 Miroslava Černochová, Hasan Selcuk, and Milan Svoboda Introduction Over the last decade, a great deal of attention has been given to computational thinking (CT) by scholars worldwide. The concept of CT was used by Seymour Papert (1980), and since then (as highlighted by Grover & Pea, 2013), CT has been discussed by various scholars in respect of its definition, planning, and implementation in teaching and evaluation. CT can be seen as “taking an approach to solving problems, designing systems and understanding human behaviour that draws on concepts” (Wing, 2006, p. 33). Moreover, Weintrop et al. (2016, p. 127) defined CT in the context of mathematics and science education as “the form of a taxonomy consisting of four main categories: Data practices, modelling and simulation practices, computational problem-solving practices, and systems thinking practices”. Aho (2012, p. 832) described CT as “the thought process involved in formulating problems so their solutions can be represented as computational steps and algorithms”. In this study, our focus is concerned with algorithmic thinking (AT). Being an important part of computational thinking skill, AT can be defined as the ability to understand, implement, assess, and design algorithms to solve a range of problems. Algorithmic design as an outcome of AT can be understood as a process of “creating an ordered series of instructions for solving similar problems or for performing a task” (Hsu et al., 2018, p. 299). As stressed by Hromkovič and Lacher (2017, p. 4) already Euclid formulated algorithms in his ‘Elements’, among them being the famous Euclid’s algorithm. The term ‘algorithm’ is due back to al-Khwarizmi, who wrote a book about Indian digits around the year 825. Humankind tried to develop algorithms as long as anyone can remember...

  • Creativity Across Domains
    eBook - ePub

    Creativity Across Domains

    Faces of the Muse

    • James C. Kaufman, John Baer, James C. Kaufman, John Baer(Authors)
    • 2005(Publication Date)
    • Psychology Press
      (Publisher)

    ...Like mathematics, computer science is largely preoccupied with manipulating abstract symbols. In contrast to natural science, stories of serendipitous discovery are uncommon: Computers often do unexpected things, but rarely in a way that leads to new discoveries. In a company, problems can come from commercial motivations such as the desire to enter into a new market, to improve on an existing product, or to overcome some difficulties that are preventing a project from being delivered. In the academic world, questions often arise from reading already-published papers that mention extant problems. There is in addition a source of problems that is especially important in computer science. Computers are unusual machines in being not only tools but also tools for making tools. What computer scientists study is also a machine that can help with its own investigation, as if microbiologists studied their electron microscopes rather than bacteria. In a typical scenario, a computer scientist becomes frustrated with a repetitive, boring, and difficult task that might be relieved by new technology. When someone with the right background and ideas experiences such frustration, creative contributions to computer science can be made. A major example occurred during the final months of work on the ENIAC, the first general-purpose electronic computer, started at the Moore School of Electrical Engineering in 1943 (Goldstine, 1972). The ENIAC had been built with the assumption that only one problem would be run on it for a long period of time, so it was difficult and time consuming to reprogram; in essence, the ENIAC had to be rewired by physically plugging in wires to make a new circuit...