Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am reading about Dynamic Programming from Cormen.
In the beginning of the chapter it says (relating to the term Dynamic Programming):

"Programming” in this context refers to a tabular method, not to writing computer code.

I can not really understand what this statement means.
I mean, I understand that the dynamic programming algorithms look up solutions, but I get a feeling that this point here defines something fundamental on the Dynamic Programming that I am not grasping.
Any help?

share|improve this question
It's been a while since I've studied this but I think by "tabular method" he means creating and populating a table that contains all possible solutions for the given inputs, but posting as a comment because I'm not really sure anymore. :/ – FrustratedWithFormsDesigner Jan 10 '12 at 16:56
But creating and populating a table, isn't it considered programming?I get the feeling the book means something more here – user10326 Jan 10 '12 at 17:07
Maybe it just means that the term "Dynamic Programming" has "Programming" in the name, but is really an algorithm, not the implementation of an algorithm in code. – psr Jan 10 '12 at 17:43
@user10326: Yes, and the table is populated by code. Mostly like it's implemented as arrays. The term refers to a style of problem-solving that is usually implemented with actual program code. – FrustratedWithFormsDesigner Jan 10 '12 at 17:59
up vote 4 down vote accepted

Dynamic programming was invented in the first half of the 20th century, when the term "computer" was a job title rather than an inanimate object. Teams of "computers" would fill out the table on paper using mechanical calculators, nobody was writing any computer code. In those days "programming" was primarily a math term, referring to solving a set of simultaneous equations. I suspect they're making the point because folks sometimes think that dynamic programming refers to some sort of self-modifying code.

share|improve this answer
Given the field that it's most associated with, it is a rather unfortunately named technique. – Bill the Lizard Jan 10 '12 at 21:48

Dynamic programming is a way to solve problems by decomposing them into sub-problems in a manner that the results of many of the sub-problems can be used many times throughout the solution. A table of the sub-problem results can be created, so that actual computations only need to be performed once per sub-problem.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.