電腦科學 -一門科學領域

電腦科學

一門科學領域
更多義項 ▼ 收起更多 ▲

電腦科學是一門包含各種各樣與計算和信息處理相關主題的系統學科,從抽象的演算法分析、形式化文法等等,到更具體的主題如程式語言、程式設計、軟體和硬體等。電腦科學分為理論電腦科學和實驗電腦科學兩個部分。

  • 中文名稱
    《電腦科學》
  • 外文名稱
    Computer Science
  • 主辦單位
    重慶西南信息有限公司
  • 國際刊號
    ISSN:1002-137X 
  • 出版地
    重慶市
  • 國內刊號
    CN:50-1075/TP
  • 創刊時間
    1974
  • 郵發代號
    78-68
  • 編輯單位
    中州期刊聯盟
  • 曾用名
    電腦套用與套用數學
  • 語種
    中文

簡介

電腦科學(英語:computer science,有時縮寫為CS)是系統性研究信息與計算的理論基礎以及它們在電腦系統中如何實現與套用的實用技術的學科。它通常被形容為對那些創造、描述以及轉換信息的演算法處理的系統研究。電腦科學包含很多分支領域;有些強調特定結果的計算,比如電腦圖形學;而有些是探討計算問題的性質,比如計算復雜性理論;還有一些領域專註于怎樣實現計算,比如程式語言理論是研究描述計算的方法,而程式設計是套用特定的程式語言解決特定的計算問題,人機互動則是專註于怎樣使電腦和計算變得有用、好用,以及隨時隨地為人所用。

有時公眾會誤以為電腦科學就是解決電腦問題的事業(比如信息技術),或者隻是與使用電腦的經驗有關,如玩遊戲、上網或者文字處理。其實電腦科學所關註的,不僅僅是去理解實現類似遊戲、流覽器這些軟體的程式的性質,更要通過現有的知識創造新的程式或者改進已有的程式。

研究領域

電腦是一種進行算術和邏輯運算的機器,而且對于由若幹台電腦聯成的系統而言還有通信問題,並且處理的對象都是信息,因而也可以說,電腦科學是研究信息處理的科學。電腦科學分為理論電腦科學和實驗電腦科學兩個部分。在數學文獻中所說的電腦科學,一般是指理論電腦科學。實驗電腦科學還包括有關開闢電腦新的套用領域的研究。

電腦科學的大部分研究是基于"馮·諾依曼電腦"和"圖靈機"的,它們是絕大多數實際機器的計算模型。作為此模型的開山鼻祖,邱奇-圖靈論題(Church-Turing Thesis)表明,盡管在計算的時間,空間效率上可能有所差異,現有的各種計算設備在計算的能力上是等同的。盡管這個理論通常被認為是電腦科學的基礎,可是科學家也研究其它種類的機器,如在實際層面上的並行電腦和在理論層面上概率電腦、oracle 電腦和量子電腦。在這個意義上來講,電腦隻是一種計算的工具:著名的電腦科學家 Dijkstra 有一句名言"電腦科學之關註于電腦並不甚于天文學之關註于望遠鏡。"。

科學領域

作為一個學科,電腦科學涵蓋了從演算法的理論研究和計算的極限,到如何通過硬體和軟體實現計算系統。CSAB(以前被叫做Computing Sciences Accreditation Board),由Association for Computing Machinery(ACM)和IEEE Computer Society(IEEE-CS)的代表組成,確立了電腦科學學科的4個主要領域:計算理論,演算法與資料結構,編程方法與程式語言,以及電腦元素與架構。CSAB還確立了其它一些重要領域,如軟體工程,人工智慧,電腦網路與通信,資料庫系統,並行計算,分散式計算,人機互動,機器翻譯,電腦圖形學,作業系統,以及數值和符號計算。

理論電腦

主條目:理論電腦科學

廣義的理論電腦科學包括經典的計算理論和其它專註于更抽象、邏輯與數學方面的計算。

計算理論

主條目:計算理論

按照Peter J. Denning的說法,電腦科學的最根本問題是"什麽能夠被有效地自動化?"計算理論的研究就是專註于回答這個根本問題,關于什麽能夠被計算,去實施這些計算又需要用到多少資源。為了嘗試回答第一個問題,遞歸論檢驗在多種理論計算模型中哪個計算問題是可解的。而計算復雜性理論則被用于回答第二個問題,研究解決一個不同目的的計算問題的時間與空間消耗。

著名的"P=NP?"問題,千禧年大獎難題之一,是計算理論的一個開放問題。

信息編碼論

主條目:資訊理論和編碼理論

資訊理論與信息量化相關,由Claude E. Shannon建立,用于尋找信號處理操作的根本極限,比如壓縮資料和可靠的資料存儲與通訊。編碼理論是對編碼以及它們適用的特定套用性質的研究。編碼(code)被用于資料壓縮,密碼學,前向糾錯,也被用于網路編碼。研究編碼的目的在于設計更高效、可靠的資料傳輸方法。

演算法

演算法指定義良好的計算過程,它取一個或一組值作為輸入,經過一系列定義好的計算過程,得到一個或一組輸出。演算法是電腦科學研究的一個重要領域,也是許多其他電腦科學技術的基礎。演算法主要包括資料結構、計算幾何圖論等。除此之外,演算法還包括許多雜項,如模式匹配、部分數論等。

程式設計理論

主條目:程式語言理論

程式語言理論是電腦科學的一個分支,主要處理程式語言的設計、實現、分析、描述和分類,以及它們的個體特徵。它屬于電腦科學學科,既受影響于也影響著數學、軟體工程和語言學。它是公認的電腦科學分支,同時也是活躍的研究領域,研究成果被發表在眾多學術期刊,電腦科學以及工程出版物。

形式化方法

主條目:形式化方法

形式化方法是一種特別的基于數學的技術,用于軟體和硬體系統的形式規範、開發以及形式驗證。在軟體和硬體設計方面,形式化方法的使用動機,如同其它工程學科,是通過適當的數學分析便有助于設計的可靠性和健壯性的期望。但是,使用形式化方法會帶來很高的成本,意味著它們通常隻用于高可靠性系統,這種系統中安全或保全(security)是最重要的。對于形式化方法的最佳形容是各種理論電腦科學基礎種類的套用,特別是電腦邏輯演算,形式語言自動機理論和形式語義學,此外還有類型系統、代數資料類型,以及軟體和硬體規範和驗證中的一些問題。

並發,並行和分散式系統

主條目:並行性和分散式計算

並行性(concurrency)是系統的一種性質,這類系統可以同時執行多個可能互相互動的計算。一些數學模型,如Petri網、進程演算和PRAM模型,被建立以用于通用並發計算。分散式系統將並行性的思想擴展到了多台由網路連線的電腦。同一分散式系統中的電腦擁有自己的私有記憶體,它們之間經常交換信息以達到一個共同的目的。

資料庫和信息檢索

主條目:資料庫資料庫管理系統

資料庫是為了更容易地組織、存儲和檢索大量資料。資料庫由資料庫管理系統管理,通過資料庫模型和查詢語言來存儲、建立、維護和搜尋資料。

套用電腦科學

盡管電腦科學(computer science)的名字裏包含電腦這幾個字,但實際上電腦科學相當數量的領域都不涉及電腦本身的研究。因此,一些新的名字被提議出來。某些重點大學的院系傾向于術語計算科學(computing science),以精確強調兩者之間的不同。丹麥科學家Peter Naur建議使用術語"datalogy",以反映這一事實,即科學學科是圍繞著資料和資料處理,而不一定要涉及電腦。第一個使用這個術語的科學機構是哥本哈根大學Datalogy學院,該學院成立于1969年,Peter Naur便是第一任教授。這個術語主要被用于北歐國家。同時,在計算技術發展初期,《ACM通訊》建議了一些針對計算領域從業人員的術語:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三個月後在同樣的期刊上,comptologist被提出,第二年又變成了hypologist。術語computics也曾經被提議過。在歐洲大陸,起源于信息(information)和數學或者自動(automatic)的名字比起源于電腦或者計算(computation)更常見,如informatique(法語),Informatik(德語),informatika(斯拉夫語族)。

著名電腦科學家Edsger Dijkstra曾經指出:"電腦科學並不隻是關于電腦,就像天文學並不隻是關于望遠鏡一樣。"("Computer science is no more about computers than astronomy is about telescopes.")設計、部署電腦和電腦系統通常被認為是非電腦科學學科的領域。例如,研究電腦硬體被看作是電腦工程的一部分,而對于商業電腦系統的研究和部署被稱為信息技術或者信息系統。然而,現如今也越來越多地融合了各類電腦相關學科的思想。電腦科學研究也經常與其它學科交叉,比如心理學認知科學,語言學,數學,物理學,統計學和經濟學

電腦科學被認為比其它科學學科與數學的聯系更加密切,一些觀察者說計算就是一門數學科學。早期電腦科學受數學研究成果的影響很大,如Kurt Gödel和Alan Turing,這兩個領域在某些學科,例如數理邏輯、範疇論域理論和代數,也不斷有有益的思想交流。

電腦科學和軟體工程的關系是一個有爭議的話題,隨後關于什麽是"軟體工程",電腦科學又該如何定義的爭論使得情況更加混亂。David Parnas從其它工程和科學學科之間的關系得到啓示,宣稱電腦科學的主要重點總的來說是研究計算的性質,而軟體工程的主要重點是具體的計算設計,以達到實用的目的,這樣便構成了兩個獨立但又互補的學科。

人工智慧

主條目:人工智慧

這個電腦科學分支旨在創造可以解決計算問題,以及像動物和人類一樣思考與交流的人造系統。無論是在理論還是套用上,都要求研究者在多個學科領域具備細致的、綜合的專長,比如套用數學,邏輯,符號學,電機工程學,精神哲學神經生理學社會智力,用于推動智慧型研究領域,或者被套用到其它需要計算理解與建模的學科領域,如金融或是物理科學。人工智慧領域開始變得正式源于Alan Turing這位人工智慧先驅提出了圖靈試驗,以回答這樣一個終極問題:"電腦能夠思考嗎?"

機器翻譯

主條目:機器翻譯

1947年,美國數學家、工程師沃倫·韋弗與英國物理學家、工程師安德魯·布思提出了以電腦進行翻譯(簡稱"機譯")的構想,機器翻譯從此步入歷史舞台,並走過了一條曲折而漫長的發展道路。機譯被列為21世紀世界十大科技難題。與此同時,機譯技術也擁有巨大的套用需求。

機譯消除了不同文字和語言間的隔閡,堪稱高科技造福人類之舉。但機譯的譯文質量長期以來一直是個問題,離理想目標仍相差甚遠。中國數學家、語言學家周海中教授認為,在人類尚未明了大腦是如何進行語言的模糊識別和邏輯判斷的情況下,機譯要想達到"信、達、雅"的程度是不可能的。這一觀點恐怕道出了製約譯文質量的瓶頸所在。

電腦體系結構與工程

主條目:電腦體系結構電腦工程

電腦系統結構,或者數位電腦組織,是一個電腦系統的概念設計和根本運作結構。它主要側重于CPU的內部執行和記憶體訪問地址。這個領域經常涉及電腦工程和電子工程學科,選擇和互連硬體組件以創造滿足功能、性能和成本目標的電腦。

電腦圖形與視覺

主條目:電腦圖形學

電腦圖形學是對于數位視覺內容的研究,涉及圖像資料的合成和操作。它跟電腦科學的許多其它領域密切相關,包括電腦視覺、圖像處理和計算幾何,同時也被大量運用在特效電子遊戲

電腦安全和密碼學

主條目:電腦安全密碼學

電腦安全是電腦技術的一個分支,其目標包括保護信息免受未經授權的訪問、中斷和修改,同時為系統的預期使用者保持系統的可訪問性和可用性。密碼學是對于隱藏(加密)和破譯(解密)信息的實踐與研究。現代密碼學主要跟電腦科學相關,很多加密和解密演算法都是基于它們的計算復雜性。

計算科學

計算科學(或者科學計算)是關註構建數學模型和量化分析技術的研究領域,同時通過電腦分析和解決科學問題。在實際使用中,它通常是電腦模擬計算等形式在各個科學學科問題中的套用。

信息科學

主條目:信息科學

軟體工程

主條目:軟體工程

軟體工程是對于設計、實現和修改軟體的研究,以確保軟體的高質量、適中的價格、可維護性,以及能夠快速構建。它是一個系統的軟體設計方法,涉及工程實踐到軟體的套用。

研究課題

①、電腦程式能做什麽和不能做什麽(可計算性);

②、如何使程式更高效的執行特定任務(演算法和復雜性理論);

③、程式如何存取不同類型的資料(資料結構和資料庫);

④、程式如何顯得更具有智慧型(人工智慧);

⑤、人類如何與程式溝通(人機互動和人機介面)。

相關獎項

電腦科學領域的最高榮譽是ACM設立的圖靈獎,被譽為是電腦科學的諾貝爾獎。它的得主都是本領域最為出色的科學家和先驅。華人中首獲圖靈獎的是姚期智先生.他于2000年以其對計算理論做出的諸多"根本性的、意義重大的"貢獻而獲得這一崇高榮譽。

系統分類

電腦系統可劃分為軟體系統與硬體系統兩大類。

硬體

結構控製和指令系統

演算法和邏輯結構

存儲器結構

馮·諾伊曼結構

哈佛結構

輸入/輸出和資料通信

數位邏輯

邏輯設計

積體電路

電腦系統組織

電腦系統結構

電腦網路

分散式計算

網路安全

電腦系統實現

軟體

系統軟體

作業系統

編譯器

套用軟體

電腦遊戲

辦公自動化

網路軟體

CAD軟體

電腦程式

程式設計和程式設計實踐

面向對象技術

程式語言

軟體工程

軟體復用

驅動程式

電腦模擬

程式設計方法學

資料和信息系統

資料結構

資料存儲表示

資料加密

資料壓縮

編碼與資訊理論

檔案

信息系統

管理信息系統

決策支持系統- 專家系統

資料庫

信息存儲和資料存取

信息互動與表達

主要的研究領域

形式化基礎

邏輯學

謂詞邏輯

模態邏輯

時序邏輯

描述邏輯

數學

泛代數

遞歸論

模型論

概率論和數理統計

邏輯代數

布爾代數

離散數學

組合數學

圖論

網論

資訊理論

理論電腦科學

形式語言

自動機

可計算性

演算法

計算復雜性

描述復雜性

編譯器

程式設計理論

資訊理論

類型理論

指稱語義

微程式

遺傳演算法

並行計算

計算方法學

人工智慧

機器翻譯

電腦圖形學

圖像處理與電腦視覺

模式識別

語音識別

文字識別

簽名識別

人臉識別

指紋識別

仿真與建模

數位信號處理

文檔與文本處理

電腦套用

數值計算

數值分析

定理機器證明

電腦代數

工程計算

電腦化學

電腦物理

生物信息

計算生物學

非數值計算

工廠自動化

辦公室自動化

人工智慧

信息存儲與檢索

符號語言處理

電腦輔助科學

電腦輔助設計

電腦輔助教學

電腦輔助管理

電腦輔助軟體工程

機器人學

多媒體技術

人機互動

電子商務

特定技術

測試基準

機器視覺

資料壓縮

軟體設計模式

數位信號處理

檔案格式

信息安全

國際網際網路絡

超大規模積體電路設計

網路傳輸協定

網路處理器技術

整數運算器

浮點運算器

矩陣運算處理器

格線

計算科學史

電腦歷史

軟體業歷史

編程思想

專業院校

美國開設電腦科學專業的院校

普渡大學西拉法葉分校,弗吉尼亞大學密西根大學安娜堡分校,喬治城大學,維克森林大學耶魯大學哥倫比亞大學,華盛頓大學,卡內基梅隆大學,喬治亞理工學院加州理工學院,麻省理工學院,斯坦福大學,加州大學伯克利分校,伊利諾伊大學香檳分校,威斯康星大學麥迪遜分校,倫斯勒理工學院,哈佛大學,俄勒岡大學。

相關學科

電腦科學與另外的一些學科緊密相關。這些學科之間有明顯的交叉領域,但也有明顯的差異。

信息科學 - 軟體工程 - 信息系統 - 電腦工程 - 信息安全 -密碼學- 數學 -工程學- 語言學 - 邏輯學

發展歷史

電腦科學中的理論部分在第一台數位電腦出現以前就已存在。電腦科學根植于電子工程、數學和語言學,是科學、工程和藝術的結晶。它在20世紀最後的三十年間興起成為一門獨立的學科,並發展出自己的方法與術語

30年代

英國數學家A.M.圖靈和美國數學家E.L.波斯特幾乎同時提出了理想電腦的概念(圖靈提出的那種理想機在後來的文獻中稱為圖靈機)。

40年代

數位電腦產生後,計算技術(即電腦設計技術與程式設計技術)和有關電腦的理論研究開始得到發展。這方面構成了所說的理論電腦科學。至于圖靈機理論,則可以看作是這一學科形成前的階段。至于"電腦科學"一詞則到60年代初才出現,此後各國始在大學中設定電腦科學系。學科內容 電腦科學是一門年輕的科學,它究竟包括哪些內容,還沒有一致公認的看法。一般認為,電腦科學主要包括理論電腦科學、電腦系統結構、軟體工程的一部分和人工智慧。理論電腦科學 理論電腦科學是在20世紀30年代發展起來的。40年代機電的與電子的電腦出現後,關于現實電腦及其程式的數學模型性質的研究以及計算復雜性(早期稱作計算難度)的研究迅速發展起來,形成自動機論、形式語言理論、程式設計理論、演算法設計與分析計算復雜性理論幾個領域。電腦系統結構

50年代

50年代以來,電腦的性能在計算速度和編址空間方面已提高了幾個數量級。但大部分是通過元件更新而獲得的。在系統結構方面基本上仍是屬于40年代後期形成的存儲程式型,即所謂諾伊曼型機器。這種結構的主要特點是它屬于控製流型。在這種結構中,一項計算先做什麽後做什麽是事先確定了的,程式中指令的順序是事先確定了的。為了在電腦的性能方面取得大的進展,需要突破這種舊的形式。電腦系統結構方面的重要課題之一,是探索非諾伊曼型機器的設計思想。在非諾伊曼型機器中,有一種是70年代初提出的資料流機器(又名資料驅動機器)。美國、蘇聯和英國都已製成這種機器。這種機器的特點是,在一項計算中先做什麽後做什麽不是事先確定,所執行的指令是動態排序的。排序的原則是運算元已備妥的先做,因而稱作資料驅動機器。這種類型的機器更便于實現並行計算。軟體工程 程式設計在相當長的時間內是一種類似"手藝"而不是類似現代工程的技術。

60年代

60年代以來出現了大程式。這些大程式的可靠性很難保證。到60年代後期,西方國家出現了"軟體危機"。這是指有些程式過于龐大(包含幾十萬條以至幾百萬條指令),成本過高而可靠性則比較差。于是提出了軟體工程的概念,目的在于使軟體開發遵守嚴格的規範,使用一套可靠的方法,從而保證質量。現代軟體工程的方向是形式化和自動化,而形式化的目的在于自動化。這裏所說的自動化就是將程式設計中可以由機器來完成的工作,盡量交給機器去做。中心課題之一是程式工具和環境的研究。程式工具是指輔助人編程式的程式,如編譯程式、編輯程式、排錯程式等;程式環境則是指一套結合起來使用的用來輔助人編程式的程式工具。人工智慧 用電腦模擬人的智慧型,特別是模擬思維活動的技術及其有關理論。由于人的思維活動離不開語言,而且人對于某一類問題進行思索和探索解法時,總是需要以關于這一類問題的基本知識(專業知識或常識)作為出發點。于是,知識表示和機器對自然語言的理解就構成人工智慧的兩個重要領域。所謂知識表示,是指將原來用自然語言表示的知識轉換成用符號語言表示的,從而可以儲存在機器內供機器使用的知識。人工智慧的研究角度有探索法的角度和演算法的角度。通常所說的解題演算法是指機械的和總是有結果的方法,而這裏所說的演算法卻是廣義的,包括那些機械的而在使用時不一定有結果的演算法。這種方法時常稱作半可判定的方法。

人在解決問題時,時常採用探索法。這種方法具有"試錯法"的性質,也就是說,試驗若幹條途徑,一條路走不通時再試另一條,直到問題得到解決時為止。機器可以模擬人用探索法解題的思維活動。但由于可能途徑的數目非常之大,不可能進行窮舉式的探索。人一般是隻選出一些最有希望得到結果的途徑去進行探索。人的這種能力,就是進行創造性思維的能力。這是機器極難模擬的事情。採用演算法角度,使用特定的解題演算法或半可判定的方法時,會遇到另一方面的困難。那就是當問題的復雜程度較高時(比如說是指數的),即使問題是有結果的,機器也無法在實際可行的時間內得到結果。在電腦出現的初期,人們曾寄希望于機器的高速度,以為在模擬人的思維時,機器可能用它的高速度來換取它所不具有的創造性思維。但通過"組合性爆炸"問題("組合性爆炸"是指一些組合數學中的問題,在參數增大時,計算時間的成長率時常是指數的,甚至高于指數),人們認識到,單純靠速度不能繞過組合性爆炸所產生的障礙。有無辦法來克服這種困難,尚有待于進一步研究。與其他學科的關系 電腦是由物理元件構成的,迄今主要是由電子元件構成的。因此,物理學的一些分支和電子工程便構成電腦科學的基礎。同時,電腦科學在一定意義上是演算法的科學,而演算法是一個數學概念。因此,數學的某些分支如演算法理論(即可算性理論,又名遞歸函式論)也構成電腦科學的基礎。但電腦科學已發展成為一門獨立的技術科學,既不是電子學的一個分支,也不是數學的一個分支。這是就這個學科的整體而言。至于理論電腦科學,由于它可以看作是電腦科學的數學基礎,在一定意義上,可以看作是數學的一個分支。另一個與電腦科學有密切關系的學科是控製論。控製論作為套用數學方法來研究機械系統和生命系統中的控製和通信現象的學科,同電腦科學有內容上的交叉,但後者不是它的一部分。自從40年代製成數位電腦以來,電腦的性能有了很大的提高。但在系統結構方面變化不大。一些計算技術發達國家正在研製新一代的電腦。這種電腦的系統結構將與過去40年的機器很不相同,所用的程式語言也將是新型的。電腦科學將研究由此出現的新問題,如有關並行計算的問題。

對計算的數學性質的研究大都還是關于串列計算的,對並行計算性質的研究自70年代才發展起來,預計將成為電腦科學的中心課題之一。另一個問題是程式設計的自動化問題。在程式設計方面,明顯的趨勢是將機器能做的盡量交給機器去做。程式環境的研究構成了軟體工程的一個中心課題。形式化方法越來越受到重視,因為它是提高自動化程度所必需的。

早期,雖然英國的劍橋大學和其他大學已經開始教授電腦科學課程,但它隻被視為數學或工程學的一個分支,並非獨立的學科。劍橋大學聲稱有世界上第一個傳授計算的資格。世界上第一個電腦科學系是由美國的普渡大學在1962年設立,第一個電腦學院于1980年由美國的東北大學設立。多數大學都把電腦科學系列為獨立的部門,一部分將它與工程系、套用數學系或其他學科聯合。

著名高校

在電腦科學領域排名世界前五的大學:

1. Carnegie Mellon University卡內基梅隆大學

2. Massachusetts Institute of Technology麻省理工學院

3. Stanford University斯坦福大學

4. University of California -Berkeley加州大學伯克利分校

5. Cornell University康奈爾大學

5. University of Illinois-Urbana Champaign伊利諾伊大學香檳分校

專業介紹

培養目標

本專業培養德、智、體全面發展,具有電腦套用技術的基礎理論知識,具備電腦及相關設備的維護與維修、行業套用軟體、平面圖像處理、廣告設計製作、動畫製作、電腦網路及網站建設與管理、資料庫管理與維護等套用能力和操作能力的高等技術套用性人才。

主要課程

電腦套用基礎、電腦組裝與維護、電腦區域網路絡的建設與管理、網路工程、作業系統、伺服器、資料庫的開發與套用、網站建設與網頁設計、C/C++語言、Visual Basic語言、平面設計、3D圖形設計、多媒體設計、專業英語。

就業方向

畢業生主要面向交通系統各單位、交通信息化與電子政務建設與套用部門、各類電腦專業化公司、廣告設計製作公司、汽車行銷技術服務等從事IT行業工作。

相關詞條

其它詞條