Can you summarize the following document?
        
  早期電腦科學建立的基礎得追溯到最近電子計算機的發明。那些計算固定數值任務的機器,比如算盤,自古希臘時期即已存在,而用於加快計算的演算法更是在算盤等古老的計算儀器發明之前就已被廣泛使用。  Wilhelm Schickard在1623年設計了世界上第一臺機械計算器,但沒有完成它的建造。布萊茲·帕斯卡在1642年設計並且建造了世界上第一臺可以工作的機械計算器Pascaline。1673年,萊布尼茲開始了步進計算器的建造工作並於1694年竣工,他也因為記錄了二進位制系統而被認為是第一個電腦科學家和資訊理論家。埃達·洛夫萊斯協助查爾斯·巴貝奇在維多利亞時代設計了差分機。1900年左右,打孔機問世。然而以上這些機器都侷限在只能完成單個任務,或者充其量是所有可能任務的子集。  到了20世紀40年代,隨著更新更強大的計算機器(如ABC計算機、電子數值積分計算機)被髮明,術語“計算機”開始用於指代那些機器而不是它們的祖先。計算機的概念變得更加清晰,它不僅僅用於數學運算,總的來說電腦科學的領域也擴充套件到了對於計算的研究。20世紀50年代至20世紀60年代早期,電腦科學開始被確立為不同種類的學術學科。 世界上第一個電腦科學學位點由普渡大學在1962年設立。隨著實用計算機的出現,很多計算的應用都以它們自己的方式逐漸轉變成了研究的不同領域。  雖然最初很多人並不相信計算機可能成為科學研究的領域,但是隨後的50年裡也逐漸被學術界認可。IBM公司是那段時期電腦科學革命的參與者之一。在那段探索時期,IBM(International Business Machines的縮寫)釋出的IBM 704以及之後的IBM 709計算機被廣泛使用。“不過,使用IBM電腦工作仍然是一件很沮喪的事情。如果你弄錯了一條指令中的一個字母,程式將會崩潰,而你也得從頭再來。”20世紀50年代後期,電腦科學學科還在發展階段,這種問題在當時是一件很常見的事情。  隨著時間的推移,電腦科學技術在可用性和有效性上都有顯著提升。現代社會見證了計算機從僅僅由專業人士使用到被廣大使用者接受的重大轉變。最初,計算機非常昂貴,要有效利用它們,某種程度上必須得由專業的計算機操作員來完成。然而,隨著計算機變得普及和低廉,已經幾乎不需要專人的協助,雖然某些時候援助依舊存在。

  雖然電腦科學被認定為一門正規學科的歷史很短暫,但它對科學和社會做出了許多根本性的貢獻ー事實上,電腦科學與電子學一樣,是資訊時代的奠基科學,也是資訊革命的驅動力,被視為繼工業革命(公元1750-1850年)和新石器革命(公元前8000-5000年)之後人類技術進步的第三次重大飛躍。  這些貢獻包括:

  Peter Wegner提出電腦科學可以分成三個領域:數學、工程學、科學。Amnon H. Eden提議了三種正規化應用於電腦科學的各個領域:

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

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

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

  按照Peter J. Denning的說法,電腦科學的最根本問題是“什麼能夠被有效地自動化?”計算理論的研究就是專注於回答這個根本問題,關於什麼能夠被計算,去實施這些計算又需要用到多少資源。為了試圖回答第一個問題,遞迴論檢驗在多種理論計算模型中哪個計算問題是可解的。而計算複雜性理論則被用於回答第二個問題,研究解決一個不同目的的計算問題的時間與空間消耗。  著名的“P=NP?”問題,千禧年大獎難題之一,是計算理論的一個開放問題。

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

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

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

  

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

  作業系統是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的核心與基石。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供一個讓使用者與各電腦裝置互動的操作介面。

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

  計算機網路是管理遍及全球的計算機連線成的網路的電腦科學分支。

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

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

  

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

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

  多媒體技術是指通過計算機對文字、資料、圖形、影象、動畫、聲音等多種媒體資訊進行綜合處理和管理,使使用者可以通過多種感官與計算機進行實時資訊互動的技術,又稱為計算機多媒體技術。

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

  軟體工程是對於設計、實現和修改軟體的研究,以確保軟體的高質量、適中的價格、可維護性,以及能夠快速構建。它是一個系統的軟體設計方法,涉及工程實踐到軟體的應用。  電腦科學和軟體工程的關係是一個有爭議的話題,隨後關於什麼是“軟體工程”,電腦科學又該如何定義的爭論使得情況更加混亂。David Parnas從其它工程和科學學科之間的關係得到啟示,宣稱電腦科學的主要重點總的來說是研究計算的性質,而軟體工程的主要重點是具體的計算設計,以達到實用的目的,這樣便構成了兩個獨立但又互補的學科。

  主要進行計算和演算法推理的研究。其中包括計算理論、演算法分析、形式化方法、並行理論、資料庫、計算機圖形學以及系統分析等。通常也教授程式設計,但僅僅將它看作是支援電腦科學其它領域的媒介,而不是高階研究的重心。  的電腦科學課程則主要側重於訓練高階程式設計,而不是演算法和計算理論。這些課程著重教授那些對於軟體工業很重要的技能。像這樣的計算機程式設計過程通常被叫做軟體工程。  然而,儘管電腦科學專業日益推動著美國經濟,但是電腦科學教育依然不存在大多數美國K-12課程中。2010年10月由ACM和電腦科學教師協會(CSTA)共同發表了一篇名為“Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age”的報告,文中揭示了僅有14個州通過了有意義的高中電腦科學教育標準。同時,僅有9個州將高中電腦科學課程算作畢業要求的核心學科。配合“Running on Empty”這篇文章,一個新的無黨派宣傳聯盟:Computing in the Core(CinC)被建立,以影響聯邦和政府政策,比如Computer Science Education Act要求政府撥款以制定計劃完善電腦科學教育及支援電腦科學教師。  在中國,“電腦科學”或“電腦科學與技術”是工科(一級門類)下的二級專業。一般可細分為三級專業:
電腦科學(英語:computer science,有時縮寫為英語:CS)是系統性研究資訊與計算的理論基礎以及它們在計算機系統中如何實現與應用的實用技術的學科。 它通常被形容為對那些創造、描述以及轉換資訊的演算法處理的系統研究。電腦科學包含很多分支領域;有些強調特定結果的計算,比如計算機圖形學;而有些是探討計算問題的性質,比如計算複雜性理論;還有一些領域專注於怎樣實現計算,比如程式語言理論是研究描述計算的方法,而程式設計是應用特定的程式語言解決特定的計算問題,人機互動則是專注於怎樣使計算機和計算變得有用、好用,以及隨時隨地為人所用。