Algorithmic Thinking - Deepstash
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

How To Get Rich Naval - Every Episode

Discover 90 similar ideas in

It takes just

17 mins to read

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.

33

56 reads

MORE IDEAS ON THIS

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,...

33

48 reads

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...

34

34 reads

Computational Thinking

  • Most sciences in the modern era—say, after the Second World War—are so technical, indeed esoteric, that their deeper comprehension remains largely limited to the specialists, the community of those sciences’ practitioners. Think, for example, of the modern physics of fundamental particles. A...

31

31 reads

The Discipline of Computer Architecture

  • The physical computer is the fundamental material computational artefact of interest to computer scientists.
  • The view of the physical computer as an abstract, symbol processing computational artefact constitutes the computer’s architecture.
  • A given architect...

31

52 reads

The Art, Science, and Engineering of Programming

  • Programs are liminal artefacts.
  • Programming languages, in contrast to natural ones, are invented or designed. They are, thus, artefacts. They entail the use of notation as symbols. As we will see, a programming language is actually a set of symbol structures and, being independent of...

31

61 reads

The Stuff of Computing

  • In its most fundamental essence, the stuff of computing is symbol structures (systems of symbols, that is, entities that ‘stand for’, represent, or denote other entities like data, information or knowledge).
  • Computing is symbol processing
  • Any automaton cap...

37

247 reads

Related collections

Other curated ideas on this topic:

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