學習編程,數據結構是基礎中的基礎。

VIP內容

本書的靈感來源於無聊與迷戀的感覺:對常規的數據結構與算法介紹的無聊,對複雜係統的迷戀。數據結構的問題在於教師在教授這門課程的時候通常不會調動起學生的積極性;複雜性科學的問題在於學校通常不會教授這門課程。

2005年,我在歐林學院講授了一門新課程,學生要閱讀關於複雜性的主題,使用Python進行實驗,並學習算法與數據結構。當我在2008年再次講授這門課程時,我寫了本書的初稿。

在2011年第3次講授這門課程時,我準備出版該書並邀請學生們以案例研究的形式提交其工作成果並包含在書中。我在歐林學院找了9位教授成立了項目委員會,選擇可供出版的報告。符合標準的案例研究被納入到本書中。我們將在下一版吸納來自讀者的更多稿件(參見附錄A)。

對教師的建議

本書可以用作Python編程與算法的大學中級課程教材。我的教學遵循如下結構:

閱讀: 複雜性科學涵蓋了各種主題。這些主題之間相互關聯,但需要花費不少時間才能搞清楚這些聯係。為了幫助學生們看到全景,我會向他們介紹一些閱讀列表,這些都來自於該領域最流行的研究成果。我的閱讀列表以及關於如何使用它的建議在附錄B中。

練習: 本書提供了一係列練習;很多練習都要求學生重新實現一些開創性實驗並對其進行擴展。複雜性吸引人的一個地方在於我們可以通過適當的編程技能與數學知識接觸研究前沿。

討論: 書中的主題提出了關於科學哲學的問題,這需要學生們進一步閱讀並進行課堂討論。

在我的課堂上,我們將幾乎半個學期的時間都用在了案例研究上。學生們經由構思產生過程、形成團隊,並在一係列實驗上花費6~7周的時間,然後以4~6頁可發表的報告形式來呈現其工作成果。

可以通過https://sites.google.com/site/compmodolin了解課程大綱與我的說明。

對自學者的建議

在2009~2010年,我作為Google的一名訪問學者在其劍橋辦公室工作。在與我共事的軟件工程師中,讓我印象深刻的一點是他們廣博的求知欲以及增長知識與技能的動力。

我希望本書能夠幫助像他們一樣的人們來探索他們可能遇不到的一些主題與想法,練習Python編程技能,以及學習關於數據結構與算法的更多知識(或者看看有哪些內容不適合放在第1版中)。

本書針對自學者的一些特點有:

技術深度

http://index-of.es/Python/Think%20Complexity.pdf

成為VIP會員查看完整內容
0
46
1
Top