Algorithmic Thinking - Deepstash

Algorithmic Thinking

  • Algorithms are abstract artefacts.
  • They are procedural knowledge.
  • In order for a procedure to qualify as an algorithm as computer scientists understand this concept, it must possess the following attributes (as first enunciated by Donald Knuth):
  • Finiteness. An algorithm always terminates (that is, comes to a halt) after a finite number of steps.
  • Definiteness. Every step of an algorithm must be precisely and unambiguously specified.
  • Effectiveness. Each operation performed as part of an algorithm must be primitive enough for a human being to perform it exactly (using, say, pencil and paper).
  • Input and output. An algorithm must have one or more inputs and one or more outputs.
  • Donald Knuth (who perhaps more than any other person made algorithms part of the computer scientist’s consciousness) once described computer science as the study of algorithms. Not all computer scientists would agree with this ‘totalizing’ sentiment, but none could conceive of a computer science without algorithms at its epicentre. Much like the Darwinian theory of evolution in biology, all roads in computing seem to lead to algorithms. If to think biologically is to think evolutionarily, to think computationally is to form the habit of algorithmic thinking.

37

61 reads

The idea is part of this collection:

How To Get Rich Naval - Every Episode

Learn more about books with this collection

Why happiness is the ultimate goal

The importance of creating value

How to create wealth in the modern era

Related collections

Similar ideas to Algorithmic Thinking

Computational Artefacts

  • The modern computer is a hierarchically organized system of computational artefacts.
  • Hierarchical organization is a means of managing the complexity of an entity.
  • Computational artefacts are made things; they process symbol structures signifying information,...

Algorithms: Output

The last step of an algorithm is output - expressing the answer.

Output to a computer is usually more data. It allows computers to string algorithms together in complex ways to produce more algorithms. Output can also present information, such as putting words on a screen.

Heuristic Computing

  • Many problems are not conducive to algorithmic solutions.
  • Even if one understands the problem well enough, and possesses knowledge about the problem domain, and can construct an algorithm to solve the problem, the amount of computational resources (time or space) needed to execute th...

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Personalized microlearning

100+ Learning Journeys

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates