CS302 Lecture Notes - Dynamic Programming


Reference Material and Topcoder Problems

To augment this lecture, there are two sets of tutorials on dynamic programming from Topcoder. They are excellent:

These are Topcoder problems where I give you hints, but no code -- these are good practice for you to work on Dynamic Programming on your own:

And finally, these are Topcoder problems where I give you explanations and code: If you want more dynamic programming practice, simply go to http://web.eecs.utk.edu/~jplank/topcoder-writeups/ and search for "dynamic" -- there are tons of problems with and without solutions.

Dynamic Programming in a Nutshell

Dynamic programming is nothing more than the following:

I find that steps 3 and 4 are often optional. However, they usually represent the best solutions to a problem.

I will illustrate with many examples.


Dynamic Programming Example Programs

Each of these has its own set of lecture notes. There is a makefile in this directory which makes all of the examples.