- 相關推薦
計算機科學與技術專業(yè)優(yōu)秀教材與參考書介紹
高等教育學科組成的滯后性是國內外高等教育界公認的定論,而由于計算機科學與技術學科前沿發(fā)展的速度決定了這個問題在本學科內就更為突出。如何解決這一問題是世界公認題。自從《作為學科的計算科學》報道經過美計算機協(xié)會(ACM)教育委員會通過并向全世界發(fā)布后,美國各個大學計算機科學學科在基礎學科課程教學改革方面走在了最前沿。·如果說我國教育界現在的力量還不足以引進大批國外本學科相當出色的大師來講學,那么采用國外優(yōu)秀教材應當是快速改革不合理的教學內容以及涉足學科新內容的最行之有效的方法之一。對于處在高校中的學生,如果我們不能夠改變中國的高等教育,那么我們可以改變對待所接受的高等教育的學習方式。在課下參考本課程領域內的經典教材進行深入的自學也成為補充課堂所講內容無法涉及的理論與實踐知識的必要手段。為此,我打算撰一篇《計算機科學與技術專業(yè)優(yōu)秀教材與參考書介紹》的文章。將分為三個專題向大家介紹:
第一部分為:算法與計算理論
第二部分為:程序設計語言
第三部分為:其他基礎課程與專業(yè)課程相關書籍推薦
一。算法與計算理論專題·倘若你去問一個木匠學徒:你需要什么樣的工具進行工作,他可能會回答你:“我只要一把錘子和一個鋸”。但是如果你去問一個老木工或者是大師級的建筑師,他會告訴你“我需要一些精確的工具”。由于計算機所解決的問題都是從生活中抽象出來的問題,其復雜性不言而喻,所以我們需要這樣精確有效的工具去解決現實生活中的復雜問題。算法、數據結構都是程序設計中必不可少的精確工具。算法的重要性是每一個計算機專業(yè)的大學生都十分清楚的。
·程序設計當中解決的相當一部分問題都會涉及各種各樣的科學計算,這需要程序員具有什么樣的基礎呢?實際問題轉換為程序,要經過一個對問題抽象的過程,建立起完善的數學模型,只有這樣,我們才能建立一個設計良好的程序。從中我們不難看出計算數學在程序設計領域的重要性。
·算法與計算理論是計算機程序設計領域的靈魂所在,是發(fā)揮程序設計者嚴謹,敏銳思維的有效工具。任何的程序設計語言都試圖將之發(fā)揮得淋漓盡致。作為計算機專業(yè)軟件相關無可厚非的最重要基礎類核心課程,我們首先對于這個領域的優(yōu)秀參考進行一個推薦。
----------------------------------------------------------------------------------
《 算法導論(第二版影印版) 》
英文名稱:Introduction to Algorithms
作者:Thomas H. Cormen ,Charles E. Leiserson ,Ronald L. Rivest ,Clifford Stein
·本書的主要作者來自麻省理工大學計算機,作者之一Ronald L.Rivest 由于其在公開秘鑰密碼算法RSA上的貢獻獲得了圖靈獎。這本書目前是算法的標準教材,美國許多名校的計算機系都使用它,國內有些院校也將本書作為算法課程的教材。另外許多專業(yè)人員也經常引用它。本書基本包含了所有的經典算法,程序全部由偽代碼實現,這更增添了本書的通用性,使得利用各種程序設計語言進行程序開發(fā)的程序員都可以作為參考。語言方面通俗,很適合作為算法教材和自學算法之用。國內的很多作品名為數據結構,從本書中斷章取義,把數據結構與算法混為一談,搞得作者自己都迷迷糊糊。這也是不十分愿意向大家推薦國內作品的原因。你會發(fā)現,現在基本上所有的數據結構與算法書籍都會將本書作為參考文獻之一,更可以說明一個問題,本書是作為讀者進行算法學習的最佳選擇。作為本書的補充內容,我愿意向大家推薦下面的學習資料:你可以通過這個地址找到本書的所有練習答案:http://www.itu.dk/people/beetle/ 。為了更好的學習本書中的內容,最好的指導當然是來自作者本身講述本書的課程,讀者們可以通過下列地址獲得課程的錄像。
http://18.89.1.101/sma/5503fall2001/index5503fall2001.html
·哦,你也許會對我說:“天哪,《 算法導論(第二版影印版) 》上面都是偽代碼,我程序設計功底沒有那么強啊”。是的,對于大部分的大學生來說的確存在一個很嚴峻的問題,就是程序設計還沒有堅實的基礎,而你此時需要掌握一些算法知識,那么這個時候一本帶有理論的具體語言實現的指導教材便是絕佳的參考:
----------------------------------------------------------------------------------
《 算法Ⅰ-Ⅳ(C++實現)——基礎、數據結構、排序和搜索(第三版) 》
· 此書屬于Algorithms in C++系列中的一本。作者都是普林斯頓大學計算機系赫赫有名的教授Robert Sedgewick, 他是Donald.E.Knuth大師們下的高徒。算法理論方面并不遜色于CLRS,對于初學者來說附帶理論關鍵部分的原程序是個很好的參考,這系列書提供了兩個語言版本:分別為C++和Java程序員和學習者量身定做。Java版本的叫做Alogorithms in Java,國內清華大學出版社引進了本書并出版了影印版:《 JAVA算法(影印版)(第3版 第1卷) 》。作為專門語言的算法書籍參考,這兩本也是我唯一愿意向大家推薦的。可以作為《算法導論》一書的補充。
·如果將《算法導論》稱作“計算機算法的圣經”那么《計算機程序設計藝術》當之無愧的稱為“計算機程序設計理論的荷馬史詩”。
----------------------------------------------------------------------------------
《計算機程序設計藝術》
包含:《 計算機程序設計藝術 第1卷 基本算法 (第3版) 》、《 計算機程序設計藝術 第2卷 半數值算法(第3版) 》、《 計算機程序設計藝術 第3卷 排序與查找 (第2版) 》
英文名稱:The Art of Computer Programming
作者:Donald.E.Knuth
Donald.E.Knuth人生最輝煌的時刻在斯坦福大學計算機系渡過,美國計算機協(xié)會圖靈獎的獲得者,是本領域內當之無愧的泰斗。被簡稱為TAOCP的這本巨著內容博大精深,幾乎涵蓋了計算機程序設計算法與理論最重要的內容,F在發(fā)行的只有三卷,分別為基礎運算法則,半數值算法,以及分揀和搜索?偣矐斢7卷。以我個人對本系列書的把握,大家除了可以如其它書籍那樣閱讀本書,也可以將其作為計算機程序設計的字典。畢竟內容涵蓋實在是太廣泛,相當的內容未見得你能夠用上,還是那句話,按需吧?幢緯鴷r最關注的應當是作者嚴謹的思維方法。每個人都有自己的讀書方法,一些大師們說應當順序讀本書,因為它被寫得簡直就像是詩,然而這還要看大家個人的體會。至于本書的價值我覺得Bill Gates先生的話足以說明問題:“如果你認為你是一名真正優(yōu)秀的程序員讀Knuth的《計算機程序設計藝術》,如果你能讀懂整套書的話,請給我發(fā)一份你的簡歷”。作者數學方面的功底造就了本書嚴謹的風格,雖然本書不是用當今流行的程序設計語言描述的,但這絲毫不損傷它“程序設計史詩”的地位。道理很簡單,它內涵的設計思想是永遠不會過時的。除非英語實在有困難,否則建議讀者選用英文版。
----------------------------------------------------------------------------------
離散數學在計算機數學理論領域的位置顯然是首屈一指的,首先向大家推薦的就是:
《 離散數學及其應用(原書第4版) 》
英文名稱:Discrete Mathematics and Its Applications,Fourth Edition
作者:Kenneth H.Rosen
·本書的價值已經被全世界幾百所大學所證實,作為離散數學領域的經典教材,全世界幾乎所有知名的院校都曾經使用本書作為教材。以我個人觀點看來,這本書可以稱之為離散數學百科。書中不但介紹了離散數學的理論和方法,還有豐富的歷史資料和相關學習網站資源。更為令人激動的便是這本書少有的將離散數學理論與應用結合得如此的好。你可以看到離散數學理論在邏輯電路,程序設計,商業(yè)和互聯(lián)網等諸多領域的應用實例?紤]到大多數讀者的基礎,這里推薦給大家的是本書的中文版(原書第四版),本書的英文版(第五版)當中更增添了相當多的數學和計算機科學家的傳記,是計算機科學歷史不可多得的參考資料。作為教材這本書配有相當數量的練習。每一章后面還有一組課題,把學生已經學到的計算和離散數學的內容結合在一起進行訓練。這本書也是我個人在學習離散數學時讀的唯一的英文教材,實為一本值得推薦的好書。
----------------------------------------------------------------------------------
《 具體數學:計算機科學基礎(英文版.第2版) 》
英文名稱:Concrete Mathematics A Foundation for Computer Science(Second Edition)
作者:Ronald L.Graham,Donald E.Knuth,Oren Patashnik
·傳統(tǒng)數學研究的對象過于抽象,導致對具體的問題關心不夠。為了直接面向應用的需要,偉大的計算機科學家以及數學家Donald.E.Knuth在麻省理工大學提出了“具體數學”。自從那天起,“具體數學”便成了計算機科學的基礎。所以下面為大家推薦的就是一本經久不衰的著作:
英文名稱:Concrete Mathematics A Foundation for Computer Science(Second Edition)
·很令人興奮的就是這本書的主要作者正是泰斗Donald.E.Knuth以及他的同事Ronald L.Graham。書稿是他們在1970年的時候在計算機系教授研究生本門課程的基礎上整理出來的教材。內容上是Knuth的巨著TAOCP第一部的擴展,有些比TAOCP中談及地又深入了許多。重點放在高級計算機程序設計話題以及算法分析上,涉及了計算機科學領域內相當全面的數學知識。具體數學是離散數學和連續(xù)數學的綜合,書中這點做得極為出色,許多經典問題的解答比目前廣泛流傳的解法更為通俗易懂。對于提高大家的計算數學修養(yǎng)有很大幫助。之所以TAOCP有的時候讀者們讀不懂就是因為計算數學基礎不是十分扎實,但以我個人經驗,若能對本書中內容有一個比較好的理解,會給你閱讀如TAOCP這樣的曠世巨著帶來很大的方便。
·作為計算機專業(yè)的學生,大概至少都曾經聽說過ACM-ICPC程序設計大賽,這也是至今為止代表著全世界最高水平的程序設計大賽。每年國內也有很多學生參加此賽事,然而此賽事涉及面之廣令不少人望而卻步,也正是因為比賽涉及的計算理論內容之深廣,才使大賽的水平得到了全世界的認可。如果你也在準備這方面的比賽,除了上面的《計算機程序設計藝術》你不是必須參考外,都應當予以足夠的重視,此外下面這本書也是不錯的選擇:
----------------------------------------------------------------------------------
《 算法藝術與信息學競賽 》
·哦,是的,劉汝佳和黃亮,這兩個名字對于曾經關注過NOI,IOI以及ACM-ICPC比賽的你來說一定不是陌生的名字,也可以這樣說,他們是在這些比賽以及相關培訓中相當活躍的兩個人,由于書的作者號召力相當大,我在這本書出版后很快就買到了并進行了研讀。內容涉及上述三種比賽,算法原理闡述扼要,內含大量比賽原題,題庫中的經典試題以及各個著名院校隊伍自擬的優(yōu)秀算法題。主要內容分為:算法與數據結構,數學知識和方法以及計算幾何學。是一本算法與計算理論相關較為完善的資料結集。2003年如果你還苦于公開出版的相關書籍版本太老,沒有新內容,那么本書便是你近期參加NOI,IOI以及ACM-ICPC比賽的不二選擇。
計算機數學理論方面可推薦的書籍是相當多的,究竟哪些數學理論基礎是我們應當涉足的,哪些基本上我們是不需要的,大家可以參考《CSDN開發(fā)高手》9月刊上的《計算機科學技術數學理論淺談》。
概言之,算法與數學乃程序設計之本,計算科學之精華,尚需同學們予以足夠的重視。但有一點需指明,不論是理論計算科學還是程序設計,皆通一理:不是所有的內容都需要大家掌握,長遠之計乃是在大學學習相關學科的時候對該學科有一個全攬,曉之用途,在自己極為感興趣或者研究、開發(fā)需要的時候深入其中……
【計算機科學與技術專業(yè)優(yōu)秀教材與參考書介紹】相關文章:
計算機科學與技術專業(yè)介紹12-15
對經濟院校計算機科學與技術本科專業(yè)建設的思考04-28
計算機科學與技術專業(yè)畢業(yè)生自我鑒定01-05
計算機科學與技術專業(yè)畢業(yè)生的求職信02-05
計算機科學與技術實習報告09-22
計算機科學與技術實習報告12-13
計算機科學與技術學習心得04-25
計算機科學與技術求職信01-23