My notes on Dynamic Programing and engineering applications for my fellow faculty to let them say goodbye to their “Let us skip DP” attitude and tame their ... competitions
Some of the important points of this book are summarised
More than hundred DP based programming puzzles of simple to moderate complexity are solved.More than 200 ready to run code snippets are included.Almost all the code snippets are made available on the visualization server such that students and faculty can run and experience and trace.Many assignments(exercises) are included.Attempted to explain Mathematical concepts in the easiest manner to make readers appreciate the “DP” and stop them running away from it.Various engineering fields related examples are included.I don’t want to claim this as a normal text book or reference book, instead I consider it as more like a workbook.
Certainly a teacher plays a major role in making one course as interesting or intimidating to students. Many computer science faculty around me feel one intimidating course in our four year Computer Science/IT curriculum is “Design and analysis of Algorithms”. Moreover, the chapter on “Dynamic Programming (DP)” is considered more terrifying and thus usually overlooked or skipped by the teachers. Added to this, the majority of the books on design and analysis algorithms covers only a few examples such as Fibonocci numbers, Knapsack, Matrix Multiplication, etc. Please do understand that I am sharing my observations on the education system that is around me!.
Also, in one of my recent faculty development programs on “Design and analysis of algorithms” I acted as the solo resource person for all the six days. More than fifty faculty members expressed their love to strengthen their understanding of “Dynamic Programming”. They expressed that they would probably be comfortable if they were exposed to more Dynamic programming related practical or real life examples. This instigated me to give final touches to my long pending manuscript on dynamic programming and thus this book has taken its final shape.
I want this workbook to be useful for beginners, especially high school students who are preparing for the Informatics Olympiad (IOI), University of Waterloo Mathematics related competitions and International Collegiate Programming Competition(ICPC).
As my main objective of bringing this book is to make faculty who teach “algorithms” courses not to skip the concepts related to “dynamic programming” because of its intricacy. Thus, I have included many examples along with explanations so as to make the faculty members confidently deal with DP in their respective classes.
Also, I have observed during these thirty years of teaching that a student understands well if we make them habituate tracing the program with a pen and a piece of paper. I have included in my books on C, Data Structures, Algorithm Complexity including this book also. Recently, a marvelous free tool is available at pythontutor.com to trace programs. Many visualizations of the algorithms are included which are either in C, C++, Python, Java so as to allow both faculty and students to trace and understand the logic.
During the recent 4-6 years, campus selections are designed such that the candidates have to solve some programming puzzles that are to be accepted by an online judge(server). This is not the case before. My secondary interest in bringing this book is to help those students who are planning to face IT industry campus off-campus interviews. Out of many tricky problems at online judging systems such as SPOJ, CODECHEF, LEETCODE, etc, problems that demand DP based solutions are very important.