『壹』 成為一名軟體工程師要學哪些課程
中國計算機軟體設計師考試大綱
一、考試說明
1.考試要求:
(1) 掌握數據表示、算術和邏輯運算;
(2) 掌握相關的應用數學、離散數學的基礎知識;
(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(4) 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(5) 熟練掌握常用數據結構和常用演算法;
(6) 熟悉資料庫、網路和多媒體的基礎知識;
(7) 掌握C程序設計語言,以及C++、Java、Visual、Basic、Visual C++中的一種程序設計語言;
(8) 熟悉軟體工程、軟體過程改進和軟體開發項目管理的基礎知識;
(9) 熟悉掌握軟體設計的方法和技術;
(10) 掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(11) 了解信息化、計算機應用的基礎知識;
(12) 正確閱讀和理解計算機領域的英文資料。
2.通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程序設計規格說明書等相應的文檔,組織和指導程序員編寫、調試程序,並對軟體進行優化和集成測試,開發出符合系統總體設計要求的高質量軟體;具有工程的實際工作能力和業務水平。
3.本考試設置的科目包括:
(1) 計算機與軟體工程知識,考試時間為150分鍾,筆試;
(2) 軟體設計,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:計算機與軟體工程知識
1.計算機科學基礎
1.1 數制及其轉換
· 二進制、十進制和十六進制等常用制數制及其相互轉換
1.2 數據的表示
· 數的表示(原碼、反碼、補碼、移碼表示,整數和實數的機內表示,精度和溢出)
· 非數值表示(字元和漢字表示、聲音表示、圖像表示)
· 校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗餘校驗碼)
1.3 算術運算和邏輯運算
· 計算機中的二進制數運算方法
· 邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學基礎知識
· 命題邏輯、謂詞邏輯、形式邏輯的基礎知識
· 常用數值計算(誤差、矩陣和行列式、近似求解方程、插值、數值積分)
· 排列組合、概率論應用、應用統計(數據的統計分析)
· 運算基本方法(預測與決策、線性規劃、網路圖、模擬)
1.5 常用數據結構
· 數組(靜態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹、平衡樹、線索樹、線索樹、堆)、圖等的定義、存儲和操作
· Hash(存儲地址計算,沖突處理)
1.6 常用演算法
· 排序演算法、查找演算法、數值計算方法、字元串處理方法、數據壓縮演算法、遞歸演算法、圖的相關演算法
· 演算法與數據結構的關系、演算法效率、演算法設計、演算法描述(流程圖、偽代碼、決策表)、演算法的復雜性
2.計算機系統知識
2.1 硬體知識
2.1.1 計算機系統的組成、體系結構分類及特性
· CPU和存儲器的組成、性能和基本工作原理
· 常用I/O設備、通信設備的性能,以及基本工作原理
· I/O介面的功能、類型和特性
· I/O控制方式(中斷系統、DMA、I/O處理機方式)
· CISC/RISC,流水線操作,多處理機,並行處理
2.1.2 存儲系統
· 主存-Cache存儲系統的工作原理
· 虛擬存儲器基本工作原理,多級存儲體系的性能價格
· RAID類型和特性
2.1.3 安全性、可靠性與系統性能評測基礎知識
· 診斷與容錯
· 系統可靠性分析評價
· 計算機系統性能評測方式
2.2 軟體知識
2.2.1 操作系統知識
· 操作系統的內核(中斷控制)、進程、線程概念
· 處理機管理(狀態轉換、共享與互斥、分時輪轉、搶占、死鎖)
· 存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
· 設備管理(I/O控制、假離線)
· 文件管理(文件目錄、文件組織、存取方法、存取控制、恢復處理)
· 作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
· 漢字處理,多媒體處理,人機界面
· 網路操作系統和嵌入式操作系統基礎知識
· 操作系統的配置
2.2.2 程序設計語言和語言處理程序的知識
· 匯編、編譯、解釋系統的基礎知識和基本工作原理
· 程序設計語言的基本成分:數據、運算、控制和傳輸,過程(函數)調用
· 各類程序設計語言主要特點和適用情況
2.3 計算機網路知識
· 網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
· 傳輸介質、傳輸技術、傳輸方法、傳輸控制
· 常用網路設備和各類通信設備
· Client/Server結構、Browser/Server結構
· LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
· 網際網路基礎知識以及應用
· 網路軟體
· 網路管理
· 網路性能分析
2.4 資料庫知識
· 資料庫管理系統的功能和特徵
· 資料庫模型(概念模式、外模式、內模式)
· 數據模型,ER圖,第一範式、第二範式、第三範式
· 數據操作(集合運算和關系運算)
· 資料庫語言(SQL)
· 資料庫的控制功能(並發控制、恢復、安全性、完整性)
· 數據倉庫和分布式資料庫基礎知識
2.5 多媒體知識
· 多媒體系統基礎知識,多媒體設備的性能特性,常用多媒體文件格式
· 簡單圖形的繪制,圖像文件的處理方法
· 音頻和視頻信息的應用
· 多媒體應用開發過程
2.6 系統性能知識
· 性能指標(響應時間、吞吐量、周轉時間)和性能設計
· 性能測試和性能評估
· 可靠性指標及計算、可靠性設計
· 可靠性測試和可靠性評估
2.7 計算機應用基礎知識
·信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等基礎知識
· 遠程通信服務基礎知識
· 常用應用系統
3.系統開發和運行知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
· 軟體工程知識
· 軟體開發生命周期各階段的目標和任務
· 軟體開發項目管理基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
· 主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
· 軟體開發工具與環境知識
· 軟體過程改進知識
· 軟體質量管理知識
· 軟體開發過程評估、軟體能力成熟評估基礎知識
3.2 系統分析基礎知識
· 系統分析的目的和任務
·結構化分析方法(數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)、描述加工處理的結構化語言)
· 統一建模語言(UML)
· 系統規格說明書
3.3 系統設計知識
· 系統設計的目的和任務
· 結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
· 系統總體結構設計(總體布局、設計原則、模塊結構設計、數據存儲設計、系統配置方案)
· 系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
· 系統設計說明書
3.4 系統實施知識
· 系統實施的主要任務
· 結構化程序設計、面向對象程序設計、可視化程序設計
· 程序設計風格
· 程序設計語言的選擇
· 系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
· 測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試用例設計、系統測試報告)
· 系統轉換基礎知識
3.5 系統運行和維護知識
· 系統運行管理基礎知識
· 系統維護基礎知識
· 系統評價基礎知識
3.6 面向對象開發方法
· 面向對象開發概念(類、對象、屬性、封裝性、繼承性、多態性、對象之間的引用)
· 面向對象開發方法的優越性以及有效領域
· 面向對象設計方法(體系結構、類的設計、用戶介面設計)
· 面向對象實現方法(選擇程序設計語言、類的實現、方法的實現、用戶介面的實現、准備測試數據)
· 面向對象程序設計語言(如C++、Java、Visual、Bsasic、Visual C++)的基本機制
· 面向對象資料庫、分布式對象的概念
4.安全性知識
· 安全性基本概念
· 防治計算機病毒、防範計算機犯罪
· 存取控制、防闖入、安全管理措施
· 加密與解密機制
·風險分析、風險類型、抗風險措施和內部控制
5.標准化知識
· 標准化意識、標准化的發展、標准制訂過程
· 國際標准、國家標准、行業標准、企業標准基本知識
· 代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准知識
· 標准化機構
6.信息化基礎知識
· 信息化意識
· 全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
· 有關的法律、法規
· 遠程教育、電子商務、電子政務等基礎知識
· 企業信息資源管理基礎知識
7.計算機專業英語
· 掌握計算機技術的基本詞彙
· 能正確閱讀和理解計算機領域的英文資料
考試科目2:軟體設計
1.外部設計
1.1 理解系統需求說明
1.2 系統開發的准備
· 選擇開發方法、准備開發環境、制訂開發計劃
1.3 設計系統功能
· 選擇系統結構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制訂詳細的工作流和數據流
1.4 設計數據模型
· 設計ER模型、數據模型
1.5 編寫外部設計文檔
· 系統配置圖、各子系統關系圖、系統流程圖、系統功能說明書、輸入輸出規格說明、數據規格說明、用戶手冊框架
· 設計系統測試要求
1.6 設計評審
2.內部設計
2.1 設計軟體結構
·按構件分解,確定構件功能規格以及構件之間的介面
· 採用中間件和工具
2.2 設計輸入輸出
· 屏幕界面設計、設計輸入輸出檢查方法和檢查信息
> 2.3 設計物理數據
· 分析數據特性,確定邏輯數據組織方式、存儲介質,設計記錄格式和處理方式
· 將邏輯數據結構換成物理數據結構,計算容量,進行優化
2.4 構件的創建和重用
· 創建、重用構件的概念
· 使用子程序庫或類庫
2.5 編寫內部設計文檔
· 構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、文件設計文檔、資料庫設計文檔
2.6 設計評審
3.程序設計
3.1 模塊劃分(原則、方法、標准)
3.2 編寫程序設計文檔
· 模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
· 測試要求說明書(測試類型和目標、測試用例、測試方法)
3.3 程序設計評審
4.系統實施
4.1 配置計算機系統及其環境
4.2 選擇合適的程序設計語言
4.3 掌握C程序設計語言,以及C++、Java、Visual、Basic、Visual C++中任一種程序設計語言,以便能指導程序員進行編程和測試,並進行必要的優化
4.4 系統測試
· 指導程序員進行模塊測試,並進行驗收
· 准備系統集成測試環境和測試工具
· 准備測試數據
· 寫出測試報告
5.軟體工程
· 軟體生存期模型(瀑布模型、螺旋模型、噴泉模型)和軟體成本模型
· 定義軟體需求(系統化的目標、配置、功能、性能和約束)
· 描述軟體需求的方法(功能層次模型、數據流模型、控制流模型、面向數據的模型、面向對象的模型等)
· 定義軟體需求的方法(結構化分析方法、面向對象分析方法)
· 軟體設計(分析與集成、逐步求精、抽象、信息隱蔽)
· 軟體設計方法(結構化設計方法、Jackson方法、Warnier方法、面向對象設計方法)
· 程序設計(結構化程序設計、面向對象程序設計)
· 軟體測試的原則與方法
· 軟體質量(軟體質量特性、軟體質量控制)
· 軟體過程評估基本方法、軟體能力成熟度評估基本方法
· 軟體開發環境和開發工具(分析工具、設計工具、編程工具、測試工具、維護工具、CASE)
· 軟體工程發展趨勢(面向構件,統一建模語言(UML))
· 軟體過程改進模型和方法
『貳』 如果想當一個軟體工程師要學習什麼
1、計算機硬體原理:了解硬體怎麼工作,知道軟體是怎樣在硬體上工作的,CPU架構,指令,怎麼做運算,內存如何工作,內容地址是怎麼回事,硬碟如何存儲,數據和指令如何通過電路和元器件轉化成電流和脈沖,可能需要數據電路的原理。無論從事計算機哪方面,比如網路、軟硬體,這個原理都必須精通。因為計算機技術是很抽象的,但是在現實和具象上是依賴硬體。
2、操作系統原理:在了解了硬體原理後,了解操作系統是怎麼工作的。因為所有的軟體都是基於操作系統的,而操作系統本身也是一個軟體。這些結合硬體來理解,就更容易了。
3、編譯原理:了解軟體從源文件到目標文件,到執行的全過程。如果有必要,其中的東西也要專門買書去研究。這樣代碼上不容易犯錯誤。了解了硬體原理和操作系統原理的基礎上,了解編譯原理也就比較簡單。當然每種語言編譯過程都不一樣,但是原理都是基本相同。
4、數據結構和演算法分析:好的演算法,事半功倍,此外可能還要補一些高中數學、高等數學的知識。
以上每部分,都要至少1-2個月或者150個小時以上的鑽研,要做到基本掌握。如果不掌握以上部分,不是說學不了軟體,但是如果想學精通,想比一般人強,是不可能的,因為你只知道怎麼做,但是為什麼這樣做不清楚,就是死記硬背了,反反復復的記憶效率也很差。
有時候很多獨立的軟體開發的工具書,沒有講的那麼細致,只是告訴你如何做,但是不會告訴你為什麼這樣做,另外一些好的方法也無法告訴你,因為都需要從基礎的硬體電路電流原理來介紹,如果從原理上說,那會說的沒完沒了。
大約半年甚至1年後,此時你所有軟體開發需要掌握的基礎知識,都比較明白了。再開始研究程序開發,就會覺得開發很簡單,事半功倍。因為你已經從原理上理解了,軟體是怎麼工作的。所以也知道軟體開發的學習周期至少在1年以上。 達到能夠開發中型軟體,至少也要1年半,而且這個時間還是每天都在鑽研的時間。
『叄』 軟體工程師要學習什麼課程
想成為軟體設計師你要看的書包括:
1:數據結構 目前清華大學嚴蔚敏老師的數據結構是一個經典.可能的話,再搜羅其他版本的教程,這樣可以互相印證.
2:操作系統(第三版),主要從資源管理的角度來分析系統功能的實現。假設你要設計一個新的操作系統,如何實現它?操作系統理論就是向讀者逐步介紹和解釋。重點是五大管理職能的實現及其原理。
3:計算機網路(第三版),要學習ISO/OSIRM七層的劃分以及各種協議的功能。傳輸理論、互聯設備、Internet知識,和參考模型理論.
4:計算機專業英語,不是軟體考試特有的,是專業知識+英語水平,考前不需專業准備,平時有意識地上網讀點英文專業資料.
5:軟體工程(第二版) 要熟悉數據流圖和流程圖
6:資料庫理論.這要求熟悉SQL的語言.
7:C語言或者VB語言應該掌握
最後要學習統一建模語言UML,它代表了軟體工程的發展趨勢,目前是可視化建模的事實上的工業標准。
計算機學習要經歷一個從理論———實踐———理論的認識不斷深化的過程,這一過程是非常艱辛的.但是要相信「天道酬勤」的道理,你最終會成為一名優秀的軟體設計師的~~祝你成功
第一階段課程內容 序號 課程名稱 主要內容 參考資料 課時 ① 編成基礎 計算機硬體,軟體簡介,可視化編成 20課時 ② Java基礎 面向對象編程,JAVA開發環境,JAVA語法,異常處理,集合框架,數據結構,I/O輸入輸出流,JDBC,線程,jdk新特性。 Java就業培訓教程.pdf 80課時 ③ XHTML HTML4.0 XHTML1.0 HTML完全手冊.chm 20課時 ④ Javascript+css 客戶端腳本語言 jscript中文參考手冊.chm css2.0.chm 20課時 開發工具 MYECLIPSE插件,TOMCAT,ANT, Websphere, resin ⑤ JSP動態網站 servlet ,JSP運行原理,JSP語法,HTTP協議,JSP內置對象,COOKIE,JDBC。案例:(購物車,聊天室程序,通訊錄,留言板)。 80課時 ⑥ JSTL標簽庫 JSTL標簽庫,自定義標簽庫。 20課時 ⑦ B/S軟體架構 JSP+Servlet+JavaBean+JDBC(MVC架構) 20課時 ⑧ 資料庫原理 資料庫系統簡介,資料庫原理 資料庫操作,sql語句,範式,關系,約束,存儲過程,觸發器,事務。 20課時 ⑨ 軟體工程( 組件化) 軟體需求分析,軟體數據建模,軟體架構設計,軟體開發規范,原形+迭代開發模式,軟體架構分析。 20課時 10 項目實踐 常用組件詳細講解,上傳文件組件,分頁組件,主鍵生成組件,許可權處理,考試管理系統,小型論壇,網上書店管理,等電子商務系統。 20課時 軟體工程概論 簡介, 開發模式,CMMI 12課時 項目管理 項目計劃(項目的整體時間,人員安排,階段性工作內容),任務跟蹤。 需求分析 需求管理與配置管理:需求調研,分析,系統范圍配置標識,版本控制,配置審核(VSS,CVS),實際項目需求數據建模PowerDesigner 業務建模rose2007(類的關系)。拓展:svn 40課時 軟體測試概論 1.測試基礎(概述,角色,測試所需條件) 2.測試目的以及原則 3.測試分類 4.測試方法 5.靜態白盒測試,靜態黑盒測試,動態白盒測試,動態黑盒測試 6.測試計劃,測試用例 7.需求評審 8.原型評審,設計評審 9.實際項目需求評審 10. bug管理工具 28課時 Web2.0 Flex(語法,控制項應用,遠程方法訪問) AJAX。拓展:dwr深層研究 40課時 原型開發 原型設計規范 軟體設計 資料庫設計 概要設計 架構設計 詳細設計 設計評審 面向對象設計 20課時 XML 擴展的標記語言,XML, XSLT,DTD,SAX,DOM, JDOM等解析 20課時 STRUTS2 過濾器,Struts1,Struts2高級部分(標簽庫,驗證框架,攔截器,源碼分析,連接池,國際化,插件安裝),AOP基礎,JNDI。拓展:JSF, Tapestry,velocity 40課時 Spring IOC,JDBC,MVC,AOP,事務。 hibernate 數據持久化。拓展:EJB3.0, ibatis,搜索功能lucene webservice Soap協議,分布式。拓展:JMS Oracle資料庫 大型資料庫開發。拓展:DB2 20課時 軟體測試 單元測試 集成測試 系統測試 驗收測試 60課時 畢業答辯 演講能力,面試技巧,面試題,答辯 20課時 以上是學成軟體工程師的課程體系。
『肆』 Java軟體工程師一般要學習哪些課程
java SE:jdk基礎類庫
java EE:java企業級應用開發框架(spring框架,spring boot框架)
主流中間件:redis、mq。。。
學有餘力:數據結構與演算法、設計模式
『伍』 學軟體工程師從低到高都要學哪些課程,急
1、軟體工程師主要是你對程序的理解能力,你學計算機維修出身還是選擇網路比較容易入門一點。 2、這種屬於人事考試,連培訓加考試你起碼要有三千塊錢的准備(這還不一定夠)。 3、軟體工程師比網路工程師的就業范圍略窄,網路工程師在任何涉及到IT的東西都能用的到。 4、 [1]好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些。那麼,就需要慎重安排自己的軌跡。從哪個行業入手,逐漸對該行業深入了解,不要頻繁跳槽,特別是不要為了一點工資而轉移陣地,從長遠看,這點錢根本不算什麼,當你對一個行業有那麼幾年的體會,以後錢根本不是問題。頻繁地動盪不是上策,最後你對哪個行業都沒有摸透,永遠是新手! [2]可以做技術,切不可沉湎於技術。千萬不可一門心思鑽研技術!給自己很大壓力,如果你的心思全部放在這上面,那麼註定你將成為孔乙己一類的人物!適可而止為之,因為技術只不過是你今後前途的支柱之一,而且還不是最大的支柱,除非你只願意到老還是個工程師! [3]不要去做技術高手,只去做綜合素質高手!在企業里混,我們時常瞧不起某人,說他「什麼都不懂,憑啥拿那麼多錢,憑啥陞官!」這是普遍的典型的工程師的迂腐之言。8051很牛嗎?人家能上去必然有他的本事,而且是你沒有的本事。你想想,老闆搞經營那麼多年,難道見識不如你這個新兵?人家或許善於管理,善於領會老闆意圖,善於部門協調等等。因此務必培養自己多方面的能力,包括管理,親和力,察言觀色能力,攻關能力等,要成為綜合素質的高手,則前途無量,否則只能躲在角落看示波器!技術以外的技能才是更重要的本事!!從古到今,美國日本,一律如此! [4]多交社會三教九流的朋友!不要只和工程師交往,認為有共同語言,其實更重要的是和其他類人物交往,如果你希望有朝一日當老闆或高層管理,那麼你整日面對的就是這些人。了解他們的經歷,思維習慣,愛好,學習他們處理問題的模式,了解社會各個角落的現象和問題,這是以後發展的巨大的本錢,沒有這些以後就會笨手笨腳,跌跌撞撞,遇到重重困難,交不少學費,成功的概率大大降低! [5]知識涉獵不一定專,但一定要廣!多看看其他方面的書,金融,財會,進出口,稅務,法律等等,為以後做一些積累,以後的用處會更大!會少交許多學費!! [6]抓住時機向技術管理或市場銷售方面的轉變!要想有前途就不能一直搞開發,適當時候要轉變為管理或銷售,前途會更大,以前搞技術也沒有白搞,以後還用得著。搞管理可以培養自己的領導能力,搞銷售可以培養自己的市場概念和思維,同時為自己以後發展積累龐大的人脈!應該說這才是前途的真正支柱!!! [7]逐漸克服自己的心裡弱點和性格缺陷!多疑,敏感,天真(貶義,並不可愛),猶豫不決,膽怯,多慮,臉皮太薄,心不夠黑,教條式思維。。。這些工程師普遍存在的性格弱點必須改變!很難嗎?只在床上想一想當然不可能,去幫朋友守一個月地攤,包準有效果,去實踐,而不要只想!不克服這些缺點,一切不可能,甚至連項目經理都當不好--盡管你可能技術不錯!
『陸』 Java軟體工程師主要學習哪些課程
1.軟體技術基礎、java基礎編程、java語法,SQL Server 2005基礎編程...2.SQL server 高級編程、網頁設計與製作、javascrit編程、java高級編程...3.資料庫:MySql、Oracle、DB2;4.JDBC Java資料庫連接。使用Java程序操作資料庫。這部分非常重要。幾乎所有的企業...5.HTML、CSS、Java scrit。 HTML-(Hyer Text Mark-u ...
『柒』 軟體工程師要自學,有哪些課程
沒事 ,不做底層的開發的話 .這些其實不是非常重要. 建議去做web開發. 不用英語和數學要多好 .學習的話, 先學java基礎. 在學一些 網頁製作(jsp,javascript)
『捌』 軟體工程師需要學習哪些課程
計算機導論
內容提要:為新學生提供一個關於計算機科學與技術學科的入門介紹,使他們對該學科有一個整體的認識,並了解該專業的學生應具有的基本知識和技能以及在該領域工作應有的職業道德與應遵守的法律准則。
數字電路與數字邏輯
內容提要:介紹數字邏輯與數字系統的基本概念、分析方法和設計原理,包括開關理論基礎、組合邏輯、時序邏輯、可編程邏輯器件、數字系統等。
計算機組成原理與匯編語言
內容提要:以馮諾依曼計算機模型為出發點,介紹計算機的組織結構和工作原理,剖析計算機的運算器、存儲器、控制器和輸入輸出設備的結構、工作原理和相互關系;介紹 80X86指令系統、匯編語言與匯編指令、匯編程序與匯編過程、簡單匯編程序設計、匯編語言與高級語言的介面、宏匯編等。
計算機網路
內容提要:介紹數據通信的基本概念和計算機網路的基本原理,包括計算機網路的體系結構、數據通信的基本方法和協議、計算機網路的主要應用協議;同時介紹計算機網路系統的安全和管理知識,使學生對數據通信和計算機網路有一個全面理解。
計算機體系結構
內容提要:研究計算機系統結構的基本概念、基本原理、基本結構和基本分析方法,使同學在具有一定的軟硬體知識基礎上能綜合認識計算機系統的軟硬體功能分配與各種不同結構類型機器的特性和性能評價方法。為研究、開發、應用高級計算機系統打下基礎。確立全面、系統的觀點和學會定量分析問題的方法。
離散數學
內容提要:包括集合論、數理邏輯、圖論、組合數學等內容,形式化的數學證明貫穿此課程。
高級程序設計語言
內容提要:分別以 C、C#或JAVA為例,介紹程序設計和語言,程序的基本數據結構、類型定義、簡單類型和結構化類型、程序的基本控制結構、結構化程序設計、面向對象的程序設計等。
演算法分析與設計
內容提要: 本課程延續數據結構課程的學習,從演算法分析和設計的角度出發,除去傳統的分類查找演算法和一般的設計方法外,主要內容包括如下幾個部分:演算法研究的理論基礎,遞歸分析技術,基本演算法設計策略(幾類經典演算法學習), 多項式運算與 FFT ,串匹配,概率分析演算法。 希望通過這一課程的學習,使學生能對現代的演算法設計及分析的基本工具能有較全面的掌握。
數據結構
內容提要:介紹線性表及其鏈接存儲結構與演算法、數組與矩陣、堆棧與隊列、廣義表的存儲結構與多元多項式表示、串與文本編輯、排序、樹、圖、文件結構。
資料庫系統原理
內容提要:介紹資料庫系統的基本概念、原理、方法及應用,主要包括資料庫系統概論、資料庫管理系統實現技術、資料庫存儲結構及其他類型的資料庫系統。
編譯技術
內容提要:介紹編譯原理的理論和實踐,包括編譯程序設計、詞法分析、語法分析、符號表、聲明和存儲管理、代碼生成以及優化技術。
操作系統
內容提要:介紹操作系統的設計與實現,包括操作系統各組成部分的概述、互斥性和同步性、處理器實現、調度演算法、存儲演算法、設備管理和文件系統。
『玖』 軟體工程要學什麼課程!
不要把時間浪費在所謂的大學課程上,很多都是沒有營養的。其實軟體工程的知識體系也就是那樣,各個大學也是照著這個思路編排課程的。所以,自學的時候直奔主題就可以了。
軟體工程。包含兩個部分:軟體和工程。軟體是程序員做的,而工程是項目負責人管理、程序員實踐的。
軟體又包含兩部分:語法和演算法。語法,即要掌握某種編程語言。一般來講,要想工作中用的上,那麼面向過程的語言和面向對象的語言都得掌握。一般學C、C++、Java、Dephi等等。面向過程的程序比較好學,條目也很清晰。而面向對象的編程需要學兩方面的內容:語法本身和龐大的類庫。演算法,這是編程的靈魂。一般包括:數據結構和經典演算法。學無止境,一般性的工作話,掌握基本的就夠了,如果工作較復雜得多看看演算法方面的期刊。
工程。現代軟體越變越大,大型的編寫工作動不動就涉及萬人。工程的方法只是為了更好的組織、協調編寫過程。《軟體工程》本身就是一本書,很厚的。主要講軟體的生命周期,比較抽象和繁雜,但是規范的工作方式就是從這本書里來的。另外關注一些編程習慣的知識。這也是工程的一部分。
軟體只是計算機科學中的一種。所以,比如計算機基礎、計算機系統等等宏觀的知識也需要理解。特別是對於高級程序員,計算機運行的底層知識就更重要了。操作系統、80x86以及匯編語言是底層知識中的一部分。
軟體行業分工很多:網路編程、資料庫編程、應用程序編程、游戲編程以及操作系統編程等(中國似乎還沒有商業化的操作系統),研究任何一個都挺累人的。學習完上面的基礎知識後,就需要給自己選一個專業方向了。
建議一個學習流程。如果你什麼都沒有學。
1】計算機基礎知識。主要是硬體方面(大一水平)
2】同時,學習C語言,語法就夠了
3】透徹的理解C++需要用C語言去編寫一個圖形化的應用程序,但是,似乎也有一些直接上手的C++教材。學習語法,簡單的類庫。(現在就是大二的水平)
4】數據結構,C++表述的。《數據結構》的書裡面會有一些經典的演算法的。
5】操作系統、80x86與匯編(大三水平,大四幾乎沒有幾本書要念的。)
6】專業學習。一方面是專業上的知識,另一方面是類庫在專業上的使用。(我想,應該可以工作了,大學里關於這方面的知識是很淺薄的,僅僅建立一個概念而已。但是要拿來謀生的話,就需要學多點了,前面所有的積淀都是為了這個目標的)
先學著,自己有體會後,就能確定自己應該學到什麼程度。如果一切順利的話,大概兩年多一點就可以完成這個過程。