[No longer freely available] Algorithmic Problem Solving

An introduction to problem-solving and algorithm formulation using an example-driven approach. It demonstrates the importance of mathematical calculation, but the chosen examples are typically not mathematical.

**Tag(s):**
Algorithms and Data Structures

**Publication date**: 01 Jun 2006

**ISBN-10**:
n/a

**ISBN-13**:
n/a

**Paperback**:
n/a

**Views**: 112,663

**Type**: Book

**Publisher**:
n/a

**License**:
n/a

**Post time**: 30 Sep 2006 11:28:42

[No longer freely available] Algorithmic Problem Solving

An introduction to problem-solving and algorithm formulation using an example-driven approach. It demonstrates the importance of mathematical calculation, but the chosen examples are typically not mathematical.

:santagrin: This book was suggested by John Pinto

Book Excerpts:

In historical terms, the digital computer is very, very new. The science of computing is yet newer. Compared to its older sister - mathematics - which is thousands of years old, it is hardly in the embryonic stage of development. Yet, computing science is already having a major influence on our problem-solving skills, amounting to a revolution in the art of effective reasoning.

Because of the challenges of programming (which means instructing a dumb machine how to solve each instance of a problem) and the unprecedented scale of programming problems, computing scientists have had to hone their problem-solving skills to a very fine degree. This has led to advances in logic, and to changes in the way that mathematics is practised. This book forms an introduction to problem-solving using the insights that have been gained in computing science.

Algorithms

Solutions to programming problems are formulated as so-called algorithms. An algorithm is a well-defined procedure, consisting of a number of instructions, that are executed in turn in order to solve the given problem.

Normally, an algorithm will have certain inputs; for each input, the algorithm should compute an output which is related to the input by a certain so-called input-output relation. Formulating an algorithm makes problem-solving decidedly harder, because it is necessary to formulate very clearly and precisely the procedure for solving the problem. The more general the problem, the harder it gets. The advantage, however, is a much greater understanding of the solution. The process of formulating an algorithm demands a full understanding of why the algorithm is correct.

Intended Audience:

This book aims to impart these new skills and insights to a broad audience, using an example-driven approach. It aims to demonstrate the importance of mathematical calculation, but the chosen examples are typically not mathematical; instead, they are problems that are readily understood by a lay person, with only elementary mathematical knowledge. The book also aims to challenge; most of the problems are quite difficult, at least to the untrained or poorly trained practitioner.

Book Excerpts:

In historical terms, the digital computer is very, very new. The science of computing is yet newer. Compared to its older sister - mathematics - which is thousands of years old, it is hardly in the embryonic stage of development. Yet, computing science is already having a major influence on our problem-solving skills, amounting to a revolution in the art of effective reasoning.

Because of the challenges of programming (which means instructing a dumb machine how to solve each instance of a problem) and the unprecedented scale of programming problems, computing scientists have had to hone their problem-solving skills to a very fine degree. This has led to advances in logic, and to changes in the way that mathematics is practised. This book forms an introduction to problem-solving using the insights that have been gained in computing science.

Algorithms

Solutions to programming problems are formulated as so-called algorithms. An algorithm is a well-defined procedure, consisting of a number of instructions, that are executed in turn in order to solve the given problem.

Normally, an algorithm will have certain inputs; for each input, the algorithm should compute an output which is related to the input by a certain so-called input-output relation. Formulating an algorithm makes problem-solving decidedly harder, because it is necessary to formulate very clearly and precisely the procedure for solving the problem. The more general the problem, the harder it gets. The advantage, however, is a much greater understanding of the solution. The process of formulating an algorithm demands a full understanding of why the algorithm is correct.

Intended Audience:

This book aims to impart these new skills and insights to a broad audience, using an example-driven approach. It aims to demonstrate the importance of mathematical calculation, but the chosen examples are typically not mathematical; instead, they are problems that are readily understood by a lay person, with only elementary mathematical knowledge. The book also aims to challenge; most of the problems are quite difficult, at least to the untrained or poorly trained practitioner.

Tweet

About The Author(s)

Roland Backhouse joined the School of Computer Science in September 1999. He retired in November 2013 and is now an emeritus professor. (So he is not as young as the photograph might suggest!) He continues to do some research and to publish occasionally. His research interests include mathematics of program construction, calculus of relations, category theory, mathematical method, generic programming, and on-line document preparation systems oriented to the needs of authors of mathematical documents.

Book Categories

Computer Science
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Microsoft .NET
Rexx
Perl
PHP
Python
R
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous
Sponsors