設計技術作為問題求解的一般性策略
在本書中,主要將設計技術應用于計算機科學中的經典問題(這里唯一的創新是引入了一些數值算法的內容,我們也是用同樣的通用框架來表述這些算法的)。但把這些設計技術看作問題求解的一般性工具時,它們的應用就不僅限于傳統的計算問題和數學問題了。有兩個因素令這一點變得尤其重要。第一,越來越多的計算類應用超越了它們的傳統領域,并且有足夠的理由使人相信,這種趨勢會愈演愈烈。第二,人們漸漸認識到,提高學生們的問題求解能力是高等教育的一個主要目標。為了滿足這個目標,在計算機科學課程體系中安排一門算法設計和分析課程是非常合適的,因為它會告訴學生如何應用一些特定的策略來解決問題。
雖然我并不建議將算法設計和分析課程變成一門教授一般性問題求解方法的課程,但我深信,我們不應錯過算法設計和分析課程提供的這樣一個獨一無二的機會。為了這個目標,本書包含了一些和謎題相關的應用。雖然利用謎題來教授算法課程絕不是我的創新,但本書打算通過引進一些全新的謎題來系統地實現這個思路。