程序設計語言原理課件_第1頁
程序設計語言原理課件_第2頁
程序設計語言原理課件_第3頁
程序設計語言原理課件_第4頁
程序設計語言原理課件_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1頁程序設計語言原理第2頁程序設計語言原理 一門理論性較強的提高型課程,從更高的層次來理解各種語言機制,指導對計算機語言的學習和程序設計分析并理解各類高級程序設計語言范型與理論模型;掌握程序設計語言各主要成分設計中的關鍵問題、主要步驟、表示法的基本技能;學會分析、選擇、調合、折中、設計語言的特征。第3頁程序設計語言原理教材:程序設計語言原理 麥中凡 北航出版社參考書:程序語言原理(第五版),Robert W.Sebesta,機械工業(yè)出版社;程序設計語言:原理與實踐(第二版),Kenneth C. Louden,電子工業(yè)出版社;程序設計語言:設計與實現(第四版),Terrence W. Pra

2、tt,Marvin V. Zelkowitz,電子工業(yè)出版社;程序設計語言:概念和結構(第二版),Ravi Sethi,機械工業(yè)出版社。參考教材程序設計語言原理(第八版),Robert W.Sebesta,機械工業(yè)出版社(¥75)編程語言原理(第十版),¥68.32012年600p討論語言構成的設計問題分析常見語言的設計選擇比較各種備選方案第4頁參考教材程序設計語言 概念和結構(第二版)¥452002年460p貝爾實驗室/國外大學教材以命令式/OO為基礎常規(guī)語言的基本問題與程序語言有關的理論問題第5頁參考教材程序設計語言:設計與實現(第四版)¥43Programming LanguagesDe

3、sign and Implementation2001年460p語法語義編譯之間的關系語言機制多種語言的編程案例第6頁參考教材七周七語言 理解多種編程范型(¥59)Seven Languages in Seven WeeksA Pragmatic Guide to Learning Programming LanguagesRuby(OO)Io(原型/并發(fā))Prolog(邏輯)Scala(OO+函數)Erlang(函數)Clojure(混搭/并發(fā))Haskell(純涵)第7頁參考教材設計實現類的參考書,以編譯為基礎編譯程序設計藝術 理論與實踐(2009)偏概念和理論程序設計語言的形式語義(20

4、03)以語義為基礎,理論很強編程語言實現模式(2011)要點案例,虛擬機原理兩周自制腳本語言(2012/日)實戰(zhàn)性進階指導第8頁課程內容第0章 緒論第1章 程序設計語言發(fā)展與分類第2章 程序設計語言設計概述第3章 過程式程序設計語言第4章 面向對象程序設計語言第5章 函數式程序設計語言第6章 邏輯式程序設計語言第7章 并發(fā)程序設計語言第8章 平臺無關程序設計語言第9章 描述性程序設計語言第10章 指稱語義的原理與應用第11章 代數語義學第9頁第0章 導 論什么是程序設計語言(PL)為什么研究PL語言規(guī)范與處理器本課程內容與要求第10頁0.1 什么是程序設計語言(PL)?人機通信媒體(介),軟件

5、的載體人工語言 機器識別,方便人使用形式語言 無二義性必須可執(zhí)行它是計算機科學與計算機工程的交匯點計算機科學是在符號學、集合論、離散數學、組合數學基礎上發(fā)展的以符號語言表達的軟件還要滿足正確性、可靠性、安全性、可擴充、可移植、方便性第11頁第12頁1900193019401950196019701980199019101920自動數學 POSTAlfred North Whitehead BertrandRussell 符號邏輯(1910)不完全理論 , Goedel(1931)Giuseppe Peano集合論(1895)POST系統遞歸函數論Church,Rosser(1930s)可計算理

6、論Turing(1936)信息論Shannon形式語法定義Backus 和Naur隨機算法形式語言理論 Chomsky自動化理論電子學開關理論復雜性理論計算機密碼學(1976)Diffie,Hellman公共密鑰系統(1978)Rivest,Shamir,AdelmanKnuth:詞法分析方法編譯理論編譯的編譯EL/1:可擴展式語法第13頁1930194019501960197019801990POST 系統遞歸函數理論 Church,Rosser(1930s)可計算理論Turing(1936)演算 Church(1941)程序正確性和驗證(1960s)引用透明,Strachey形式語義定義S

7、ECD機,Landin(1964)PL/1的Vienna定義(1967)指稱語義學(1971)Scott,Strachey)Milner:類型理論(1978)函數式語言:ML Miranda Haskell并發(fā)性 Dijkstra(1968)Hoare:CPS(1978)分布式計算Lamport協作計算1988第14頁重要性程序設計語言的研究和開發(fā)處于計算機科學技術發(fā)展的中心:計算機理論和方法的研究,許多是由于語言發(fā)展的需求許多理論研究成果體現到程序語言的設計中實際應用中最本質的需要常反映到程序語言里,推動語言的演化和發(fā)展語言實現的需要是推動計算機體系結構演化的一個重要因素(如RISC)計算機

8、硬件的能力和特征也對程序語言的發(fā)展變化有著重要影響(今天和明天,并行性問題)理解程序設計語言,有助于提高對整個計算機科學技術領域的認識推動語言演化發(fā)展的要素:實際應用的需要,硬件的發(fā)展和變化,人們對于程序設計工作的認識發(fā)展,實現技術的開發(fā),理論研究的成果第15頁重要性:圖靈獎1966-2010,45屆圖靈獎,有15屆由于與程序設計語言有關的工作而獲獎1966,Alan J.Perlis,早起語言和Algol 60的貢獻,圖靈獎第一位獲獎者1971,John McCarthy,LISP語言,程序語義,程序理論1972,E.W.Dijkstra,Algol編譯,結構化程序設計,并發(fā)概念和原語,形式

9、化推到,衛(wèi)式命令等1977,John Backus,Fortran語言,FP語言,BNF等1978,Robert Floyd,Algol編譯,編譯技術,程序優(yōu)化,歸納斷言法和前后斷言,程序正確性,編譯生成1979,K.E.Iverson,APL語言1980,C.A.R.Hoare,結構化程序設計,case語句,公理語義學,并發(fā)程序的理論,CSP等1983,Dennis Ritchie和Thompson,C語言和UNIX1984,Niklaus Wirth, Alogl W, PL360, Pascal, Modula-1/2, Oberon,逐步求精,結構化程序設計,語法圖1991,Robin

10、 Milner, ML語言,并發(fā)理論,CCS2001,Ole-Johan Dahl和Kristen Nygaard, Simula語言,OO概念2003,Alan Kay, Smaltalk語言,OO概念、語言和程序設計2005,Peter Naur, Algol 60語言的設計和定義,編譯,程序設計的原理和實踐2006,Frances Allen,優(yōu)化編譯和并行化2008,Barbara Liskov,數據抽象/OO/容錯/分布式計算程序的基礎和語言第16頁第16頁新趨勢:并行狹義的摩爾定律已失效,提高主頻的趨勢已停止并行環(huán)境已逐漸成為我們周圍最常見計算機的基本結構的一部分如何做并行程序設計

11、的問題變成對每個計算機工作者的挑戰(zhàn)程序設計語言也需要反應這方面的需求有關并行語言、程序和程序設計的問題,將在今后很多年里成為程序設計語言研究領域里最重要的問題第17頁第17頁第17頁新趨勢:并行有關并行系統和并行程序設計的研究已經進行了近40年,但對并行系統和如何設計實現并行系統的認識仍很不成熟:已開發(fā)的并行系統(及分布式系統)經常出現意料之外的錯誤并行系統的開發(fā)方法很難使用,開發(fā)低效,對開發(fā)人員缺乏良好支持描述并發(fā)系統的記法形式過于低級和細節(jié),缺乏有效抽象手段 并發(fā)系統的驗證技術不成熟,系統缺乏可靠性的保證對于上述問題的研究和并發(fā)程序開發(fā)實踐將未來語言的發(fā)展影響有重大影響許多新語言里加入了并

12、行特征,包括Java、C# 等一些并行理論的研究成果被用于實踐,如JCSP人們重新開始重視無狀態(tài)的程序設計,函數式程序設計(如Erlang 語言受到許多人推崇),提出了一些新想法這方面的理論和實際技術研究將成為很長時間的研究熱點第18頁第18頁第18頁第18頁新趨勢:腳本語言近年腳本語言在計算機應用盛行起來,重要實例:用于開發(fā)Web 服務端的PHP、ASP、JSP 等用于Web 客戶端網頁嵌入應用的JavaScript 等用于更廣泛的應用開發(fā)的Perl、Python、Ruby 等其他各種專門用途的腳本語言,如描述圖形界面的Tcl/tk與通用程序設計語言相比,通用腳本語言有如下特點:豐富的基礎數

13、據結構,靈活的使用方式,支持快速的應用開發(fā)基于解釋器的執(zhí)行,或者解釋和編譯的結合,可以立即看到開發(fā)的效果通常都沒有標準化,隨著應用的發(fā)展變化和很快地擴充一些語言形成了很好的社團,開發(fā)了大量有用的庫腳本語言將如何發(fā)展?其發(fā)展趨勢怎樣?第19頁新趨勢:從語言本身的角度近幾年編程語言呈內部發(fā)展趨勢:(1) 前十大熱門編程語言都借鑒了其他語言的功能,作為新功能引入。重要實例:Java 8 引入函數式編程;C+ 11 引入函數式編程、多線程、泛型編程;PHP 7 標量類型和返回類型聲明、AST(抽象語法樹)、Native TLS(原生線程本地存儲);(2) 面向標準的編程程序語言有各自的工業(yè)標準準則;(

14、3) 第三方模塊各種語言的框架和庫,推動語言的發(fā)展。重要實例:JavaScript的jQuery框架,C#的MVC框架,Python的Caffe、Theano等深度學習庫,R的darch、deepnet等深度學習庫;第20頁新趨勢:從工程方面的角度近幾年編程語言的工具呈現以下發(fā)展趨勢:工具化代碼風格檢查、工業(yè)標準檢查、代碼整理、無用代碼檢查等代碼管理功能工具化日益突出;(2) 工程化代碼質量檢測、代碼壓縮、代碼合并、代碼優(yōu)化、代碼編譯、單元測試等代碼管理功能呈現流程自動化趨勢;(3) 自動化版本控制庫構建測試報告持續(xù)集成;最新的自主編碼研究,已經實現自動完成代碼補全和修復1,正在向進一步的完全

15、自動化的代碼編寫發(fā)展。1 /kootenpv/neural_complete第21頁第21頁From www.T程序設計語言流行程度第22頁程序設計語言流行程度1、蘋果宣布Swift代替Objective-C之后,Objective-C迅速下滑;2、2016年漲幅上升最快的語言: GO語言;3、由于WordPress 8在網頁開發(fā)中占據27.3%的份額,它依舊被收編為PHP;第23頁第23頁續(xù)Programming LanguagePositionAug 2013PositionAug 2008PositionAug 1998PositionAug 1988Java114-C2211C+342

16、3Objective-C441-PHP55-C#68-(Visual) Basic7337Python8628-JavaScript91026-Ruby109-Lisp1617142Very Long Term HistoryFrom www.T近三年排名前20語言的初創(chuàng)和發(fā)行時間第24頁語言誕生商用/應用JAVA1995 1996C19721973PHP19951997C+19831990Visual Basic19911991Perl19871991C#20002002Python19912000JavaScript19951996Ruby19952011Delphi19951999Pas

17、cal19701983Lisp/Scheme19581962PL/SQL19851985SAS19761985ABAP19851985D19992007Objective-C19831992Lua19931993MATLAB1970末1984Delphi/Object Pascal19861994Lisp19581962Transact-SQL1992+Visual Basic .NET20012002Ada19801983Assembly第25頁定義:可以編制軟件的機器可識別可執(zhí)行的表示法(或符號)系統第26頁續(xù)0.2 為什么研究PL人機交互界面永存 過去現在未來軟硬件技術窗口發(fā)展新語言 提

18、高軟件人員素質通向理論的形式方法通用語言標準化與規(guī)范化第27頁0.3 語言規(guī)范與處理器PL語言不是軟件它只是一規(guī)范參考手冊(LRM)規(guī)定符號元素語法語義(形式的 非形式的)按它的規(guī)定寫出的程序是軟件PL翻譯器也是軟件一種語言到另一種語言:翻譯器一種語言到目標碼 編譯器 先翻譯、優(yōu)化后執(zhí)行 高效解釋器 即譯即執(zhí)行 低效 靈活第28頁0.4 本課程內容與要求第29頁本書分為四部分PL的一般概述,形式語法復習 0-2章各種PL范型 3-10章語義理論 10-11章要求習題作業(yè)平時占50%計分 考試占50%計分0.5 計算學科命名的背景如何認知計算學科,有著不少爭論:1984年7月,美國計算機科學與工

19、程博士單位評審部的領導們,在猶他州召開的會議上對計算認知問題進行了討論;這一討論以及其他類似討論促使(美國)計算機協會(ACM)與(美國)電氣和電子工程師學會計算機分會(IEEE/CS)于1985年春聯手組成任務組;經過近4年的工作,任務組提交了在計算教育史上具有里程碑意義的“計算作為一門學科”(Computing as a Discipline)報告。0.5 計算學科命名的背景“計算作為一門學科”報告論證了計算作為一門學科的事實回答了計算學科長期以來一直爭論的一些問題;并將當時的計算機科學、計算機工程、計算機科學和工程、計算機信息學以及其他類似名稱的專業(yè)及其研究范疇統稱為計算學科。0.5 計

20、算學科的定義“計算”的定義“計算”是從一個符號行得出另一個符號行的變換;“計算”的概念可以用符號簡潔地表示如下:: 當然,符號和各自表示了某種信息,因此也可以說,計算是一種信息變換。0.5 計算學科的定義從“計算”的定義可知,它至少涉及兩個方面:用計算機求解問題的時候,首先需要用適當的數據表示問題,然后再用適當的算法對著這些數據進行變換,進而獲得問題的求解結果;這種所謂的“問題抽象、形式化描述、自動化(計算機化)”的解題思路,實際上就是具有“抽象能力與形式化描述能力” 的“計算機思維”;因此,就“計算機思維”而言,有兩門課是計算機專業(yè)的大學生必須學習的:形式語言與自動機和算法設計與分析。0.5

21、 計算學科的定義計算學科是對描述和變換信息的算法過程進行的系統研究,包括理論、分析、設計、效率、實現和應用等。計算學科包括對計算過程的分析以及計算機的設計和使用。學科的廣泛性在下面一段來自美國計算科學鑒定委員會發(fā)布的報告摘錄中得到強調:計算學科的研究包括從算法與可計算性的研究到根據可計算硬件和軟件的實際實現問題的研究。這樣,計算學科包括從總體上對算法和信息處理過程進行的研究,也包括滿足給定規(guī)格要求的有效而可靠的軟硬件設計它包括所有科目的理論研究、實驗方法和工程設計。0.5 計算學科的根本問題計算學科的根本問題是:“什么能被(有效地)自動進行”;計算學科來源于對算法理論、數理邏輯、計算模型、自動

22、計算機器的研究,并與存儲式電子計算機的發(fā)明一起,形成于20世紀40年代初期。0.5 計算學科的發(fā)展計算學科現已成為一個龐大的學科無論是教師,學校,還是學生和家長都希望有一份權威性的報告來了解學科的相關情況。為此,IEEE/CS和ACM任務組作了大量的工作,并于2001至2005年,分別提交了:計算機科學(Computer Science ,簡稱CS)信息系統(Information System,簡稱IS)軟件工程(Software Engineering,簡稱SE)計算機工程(Computer Engineering,簡稱CE)信息技術(Information Technology ,簡稱I

23、T)5個學科分支(專業(yè))的教程以及相應的總報告,報告還給出了5個分支學科的知識體以及相應的核心課程,為各專業(yè)教學計劃的設計奠定了基礎,同時也為公眾認知和選擇這些專業(yè)提供幫助。第37頁Computing Curricula 2005第37頁不同類型教學計劃的問題空間示意圖理論應用組織與系統行為CS計算機科學方向IT信息技術方向SE軟件工程方向CE計算機工程方向摘自CC2005第39頁0.6 計算機科學與技術體系CC2001一.DS. Discrete Structures主要內容包括集合論,數理邏輯,近世代數,圖論以及組合數學等。該領域與計算學科各主領域有著緊密的聯系,CC2001為了強調它的重

24、要性,特意將它列為計算學科的第一個主領域。該主領域以“抽象”和“理論”兩個學科形態(tài)出現在計算學科中,它為計算學科各分支領域解決其基本問題提供了強有力的數學工具。第39頁第40頁0.6 計算機科學與技術體系二. PF. Programming Fundamentals主要內容包括程序設計結構,算法,問題求解和數據結構等。它考慮的是如何對問題進行抽象。它屬于學科抽象形態(tài)方面的內容。并為計算學科各分支領域基本問題的感性認識(抽象)提供方法?;締栴}主要包括:1.對給定的問題如何進行有效的描述并給出算法?2.如何正確選擇數據結構?3.如何進行設計,編碼,測試和調試程序?第40頁第41頁0.6 計算機科

25、學與技術體系三.AL. Algorithms and Complexity 主要內容包括算法的復雜度分析,典型的算法策略,分布式算法,并行算法,可計算理論,P類和NP類問題,自動機理論,密碼算法以及幾何算法等.基本問題主要包括:1.對于給定的問題類,最好的算法是什么?要求的存儲空間和計算時間有多少?空間和時間如何折衷?2.訪問數據的最好方法是什么?3.算法最好和最壞的情況是什么?4.算法的平均性能如何?5.算法的通用性如何?第41頁第42頁0.6 計算機科學與技術體系四.PL. Programming Languages主要內容包括程序設計模式,虛擬機,類型系統,執(zhí)行控制模型,語言翻譯系統,程

26、序設計語言的語義學,基于語言的并行構件等.第42頁第43頁0.6 計算機科學與技術體系四.PL. Programming Languages理論形態(tài)的主要內容:包括形式語言和自動機,圖靈機(過程式語言的基礎),POST系統(字符串處理語言的基礎),lamda-演算(函數式語言的基礎),形式語義學,謂詞邏輯,時態(tài)邏輯,近世代數等. 第43頁第44頁0.6 計算機科學與技術體系四.PL. Programming Languages基本問題主要包括:1.語言(數據類型,操作,控制結構,引進新類型和操作的機制)表示的虛擬機的可能組織結構是什么?2.語言如何定義機器?機器如何定義語言?3.什么樣的表示法

27、(語義)可以有效地用于描述計算機應該做什么?第44頁第45頁0.6 計算機科學與技術體系五.AR. Architecture and Organization六.OS. Operating Systems 七.NC. Net-Centric Computing 八.HC. Human-Computer Interaction九.GV. Graphics and Visual Computing 、十.IS. Intelligent Systems 十一.IM. Information Management 十二.SE. Software Engineering 十三.SP. Social an

28、d Professional Issues十四.CN. Computational Science 第45頁“計算機科學與技術”專業(yè)劃分教育部高等學校計算機科學與技術教學指導委員會在“計算機科學與技術”專業(yè)名稱下,鼓勵不同學校根據社會需求和自身的實際情況,為學生提供不同類型的、本科水平的教學計劃考慮三種不同的類型:科學型(CS)、工程型(CE和SE)、應用型(信息技術型IT) 其中工程型又分為計算機工程與軟件工程兩類軟件工程一級學科群體軟件工程軟件服務工程軟件工程管理與技術領域軟件工程“計算機科學與技術”專業(yè)劃分CS2013的產生背景為順應計算機科學前沿理論和技術發(fā)展以及工業(yè)界的需求,每十年,

29、ACM和IEEE-CS會共同發(fā)起制定關于“計算機科學”學科的課程大綱目的是為全球“計算機科學”專業(yè)的教學提供最新的課程指導已分別于1968、1978、1991和2001發(fā)布了前期版本最近的CS2008版本,是臨時版自2001年起,“計算機科學”分為計算機科學(CS),計算機工程(CE),信息系統(IS),信息工程(IT)以及軟件工程(SE)最新完整版于2013發(fā)布,命名為CS2013該版本的制定工作從2010年秋季開始CS2013遵循的理念大帳棚策略(Big Tent)涵蓋包括最新發(fā)展在內的計算機科學各領域起到橋梁作用,關聯相關交叉學科控制學時總數與CS2001相比,學時總數不增加提供真實課程

30、范例給出包含各知識點的真實范例課程兼容習俗和文化的需要兼容不同的培養(yǎng)目標、資源和限制條件兼容不同的學院規(guī)模、學院類型以及可利用的資源CS2013知識點(Knowledge Area)與學時安排Knowledge Area CS2013 Tier1CS2013Tier2 CS2008Core CC2001Core AL-Algorithms and Complexity 19 9 31 31 AR-Architecture and Organization 0 16 36 36 CN-Computational Science 1 0 0 0 DS-Discrete Structures 37

31、4 43 43 GV-Graphics and Visual Computing 2 1 3 3 HC-Human-Computer Interaction 4 4 8 8 IAS-Security and Information Assurance 2 6 - - IM-Information Management 1 9 11 10 IS-Intelligent Systems 0 10 10 10 NC-Networking and Communication 3 7 15 15 OS-Operating Systems 4 11 18 18 PBD-Platform-based Dev

32、elopment 0 0 - - PD-Parallel and Distributed Computing 5 10 - - PL-Programming Languages 8 20 21 21 SDF-Software Development Fundamentals 42 0 47 38 SE-Software Engineering 6 21 31 31 SF-Systems Fundamentals 18 9 - - SP-Social and Professional Issues 11 5 16 16 Total Core Hours 163 142 290 280 CS201

33、3的特點操作靈活順應發(fā)展順應前沿理論和技術發(fā)展以及工業(yè)界的需求新增知識點做出調整的知識點重視系統、重視基礎保留經典強調交叉新增知識點2010年12月,ACM/IEEE CS2013工作組對全球計算機系系主任進行問卷調查,收到201份有效反饋。反饋表明關于計算機專業(yè)核心知識,排名前三的是計算思維、程序設計基礎、數據結構建議加入課程體系的新內容,排名前三的是信息安全、分布和并行計算、移動計算在新的課程體系CS2013中,將加入分布和并行計算、信息安全、系統基礎、基于平臺的編程這四大塊核心知識模塊CS2013 & CS2008 Knowledge Areas 2013: 18 KAAL - Algo

34、rithms and Complexity AR - Architecture and OrganizationCN - Computational ScienceDS - Discrete StructuresGV - Graphics and Visual ComputingHC - Human-Computer InteractionIAS - Information Assurance and Security IM - Information Management IS - Intelligent SystemsNC - Networking and CommunicationsOS

35、 - Operating SystemsPBD - Platform-based DevelopmentPD - Parallel and Distributed ComputingPL - Programming LanguagesSDF - Software Development FundamentalsSE - Software Engineering SF - Systems FundamentalsSP - Social and Professional Issues 2008: 14 KAAlgorithms and Complexity (AL) Architecture an

36、d Organization (AR) Computational Science (CN)Discrete Structures (DS)Graphics and Visual Computing (GV)Human-Computer Interaction (HC)Information Management (IM)Intelligent Systems (IS)Net-Centric Computing (NC) Operating Systems (OS) Programming Fundamentals (PF) Programming Languages (PL) Softwar

37、e Engineering (SE)Social and Professional Issues (SP)新增知識點PD. Parallel and Distributed Computing (5 Core-Tier1 hours, 9 Core-Tier2 hours,14 total) IAS. Information Assurance and Security (2 Core-Tier1 hours, 6 Core-Tier2 hours ,8 total) SF. Systems Fundamentals (18 core Tier 1, 9 core Tier 2 hours,

38、27 total) NC. Networking and Communication (3 Core-Tier1 hours, 7 Core-Tier2 hours, 10 total) PBD. Platform-Based Development (Elective)這兩個知識點原來涵蓋在“Net-Centric Computing(NC)”知識點中,現在NC更名為“Networking and Communication”,新增PDB知識點講述基于平臺的編程第15屆全國高校計算機系主任院長論壇PD. Parallel and Distributed Computing除此之外,強調在其它

39、課程中也需要滲透并行計算知識,比如在算法課程中介紹并行算法,體系結構課程中介紹多核的內容,等等Core-Tier1hours Core-Tier2hours IncludesElectives PD/Parallelism Fundamentals 2 N PD/Parallel Decomposition 1 3 N PD/Communication and Coordination 1 3 Y PD/Parallel Algorithms, Analysis, and Programming 3Y PD/Parallel Architecture 1 1 Y PD/Parallel Per

40、formance Y PD/Distributed Systems Y PD/Formal Models and Semantics Y total510IAS. Information Assurance and SecurityCore-Tier1 hoursCore-Tier2HoursIncludesElectivesIAS/Fundamental Concepts 1 2 N IAS/Network Security 1 4 N IAS/Cryptography Y IAS/Risk Management Y IAS/Security Policy and Governance Y

41、IAS / Digital Forensics Y IAS / Security Architecture and Systems Administration Y IAS/Secure Software Design and Engineering Y total26SF. Systems FundamentalsCore-Tier 1hours Core-Tier 2hours SF/Computational Paradigms 3 SF/Cross-Layer Communications 3 SF/State-State Transition-State Machines 6 SF/

42、System Support for Parallelism 3 SF/Performance 3 SF/Resource Allocation and Scheduling 2 SF/Proximity 3 SF/Virtualization and Isolation 2 SF/Reliability through Redundancy 2 total189首次提出,需要從系統的觀點介紹軟件的基礎原理與策略PBD. Platform-Based Development NC. Networking and CommunicationNC. Networking and Communica

43、tionCore-Tier1hours Core-Tier2hours NC/Introduction 1.5 NC/Networked Applications 1.5 NC/Reliable Data Delivery 2 NC/Routing And Forwarding 1.5 NC/Local Area Networks 1.5 NC/Resource Allocation 1 NC/Mobility 1 total37CS 2008 NC. Net-Centric Computing (15 core hours)NC/Introduction(2)NC/Network Commu

44、nication (7)NC/Network Security (6)NC/Web OrganizationNC/Networked ApplicationsNC/Network ManagementNC/CompressionNC/Multimedia TechnologiesNC/Mobile ComputingPBD. Platform-Based DevelopmentIncludes ElectivesPBD/Introduction Y PBD/Web Platforms Y PBD/Mobile Platforms Y PBD/Industrial Platforms Y PBD

45、/Game Platforms Y 不再過多的強調網絡通訊知識,強調從網絡應用軟件的角度給出相關知識適應移動互聯網的發(fā)展,單獨形成PBD知識點做出調整的知識點SDF. Software Development Fundamentals (42 Core-Tier1 hours,42 total)由Programming Fundamentals (PF)精煉改進而得AR. Architecture and Organization (0 Core-Tier 1 hours, 16 Core-Tier 2 hours , 16 total) PL. Programming Languages (

46、8 Core-Tier1 hours, 20 Core-Tier2 hours , 28 total) SE. Software Engineering (6 Core-Tier1 hours; 21 Core-Tier2 hours)CN. Computational Science1 Core-Tier1 hours, 0 Core-Tier2 hoursSDF. Software Development FundamentalsCore-Tier1hours Includes Electives SDF/Algorithms and Design 11 N SDF/Fundamental

47、 Programming Concepts 10 N SDF/Fundamental Data Structures 12 N SDF/Development Methods 9 N total42CS 2008 PF. Programming Fundamentals (47 core hours)PF/Fundamental Constructs (9)PF/Algorithmic Problem Solving (6)PF/Data Structures (10)PF/Recursion (4)PF/Event Driven Programming (4)PF/Object Orient

48、ed (8)PF/Foundations Information Security (4)PF/Secure Programming (2)從軟件開發(fā)的觀點介紹軟件的基礎原理與制作策略AR. Architecture and OrganizationCore-Tier 2Hours IncludesElectiveAR/Digital logic and digital systems 3 N AR/Machine level representation of data 3 N AR/Assembly level machine organization 6 N AR/Memory syst

49、em organization and architecture 3 N AR/Interfacing and communication 1 N AR/Functional organization Y AR/Multiprocessing and alternative architectures Y AR/Performance enhancements Y total16CS 2008 AR. Architecture and Organization (36 core hours)AR/Digital Logic And Data Representation (7)AR/Compu

50、ter Architecture And Organization (9)AR/Interfacing And I/O Strategies (3)AR/Memory Architecture (5)AR/Functional Organization (6)AR/Multiprocessing (6)AR/Performance EnhancementsAR/Distributed ArchitecturesAR/DevicesAR/Directions In Computing課時更精練PL. Programming LanguagesCore-Tier1hoursCore-Tier2ho

51、ursIncludesElectivesPL/Object-Oriented Programming 4 6 N PL/Functional Programming 3 4 N PL/Event-Driven and Reactive Programming 2 N PL/Basic Type Systems 1 4 N PL/Program Representation 1 N PL/Language Translation and Execution 3 N PL/Syntax Analysis Y PL/Compiler Semantic Analysis Y PL/Code Gener

52、ation Y PL/Runtime Systems Y PL/Static Analysis Y PL/Advanced Programming Constructs Y PL/Concurrency and Parallelism Y PL/Type Systems Y PL/Formal Semantics Y PL/Language Pragmatics Y PL/Logic Programming Y total820CS2008 PL. Programming Languages (21 core hours)PL/Overview(2)PL/Virtual Machines(1)

53、PL/Basic Language Translation(2)PL/Declarations And Types(3)PL/Abstraction Mechanisms(3)PL/Object Oriented Programming(10)PL/Functional ProgrammingPL/Language Translation SystemsPL/Type SystemsPL/Programming Language SemanticsPL/Programming Language Design適應現代編程語言的發(fā)展,以面向對象編程、函數式編程以及事件驅動式編程為重點內容SE. S

54、oftware EngineeringCore-Tier1 hours Core-Tier2hours IncludesElectives SE/Software Processes 1 2 Y SE/Software Project Management 3 Y SE/Tools and Environments 2 N SE/Requirements Engineering 1 3 Y SE/Software Design 4 4 Y SE/Software Construction 2 Y SE/Software Verification Validation 3 Y SE/Softwa

55、re Evolution 1 Y SE/Formal Methods Y SE/Software Reliability 1 Y total621CS2008 SE. Software Engineering (31 core hours)SE/Software Design (8)SE/Using APIs (5)SE/Tools And Environments (3)SE/Software Processes (2)SE/Requirements Specifications (4)SE/Software Verification Validation (3)SE/Software Ev

56、olution (3)SE/Software Project Management (3)SE/Component Based ComputingSE/Formal MethodsSE/Software ReliabilitySE/Specialized SystemsSE/Risk AssessmentSE/Robust And Security-Enhanced Programming適應現代軟件工程的內容,更加強調軟件項目管理、需求分析、軟件架構等內容CN. Computational ScienceCore-Tier1 hours Includes Electives CN/Funda

57、mentals 1 N CN/Modeling and Simulation Y CN/Processing Y CN/Interactive Visualization Y CN/Data, Information, and Knowledge Y total1CS2008 CN. Computational Science (no core hours)CN/Modeling And SimulationCN/Operations ResearchCN/Parallel Computation除了精煉了1個學時的fundamentals以外,按照建模、處理、交互以及數據(信息和知識)的軟件

58、框架重新組織知識內容重視系統、重視基礎分別從軟件開發(fā)和系統兩個層面,強調基礎原理與方法策略,學時數高,概括性廣SDF. Software Development Fundamentals (42 Core-Tier1 hours,42 total)includes fundamental concepts and skills that could appear in other software-oriented KAs (e.g., programming constructs from Programming Languages, simple algorithm analysis fr

59、om Algorithms and Complexity, simple development methodologies from Software Engineering)Core-Tier1hours Includes Electives SDF/Algorithms and Design 11 N SDF/Fundamental Programming Concepts 10 N SDF/Fundamental Data Structures 12 N SDF/Development Methods 9 N total42重視系統、重視基礎SF. Systems Fundamenta

60、ls (18 core Tier 1, 9 core Tier 2 hours, 27 total)The new Systems Fundamentals KA presents a unified systems perspective and common conceptual foundation for other KAs (notably Architecture and Organization, Network and Communications, Operating Systems, and Parallel and Distributed Algorithms)Core-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論