計算機條件編譯實驗心得
❶ 對所學軟體工程課程各部分內容的目的、作用、主要內容等進行總結,
1、軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。
在現代社會中,軟體應用於多個方面。典型的軟體有電子郵件、嵌入式系統、人機界面、辦公套件、操作系統、編譯器、資料庫、游戲等。同時,各個行業幾乎都有計算機軟體的應用,如工業、農業、銀行、航空、政府部門等。這些應用促進了經濟和社會的發展,也提高了工作效率和生活效率 。
2、
開發流程
▪ 需求分析
▪ 概要設計
▪ 詳細設計
▪ 編碼
▪ 測試
▪ 軟體交付
▪ 驗收
▪ 維護
3、軟體架構(software
architecture)是一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。 軟體架構是一個系統的草圖。軟體架構描述的對象是直接構成系
統的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。在實現階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。在面向
對象領域中,組件之間的連接通常用介面_(計算機科學)來實現。
軟體體系結構是構建計算機軟體實踐的基礎。與建築師設定建築項目的設計原則和目標,作為繪圖員畫圖的基礎一樣,一個軟體架構師或者系統架構師陳述軟體構架以作為滿足不同客戶需求的實際系統設計方案的基礎。
軟體構架是一個容易理解的概念,多數工程師(尤其是經驗不多的工程師)會從直覺上來認識它,但要給出精確的定義很困難。特別是,很難明確地區分設計和構架:構架屬於設計的一方面,它集中於某些具體的特徵。
在「軟體構架簡介」中,David Garlan 和 Mary Shaw
認為軟體構架是有關如下問題的設計層次:「在計算的演算法和數據結構之外,設計並確定系統整體結構成為了新的問題。結構問題包括總體組織結構和全局控制結
構;通信、同步和數據訪問的協議;設計元素的功能分配;物理分布;設計元素的組成;定標與性能;備選設計的選擇。
但構架不僅是結構;IEEE Working Group
on Architecture 把其定義為「系統在其環境中的最高層概念」。構架還包括「符合」系統完整性、經濟約束條件、審美需求和樣式。它並不僅注
重對內部的考慮,而且還在系統的用戶環境和開發環境中對系統進行整體考慮,即同時注重對外部的考慮。
在Rational Unified Process 中,軟體系統的構架(在某一給定點)是指系統重要構件的組織或結構,這些重要構件通過介面與不斷減小的構件與介面所組成的構件進行交互。
從和目的、主題、材料和結構的聯繫上來說,軟體架構可以和建築物的架構相比擬。一個軟體架構師需要有廣泛的軟體理論知識和相應的經驗來事實和管
理軟體產品的高級設計。軟體架構師定義和設計軟體的模塊化,模塊之間的交互,用戶界面風格,對外介面方法,創新的設計特性,以及高層事物的對象操作、邏輯
和流程。
一般而言,軟體系統的架構(Architecture)有兩個要素:
它是一個軟體系統從整體到部分的最高層次的劃分。
一個系統通常是由元件組成的,而這些元件如何形成、相互之間如何發生作用,則是關於這個系統本身結構的重要信息。
詳細地說,就是要包括架構元件(Architecture Component)、聯結器(Connector)、任務流(Task-flow)。
所謂架構元素,也就是組成系統的核心"磚瓦",而聯結器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預期結果,任務流則描述系統如何使用這些元件和
聯結器完成某一項需求。
建造一個系統所作出的最高層次的、以後難以更改的,商業的和技術的決定。
建造一個系統之前會有很多的重要決定需要事先作出,而一旦系統開始進行詳細設計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關系統設計成敗的最重要決定,必須經過非常慎重的研究和考察。
4、自己寫了
❷ c語言實訓心得3000字
你可以這樣寫:
下面是我的實訓心得:
一、明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
二、打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
1、數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
2、邏輯思維能力的培養學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
三、注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針這些語法、結構的應用例子,做到舉一反三,觸類旁通。
四、掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
五、多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
六、養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
七、上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。
八、加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
❸ 如何學習計算機編程
選擇一門語言
1)確定你感興趣的領域。你可以開始學習任何編程語言(盡管有些語言絕對比其他語言「容易」),所以你首先要問自己,你想通過學習編程語言來達到什麼目的?這將幫助你確定應該從事哪種類型的編程,並為你提供一個良好的起點。
2)考慮從「更簡單」的語言開始。不管你的決定如何,你都可以考慮從一種高級的、更簡單的語言開始。這些語言對初學者特別有用,因為它們的基本概念和思維過程幾乎可以適用於任何語言。
這一類中最流行的兩種語言是python和Ruby。這兩種語言都是面向對象的web應用程序語言,使用了非常易讀的語法。
「面向對象」意味著語言是圍繞「對象」的概念構建的,即數據集合及其操作。這一概念應用於許多高級編程語言,如C++、java、Objtovi-C和PHP。
3)通讀各種語言的基本教程。如果你還不確定應該開始學習哪種語言,請閱讀一些不同語言的教程。如果一種語言比其他語言更有意義,那就試一下,看看它是否合拍。網上相關的教程有很多。
Python——一種很好的入門語言,當你熟悉它時會感受到它的強大。用於許多web應用程序和許多游戲領域。
Java——用於無數種程序中,從游戲到web應用程序再到ATM軟體。
HTML——任何web開發人員的基本起點。在進行任何其他類型的web開發之前,掌握HTML是至關重要的。
C語言——是一種較古老的語言,C仍然是一個強大的工具,是C++、Objtovi-C的基礎。
2、從小處開始
1)學習語言的核心概念。雖然這一步驟的應用部分會因你選擇的語言而有所不同,但所有編程語言都有一些基本概念,這些概念對於構建程序至關重要。盡早學習和掌握這些概念將使解決問題和創建強大而高效的代碼變得更容易。以下是一些不同語言中的一些核心概念:
變數——變數是一種存儲和引用不斷變化的數據的方法。變數可以被操作,並且通常具有定義的類型,例如「整數」、「字元」和其他類型,這些類型決定了可以存儲的數據的類型。在編碼時,變數通常有一些名稱,可以讓讀者在某種程度上識別它們。這樣就更容易理解變數如何與其餘代碼交互。
條件語句——條件語句是根據語句是否為真而執行的操作。條件語句最常見的形式是「If-else」語句。如果這個陳述是真的(例如x=1),那麼就會發生一件事。如果陳述是錯誤的(例如x!=1),然後發生其他事情。
函數或子常式——根據語言的不同,這個概念有不同的說法。它也可以是「過程」、「方法」或「可調用單元」。這本質上是一個大程序中的一個小程序。一個函數可以被程序多次「調用」,這樣程序員就可以高效地創建復雜的程序。
數據輸入——這是一個廣泛的概念,幾乎在每種語言中都有使用。它包括處理用戶的輸入以及存儲這些數據。如何收集這些數據取決於程序的類型和用戶可用的輸入(鍵盤、文件等)。這與輸出密切相關,輸出是將結果返回給用戶的方式,無論是在屏幕上顯示還是在文件中傳遞。
2)安裝任何必要的軟體。許多編程語言都需要編譯器,編譯器是用來將代碼翻譯成機器可以理解的語言的程序。其他語言(例如Python)使用解釋器,該解釋器無需編譯即可立即執行程序。
某些語言具有IDE(集成開發環境),通常包含代碼編輯器,編譯器和或解釋器以及調試器。 這使程序員可以在一處執行任何必要的功能。 IDE也可能包含對象層次結構和目錄的直觀表示。
網上有各種代碼編輯器。 這些程序提供了突出顯示語法的不同方法,並提供了其他對開發人員友好的工具。
3、創建你的第一個程序
1)一次只關注一個概念。任何語言最開始都是教大家「Hello World」。這是一個非常簡單的程序,它在屏幕上顯示文本「Hello,World」(或其他變體)。這個程序是教給第一次編程的程序員如何創建一個基本的、功能性程序,以及如何處理顯示輸出。通過更改文本,可以了解程序如何處理基本數據。
2)通過解構網上的例子學習。幾乎每種編程語言都有成千上萬的代碼示例。用這些例子來檢查語言的各個方面是如何工作的,以及不同部分是如何相互作用的。從不同的例子中獲取一些零碎的東西來創建你自己的程序。
3)檢查語法。語法是編寫語言的方式,以便編譯器或解釋器能夠理解它。每種語言都有一個獨特的語法,盡管有些元素可以跨多種語言共享。學習語法對於學習如何用語言編程是必不可少的。
4)嘗試改變。對示常式序進行更改,然後測試結果。通過實驗,你可以比閱讀一本書更快地了解什麼是有效的,什麼是無效的。不要害怕破壞你的程序;學習修復錯誤是任何開發過程中的一個主要部分,任何新事物幾乎永遠不會在第一次就能正確工作。所以別怕犯錯!
5)開始練習調試。當你在編程時,你總是會遇到bug。這些都是程序中的錯誤,幾乎可以在任何地方出現。bug可以是程序中無害的異常,也可以是阻止程序編譯或運行的主要錯誤。找出並修復這些錯誤是軟體開發周期中的一個主要過程,所以要盡早習慣這樣做。
6)注釋代碼。幾乎所有的編程語言都有一個「comment」函數,允許你包含未經解釋器或編譯器處理的文本。這允許您對代碼的作用留下簡短但清晰的語言解釋。這不僅有助於您記住代碼在大型程序中所做的工作,而且是協作環境中的基本實踐,因為它能幫助其他人理解你的代碼幹嘛的。
最後,一定要經常練習。編程是熟能生巧的技能,多練才能查漏補缺,更上一層樓。
❹ 計算機網路實訓總結
可以這樣開頭,本人有幸在##單位參加了計算機網路實訓,收益匪淺,現概括如下:
網路辦公自動化系統開發分析
一、開發工具與技術的研究
就現在開發OA的技術來說,主要集中分為三大類:基於C/S結構的應用程序開發,結合C/S結構和Web技術的復合應用程序,基於B/S結構的動態網頁技術。以下
將分析這三類技術的各自優缺點:
C/S結構系統:是傳統開發模式,一般以資料庫和客戶端的兩層結構實現,也有加入中間件的三層或多層結構,在OA早期是標準的系統模式,但隨著計算機技術
的發展和網路的發展,它已經無法滿足現在的遠程網路辦公和移動辦公,逐漸在被取代
C/S+Web技術:是為了補充C/S結構的不足,在C/S基礎上加入Web技術來實現對遠程數據的獲取,但擁有一定局限性,如數據及時更新、軟體升級等問題就無法
很好解決
B/S結構系統:是援用動態網頁技術,加入OA的開發理念,完全適應網路辦公和移動辦公需求,也是現代辦公自動化系統的首選技術。
就B/S結構的開發,具體技術又有多種選擇:JSP+J2EE,ASP+IIS,ASP.net+Microsoft .NET Framework,PHP+Apache,就這幾門技術,可以說各有其優缺點,
分析如下:
JSP技術:具有良好的跨平台性,加上J2EE功能十分強大,但是J2EE的布置使開發成本顯得略高,而且沒有良好的安裝界面
PHP技術:是早期動態網頁技術中的強手,但隨著JSP技術與ASP技術的不斷更新,使得PHP技術稍微比較落後
ASP技術:類似於PHP技術,開發簡便,快速,加上IIS的功能支持,是比較簡易快速的開發技術
ASP.net:可以說是ASP技術的替代技術,是ASP的一大進步,在Microsoft .NET Framework的強大支持下,可以使用C#、VB、Javascript三種語言來編寫代碼,
採用預先編譯技術,使得代碼安全性加強
最終討論結果:在針對於中小型企業用戶,建議採用ASP.net技術,理由是,該技術易於伺服器的維護,成本相對較低,開發周期較短
在針對政府部門用戶,建議採用JSP或ASP.net技術,理由是,政府部門伺服器很多已經改裝為Linux系統,在該平台下採用JSP技術較成熟;如果是Windows用戶
,則採用ASP.net技術
二、OA概述
人們普遍使用計算機來提高個人工作效率,但是在需要許多人一起協同工作的現代工作環境中,我們更需要提高我們的整體工作效率。利用網路通訊基礎及先
進的網路應用平台,建設一個安全、可靠、開放、高效的信息網路和辦公自動化、信息管理電子化系統,為管理部門提供現代化的日常辦公條件及豐富的綜合信息
服務,實現檔案管理自動化和辦公事務處理自動化,以提高辦公效率和管理水平,實現企業各部門日常業務工作的規范化、電子化、標准化,增強檔案部門文書檔
案、人事檔案、科技檔案、 財務檔案等檔案的可管理性,實現信息的在線查詢、借閱。最終實現「無紙」辦公。
辦公自動化,一個極大的概念,一個炒作了很久的概念。無論是辦公設備公司,還是系統集成公司,都大力推出自己的辦公自動化產品。有辦公設備、辦公自動化
電腦、辦公自動化軟體。可見,辦公自動化中內容龐大,可為空間不可小視。那麼,首先我們來探討一個問題,什麼是辦公?
辦公實際就是文件的製作、修改、傳遞、簽定、保存、銷毀、存檔的過程。那麼隨著文件的這一流程,產生了各種各樣的設備。隨著技術的發展,計算機網路
技術的進步,辦公自動化網路的建設也得到了大力推廣。
傳統的辦公模式主要以紙介質為主,在信息革命的浪潮中,顯然已經遠遠不能滿足高效率、快節奏的現代工作和生活的需要。如何實現信息處理的自動化和辦
公的無紙化逐步得到了人們的重視。
傳統辦公模式
辦公自動化提了多年,但效果並不明顯,人們還是停留在單機字處理和表格處理的所謂辦公自動化的初級階段。信息的交流和共享,以及團隊的協同運作等無
法完美的實現,極大地限制了工作的效率。
Internet/Intranet的迅猛發展,為信息的交流和共享,團隊的協同運作提供了技術的保證,同時也預示著網路化辦公時代來臨。
網路化辦公模式
現有辦公自動化系統和大型信息管理系統中,企業業務流程重組或者是文件流轉功能都是核心功能。同時我們也認為,企業辦公主要是一個文件流轉的過程,
所有的辦公事務都可以抽象成一個資料庫表單。
傳統的辦公自動化系統和大型MIS系統在處理企業管理流程中大多採用企業業務流程重組(BKR),其核心思想就是要先優化企業業務管理流程,再根據優化後的流
程建設企業信息系統。這樣不僅在系統建設中工作量巨大,同時面臨來自企業內部重重的阻礙。
我們的核心思想是;前期系統建設中不牽涉企業內部業務流程重組,只是協助企業通過方便的流程自定義等功能進行流程電子化,以及不斷根據實際需求去改變電
子化流程。
三、系統結構設計
現在的網路辦公自動化系統可以說百家爭鳴,各有所長,但是一般的B/S結構系統都做得比較固定,也就是針對某個行業甚至某個企業而開發的,有諸多的限制
和代碼固化,不利於靈活的OA定製和客戶化!而且很多OA系統都具有相同的功能,只是表現手法和操作流程有所不同罷了,所以,他們的基本是一致的,是有共性
的,是可以統一的。
我的基礎思想是開發一個底層的通用型OA平台,在此平台下實現OA系統的主要功能模塊的底層操作,這樣,當針對某個企業或者政府部門開發OA系統時,只需在此
基礎上稍加修改,就可以成為一套具有很強針對性的OA系統,這樣方便該系統的二次開發,也方便於針對不通性質部門單位的OA系統的定製。系統結構圖如下:
通過以上示意圖可以看出,底層通用型管理模塊是整個OA系統的基礎,而應用層模塊是面對客戶的,它是界面和業務邏輯的結合體,針對不通企業將有所不通
,這種結構將很好的解決一套OA的多種定製功能,便於二次開發。
四、通用型管理模塊功能劃分
針對於這個底層模塊,它並不需要實現實際的功能,它主要是負責完成應用層交付的任務和與底層資料庫交換數據,所以它的功能是比較抽象的、統一的和可擴展
的。雖然如此,我們還是將這個模塊按不同的功能細分,因為辦公系統有些模塊之間聯系並不緊密,比如公文管理系統與公共信息系統,郵件管理系統與辦公設備
管理系統之間的聯系就不是那麼緊密,甚至可以完全分開。所以我們的底層管理模塊針對於這些情況,主要分為八大功能子模塊:
1.公文管理
公文管理主要負責公文的發送與接受工作,發送流程按照流程定製來完成,所以還包括流程定製功能。這三大塊是OA的核心部分,實現也最為復雜,特別是流
程定製功能,是一個非常靈活的模塊,它決定了該OA系統的效率和可用性
2.郵件管理
郵件管理主要功能是發送與接受內部郵件,發送與接受外部郵件(外部郵件伺服器必須支持pop3),郵件需要存入資料庫,以便今後瀏覽查詢
3.表單管理
表單管理是一個輔助性模塊,基本上在其他所有模塊都有可能用大它的功能,它主要是實現表單模板的定製,表單的存儲,列印等功能。在一個企業,表單是
很重要的一個東西,它在辦公過程中出現的頻率緊次於公文,所以這個模塊也非常重要,並且表單的定製與列印是一個技術難點
4.檔案管理
檔案管理功能是對准備歸檔的公文或者企業各類合同、協議、文件、指示、資料等的一個合理存儲與查閱功能,針對於復雜的分類和查閱許可權,實現合理存取
,管理得基本功能
5.人事管理
人事管理功能主要包括:員工資料管理,員工薪資管理,員工考勤管理,員工許可權管理,部門機構管理,部門任命管理等等公司內部人事管理的所有功能,本
子模塊將以底層視角反應員工得管理,包括職務和所屬性質都將按統一模式規劃,便於應用層定製模塊
6.日程安排
日程安排是辦公系統的一個必不可少的輔助功能,可分為個人日程,部門日程,主要需要解決的是日程的基本存儲和信息提示
7.公共信息管理
公共信息包含:公司新聞、文檔、員工論壇、資料下載等功能,主要是針對所有部門的一個共用系統,該系統可以採用傳統模式,如論壇可以採用BBS系統等,
底層主要是統一規范,提供基本功能
8.會議管理
會議對於任何一個公司都是重要的,而會議的形式隨著網路的發展也變得多樣化起來,除了傳統的會議,還有網路會議,視頻會議等新型會議方式,使得相隔
甚遠的人之間也可以有了當面交流的環境。對於相隔較遠的部門,如總公司與子公司之間的交流建議採用非視頻的網路會議,因為這個即可以滿足網速,也可以滿
足交流得需求。對於處於同一個大廈的各部門,建議使用視頻會議,因為加入多媒體的功能,可以使得會議氣氛跟貼近傳統會議的效果,而且交流也更人性化,同
時也可以得到區域網網速得支持。
這八大功能子模塊都是OA系統得基礎,在此之上,我們可以創建更多的功能和輔助,可以使得OA的定製變得輕松而豐富。
五、總結
通過以上的綜合分析,該辦公自動化系統的開發將分為三期完成,第一期是基礎類庫的開發,第二期是底層管理模塊的開發,第三期是應用層定製。每一期都
是下一期的基礎,但可以獨立使用,只有三期完成,才算完成整套OA系統。
關於該OA系統的幾個技術賣點:建議提供語言信箱和視頻新聞模塊,這樣可以有與其他產品所不同的賣點。
❺ 計算機發展的幾個階段(詳細)
計算機是新技術革命的一支主力,也是推動社會向現代化邁進的活躍因素。計算機科學與技術是第二次世界大戰以來發展最快、影響最為深遠的新興學科之一。計算機產業已在世界范圍內發展成為一種極富生命力的戰略產業。
現代計算機是一種按程序自動進行信息處理的通用工具,它的處理對象是信息,處理結果也是信息。利用計算機解決科學計算、工程設計、經營管理、過程式控制制或人工智慧等各種問題的方法,都是按照一定的演算法進行的。這種演算法是定義精確的一系列規則,它指出怎樣以給定的輸入信息經過有限的步驟產生所需要的輸出信息。
信息處理的一般過程,是計算機使用者針對待解抉的問題,事先編製程序並存入計算機內,然後利用存儲程序指揮、控制計算機自動進行各種基本操作,直至獲得預期的處理結果。計算機自動工作的基礎在於這種存儲程序方式,其通用性的基礎則在於利用計算機進行信息處理的共性方法。
計算機的歷史
現代計算機的誕生和發展 現代計算機問世之前,計算機的發展經歷了機械式計算機、機電式計算機和萌芽期的電子計算機四個階段。
早在17世紀,歐洲一批數學家就已開始設計和製造以數字形式進行基本運算的數字計算機。1642年,法國數學家帕斯卡採用與鍾表類似的齒輪傳動裝置,製成了最早的十進制加法器。1678年,德國數學家萊布尼茲製成的計算機,進一步解決了十進制數的乘、除運算。
英國數學家巴貝奇在1822年製作差分機模型時提出一個設想,每次完成一次算術運算將發展為自動完成某個特定的完整運算過程。1884年,巴貝奇設計了一種程序控制的通用分析機。這台分析機雖然已經描繪出有關程序控制方式計算機的雛型,但限於當時的技術條件而未能實現。
巴貝奇的設想提出以後的一百多年期間,電磁學、電工學、電子學不斷取得重大進展,在元件、器件方面接連發明了真空二極體和真空三極體;在系統技術方面,相繼發明了無線電報、電視和雷達……。所有這些成就為現代計算機的發展准備了技術和物質條件。
與此同時,數學、物理也相應地蓬勃發展。到了20世紀30年代,物理學的各個領域經歷著定量化的階段,描述各種物理過程的數學方程,其中有的用經典的分析方法已根難解決。於是,數值分析受到了重視,研究出各種數值積分,數值微分,以及微分方程數值解法,把計算過程歸結為巨量的基本運算,從而奠定了現代計算機的數值演算法基礎。
社會上對先進計算工具多方面迫切的需要,是促使現代計算機誕生的根本動力。20世紀以後,各個科學領域和技術部門的計算困難堆積如山,已經阻礙了學科的繼續發展。特別是第二次世界大戰爆發前後,軍事科學技術對高速計算工具的需要尤為迫切。在此期間,德國、美國、英國部在進行計算機的開拓工作,幾乎同時開始了機電式計算機和電子計算機的研究。
德國的朱賽最先採用電氣元件製造計算機。他在1941年製成的全自動繼電器計算機Z-3,已具備浮點記數、二進制運算、數字存儲地址的指令形式等現代計算機的特徵。在美國,1940~1947年期間也相繼製成了繼電器計算機MARK-1、MARK-2、Model-1、Model-5等。不過,繼電器的開關速度大約為百分之一秒,使計算機的運算速度受到很大限制。
電子計算機的開拓過程,經歷了從製作部件到整機從專用機到通用機、從「外加式程序」到「存儲程序」的演變。1938年,美籍保加利亞學者阿塔納索夫首先製成了電子計算機的運算部件。1943年,英國外交部通信處製成了「巨人」電子計算機。這是一種專用的密碼分析機,在第二次世界大戰中得到了應用。
1946年2月美國賓夕法尼亞大學莫爾學院製成的大型電子數字積分計算機(ENIAC),最初也專門用於火炮彈道計算,後經多次改進而成為能進行各種科學計算的通用計算機。這台完全採用電子線路執行算術運算、邏輯運算和信息存儲的計算機,運算速度比繼電器計算機快1000倍。這就是人們常常提到的世界上第一台電子計算機。但是,這種計算機的程序仍然是外加式的,存儲容量也太小,尚未完全具備現代計算機的主要特徵。
新的重大突破是由數學家馮·諾伊曼領導的設計小組完成的。1945年3月他們發表了一個全新的存儲程序式通用電子計算機方案—電子離散變數自動計算機(EDVAC)。隨後於1946年6月,馮·諾伊曼等人提出了更為完善的設計報告《電子計算機裝置邏輯結構初探》。同年7~8月間,他們又在莫爾學院為美國和英國二十多個機構的專家講授了專門課程《電子計算機設計的理論和技術》,推動了存儲程序式計算機的設計與製造。
1949年,英國劍橋大學數學實驗室率先製成電子離散時序自動計算機(EDSAC);美國則於1950年製成了東部標准自動計算機(SFAC)等。至此,電子計算機發展的萌芽時期遂告結束,開始了現代計算機的發展時期。
在創制數字計算機的同時,還研製了另一類重要的計算工具——模擬計算機。物理學家在總結自然規律時,常用數學方程描述某一過程;相反,解數學方程的過程,也有可能採用物理過程模擬方法,對數發明以後,1620年製成的計算尺,己把乘法、除法化為加法、減法進行計算。麥克斯韋巧妙地把積分(面積)的計算轉變為長度的測量,於1855年製成了積分儀。
19世紀數學物理的另一項重大成就——傅里葉分析,對模擬機的發展起到了直接的推動作用。19世紀後期和20世紀前期,相繼製成了多種計算傅里葉系數的分析機和解微分方程的微分分析機等。但是當試圖推廣微分分析機解偏微分方程和用模擬機解決一般科學計算問題時,人們逐漸認識到模擬機在通用性和精確度等方面的局限性,並將主要精力轉向了數字計算機。
電子數字計算機問世以後,模擬計算機仍然繼續有所發展,並且與數字計算機相結合而產生了混合式計算機。模擬機和混合機已發展成為現代計算機的特殊品種,即用在特定領域的高效信息處理工具或模擬工具。
20世紀中期以來,計算機一直處於高速度發展時期,計算機由僅包含硬體發展到包含硬體、軟體和固件三類子系統的計算機系統。計算機系統的性能—價格比,平均每10年提高兩個數量級。計算機種類也一再分化,發展成微型計算機、小型計算機、通用計算機(包括巨型、大型和中型計算機),以及各種專用機(如各種控制計算機、模擬—數字混合計算機)等。
計算機器件從電子管到晶體管,再從分立元件到集成電路以至微處理器,促使計算機的發展出現了三次飛躍。
在電子管計算機時期(1946~1959),計算機主要用於科學計算。主存儲器是決定計算機技術面貌的主要因素。當時,主存儲器有水銀延遲線存儲器、陰極射線示波管靜電存儲器、磁鼓和磁心存儲器等類型,通常按此對計算機進行分類。
到了晶體管計算機時期(1959~1964),主存儲器均採用磁心存儲器,磁鼓和磁碟開始用作主要的輔助存儲器。不僅科學計算用計算機繼續發展,而且中、小型計算機,特別是廉價的小型數據處理用計算機開始大量生產。
1964年,在集成電路計算機發展的同時,計算機也進入了產品系列化的發展時期。半導體存儲器逐步取代了磁心存儲器的主存儲器地位,磁碟成了不可缺少的輔助存儲器,並且開始普遍採用虛擬存儲技術。隨著各種半導體只讀存儲器和可改寫的只讀存儲器的迅速發展,以及微程序技術的發展和應用,計算機系統中開始出現固件子系統。
20世紀70年代以後,計算機用集成電路的集成度迅速從中小規模發展到大規模、超大規模的水平,微處理器和微型計算機應運而生,各類計算機的性能迅速提高。隨著字長4位、8位、16位、32位和64位的微型計算機相繼問世和廣泛應用,對小型計算機、通用計算機和專用計算機的需求量也相應增長了。
微型計算機在社會上大量應用後,一座辦公樓、一所學校、一個倉庫常常擁有數十台以至數百台計算機。實現它們互連的局部網隨即興起,進一步推動了計算機應用系統從集中式系統向分布式系統的發展。
在電子管計算機時期,一些計算機配置了匯編語言和子程序庫,科學計算用的高級語言FORTRAN初露頭角。在晶體管計算機階段,事務處理的COBOL語言、科學計算機用的ALGOL語言,和符號處理用的LISP等高級語言開始進入實用階段。操作系統初步成型,使計算機的使用方式由手工操作改變為自動作業管理。
進入集成電路計算機發展時期以後,在計算機中形成了相當規模的軟體子系統,高級語言種類進一步增加,操作系統日趨完善,具備批量處理、分時處理、實時處理等多種功能。資料庫管理系統、通信處理程序、網路軟體等也不斷增添到軟體子系統中。軟體子系統的功能不斷增強,明顯地改變了計算機的使用屬性,使用效率顯著提高。
在現代計算機中,外圍設備的價值一般已超過計算機硬體子系統的一半以上,其技術水平在很大程度上決定著計算機的技術面貌。外圍設備技術的綜合性很強,既依賴於電子學、機械學、光學、磁學等多門學科知識的綜合,又取決於精密機械工藝、電氣和電子加工工藝以及計量的技術和工藝水平等。
外圍設備包括輔助存儲器和輸入輸出設備兩大類。輔助存儲器包括磁碟、磁鼓、磁帶、激光存儲器、海量存儲器和縮微存儲器等;輸入輸出設備又分為輸入、輸出、轉換、、模式信息處理設備和終端設備。在這些品種繁多的設備中,對計算機技術面貌影響最大的是磁碟、終端設備、模式信息處理設備和轉換設備等。
新一代計算機是把信息採集存儲處理、通信和人工智慧結合在一起的智能計算機系統。它不僅能進行一般信息處理,而且能面向知識處理,具有形式化推理、聯想、學習和解釋的能力,將能幫助人類開拓未知的領域和獲得新的知識。
計算技術在中國的發展 在人類文明發展的歷史上中國曾經在早期計算工具的發明創造方面寫過光輝的一頁。遠在商代,中國就創造了十進制記數方法,領先於世界千餘年。到了周代,發明了當時最先進的計算工具——算籌。這是一種用竹、木或骨製成的顏色不同的小棍。計算每一個數學問題時,通常編出一套歌訣形式的演算法,一邊計算,一邊不斷地重新布棍。中國古代數學家祖沖之,就是用算籌計算出圓周率在3.1415926和3.1415927之間。這一結果比西方早一千年。
珠算盤是中國的又一獨創,也是計算工具發展史上的第一項重大發明。這種輕巧靈活、攜帶方便、與人民生活關系密切的計算工具,最初大約出現於漢朝,到元朝時漸趨成熟。珠算盤不僅對中國經濟的發展起過有益的作用,而且傳到日本、朝鮮、東南亞等地區,經受了歷史的考驗,至今仍在使用。
中國發明創造指南車、水運渾象儀、記里鼓車、提花機等,不僅對自動控制機械的發展有卓越的貢獻,而且對計算工具的演進產生了直接或間接的影響。例如,張衡製作的水運渾象儀,可以自動地與地球運轉同步,後經唐、宋兩代的改進,遂成為世界上最早的天文鍾。
記里鼓車則是世界上最早的自動計數裝置。提花機原理劉計算機程序控制的發展有過間接的影響。中國古代用陽、陰兩爻構成八卦,也對計算技術的發展有過直接的影響。萊布尼茲寫過研究八卦的論文,系統地提出了二進制算術運演算法則。他認為,世界上最早的二進製表示法就是中國的八卦。
經過漫長的沉寂,新中國成立後,中國計算技術邁入了新的發展時期,先後建立了研究機構,在高等院校建立了計算技術與裝置專業和計算數學專業,並且著手創建中國計算機製造業。
1958年和1959年,中國先後製成第一台小型和大型電子管計算機。60年代中期,中國研製成功一批晶體管計算機,並配製了ALGOL等語言的編譯程序和其他系統軟體。60年代後期,中國開始研究集成電路計算機。70年代,中國已批量生產小型集成電路計算機。80年代以後,中國開始重點研製微型計算機系統並推廣應用;在大型計算機、特別是巨型計算機技術方面也取得了重要進展;建立了計算機服務業,逐步健全了計算機產業結構。
在計算機科學與技術的研究方面,中國在有限元計算方法、數學定理的機器證明、漢字信息處理、計算機系統結構和軟體等方面都有所建樹。在計算機應用方面,中國在科學計算與工程設計領域取得了顯著成就。在有關經營管理和過程式控制制等方面,計算機應用研究和實踐也日益活躍。
計算機科學與技術
計算機科學與技術是一門實用性很強、發展極其迅速的面向廣大社會的技術學科,它建立在數學、電子學 (特別是微電子學)、磁學、光學、精密機械等多門學科的基礎之上。但是,它並不是簡單地應用某些學科的知識,而是經過高度綜合形成一整套有關信息表示、變換、存儲、處理、控制和利用的理論、方法和技術。
計算機科學是研究計算機及其周圍各種現象與規模的科學,主要包括理論計算機科學、計算機系統結構、軟體和人工智慧等。計算機技術則泛指計算機領域中所應用的技術方法和技術手段,包括計算機的系統技術、軟體技術、部件技術、器件技術和組裝技術等。計算機科學與技術包括五個分支學科,即理論計算機科學、計算機系統結構、計算機組織與實現、計算機軟體和計算機應用。
理論計算機學 是研究計算機基本理論的學科。在幾千年的數學發展中,人們研究了各式各樣的計算,創立了許多演算法。但是,以計算或演算法本身的性質為研究對象的數學理論,卻是在20世紀30年代才發展起來的。
當時,由幾位數理邏輯學者建立的演算法理論,即可計算性理論或稱遞歸函數論,對20世紀40年代現代計算機設計思想的形成產生過影響。此後,關於現實計算機及其程序的數學模型性質的研究,以及計算復雜性的研究等不斷有所發展。
理論計算機科學包括自動機論、形式語言理論、程序理論、演算法分析,以及計算復雜性理論等。自動機是現實自動計算機的數學模型,或者說是現實計算機程序的模型,自動機理論的任務就在於研究這種抽象機器的模型;程序設計語言是一種形式語言,形式語言理論根據語言表達能力的強弱分為O~3型語言,與圖靈機等四類自動機逐一對應;程序理論是研究程序邏輯、程序復雜性、程序正確性證明、程序驗證、程序綜合、形式語言學,以及程序設計方法的理論基礎;演算法分析研究各種特定演算法的性質。計算復雜性理論研究演算法復雜性的一般性質。
計算機系統結構 程序設計者所見的計算機屬性,著重於計算機的概念結構和功能特性,硬體、軟體和固件子系統的功能分配及其界面的確定。使用高級語言的程序設計者所見到的計算機屬性,主要是軟體子系統和固件子系統的屬性,包括程序語言以及操作系統、資料庫管理系統、網路軟體等的用戶界面。使用機器語言的程序設計者所見到的計算機屬性,則是硬體子系統的概念結構(硬體子系統結構)及其功能特性,包括指令系統(機器語言),以及寄存器定義、中斷機構、輸入輸出方式、機器工作狀態等。
硬體子系統的典型結構是馮·諾伊曼結構,它由運算器控制器、存儲器和輸入、輸出設備組成,採用「指令驅動」方式。當初,它是為解非線性、微分方程而設計的,並未預見到高級語言、操作系統等的出現,以及適應其他應用環境的特殊要求。在相當長的一段時間內,軟體子系統都是以這種馮·諾伊曼結構為基礎而發展的。但是,其間不相適應的情況逐漸暴露出來,從而推動了計算機系統結構的變革。
計算機組織與實現 是研究組成計算機的功能、部件間的相互連接和相互作用,以及有關計算機實現的技術,均屬於計算機組織與實現的任務。
在計算機系統結構確定分配給硬子系統的功能及其概念結構之後,計算機組織的任務就是研究各組成部分的內部構造和相互聯系,以實現機器指令級的各種功能和特性。這種相互聯系包括各功能部件的布置、相互連接和相互作用。
隨著計算機功能的擴展和性能的提高,計算機包含的功能部件也日益增多,其間的互連結構日趨復雜。現代已有三類互連方式,分別以中央處理器、存儲器或通信子系統為中心,與其他部件互連。以通信子系統為中心的組織方式,使計算機技術與通信技術緊密結合,形成了計算機網路、分布計算機系統等重要的計算機研究與應用領域。
與計算實現有關的技術范圍相當廣泛,包括計算機的元件、器件技術,數字電路技術,組裝技術以及有關的製造技術和工藝等。
軟體 軟體的研究領域主要包括程序設計、基礎軟體、軟體工程三個方面。程序設計指設計和編製程序的過程,是軟體研究和發展的基礎環節。程序設計研究的內容,包括有關的基本概念、規范、工具、方法以及方法學等。這個領域發展的特點是:從順序程序設計過渡到並發程序設計和分幣程序設計;從非結構程序設計方法過渡到結構程序設計方法;從低級語言工具過渡到高級語言工具;從具體方法過渡到方法學。
基礎軟體指計算機系統中起基礎作用的軟體。計算機的軟體子系統可以分為兩層:靠近硬體子系統的一層稱為系統軟體,使用頻繁,但與具體應用領域無關;另一層則與具體應用領域直接有關,稱為應用軟體;此外還有支援其他軟體的研究與維護的軟體,專門稱為支援軟體。
軟體工程是採用工程方法研究和維護軟體的過程,以及有關的技術。軟體研究和維護的全過程,包括概念形成、要求定義、設計、實現、調試、交付使用,以及有關校正性、適應性、完善性等三層意義的維護。軟體工程的研究內容涉及上述全過程有關的對象、結構、方法、工具和管理等方面。
軟體目動研究系統的任務是:在軟體工程中採用形式方法:使軟體研究與維護過程中的各種工作盡可能多地由計算機自動完成;創造一種適應軟體發展的軟體、固件與硬體高度綜合的高效能計算機。
計算機產業
計算機產業包括兩大部門,即計算機製造業和計算機服務業。後者又稱為信息處理產業或信息服務業。計算機產業是一種省能源、省資源、附加價值高、知識和技術密集的產業,對於國民經濟的發展、國防實力和社會進步均有巨大影響。因此,不少國家採取促進計算機產業興旺發達的政策。
計算機製造業包括生產各種計算機系統、外圍設備終端設備,以及有關裝置、元件、器件和材料的製造。計算機作為工業產品,要求產品有繼承性,有很高的性能-價格比和綜合性能。計算機的繼承性特別體現在軟體兼容性方面,這能使用戶和廠家把過去研製的軟體用在新產品上,使價格很高的軟體財富繼續發揮作用,減少用戶再次研製軟體的時間和費用。提高性能-價格比是計算機產品更新的目標和動力。
計算機製造業提供的計算機產品,一般僅包括硬體子系統和部分軟體子系統。通常,軟體子系統中缺少適應各種特定應用環境的應用軟體。為了使計算機在特定環境中發揮效能,還需要設計應用系統和研製應用軟體此外,計算機的運行和維護,需要有掌握專業知識的技術人員,這常常是一股用戶所作不到的。
針對這些社會需要,一些計算機製造廠家十分重視向用戶提供各種技術服務和銷售服務。一些獨立於計算機製造廠家的計算機服務機構,也在50年代開始出現。到60年代末期,計算機服務業在世界范圍內已形成為獨立的行業。
計算機的發展與應用
計算機科學與技術的各門學科相結合,改進了研究工具和研究方法,促進了各門學科的發展。過去,人們主要通過實驗和理論兩種途徑進行科學技術研究。現在,計算和模擬已成為研究工作的第三條途徑。
計算機與有關的實驗觀測儀器相結合,可對實驗數據進行現場記錄、整理、加工、分析和繪制圖表,顯著地提高實驗工作的質量和效率。計算機輔助設計已成為工程設計優質化、自動化的重要手段。在理論研究方面,計算機是人類大腦的延伸,可代替人腦的若干功能並加以強化。古老的數學靠紙和筆運算,現在計算機成了新的工具,數學定理證明之類的繁重腦力勞動,已可能由計算機來完成或部分完成。
計算和模擬作為一種新的研究手段,常使一些學科衍生出新的分支學科。例如,空氣動力學、氣象學、彈性結構力學和應用分析等所面臨的「計算障礙」,在有了高速計算機和有關的計算方法之後開始有所突破,並衍生出計算空氣動力學、氣象數值預報等邊緣分支學科。利用計算機進行定量研究,不僅在自然科學中發揮了重大的作用,在社會科學和人文學科中也是如此。例如,在人口普查、社會調查和自然語言研究方面,計算機就是一種很得力的工具。
計算機在各行各業中的廣泛應用,常常產生顯著的經濟效益和社會效益,從而引起產業結構、產品結構、經營管理和服務方式等方面的重大變革。在產業結構中已出觀了計算機製造業和計算機服務業,以及知識產業等新的行業。
微處理器和微計算機已嵌入機電設備、電子設備、通信設備、儀器儀表和家用電器中,使這些產品向智能化方向發展。計算機被引入各種生產過程系統中,使化工、石油、鋼鐵、電力、機械、造紙、水泥等生產過程的自動化水平大大提高,勞動生產率上升、質量提高、成本下降。計算機嵌入各種武器裝備和武器系統干,可顯著提高其作戰效果。
經營管理方面,計算機可用於完成統計、計劃、查詢、庫存管理、市場分析、輔助決策等,使經營管理工作科學化和高效化,從而加速資金周轉,降低庫存水準,改善服務質量,縮短新產品研製周期,提高勞動生產率。在辦公室自動化方面,計算機可用於文件的起草、檢索和管理等,顯著提高辦公效率。
計算機還是人們的學習工具和生活工具。藉助家用計算機、個人計算機、計算機網、資料庫系統和各種終端設備,人們可以學習各種課程,獲取各種情報和知識,處理各種生活事務(如訂票、購物、存取款等),甚至可以居家辦公。越來越多的人的工作、學習和生活中將與計算機發生直接的或間接的聯系。普及計算機教育已成為一個重要的問題。
總之,計算機的發展和應用已不僅是一種技術現象而且是一種政治、經濟、軍事和社會現象。世界各國都力圖主動地駕馭這種社會計算機化和信息化的進程,克服計算機化過程中可能出現的消極因素,更順利地向高
❻ 計算機學習總結
軟體開發就是根據用戶要求建造出軟體系統或者系統中的軟體部分的過程。
一般是用某種程序設計語言來實現的軟體開發的,像Java、Python、2C和C++等都是軟體開發的需要的編程語言。
看到那麼多編程語言,同學又就開始犯嘀咕,這么多,到底學什麼?
今天聽人說Java不錯,想學;
明天聽人說Python前景廣,想學;
為什麼會迷茫,還不是因為你不夠了解他們。
所以,今天信盈達小編先來給大家普及一下Java、C/C++、PHP、Python到底分別是用來開發什麼的?
用任何編程語言來開發程序,都是為了讓計算機幹活,比如編寫一篇文章,下載一首MP3等,而計算機幹活的CPU只認識機器的指令。
所以,盡管不同的編程語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。理論上任何語言干任何事情幾乎都可以, 但是主要干什麼那就不一樣了。
Java
java常常跟」企業」聯系在一起,因為具備一些很好的語言特性, 以及豐富的框架,在企業應用中最被青睞,你總可以聽到關於J2EE, JSP, Hibernate之類的東西的討論。
同時, java在手機領域也有一席之地,在普遍智能化之前,很多手機就是以支持java應用作為賣點的,而智能手機爆發之後,java手機主場變成了android, 作為安卓的標准編程語言而存。
總結:Java主要應用在網頁, 企業級開發,普通應用軟,游戲後台。
C/C++
C/C++理論上說可以做任何開發,只要有合適的硬體驅動和API,特點是效率高,基本上是編譯語言裡面效率最高的。除非你的系統中連C/C++編譯器都不具備。某些系統當中C++編譯器是不具備的,但是C一般都具備。
目前而言,C語言主要用來開發底層模塊(比如驅動,解碼器,演算法實現),服務應用(比如web伺服器)和嵌入式應用(比如微波爐里的程序。C++也可以做這些,不過由於C++的復雜性和標准問題,人們還是更願意使用C來做。C++更適合比較復雜但又特別需要高效率的設施,比如大型游戲,一些基礎庫, 大型桌面應用。
總結:C 主要應用在系統底層,驅動,嵌入式開發。C++主要應用在游戲開發,大規模,高性能,分布式要求的程序開發。
Python
Python由於具有豐富和強大的庫,它又叫做作膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕松地聯結在一起。
常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而後封裝為Python可以調用的擴展類庫。
Python是做伺服器開發與物聯網開發。信息安全,大數據處理,數據可視化機器學習,物聯網開發,各大軟體的api,桌面應用,都需要python。
總結:Python主要應用在動態解釋型,開發效率高,開源,靈活,入門門檻低。
❼ 計算機的發展歷史
一、計算機的發展歷史:
1、第1代:電子管數字機(1946—1958年)
(1)硬體方面,邏輯元件採用的是真空電子管,主存儲器採用汞延遲線電子管數字計算機、陰極射線示波管靜電存儲器、磁鼓、磁芯;外存儲器採用的是磁帶。軟體方面採用的是機器語言、匯編語言。應用領域以軍事和科學計算為主。
(2)特點是體積大、功耗高、可靠性差。速度慢(一般為每秒數千次至數萬次)、價格昂貴,但為以後的計算機發展奠定了基礎。
2、第2代:晶體管數字機(1958—1964年)
(1)硬體方的操作系統、高級語言及其編譯程序。應用領域以科學計算和事務處理為主,並開始進入工業控制領域。
(2)特點是體積縮小、能耗降低、可靠性提高、運算速度提高(一般為每秒數10萬次,可高達300萬次)、性能比第1代計算機有很大的提高。
3、第3代:集成電路數字機(1964—1970年)
(1)硬體方面,邏輯元件採用中、小規模集成電路(MSI、SSI),主存儲器仍採用磁芯。軟體方面出現了分時操作系統以及結構化、規模化程序設計方法。
(2)特點是速度更快(一般為每秒數百萬次至數千萬次),而且可靠性有了顯著提高,價格進一步下降,產品走向了通用化、系列化和標准化等。應用領域開始進入文字處理和圖形圖像處理領域。
4、第4代:大規模集成電路機(1970年至今)
(1)硬體方面,邏輯元件採用大規模和超大規模集成電路(LSI和VLSI)。軟體方面出現了資料庫管理系統、網路管理系統和面向對象語言等。
(2)特點是1971年世界上第一台微處理器在美國矽谷誕生,開創了微型計算機的新時代。應用領域從科學計算、事務管理、過程式控制制逐步走向家庭。
二、計算工具的演化經歷了由簡單到復雜、從低級到高級的不同階段,從「結繩記事」中的繩結到算籌、算盤計算尺、機械計算機等。它們在不同的歷史時期發揮了各自的歷史作用,同時也啟發了現代電子計算機的研製思想。
三、1946年2月14日,由美國軍方定製的世界上第一台電子計算機「電子數字積分計算機」(ENIAC Electronic Numerical And Calculator)在美國賓夕法尼亞大學問世了。ENIAC(中文名:埃尼阿克)是美國奧伯丁武器試驗場為了滿足計算彈道需要而研製成的,這台計算器使用了17840支電子管,大小為80英尺×8英尺,重達28t(噸),功耗為170kW,其運算速度為每秒5000次的加法運算,造價約為487000美元。
(7)計算機條件編譯實驗心得擴展閱讀:
1、計算機發明者約翰·馮·諾依曼。計算機是20世紀最先進的科學技術發明之一,對人類的生產活動和社會活動產生了極其重要的影響,並以強大的生命力飛速發展。它的應用領域從最初的軍事科研應用擴展到社會的各個領域,已形成了規模巨大的計算機產業,帶動了全球范圍的技術進步,由此引發了深刻的社會變革,計算機已遍及一般學校、企事業單位,進入尋常百姓家,成為信息社會中必不可少的工具。
2、計算機的應用在中國越來越普遍,改革開放以後,中國計算機用戶的數量不斷攀升,應用水平不斷提高,特別是互聯網、通信、多媒體等領域的應用取得了不錯的成績。1996年至2009 年,計算機用戶數量從原來的630萬增長至6710 萬台,聯網計算機台數由原來的2.9萬台上升至5940萬台。互聯網用戶已經達到3.16 億,無線互聯網有6.7 億移動用戶,其中手機上網用戶達1.17 億,為全球第一位。
❽ c語言的學習方法
如果剛開始接觸c語言,聽不懂也正常,不要有畏懼的心理,有些小夥伴可能看到部分同學什麼都會,自己就很氣餒,因為這部分同學很可能接觸編程比較早,即使小孩學走路也有一個過程,剛開始有走路慾望->學會站立,腿部有力量->嘗試走路,不斷練習->學會走路。所以不要慌。
學C語言與走路一樣,剛開始一定要有學習的慾望,然後,再制定計劃,不斷練習,量變會引起質變,堅持下去就發現原來這么簡單。
歡迎關注公眾號:c語言與cpp編程
1、學習資料
書本推薦:《cprimerplus》難得的好書。老譚的書可看可不看,但是這本藍皮的cprimerplus是我案頭必備的參考書,後面還有完整的c99標准庫,所以適合當個參考書。注意區分一下《c++primer》和《cprimerplus》
如果覺得這幾本書還是有點難,那就先看《C語言程序設計》
有了經驗後要去看看,例子很經典。後來進階可以看看三劍客《c和指針》《c陷阱與缺陷》《c專家編程》
剛學C語言的話可以結合看下C語言編程經典100例;
編譯器:VS,DevC++,VC++,CodeBlocks,C-Free,TurboC。關於它們的特點網上介紹很多了,就不贅述了。講真,入門和基礎階段你用哪個無所謂,還是選自己喜歡的,不過對於初學者我們推薦DevC++。可能現在大學課堂用的還是VC++,剛入門自己習慣就行。
視頻推薦:有同學曾經說過,視頻這么好,上課就不用聽講了,這個是完全錯誤的,視頻是課堂補充,上課還是一定要好好聽講的,視頻可以查缺補漏,系統的學習一下。
上面提到的一些資料整理好了,可以下載:
鏈接:
提取碼:1234
學習方法:
1、過:學習一門新的語言,第一步就是把它所涉及的基礎知識大體過一點,不求深解,只求了解——第一遍:無需了解太過深入的理論,大體知道這門語言是什麼樣的,主要面向哪些場合,一些基本的語法格式是什麼樣的就可以了。
2、抄代碼:剛開始寫代碼,沒有多少人一上來就能立刻自己寫一個很完善很強大的代碼,甚至連基本的語法都會寫錯,這時候抄代碼就很關鍵了,從書上抄,從例子里抄,邊抄邊想,邊想邊回憶語法。
3、模仿改:自己會抄寫一些簡單的代碼,熟悉了一遍此語言的簡單語法後,但還不太清楚怎樣下手寫一個完整的代碼模塊,所以這一步要仿寫了,仿照給出的代碼寫一個屬於自己的代碼
4、勤調試:沒有人能一下子寫出完全正確的代碼,自己試著寫一些代碼,通過不斷調試來驗證自己的一些想法,繼續思考,再次驗證,來回折騰。熟悉一些基本的調試工具以及調試方法。
5、看n遍:出錯或遇到問題時,將代碼從頭看到尾,看了一遍又一遍,直到快全部記住時,總能找出問題原因,相信方法總會比問題多
6、練重復2-5步三遍以上,不解釋。
7、創新拿出一個完全沒有寫過的代碼,根據要求,一步步的寫出來。如果寫不出來,或者中間一堆錯誤,請參考第六步。
8、悟:主動找到寫代碼的感覺和成就感,並保持下去,世界上最難的語言就掌握了,將成為你軟體生涯永遠的工具。
❾ 自學計算機看書順序
計算機專業課程自學參考
有人說,計算機專業的人編的程序要比非計算機專業的人編的要好.也許這是在大多數情況下適用的,但是並不是絕對的.你在這個方面經驗比別人多,研究的比別人深入,那你就比別人專業,所以要相信自己.
我本不是計算機專業的,但是本專業也學過許多計算機課程.准備把沒學的補補.下面是計算機專業課程,供大家自學參考,當然這些都是基礎.
離散數學,數據結構,計算機組成原理,匯編語言程序設計,面向對象技術,數據通信
原理,數字電路與邏輯設計,程序設計課程設計,數據結構課程設計,計算機組成原理試驗,
數字電路與邏輯設計試驗,計算機文化基礎,計算機程序設計,線性代數A,概率論與數理統計B,
普通物理B,電路電子學
資料庫系統,操作系統,計算機網路,計算機系統結構,光通信技術,嵌入式系統設計,
Internet與web編程,Cisio/Solaris網路體系設計與實現,綜合布線系統
編譯原理,數字系統設計VHDL,信號與系統,微機系統與介面技術,數字信號處理,
軟體工程,IT項目管理,七號信令系統,電子商務概論,多媒體技術,UNIX操作系統,計算機信息安全移動通信,衛星通信,計算機系統維護技術
基礎方面:(應該無需解釋啦)
⒈ 高等數學
⒉ 線性代數
⒊ 復變函數與積分變換
⒊ 概率統計
硬體方面:(最終應該達到可以看懂並分析電路圖;可以設計專用計算機系統的程度)
⒈ 電路分析基礎 一切電子方向的基礎
⒉ 模擬電子技術基礎 一切電子方向的基礎(開始分化方向)
⒊ 數字電子技術基礎 數字電子(計算機)專業的基礎
⒋ 計算機組成原理 抽象的數字電子的「可以用來計算的機器」的大原理
⒌ 微機原理及介面技術 基於8086的PC微型計算機系統的原理
⒌ IBM PC匯編語言程序設計 8086CPU指令系統程序設計
⒌ 計算機系統與結構 抽象的數字電子計算機系統(非單指計算機)的原理
⒌ 單片機及介面技術 單晶元計算機系統的基本原理
⒍ (計算機)信號與系統 從數字電路角度理解的計算機系統的介面與通訊
軟體方面:(最終應該達到可以閱讀並分析程序(不單指源碼);可以設計計算機程序系統)
⒈ 離散數學
⒈ C語言程序設計 或 C++面向對象程序設計 或 Pascall語言程序設計
⒉ 數據結構 計算機中數據的組織與管理方式(啟發式,非結論式)
⒊ 計算方法 計算機數值計算提高計算精度的方法
⒋ 操作系統 計算機系統基礎管理軟體的組成與實現技術
⒌ 編譯原理 從源碼到可執行代碼的翻譯過程快速有效的實現方法
⒍ 資料庫系統概論 計算機中大批量數據的管理與檢索方法
7 SQL Server資料庫 一個具體的資料庫系統的應用
8 軟體工程 從工程管理的角度來管理「軟體製造業」的方法
9 匯編語言
其它方向:
(電子)信號與系統
通信原理
計算機網路
TCP/IP技術
分布式應用原理
圖形學
多媒體技術基礎
很多朋友可能跟我一樣,想學習計算機專業知識,又沒機會接受正規的大學計算機教育。在此我作為過來人跟大家談談自己自學的感受。
★確立學習方向
計算機專業人才的培養目標有很多,就大學計算機專業的設置來看,大致可以概括為以下幾個方面:
一、計算機軟體與理論
本專業主要培養具有較強理論基礎和設計、開發軟體能力的軟體人才,以滿足軟體開發、技術管理、科學研究和高等教育等多層次的社會需要。
二、計算機應用技術
本專業主要培養計算機應用技術領域的各類開發、研究、應用人才。
畢業生適合的工作有:高等院校計算機科學與技術的教師和研究人員、中小型控制系統的設計實施人員、大型控制系統的應用人員、企業級MIS/ERP建設人員、基於Internet/Intranet的多媒體應用程序開發人員、數字通訊領域各類應用人員、大中型企業及涉外企業IT部門的工作人員。
三、計算機系統(體系)結構
本專業以並行處理、容錯計算等為主要研究方向,所開設的課程反映當前國內外計算機系統結構學科的發展水平。培養學生的計算機軟硬體基礎,以及熟練的以計算機為手段獨立研究與設計計算機系統的能力和計算機應用、軟體開發能力。
★如何挑選教材
好的教材對於自學者來說是至關重要的,因此下面我們重點介紹一下適合自學用的計算機專業教材。
一、數學
數學是計算機專業的基礎,學好數學是學好計算機專業的關鍵。高等數學課程主要學習微積分、空間解析幾何和微分方程,一般高校通用的教材是同濟大學編的《高等數學》,目前已經有了第五版,也可以使用自考教材——西安交通大學陸慶樂編的《高等數學》,可以買一些配套的輔導書和習題解答。
還有兩門重要的數學課程是《線性代數》和《概率統計》。可以分別採用高等教育出版社出版、同濟大學編寫的《線性代數》和浙江大學編寫的《概率統計》。注意:自學一定要多做習題,而且最好一門課有一本習題解答和輔導書。
除了上面數學基礎課外,在計算機專業中舉足輕重的就是《離散數學》,這門課要多花點力氣來學。可以採用左孝凌教授等編的《離散數學》,上海科學技術文獻出版社。也可以用北大、清華的教材,還可以參考左教授編的自學教材,經濟科學出版社。
其他課程還有《復編函數》、《計算方法》等,有餘力的朋友可以選學。
二、專業基礎課
1.《程序設計》:學習內容一般為C和C++。C語言可以採用譚浩強教授的《C程序設計》,內容比較淺顯,C++方面的書推薦錢能編寫的《C++程序設計》,清華大學出版社。
2.《數據結構》:這門課程比較難,可以採用嚴蔚敏教授編寫的《數據結構(C語言版)》,有配套習題冊。好好做題,有時間多編幾個大的程序。
3.《模擬電路》和《數字電路》:這是難度較高的兩門課程,選用自考教材相對來說容易些,也可以參考清華大學出版社出版的相關教材。
三、專業課
1.《計算機組成原理》:推薦白中英主編的《計算機組成原理》(第三版),科學出版社;黃愛英主編的《計算機組成原理》(第三版),清華大學出版社。
2.《操作系統》:湯子贏編寫的《計算機操作系統》(第三版),西安電子科技大學出版社。還可以參考高教司司長張堯學教授編寫的教材,清華大學出版社。
3.《匯編語言》:可以用清華大學出版社出版的教材,也可以用自考教材。
4.《資料庫原理》:人民大學教授王珊編的《資料庫系統概論》(第三版),高等教育出版社,復旦大學施伯樂老師編寫的教材也不錯。
5.《編譯原理》:國防科技大學陳火旺院士編寫的教材十分不錯,最新版本是2000年出的,國防工業出版社。
四、選修課
包括計算機網路與通訊、軟體工程、圖形學、人工智慧、系統結構、圖形學等。此類課程的教材可選用全國高等教育自學考試指定教材,或參考各高校所採用的計算機專科和本科教材及配套輔導書。英文基礎好的朋友可以用國外著名大學的影印版教材。
需要提醒大家的是,除了教材,網上有許多相關課堂錄像和課件,有條件的朋友要充分利用。
我自己通過上述課程的學習和實踐,已經考完了計算機本科自學考試的大部分課程,並已通過計算機四級考試,下半年還准備參加高級程序員考試。希望我的經驗對大家能有所幫助。
總結一下,沒學過的課程大概有:
1.*離散數學
2.*計算機組成原理,*計算機系統結構,嵌入式系統設計,編譯原理,*Unix系統
3.*Internet與web編程,Cisio/Solaris網路體系設計與實現,*TCP/IP技術
4.綜合布線系統,信號與系統,數字信號處理,單片機及介面技術,分布式應用原理
5.*IT項目管理
6.多媒體
*號的一定會看,其他的課可能會看.除了以上的,其他基本都在本科學過.需要進一步加強的有:
1.匯編語言,操作系統,微機原理
2.資料庫,計算機網路,軟體工程.