官术网_书友最值得收藏!

  • 計(jì)算思維與Python編程
  • (美)瑪麗亞·利特文 加里·利特文
  • 2108字
  • 2020-05-20 09:26:01

前言

本書是我們早期的Mathematics for the Digital Age and Programming in Python一書的“更早講Python”的版本。在本書中,我們更早地介紹了Python特性,為讀者提供了必要的工具,使讀者可以更快地以更加“Python式(pythonic)”的慣用方式,開始編寫Python代碼。在本書中,我們增加了兩章(“第9章 海龜繪圖”和“第14章 向量和矩陣”),以及介紹斐波那契數(shù)列的一節(jié)(“第10章 序列與和”的10.5節(jié));更新了許多示例、練習(xí)和解答;更改了標(biāo)題,從而更好地匹配這一系列主題和快速變化的技術(shù)環(huán)境與詞匯。

但這本書的主要理念仍然沒有改變:介紹離散數(shù)學(xué)概念和思維,我們認(rèn)為這些概念是所有有基礎(chǔ)的編程人員的基本知識。這種數(shù)學(xué)知識很容易學(xué)習(xí),但美國大多數(shù)中小學(xué)數(shù)學(xué)課程還沒有包括離散數(shù)學(xué)的內(nèi)容。本書的數(shù)學(xué)部分包括許多動手編程練習(xí),這些練習(xí)可以強(qiáng)化學(xué)生對編程和數(shù)學(xué)的認(rèn)識。

“那么,這是一本數(shù)學(xué)書還是一本計(jì)算機(jī)編程書?”這可能是心急的讀者心中的第一個(gè)問題。但為什么必須選擇呢?這是圖書管理員的困境:“它是屬于數(shù)學(xué)類還是計(jì)算機(jī)類?”有一個(gè)簡單的解決方案:在每類書架上各放一本。

本書的目的是教授一種特定的思維方式——精確思維,以及如何解決需要這種思維方式的問題。數(shù)學(xué)和計(jì)算機(jī)編程都能培養(yǎng)精確思維的能力,并解決那些需要精確解的問題。

數(shù)學(xué)教會我們欣賞嚴(yán)謹(jǐn)論證的美。從長遠(yuǎn)來看,這比解決當(dāng)前實(shí)際問題的課程更有價(jià)值。數(shù)學(xué)并不是存在于真空中的——它的抽象植根于幾個(gè)世紀(jì)以來積累的實(shí)踐知識。數(shù)學(xué)教學(xué)借鑒了我們周圍世界的例子和類比,至少它應(yīng)該如此。然而,我們周圍的世界變化得越來越快。在過去的五六十年間,我們的世界變得數(shù)字化了。這種變化如此深刻,以至于人們有時(shí)難以完全理解。我們的中小學(xué)數(shù)學(xué)課程在很大程度上忽略了這種變化,這是否就是人們難以理解這種變化的原因?

如果我們能夠造出“時(shí)間機(jī)器”,讓歐幾里得穿越時(shí)空來到現(xiàn)代化的世界,他會覺得很欣慰,因?yàn)樵诂F(xiàn)代技術(shù)的浪潮中,他熟悉的幾何學(xué)仍然在學(xué)校里教授?!袄蠈κ帧迸nD和萊布尼茨都會感到非常滿意,因?yàn)槌汕先f的美國高二和高三學(xué)生正在學(xué)習(xí)如何求導(dǎo)和使用積分。但是,離現(xiàn)在不遠(yuǎn)的喬治·布爾(George Boole),盡管他的名字在每一種現(xiàn)代計(jì)算機(jī)編程語言中都是不朽的,但他仍然需要搜尋幾十本教材才能找到他提出的代數(shù)。至于約翰·馮·諾依曼(John von Neumann),這位才華橫溢的數(shù)學(xué)家,也是計(jì)算機(jī)技術(shù)的先驅(qū)之一……好吧,按照他一貫的樂觀態(tài)度,他會預(yù)測在20年左右的時(shí)間里,每個(gè)小學(xué)生都會學(xué)習(xí)與門、或門和非門。但是,為什么事實(shí)不是如此呢?

在本書中,我們匯集了一些與數(shù)字世界相關(guān)的更容易理解的數(shù)學(xué)主題。其中許多主題,通常在大學(xué)新生課程中以“離散數(shù)學(xué)”之名講授。離散數(shù)學(xué)已成為所有基礎(chǔ)數(shù)學(xué)的代名詞,但在標(biāo)準(zhǔn)的初中和高中代數(shù)、微積分初步和微積分課程中,這種數(shù)學(xué)都被忽略了。在20世紀(jì)70年代,唐納德·克努特(Donald Knuth)和他在斯坦福大學(xué)的同事創(chuàng)造了“具體數(shù)學(xué)”這一名詞(融合了連續(xù)數(shù)學(xué)和離散數(shù)學(xué),并且也很具體,不是太抽象),來描述克努特在斯坦福大學(xué)教授的課程。后來,“具體數(shù)學(xué)”成為了他們的一本閱讀起來很愉快的書的標(biāo)題Ronald L. Graham, Donald E. Knuth, Oren Patashnik, Concrete Mathematics: A Foundation for Computer Science, Second Edition, Addison-Wesley, 1998.。正如他們在序言中解釋的那樣,克努特“發(fā)現(xiàn)他的技能中缺少一些數(shù)學(xué)工具,他需要一些數(shù)學(xué)工具,以便對計(jì)算機(jī)程序有徹底的、充分的理解,這些數(shù)學(xué)工具與他在大學(xué)里作為數(shù)學(xué)專業(yè)學(xué)生所學(xué)的東西完全不同”。

因此,如果你對計(jì)算機(jī)編程感興趣,我們希望本書能讓你成為更好的計(jì)算機(jī)程序員。如果你對數(shù)學(xué)更感興趣,你將有充分的機(jī)會解決有趣的問題,并在計(jì)算機(jī)程序中,對其中的一些問題進(jìn)行建模。你將熟悉通常初中生和高中生不會接觸到的有趣的數(shù)學(xué);你將學(xué)會解決真實(shí)問題(即你事先并不知道如何解決的問題);你將感受到數(shù)學(xué)推理和證明的力量。作為獎勵(lì),你將獲得Python(一種流行的經(jīng)濟(jì)有效的編程語言)編程的實(shí)用技能。

我們選擇Python有幾個(gè)原因。首先,Python讓你有機(jī)會在交互式環(huán)境中,通過即時(shí)反饋來體驗(yàn)該語言。其次,Python的語法并不太復(fù)雜。再次,Python具有簡單但強(qiáng)大的功能,可用于處理列表和“字典”(映射)。最后,Python易于安裝和使用,它是免費(fèi)的。當(dāng)然,還有其他編程語言具有類似的屬性,可以滿足我們的需求。歸根結(jié)底,重要的不是特定的編程語言,而是能夠精確地思考數(shù)學(xué)知識和計(jì)算機(jī)程序。

本書得益于計(jì)算機(jī)科學(xué)和數(shù)學(xué)界的許多朋友和同行的幫助及精到見解。

我們要特別感謝北野山高中(Northfield Mount Hermon High School)的Abby Ross,他仔細(xì)閱讀了整本書,并提出了許多有價(jià)值的更正意見和建議。穆罕默德王子大學(xué)(Prince Mohammad Bin Fahd University)的Patricia M. Davies博士是自本書早期版本以來的支持者,他仔細(xì)閱讀了這個(gè)版本(即本書),并提供了許多有用的修訂建議。尼達(dá)姆高中(Needham High School)的Hans Batra也提供了有用的建議。

本書之前的版本得到了很多朋友的幫助,包括J. Adrian Zimmer博士(俄克拉荷馬科學(xué)與數(shù)學(xué)學(xué)院)和Kenneth S. Oliver(以前在康涅狄格州伍德布里奇的Amity Regional高中)。時(shí)任南卡羅來納大學(xué)哥倫比亞分校計(jì)算機(jī)科學(xué)與工程系主任的Duncan A. Buell教授閱讀了全部草稿,提出了許多改進(jìn)建議,尤其是關(guān)于“第18章 數(shù)論和密碼學(xué)”。

我們感謝Henry Garden對編寫教材的方法的建議,感謝Margaret Litvin幫助校對。和往常一樣,我們最感謝瑪麗亞的數(shù)學(xué)和計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生,他們測試了本書的編程練習(xí),做了很多很好的修正,并用他們的熱情鼓舞了我們。

瑪麗亞·利特文(Maria Litvin)

加里·利特文(Gary Litvin)

主站蜘蛛池模板: 株洲市| 蕲春县| 聊城市| 环江| 汝南县| 兴文县| 景泰县| 东乡族自治县| 醴陵市| 曲沃县| 祁东县| 太和县| 鄂伦春自治旗| 曲松县| 雅安市| 如皋市| 湟中县| 正镶白旗| 金昌市| 德安县| 博湖县| 宜阳县| 格尔木市| 闽侯县| 瑞丽市| 宣化县| 济源市| 兴和县| 醴陵市| 勐海县| 米脂县| 彰武县| 青海省| 绍兴市| 新田县| 岳池县| 江安县| 西吉县| 武邑县| 牡丹江市| 胶州市|