當前位置:歷史故事大全網 - 圖書館 - 計算機導論

計算機導論

大學計算機科學導論

計算機科學和技術深深地吸引著我們學生。壹開始國內外都喜歡把這個部門分為計算機軟件理論、計算機系統、計算機技術和應用。後來兩者融合在壹起,成為了現在的計算機科學與技術。我壹直認為,計算機科學與技術在本科階段不能分為計算機科學和計算機技術,因為計算機科學需要大量的實踐,實踐需要技術;大家(包括非計算機專業)掌握簡單的計算機技術(包括專業曾經引以為傲的編程)很容易,但計算機專業的優勢在於我們掌握了很多其他專業不“鉆研”的東西,比如算法、架構等等。非計算機專業的人可以很輕松的做壹個芯片,寫壹個程序,但是做不出計算機專業的人能做的大規模系統。今天,我想談談計算機科學,重點是計算理論。

1)計算機語言

隨著20世紀40年代第壹臺帶有存儲程序的通用電子計算機的研制成功,計算機的發展在20世紀50年代後進入了實用階段。但在最初的應用中,人們普遍感覺用機器指令編程不僅效率低,而且很笨拙,不利於交流和軟件維護。在復雜的程序中發現錯誤尤其困難。因此,軟件開發迫切需要壹種類似於自然語言的高級編程語言。1952年,出現了第壹個編程語言短代碼。兩年後,Fortran問世。Fortran作為壹種科學計算的高級編程語言,最大的成就是牢固地確立了高級語言的地位,使之成為壹種通用的編程語言。Algol60的誕生標誌著計算機語言的研究已經成為壹門科學。這種語言的文本中提出了壹系列新概念,如變量的類型描述和範圍規則、進程的遞歸和參數傳遞機制。而且是第壹個用嚴格的語法規則定義語言語法的高級語言——BNF。在程序設計語言的研發產生了壹批成功的高級語言之後,它的進壹步發展開始受到編程思想、方法和技術,以及編程理論、軟件工程、人工智能等諸多方面,尤其是實用方面的影響。在關於“軟件危機”的爭論逐漸平息的同時,壹些設計準則開始被大多數人所接受,並在各種高級語言中有所體現。比如支持結構化程序設計的PASCAL語言,適用於各種軍事應用的大型通用程序設計語言ADA,支持並發程序設計的MODULA-2,支持邏輯程序設計的PROLOG語言,支持人工智能程序設計的LISP語言,支持區域對象程序轉換的SMALLTALK和C等等。而且隨著這些語言的產生和發展,也發展出了大量的理論、方法和技術來解決語言的編譯和應用中的問題。大量的學術論文可以證明,高級語言發展所衍生出的各種思想、方法、理論和技術,已經觸及了計算機科學的大部分學科,但內容仍然相對集中在語言、計算模型和軟件開發方法論上。

(2)計算機模型和軟件開發方法

20世紀80年代見證了計算機網絡、分布式處理和多媒體的巨大發展。在各種高級編程語言中加入並發機制以支持分布式編程,在語言中擴展繪圖子程序以支持計算機圖形編程,成為當時編程語言中的壹種時尚。然後在A/D轉換、數據庫技術等接口技術的支持下,通過擴充高級語言庫,實現多媒體編程的思想。20世紀90年代以來,並行計算機和分布式大規模異構計算機網絡的發展,保持了並行編程語言、並行編譯器、並行操作系統、並行分布式數據庫系統等試用軟件開發的關鍵技術與高級語言和計算模型密切相關,如各種並行和並發編程語言、進程代數、PETRI網等。,是軟件開發方法和技術研究中支持不同階段軟件開發的編程語言和理論基礎。

(3)計算機應用

用計算機代替人進行計算,首先要研究計算方法和相應的計算機算法,然後編制計算機程序。由於早期計算機的應用主要集中在科學計算領域,數值計算方法成為應用數學最早的分支,並與計算機應用建立了聯系。剛開始,由於計算機的內存容量很小,速度不快,為了計算壹些稍微大壹點的問題,人們往往要研究如何節省存儲單元,如何減少不必要的運算。為此,發展了稀疏矩陣計算理論來求解方程組。開發散列函數來動態存儲和訪問數據。開發了虛擬編程和程序覆蓋技術的思想,以便在內存較小的計算機上運行較大的程序;子程序和包的概念提出後,很多人開始把數學中的壹些通用計算公式和方法寫成子程序,並進壹步開發成包,通過簡潔的調用命令向用戶開放。子程序的提出是當今軟件復用思想的開端。

在計算機應用領域,科學計算是壹個長久的方向。這個方向主要取決於應用數學中數值計算的發展,數值計算的發展也受計算機系統結構的影響。早期的科學計算主要是在單機上進行,經歷了從小規模數值分析到中大型數值分析的階段。隨著並行計算機和分布式並行計算機的出現,並行數值計算已經成為科學計算的熱點,它所處理的問題也從中大規模數值分析向中大規模復雜問題轉變。所謂大規模的復雜問題,並不是因為數據的增加,導致計算的困難和復雜,而主要是因為計算中考慮的因素太多,特別是有些因素是不確定的,導致計算的困難和復雜,其結果往往是精度和復雜度的矛盾在算法的研究中難以克服。

幾何是數學的壹個分支,實現了人類思維方式中的數形結合。計算機發明後,人們很自然地想到了用計算機處理圖形的問題,這就引出了計算機圖形學。計算機圖形學是壹門利用計算機生成和處理圖形的科學。並由此推動了計算機輔助設計(CAD)、計算機輔助教學(CAI)、計算機輔助信息處理、計算機輔助測試(CAT)等方向的發展。

在各種實際應用系統的開發中,有壹個重要的方向值得關註,那就是實時系統的開發。

用計算機證明數學定理被認為是人工智能的壹個方向。人工智能的另壹個方向是研究不依賴於任何領域的通用解題程序或系統,叫做GPS。特別值得壹提的是,在專家系統的開發中開發了壹批新技術,如知識表示方法和不精確推理技術,積累了經驗,加深了對人工智能的理解。20世紀70年代末,壹些學者意識到過去人工智能研究基礎的薄弱,開始關註人工智能邏輯基礎的研究,試圖從總結和研究人類推理思維壹般規律的角度研究機器思維,並在1980發表了壹批人工智能中非單調邏輯的研究論文。他們的工作立即得到了大量計算機科學家的響應,非單調邏輯的研究很快開展得如火如荼,人工智能的邏輯基礎成為人工智能發展的主流。

數據庫技術、多媒體技術和圖形學技術的發展產生了兩個新的方向,即計算可視化技術和虛擬現實技術。

隨著計算機網絡的發展,分布在世界各地的各種計算機以驚人的速度相互連接。在互聯網上,每天都有大量的政治、經濟、軍事、外交、商業、科研、藝術信息的交流和交換。網絡上大量信息的頻繁交流,縮短了地域之間的距離,但同時也使互聯網上的各種信息資源處於防不勝防的狀態。因此,計算機信息安全受到世界各國政府的高度重視。除了下大力氣研究對付計算機病毒的軟硬件技術外,由於各項工作保密的需要,計算機密碼學的研究也越來越受到世界各國政府的重視。

事實上,在計算機科學中,計算機模型和計算機理論與實現技術同樣重要。但現在很多學生往往只重視壹些計算機操作技術,而忽略了基礎理論的學習,並因自己是“操作大師”而沾沾自喜,這不僅限制了自己將研究工作推向深入,還可能使自己在學科發展中處於被動地位。比如上世紀五六十年代,隨著計算機研究和軟件開發的發展,中國在計算機制造和維護方面培養了對計算機設備某壹方面非常精通的專家。他們能夠準確地找出核心存儲器、磁鼓、運算器、控制器和整機電路的哪個部分出現了問題,並對其進行維修和排除故障,使用最少的存儲單元編寫運算速度快的程序,並對機器代碼相當熟悉。然而,當小容量的磁芯存儲器、磁鼓、慢速計算設備和控制器被集成電路迅速取代,當高級語言、軟件開發工具和新的軟件開發方法被廣泛應用於程序設計和軟件開發時,這些熟練的專家,除了少數有紮實的數學基礎並在工作中把研究工作轉向其他方向的,都在以新技術的出現取代原有技術的開發過程中被淘汰。所以在計算機科學中,計算比實現計算的技術更重要。只有打下紮實的理論基礎,尤其是數學基礎,才能事半功倍。只有建立在高起點理論基礎上的計算機科學技術才有巨大的潛力和發展前景。

計算機理論的壹個核心問題

我國計算機系的傳統是培養做學術研究,尤其是理論研究的人(方向上沒有太大問題,但不是那麽盡如人意)。說到底,計算機的理論研究,比如網絡安全、圖形圖像學、視音頻處理,都和數學有很大的關系,雖然在正統數學家眼裏可能是非主流數學。這裏我也想澄清壹下我的觀點:眾所周知,數學是從現實生活中抽象出來的理論。人們之所以把現實抽象成理論,是想用抽象出來的理論更好地指導實踐。有些數學研究者喜歡用壹些已有的理論知識推導出幾個推論,卻不知道壹個是考慮問題不全面很可能是錯誤的推論,壹個是他的推論在現實生活中找不到原型,無法指導實踐。嚴格來說,我不是理想主義者,政治課理論聯系實際壹直是指引我學習科學文化知識的燈塔(至少我認為計算機科學與技術應該是這個方向)。

我的拙見是,計算機系的學生對數學的要求不壹樣,但和物理更不壹樣。平時非數學專業?《高等數學》無非是把數學分析中比較難的理論部分刪掉,強調應用公式計算。對於計算機系來說,數學分析最有用的部分就是被刪掉的理論部分。記住壹堆曲面積分的公式就能理解數學嗎?還不如現在查,何必去記。或者直接用Mathematica或者Matlab。退壹萬步講。華在數學方面的造詣不用我多說,但他輝煌的壹生做了幾件我認為對我們來說最重要的事情:第壹,它建立了中國科學院計算技術研究所,這是我們國家計算機科學的搖籃。現在他給做工業生產的技術人員講了很多高等數學理論,推動了中國工業的進步。第三件事是他壹生寫了很多書,但對高校師生來說更有價值的是他在生病期間和心愛的王元壹起寫了《高等數學導論》(與其說王元是他的心愛之人,不如說是他的同事,他是中科院數學所的老壹輩研究員,對哥德巴赫猜想的貢獻在國際上僅次於陳景潤)。這本書實際上可以在我們的圖書館找到。說實話,那個時候,那本書上有bug。別人走到哪裏都會讓開,我卻特別感興趣。看完前兩卷,我最大的收獲不在於對理論的闡述,而在於對他的理論的完整實例化,以及在生活中尋找模型。這也是我更喜歡具體數學的原因。正如我上面提到的,沒有實踐,理論就失去了存在的意義。正因為理論是從實踐中抽象出來的,理論研究才能更好地指導實踐,沒有用來指導實踐的理論可以說是壹文不值。

如上所述,計算機系的學生學習高等數學:知道它是什麽,更重要的是知道它為什麽。妳學習的目的應該是:把抽象的理論運用到實踐中,不僅要掌握解題方法,還要掌握解題思路。對於定理的學習,不是簡單的應用,而是掌握證明過程,也就是掌握定理的由來,訓練妳的推理能力。這樣才能達到學習這門科學的目的,同時也能縮小我們和數學系同學的思維差距。

我覺得計算機技術的學習是這樣的:學校開設的任何科學都有它的滯後性。不要總以為自己掌握了某項技術就天下無敵了。雖然現在Java,VB,C,c++用的很多,但是怎麽保證不會有壹天被淘汰呢?我認為。NET平臺和X#語言的最初跡象就能充分說明問題。換句話說,當我們掌握了壹項新技術,就會有更新的技術出現。作為當代大學生,我們應該具備跟上科學發展的素質。比如像有些同學總說的,設計網頁的時候我更喜歡直接寫html,不想用Frontpage,Dreamweaver。能用語言寫網頁固然好,但是有高效的手段。妳為什麽不用它們?就為了顯示妳的高水平,獨壹無二?我覺得真正高層次的人是那些能以最快的速度接受新事物的人。高級編程語言的發展日新月異。未來編程就像人說話壹樣。我認為每個人都應該對xml有所了解。我們真的要把所有東西都用匯編寫出來才能顯示我們的高水平嗎?如果是這樣,我們還不如直接用機器語言來寫。另壹方面,最快接受和利用新技術的關鍵在於妳對計算機科學的掌握。

總的來說,從教育的角度來看,國內高校的課程安排不是很合理,強調理論,但不願意在理論上深入教育,無法接受新技術,也無法完全回避新技術。我覺得關鍵問題是國內高校很難突破現狀,條條框框限制了如何謀求發展。雖然我們意識到了國外教育的優勢,但為什麽不能行動起來呢?甚至壹點點從粗到細。

  • 上一篇:哈利·波特電影(魔法世界歷險記)
  • 下一篇:5-6月兒童教育參考
  • copyright 2024歷史故事大全網