- 63.00 KB
- 2022-08-13 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
《计算机科学导论》期末试卷(考查)院系:信息工程学院年级:2011级专业:计算机科学与技术班级:计算机科学与技术一班学号:201115210117姓名:梁博宁任课教师:耿强2011年12月29日第6页共6页\n一、对计算机学科发展的认识在现今的信息时代,计算机的应用十分广泛,计算机的诞生极大的增强了人类认识世界,改造世界的能力,对社会和生活的各个领域产生了极大的影响,即影响了医学,自然科学,交通运输,教育,娱乐,金融等许多学科或领域的发展,可以说我们已经离不开计算机了。计算机的发展速度是很快的,虽然它才诞生不过60多年,但是已经进入千家万户。作为一名以计算机学科为专业的学生来说,清楚地认识到什么是计算机学科,计算机学科都涉及什么,当今计算机发展的趋势等许多问题很有必要。计算机学科,即计算机科学与技术,是研究计算机的设计,制造和利用进行信息获取,表示,存储,处理控制等的理论,原则,方法和技术的学科。计算机诞生后,并不意味着计算机学科随之产生,计算机学科的产生要追溯到上世纪70到80年代.当时,计算技术得到了快速发展,并且开始对其它学科或领域,与此同时,社会中也充满了许多争论,对于如何认知计算学科,存在很多争论。比如:计算机科学能否作为一门学科?计算机科学是理科还是工科?现在,这些都已不是问题,我们有了计算机科学这一学科。并且计算机学科并不能单纯的就说它是理科还是工科,在统一认识后,ACM和IEEE-CS任务组将计算机科学、计算机工程、计算机科学和工程、计算机信息学以及其它类似名称的专业及其研究范畴统称为计算机学科。计算机诞生之时主要是用于科学计算,因此得名计算机。但是,经过半个多世纪的发展,如今计算机已经不仅仅用于科学计算了。我们平时日常生活都要用到计算机,我们在网上购物,通过网络学习,现在看电影也不需要去电影院了,在家里就可以欣赏到上万部影片,如今计算机的运算速度也是和当初的计算机不在一个级别,等等,计算机如今的变化是过去的人所想不到的。尤其是互联网的出现,使得信息的传递更加快速,人与人之间的联系更加紧密。从第一台公认的计算机被开发出来,经过了近半个多世纪的发展。直到到今天,计算机科学已经不知不觉的应用于14个分支领域:第6页共6页离散结构,程序设计基础,算法和复杂性,体系结构和组织,操作系统,网络计算,程序设计语言,人机交互,图形学和可视化计算,智能系统,信息系统,社会与职业问题,软件工程,计算科学和数值计算方法。在未来,计算机还会向着更高的层面发展——巨型化,微型化,网络化,智能化。巨型化是指计算机的运算速度更高、存储容量更大、功能更强。微型化是指计算机的体积将越来越小,被制作成各种微型设备第6页共6页\n。网络化是指在未来更多的信息与资源将被共享,人类所获得的信息将再次发生革命性的变革。智能化是计算机的一个非常重要的研究方向,未来的计算机,有可能会模拟人的感觉行为和思维过程的机理,进行“看”、“听”、“说”、“想”、“做”,还有逻辑推理的能力,甚至具有自主学习的能力,成为真正意义上的“电脑”!第6页共6页二、对计算机学科主干课程的认识由于学习了计算机科学导论这一课程,知道了计算机学科都由哪些课程是需要我们学的,知道了计算机学科是一门庞大的学科。计算机学科既然作为一门庞大的学科,那么它必然有分支学科,计算机学科有四个分支学科知识体,它们分别是:第6页共6页1)计算机科学知识体2)计算机工程知识体3)软件工程知识体4)信息技术知识体第6页共6页每个分支学科的主干课程分别为:计算机科学主干课程包括:计算机导论,程序设计基础,离散结构,算法与数据结构,计算机组成基础,计算机体系结构,操作系统,数据库系统原理,编译原理,软件工程,计算机图形学,计算机网络,人工智能,数字逻辑,社会与职业道德。计算机工程专业主干课程包括:计算机导论,程序设计基础,离散结构,算法与数据结构,电路与系统,模拟与数字电子技术,数字信息处理,数字逻辑,计算机组成结构,计算机体系结构,操作系统,计算机网络,嵌入式系统,软件工程,数据库系统原理,社会与职业道德。软件工程专业主干课程包括:程序设计基础,面向对象方法学,数据结构和算法,离散结构,计算机体系结构,操作系统和网络,数据库,工程经济学,团队激励和沟通,软件工程和职业实践,软件工程与计算,软件工程导论,软件代码开发技术,人机交互的软件工程方法,大型软件系统设计与软件体系结构,软件测试,软件设计与体系结构,软件详细设计,软件工程的形式化方法,软件质量保证与测试,软件需求分析,软件项目管理,软件过程与管理,软件工程综合实习。信息技术专业主干课程包括:信息技术导论,信息技术应用数学入门,程序设计与问题求解,数据结构与算法,计算机系统平台,应用集成原理与工具,Web系统与技术,计算机网络与互联网,数据库与信息管理技术,人机交互,面向对象方法,信息保障与安全,社会信息学,信息系统工程与实践,系统管理与维护。在这么多的课程中,算法与数据结构是所有分支中都存在的,可见这门课程的重要性。现代计算机通过程序可以解决很多问题,而程序的功能是通过算法来描述的,算法描述了程序要执行的操作以及操作的步骤和顺序。可以这样说,算法就是程序的灵魂。数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。第6页共6页\n软件测试是利用某些测试工具按照一定的标准和方法对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。数据库是为避免在进行数据管理时出现冗余等异常情况而被发明出来的,它提供了一个公用的平台环境,来进行数据管理。数据库中的数据具有数据整体性和数据共享性。三、对计算机学科核心概念的认识核心概念是CC1991报告首次提出的,是具有普遍性、持久性的重要思想、原则和方法,报告认为,熟练掌握和应用这些核心概念是一个成熟的计算机科学家和工程师的标志之一。CC1991报告中的12个核心概念:1.绑定(Binding)通过将一个对象或事物与其某种属性相关联,从而使抽象的概念具体化的过程。2.大问题的复杂性(ComplexityofLargeProblems)指随着问题规模的增长而使问题的复杂性呈线性增长的效应。3.概念与形式模型(ConceptualandFormatModels)概念和形式模型是对一个想法或问题进行形式化,特征化,可视化思维的方法。概念模型:抽象数据类型,语义数据类型以及指定系统的图形语言等。形式模型:逻辑,开关理论和计算机理论中的模型等。4.一致性和完备性(ConsistencyandCompleteness)一致性包括用于形式说明的一组公理的一致性,以及这种语言或接口设计的内部一致性。完备性包括给出的一组公理,使其能获得预期行为的充分性、软件和硬件系统功能的充分性,以及系统处于出错和非预期情况下保持正常行为的能力。5.效率(Efficiency)关于空间,时间,人力,财力等资源消耗的度量。6.演化(Evolution)系统的结构,状态,特征,行为和功能等随时间的推移而发生的更改。7.抽象层次(levelsofAbstraction)通过对不同层次的细节和指标的抽象对一个系统或实体进行表述。在复杂系统的设计中,隐藏细节,对系统各层次进行描述(抽象),从而控制系统的复杂程度。8.按空间排序(OrderinginSpace)第6页共6页\n各种定位方式,如物理上的定位(如网络和存储中的定位),组织方式上的定位(如处理机进程、类型定义和有关操作的定位)以及概念上的定位(如软件的辖域,耦合,内聚等)。1.按时间排序(OrderinginTime)事件的执行对时间的依赖性。2.重用(Reuse)在新的环境下,系统中各类实体,技术,概念等被再次使用的能力。3.安全性(Security)计算机软硬件系统对合法用户的响应及对非法请求的抗拒,以保护自己不受外部影响和攻击的能力。4.折衷和结论(TradeoffandConsequences)折衷指的是为满足系统的可实施性而对系统设计中的技术、方案所做出的一种合理的取舍。结论是折衷的结论,即选择一种方案代替另一种方案所产生的技术、经济、文化及其它方面的影响。四、对与计算机相关职业的认识计算机可以从事的职业很多,以下是一些计算机的相关职业:软件工程师,硬件工程师,测试工程师,系统工程师,网站策划,架构师,产品经理,运营经理,UI设计师,项目经理,技术支持,数据库工程师,网络管理员,电子工程师,电气工程师等。软件工程师主要负责研发公司软件的模块设计、开发和交付,还负责编码、单元测试,按照功能组件的详细设计,对其他软件工程师的代码进行审核,参与新知识的学习和培训修复程序BUG,参与与其业务相关的需求变更评审,编写技术设计文档等工作。另外,软件工程师还是一个认证考试,对从事软件职业人员的一种职业能力的认证,通过它说明了工程师的资格。另外,软件工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。在一级城市中(如北京、上海)初级到高级软件工程师的待遇在4000到20000之间,而内地其它省会城市一般在2000到9000之间,工作量大,繁琐枯燥。测试工程师在企业中一般称为软件开发测试工程师,一般为具有一到两年经验的测试工程师或程序员。有良好经验的测试工程师可以成长为产品或项目组的测试组长或软件质量经理,负责软件质量保证,进行测试管理和领导测试团队。测试工程师的工作职责为,编写测试计划、规划详细的测试方案、编写测试用例。根据测试计划搭建和维护测试环境。执行测试工作,提交测试报告。包括编写用于测试的自动测试脚本,完整地记录测试结果,编写完整的测试报告等相关的技术文档。第6页共6页\n对测试中发现的问题进行详细分析和准确的定位,与开发人员讨论缺陷解决方案。提出对产品的进一步改进的建议,并评估改进方案是否合理,对测试结果进行总结与统计分析对测试进行跟踪,并提出反馈意见。为业务部门提供相应技术支持,确保软件质量指标等工作。测试工程师目前面临着一个严峻的考验,那就是人才紧缺。在国外,一般软件测试人员与软件开发人员的岗位设置比例为1:1,并且某些公司软件测试人员所占比例更高,由此可见软件测试岗位的重要性。但是,在国内,软件测试人员的比重却严重不足,在国内120多万的软件从业者中,真正能担当测试职位的不足5万,人才缺口已超过20万,并随需求逐年增长。系统工程师是指具备较高专业技术水平,能够分析商业需求,并使用各种系统平台和服务器软件来设计并实现商务解决方案的基础架构的技术人员。五、总结通过学习计算机科学导论课程的学习,对计算机科学与技术这一专业有了一定的认识,对于未来的学习起到了不可磨灭的作用。我还了解到在计算机的发展中,引发了许多社会问题。比如,应用计算机犯罪,有关计算机的知识产权问题等。到今天,虽然有关计算机的立法在一步步的完善,但还不是很完善,给了很多不法分子犯罪的机会。如何来防止计算机犯罪呢,一般来说有以下几种方案:1.加强教育,提高计算机安全意识,预防计算机犯罪。一方面,社会和计算机应用部门要提高对计算机安全和计算机犯罪的认识,从而加强管理,减少犯罪分子的可乘之机;另一方面,从一些计算机犯罪的案例中看到,不少人,特别是青少年常常出于好奇和逞强而在无意中触犯了法律。应对这部分人进行计算机犯罪教育,提高对其行为后果的认识,预防犯罪的发生。2.健全惩治计算机犯罪的法律体系。健全的法律体系一方面使处罚计算机犯罪有法可依,另一方面能够对各种计算机犯罪分子起到一定的威慑作用。3.发展先进的计算机安全技术,保障信息安全。比如使用防火墙、身份认证、数据加密、数字签名和安全监控技术、防范电磁辐射泄密等。4.实施严格的安全管理。计算机应用部门要建立适当的信息安全管理办法,确立计算机安全使用规则,明确用户和管理人员职责;加强部门内部管理,建立审计和跟踪体系。计算机带给我们便利的同时,我们不能忘记任何东西都具有两面性,避免计算机犯罪是我们每一个人的义务。第6页共6页