diff --git a/dynamic_programming/README.md b/dynamic_programming/README.md
new file mode 100644
index 0000000..c7d8416
--- /dev/null
+++ b/dynamic_programming/README.md
@@ -0,0 +1,13 @@
+## dynamic programming
+
+
+
+* take a recursive algorithm and cache overlapping problems (repeated calls).
+* the runtime is given by the number of calls.
+* **top-down**: how can we divide the problem into sub-problems?
+ * top-down dynamic programming is called **memoization**.
+* **bottom-up**: solve for a simple case, then figure out for more elements.
+
+
+
+---