Hacker News new | past | comments | ask | show | jobs | submit login

The term programming here is used with the same semantic definition as "dynamic programming" or "linear programming". Don't expect the book to touch on how to code fast algorithms, rather expect Knuth to teach you the inner workings of the algorithms regardless of their implementations.

Computer science and software development are usually thought to be the same by non computer scientists, but in reality computer science is basically applied mathematics. Expect a lot of it.




Umm, no. "Programming" in "TAOCP" actually refers to "making step by step recipes for a computer" to execute (and is prefixed by the word "Computer" to make this clear). In "linear programming" it refers to something completely different, namely the planning of the use of resources or optimization. "Dynamic programming" is yet something else: a narrow cluster of techniques having to do with memoization in order to help an algorithm identify overlapping subproblems and avoid re-computing them.


Ha.

My first thought was, there sure are different definitions of what "dynamic programming" is, as I've only seen it as related to the Bellman equation (motivation for the name being that it would sound appealing to Bellman's superiors at RAND who had a distaste for mathematical theory).

But then, solving the damn thing is all about identifying and avoiding re-computing overlapping sub-problems, so I guess that is exactly what you meant (even though I have no idea what "memoization" is) :)


Umm, no. You got half the concept right. Programming, especially in the 70s refers to a set of instructions to be followed in order to achieve a specific task.

When you prefix it with "computer" you're specifying the domain, namely all instructions that will allow a computer to do something. Like you correctly mentioned, when prefixed with "dynamic" you're specifying the set of instructions that have a common approach (to break problems into subproblems, etc etc). Similarly, when saying "linear" before "programming" you're specifying that the instructions involving this set use linear variable constrains.


"The term "linear programming" for certain optimization cases was due to George B. Dantzig, although much of the theory had been introduced by Leonid Kantorovich in 1939. (Programming in this context does not refer to computer programming, but from the use of program by the United States military to refer to proposed training and logistics schedules, which were the problems Dantzig studied at that time.)"

Source: https://en.wikipedia.org/wiki/Mathematical_optimization#Hist...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: