1、第1页程序设计语言原理第2页程序设计语言原理 一门理论性较强的提高型课程,从更高的层次来理解各种语言机制,指导对计算机语言的学习和程序设计分析并理解各类高级程序设计语言范型与理论模型;掌握程序设计语言各主要成分设计中的关键问题、主要步骤、表示法的基本技能;学会分析、选择、调合、折中、设计语言的特征。第3页程序设计语言原理教材:程序设计语言原理 麦中凡 北航出版社参考书:程序语言原理(第五版),Robert W.Sebesta,机械工业出版社;程序设计语言:原理与实践(第二版),Kenneth C. Louden,电子工业出版社;程序设计语言:设计与实现(第四版),Terrence W. Pra
2、tt,Marvin V. Zelkowitz,电子工业出版社;程序设计语言:概念和结构(第二版),Ravi Sethi,机械工业出版社。参考教材l程序设计语言原理(第八版),Robert W.Sebesta,机械工业出版社(¥75)l编程语言原理(第十版),¥68.3l2012年l600pl讨论语言构成的设计问题l分析常见语言的设计选择l比较各种备选方案第4页参考教材l程序设计语言 概念和结构(第二版)¥45l2002年l460pl贝尔实验室/国外大学教材l以命令式/OO为基础l常规语言的基本问题l与程序语言有关的理论问题第5页参考教材l程序设计语言:设计与实现(第四版)¥43Programm
3、ing LanguagesDesign and Implementationl2001年l460pl语法语义编译之间的关系l语言机制l多种语言的编程案例第6页参考教材l七周七语言 理解多种编程范型(¥59)lSeven Languages in Seven WeeksA Pragmatic Guide to Learning Programming LanguageslRuby(OO)lIo(原型/并发)lProlog(逻辑)lScala(OO+函数)lErlang(函数)lClojure(混搭/并发)lHaskell(纯涵)第7页参考教材设计实现类的参考书,以编译为基础编译程序设计艺术 理论
4、与实践(2009)偏概念和理论程序设计语言的形式语义(2003)以语义为基础,理论很强编程语言实现模式(2011)要点案例,虚拟机原理两周自制脚本语言(2012/日)实战性进阶指导第8页课程内容第0章 绪论第1章 程序设计语言发展与分类第2章 程序设计语言设计概述第3章 过程式程序设计语言第4章 面向对象程序设计语言第5章 函数式程序设计语言第6章 逻辑式程序设计语言第7章 并发程序设计语言第8章 平台无关程序设计语言第9章 描述性程序设计语言第10章 指称语义的原理与应用第11章 代数语义学第9页第0章 导 论什么是程序设计语言(PL)为什么研究PL语言规范与处理器本课程内容与要求第10页0
5、.1 什么是程序设计语言(PL)?人机通信媒体(介),软件的载体人工语言 机器识别,方便人使用形式语言 无二义性必须可执行它是计算机科学与计算机工程的交汇点计算机科学是在符号学、集合论、离散数学、组合数学基础上发展的以符号语言表达的软件还要满足正确性、可靠性、安全性、可扩充、可移植、方便性第11页第12页1900193019401950196019701980199019101920自动数学 POSTAlfred North Whitehead BertrandRussell 符号逻辑(1910)不完全理论 , Goedel(1931)Giuseppe Peano集合论(1895)POST系统
6、递归函数论Church,Rosser(1930s)可计算理论Turing(1936)信息论Shannon形式语法定义Backus 和Naur随机算法形式语言理论 Chomsky自动化理论电子学开关理论复杂性理论计算机密码学(1976)Diffie,Hellman公共密钥系统(1978)Rivest,Shamir,AdelmanKnuth:词法分析方法编译理论编译的编译EL/1:可扩展式语法第13页1930194019501960197019801990POST 系统递归函数理论 Church,Rosser(1930s)可计算理论Turing(1936)演算 Church(1941)程序正确性和
7、验证(1960s)引用透明,Strachey形式语义定义SECD机,Landin(1964)PL/1的Vienna定义(1967)指称语义学(1971)Scott,Strachey)Milner:类型理论(1978)函数式语言:ML Miranda Haskell并发性 Dijkstra(1968)Hoare:CPS(1978)分布式计算Lamport协作计算1988第14页重要性程序设计语言的研究和开发处于计算机科学技术发展的中心:l计算机理论和方法的研究,许多是由于语言发展的需求l许多理论研究成果体现到程序语言的设计中l实际应用中最本质的需要常反映到程序语言里,推动语言的演化和发展l语言实
8、现的需要是推动计算机体系结构演化的一个重要因素(如RISC)l计算机硬件的能力和特征也对程序语言的发展变化有着重要影响(今天和明天,并行性问题)l理解程序设计语言,有助于提高对整个计算机科学技术领域的认识推动语言演化发展的要素:实际应用的需要,硬件的发展和变化,人们对于程序设计工作的认识发展,实现技术的开发,理论研究的成果第15页重要性:图灵奖1966-2010,45届图灵奖,有15届由于与程序设计语言有关的工作而获奖1966,Alan J.Perlis,早起语言和Algol 60的贡献,图灵奖第一位获奖者1971,John McCarthy,LISP语言,程序语义,程序理论1972,E.W.
9、Dijkstra,Algol编译,结构化程序设计,并发概念和原语,形式化推到,卫式命令等1977,John Backus,Fortran语言,FP语言,BNF等1978,Robert Floyd,Algol编译,编译技术,程序优化,归纳断言法和前后断言,程序正确性,编译生成1979,K.E.Iverson,APL语言1980,C.A.R.Hoare,结构化程序设计,case语句,公理语义学,并发程序的理论,CSP等1983,Dennis Ritchie和Thompson,C语言和UNIX1984,Niklaus Wirth, Alogl W, PL360, Pascal, Modula-1/2
10、, Oberon,逐步求精,结构化程序设计,语法图1991,Robin Milner, ML语言,并发理论,CCS2001,Ole-Johan Dahl和Kristen Nygaard, Simula语言,OO概念2003,Alan Kay, Smaltalk语言,OO概念、语言和程序设计2005,Peter Naur, Algol 60语言的设计和定义,编译,程序设计的原理和实践2006,Frances Allen,优化编译和并行化2008,Barbara Liskov,数据抽象/OO/容错/分布式计算程序的基础和语言第16页第16页新趋势:并行l 狭义的摩尔定律已失效,提高主频的趋势已停止
11、l 并行环境已逐渐成为我们周围最常见计算机的基本结构的一部分l 如何做并行程序设计的问题变成对每个计算机工作者的挑战l 程序设计语言也需要反应这方面的需求l 有关并行语言、程序和程序设计的问题,将在今后很多年里成为程序设计语言研究领域里最重要的问题第17页第17页第17页新趋势:并行有关并行系统和并行程序设计的研究已经进行了近40年,但对并行系统和如何设计实现并行系统的认识仍很不成熟:l 已开发的并行系统(及分布式系统)经常出现意料之外的错误l 并行系统的开发方法很难使用,开发低效,对开发人员缺乏良好支持l 描述并发系统的记法形式过于低级和细节,缺乏有效抽象手段l 并发系统的验证技术不成熟,系
12、统缺乏可靠性的保证对于上述问题的研究和并发程序开发实践将未来语言的发展影响有重大影响l 许多新语言里加入了并行特征,包括Java、C# 等l 一些并行理论的研究成果被用于实践,如JCSPl 人们重新开始重视无状态的程序设计,函数式程序设计(如Erlang 语言受到许多人推崇),提出了一些新想法l 这方面的理论和实际技术研究将成为很长时间的研究热点第18页第18页第18页第18页新趋势:脚本语言近年脚本语言在计算机应用盛行起来,重要实例: 用于开发Web 服务端的PHP、ASP、JSP 等 用于Web 客户端网页嵌入应用的JavaScript 等 用于更广泛的应用开发的Perl、Python、R
13、uby 等 其他各种专门用途的脚本语言,如描述图形界面的Tcl/tk与通用程序设计语言相比,通用脚本语言有如下特点: 丰富的基础数据结构,灵活的使用方式,支持快速的应用开发 基于解释器的执行,或者解释和编译的结合,可以立即看到开发的效果 通常都没有标准化,随着应用的发展变化和很快地扩充 一些语言形成了很好的社团,开发了大量有用的库脚本语言将如何发展?其发展趋势怎样?第19页新趋势:从语言本身的角度近几年编程语言呈内部发展趋势:(1) 前十大热门编程语言都借鉴了其他语言的功能,作为新功能引入。重要实例: Java 8 引入函数式编程; C+ 11 引入函数式编程、多线程、泛型编程; PHP 7
14、标量类型和返回类型声明、AST(抽象语法树)、Native TLS(原生线程本地存储);(2) 面向标准的编程 程序语言有各自的工业标准准则;(3) 第三方模块各种语言的框架和库,推动语言的发展。重要实例: JavaScript的jQuery框架,C#的MVC框架,Python的Caffe、Theano等深度学习库,R的darch、deepnet等深度学习库;第20页新趋势:从工程方面的角度近几年编程语言的工具呈现以下发展趋势:(1) 工具化 代码风格检查、工业标准检查、代码整理、无用代码检查等代码管理功能工具化日益突出;(2) 工程化 代码质量检测、代码压缩、代码合并、代码优化、代码编译、单
15、元测试等代码管理功能呈现流程自动化趋势;(3) 自动化 版本控制库构建测试报告持续集成; 最新的自主编码研究,已经实现自动完成代码补全和修复1,正在向进一步的完全自动化的代码编写发展。1 https:/ www.T程序设计语言流行程度第22页程序设计语言流行程度1、苹果宣布Swift代替Objective-C之后,Objective-C迅速下滑;2、2016年涨幅上升最快的语言: GO语言;3、由于WordPress 8在网页开发中占据27.3%的份额,它依旧被收编为PHP;第23页第23页续Programming LanguagePositionAug 2013PositionAug 200
16、8PositionAug 1998PositionAug 1988Java114-C2211C+3423Objective-C441-PHP55-C#68-(Visual) Basic7337Python8628-JavaScript91026-Ruby109-Lisp1617142Very Long Term HistoryFrom www.T近三年排名前20语言的初创和发行时间第24页语言诞生商用/应用JAVA1995 1996C19721973PHP19951997C+19831990Visual Basic19911991Perl19871991C#20002002Python1991
17、2000JavaScript19951996Ruby19952011Delphi19951999Pascal19701983Lisp/Scheme19581962PL/SQL19851985SAS19761985ABAP19851985D19992007Objective-C19831992Lua19931993MATLAB1970末1984Delphi/Object Pascal19861994Lisp19581962Transact-SQL1992+Visual Basic .NET20012002Ada19801983Assembly第25页定义:可以编制软件的机器可识别可执行的表示法(
18、或符号)系统第26页续0.2 为什么研究PL人机交互界面永存 过去现在未来软硬件技术窗口发展新语言 提高软件人员素质通向理论的形式方法通用语言标准化与规范化第27页0.3 语言规范与处理器PL语言不是软件它只是一规范参考手册(LRM)规定符号元素语法语义(形式的 非形式的)按它的规定写出的程序是软件PL翻译器也是软件一种语言到另一种语言:翻译器一种语言到目标码 编译器 先翻译、优化后执行 高效解释器 即译即执行 低效 灵活第28页0.4 本课程内容与要求第29页 本书分为四部分 PL的一般概述,形式语法复习 0-2章 各种PL范型 3-10章 语义理论 10-11章 要求 习题作业平时占50%
19、计分 考试占50%计分0.5 计算学科命名的背景如何认知计算学科,有着不少争论:1984年7月,美国计算机科学与工程博士单位评审部的领导们,在犹他州召开的会议上对计算认知问题进行了讨论;这一讨论以及其他类似讨论促使(美国)计算机协会(ACM)与(美国)电气和电子工程师学会计算机分会(IEEE/CS)于1985年春联手组成任务组;经过近4年的工作,任务组提交了在计算教育史上具有里程碑意义的“计算作为一门学科”(Computing as a Discipline)报告。0.5 计算学科命名的背景“计算作为一门学科”报告论证了计算作为一门学科的事实回答了计算学科长期以来一直争论的一些问题;并将当时的
20、计算机科学、计算机工程、计算机科学和工程、计算机信息学以及其他类似名称的专业及其研究范畴统称为计算学科。0.5 计算学科的定义“计算”的定义“计算”是从一个符号行得出另一个符号行的变换;“计算”的概念可以用符号简洁地表示如下:: 当然,符号和各自表示了某种信息,因此也可以说,计算是一种信息变换。0.5 计算学科的定义从“计算”的定义可知,它至少涉及两个方面:用计算机求解问题的时候,首先需要用适当的数据表示问题,然后再用适当的算法对着这些数据进行变换,进而获得问题的求解结果;这种所谓的“问题抽象、形式化描述、自动化(计算机化)”的解题思路,实际上就是具有“抽象能力与形式化描述能力” 的“计算机思
21、维”;因此,就“计算机思维”而言,有两门课是计算机专业的大学生必须学习的:形式语言与自动机和算法设计与分析。0.5 计算学科的定义计算学科是对描述和变换信息的算法过程进行的系统研究,包括理论、分析、设计、效率、实现和应用等。计算学科包括对计算过程的分析以及计算机的设计和使用。学科的广泛性在下面一段来自美国计算科学鉴定委员会发布的报告摘录中得到强调:计算学科的研究包括从算法与可计算性的研究到根据可计算硬件和软件的实际实现问题的研究。这样,计算学科包括从总体上对算法和信息处理过程进行的研究,也包括满足给定规格要求的有效而可靠的软硬件设计它包括所有科目的理论研究、实验方法和工程设计。0.5 计算学科
22、的根本问题计算学科的根本问题是:“什么能被(有效地)自动进行”;计算学科来源于对算法理论、数理逻辑、计算模型、自动计算机器的研究,并与存储式电子计算机的发明一起,形成于20世纪40年代初期。0.5 计算学科的发展计算学科现已成为一个庞大的学科无论是教师,学校,还是学生和家长都希望有一份权威性的报告来了解学科的相关情况。为此,IEEE/CS和ACM任务组作了大量的工作,并于2001至2005年,分别提交了:计算机科学(Computer Science ,简称CS)信息系统(Information System,简称IS)软件工程(Software Engineering,简称SE)计算机工程(C
23、omputer Engineering,简称CE)信息技术(Information Technology ,简称IT)5个学科分支(专业)的教程以及相应的总报告,报告还给出了5个分支学科的知识体以及相应的核心课程,为各专业教学计划的设计奠定了基础,同时也为公众认知和选择这些专业提供帮助。第37页Computing Curricula 2005第37页不同类型教学计划的问题空间示意图理论应用组织与系统行为CSITSECE摘自CC2005第39页0.6 计算机科学与技术体系CC2001一.DS. Discrete Structures主要内容包括集合论,数理逻辑,近世代数,图论以及组合数学等。该领
24、域与计算学科各主领域有着紧密的联系,CC2001为了强调它的重要性,特意将它列为计算学科的第一个主领域。该主领域以“抽象”和“理论”两个学科形态出现在计算学科中,它为计算学科各分支领域解决其基本问题提供了强有力的数学工具。第39页第40页0.6 计算机科学与技术体系二. PF. Programming Fundamentals主要内容包括程序设计结构,算法,问题求解和数据结构等。它考虑的是如何对问题进行抽象。它属于学科抽象形态方面的内容。并为计算学科各分支领域基本问题的感性认识(抽象)提供方法。基本问题主要包括:1.对给定的问题如何进行有效的描述并给出算法?2.如何正确选择数据结构?3.如何进
25、行设计,编码,测试和调试程序?第40页第41页0.6 计算机科学与技术体系三.AL. Algorithms and Complexity 主要内容包括算法的复杂度分析,典型的算法策略,分布式算法,并行算法,可计算理论,P类和NP类问题,自动机理论,密码算法以及几何算法等.基本问题主要包括:1.对于给定的问题类,最好的算法是什么?要求的存储空间和计算时间有多少?空间和时间如何折衷?2.访问数据的最好方法是什么?3.算法最好和最坏的情况是什么?4.算法的平均性能如何?5.算法的通用性如何?第41页第42页0.6 计算机科学与技术体系四.PL. Programming Languages主要内容包括
26、程序设计模式,虚拟机,类型系统,执行控制模型,语言翻译系统,程序设计语言的语义学,基于语言的并行构件等.第42页第43页0.6 计算机科学与技术体系四.PL. Programming Languages理论形态的主要内容:包括形式语言和自动机,图灵机(过程式语言的基础),POST系统(字符串处理语言的基础),lamda-演算(函数式语言的基础),形式语义学,谓词逻辑,时态逻辑,近世代数等. 第43页第44页0.6 计算机科学与技术体系四.PL. Programming Languages基本问题主要包括:1.语言(数据类型,操作,控制结构,引进新类型和操作的机制)表示的虚拟机的可能组织结构是什
27、么?2.语言如何定义机器?机器如何定义语言?3.什么样的表示法(语义)可以有效地用于描述计算机应该做什么?第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. Softwa
28、re Engineering 十三.SP. Social and Professional Issues十四.CN. Computational Science 第45页“计算机科学与技术”专业划分教育部高等学校计算机科学与技术教学指导委员会在“计算机科学与技术”专业名称下,鼓励不同学校根据社会需求和自身的实际情况,为学生提供不同类型的、本科水平的教学计划考虑三种不同的类型:科学型(CS)、工程型(CE和SE)、应用型(信息技术型IT) 其中工程型又分为计算机工程与软件工程两类软件工程一级学科n群体软件工程n软件服务工程n软件工程管理与技术n领域软件工程“计算机科学与技术”专业划分CS2013
29、的产生背景为顺应计算机科学前沿理论和技术发展以及工业界的需求,每十年,ACM和IEEE-CS会共同发起制定关于“计算机科学”学科的课程大纲目的是为全球“计算机科学”专业的教学提供最新的课程指导已分别于1968、1978、1991和2001发布了前期版本最近的CS2008版本,是临时版自2001年起,“计算机科学”分为计算机科学(CS),计算机工程(CE),信息系统(IS),信息工程(IT)以及软件工程(SE)最新完整版于2013发布,命名为CS2013该版本的制定工作从2010年秋季开始CS2013遵循的理念大帐棚策略(Big Tent)涵盖包括最新发展在内的计算机科学各领域起到桥梁作用,关联
30、相关交叉学科控制学时总数与CS2001相比,学时总数不增加提供真实课程范例给出包含各知识点的真实范例课程兼容习俗和文化的需要兼容不同的培养目标、资源和限制条件兼容不同的学院规模、学院类型以及可利用的资源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
31、 1 0 0 0 DS-Discrete Structures 37 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 System
32、s 4 11 18 18 PBD-Platform-based Development 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 Tot
33、al Core Hours 163 142 290 280 CS2013的特点操作灵活顺应发展顺应前沿理论和技术发展以及工业界的需求新增知识点做出调整的知识点重视系统、重视基础保留经典强调交叉新增知识点2010年12月,ACM/IEEE CS2013工作组对全球计算机系系主任进行问卷调查,收到201份有效反馈。反馈表明关于计算机专业核心知识,排名前三的是计算思维、程序设计基础、数据结构建议加入课程体系的新内容,排名前三的是信息安全、分布和并行计算、移动计算在新的课程体系 CS2013中,将加入分布和并行计算、信息安全、系统基础、基于平台的编程这四大块核心知识模块CS2013 & CS2008
34、Knowledge Areas 2013: 18 KAAL - Algorithms 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 Systems
35、NC - Networking and CommunicationsOS - 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
36、 and Complexity (AL) Architecture and 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
37、) Programming Languages (PL) Software 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 (1
38、8 core Tier 1, 9 core Tier 2 hours, 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知识点讲述基于平台的编程PD. Parallel and Distributed C
39、omputing除此之外,强调在其它课程中也需要渗透并行计算知识,比如在算法课程中介绍并行算法,体系结构课程中介绍多核的内容,等等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
40、 Y PD/Parallel Performance 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
41、 and Governance Y 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-St
42、ate Machines 6 SF/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. Netwo
43、rking and CommunicationCore-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
44、(2)NC/Network Communication (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/Industr
45、ial Platforms Y PBD/Game Platforms Y 不再过多的强调网络通讯知识,强调从网络应用软件的角度给出相关知识 适应移动互联网的发展,单独形成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. Pro
46、gramming Languages (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
47、11 N SDF/Fundamental 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
48、 (4)PF/Object Oriented (8)PF/Foundations Information Security (4)PF/Secure Programming (2) 从软件开发的观点介绍软件的基础原理与制作策略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 organizati
49、on 6 N AR/Memory system 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 Repre
50、sentation (7)AR/Computer 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-