
一、栈(Stack)、队列(Queue)和向量(Vector)
1、单链表、双向链表、环形链表、带哨兵节点的链表。
2、栈的基本概念和性质,栈ADT及其顺序,链接实现,栈的应用、栈与递归。
3、队列的基本概念和性质,队列ADT及其顺序,链接实现。
4、队列的应用,环形队列、双向队列。
5、向量基本概念和性质,向量ADT及其数组、链接实现。
二、树
1、树的基本概念和术语,树的前序、中序、后序、层次序遍历;
2、二叉树及其性质,普通树与二叉树的转换。
3、树的存储结构,标准形式。
4、完全树(completetree)的数组形式存储。
5、空树的表示;树的应用,Huffman树的定义与应用。
扩展资料:
第二部分计算机系统基础
一、 处理器体系结构
内容:CPU中的时序电路、单周期处理器的设计、流水线处理器的基本原理、DataHazard的处理、流水线设计中的其他问题。
二、 优化程序性能
内容:优化程序性能、优化编译器的能力和局限性以及表示程序性能、特定体系结构或应用特性的性能优化、限制因素、确认和消除性能瓶颈。
三、 存储器结构及虚拟存储器
内容:局部性、存储器层级结构、计算机高速缓存器原理、高速缓存对性能的影响、地址空间、虚拟存储器、虚拟内存的管理、翻译和映射、TLB、动态存储器分配和垃圾收集。
四、 链接、进程及并发编程
内容:静态链接、目标文件、符号和符号表、重定位和加载、动态链接库、异常和进程、进程控制和信号、进程间的通信、进程间信号量的控制、信号量,各种并发编程模式,共享变量和线程同步,其他并行问题。
五、 系统级I/O和网络编程
内容:I/O相关概念、文件及文件操作、共享文件、网络编程、客户端-服务器模型,套接字接口、HTTP请求,Web服务器。
参考资料来源:百度百科-软件水平考试
问题一:软件工程师要学哪些东西? 软件工程师要学习和掌握的东西: (一).NET方面的开发 ⒈熟悉开发体系,熟悉C# ASP .NET; ⒉熟悉SQLServer,Oracle数据库开发; ⒊具有企业管理系统项目经验; 4.了解企业ERP及财务管理软件(用友,金蝶)者优先; 5.善于沟通,能独立撰写方案。为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。 (二)JAVA应用程序开发 1.熟练使用Struts2+Spring+Hibernate 2.掌握Jquery 3.掌握Java 4.熟悉Oracle 5.掌握xml/webservice 6.掌握OOD、OOP 7.基本文档写作能力 (三)web、数据库方面的开发 ⒈练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术; 2.热衷于抚联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术; 3.熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力; 4.精通SQL server数据库技术,了解数据库性能调优者优先. (四)php项目开发 ⒈使用PHP语言开发互联网应用程序; ⒉网站产品和网站功能模块的开发与维护; ⒊与页面设计师协调沟通,编写部分Javascript和HTML; ⒋参与底层MVC框架的编写与维护。 软件工程师一般指从事软件开发职业的人。软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。 对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。 工作内容: 1、 指导程序员的工作; 2、 参与软件工程系统的设计、开发、测试等过程; 3 、协助工程管理人保证项目的质量; 4 、负责工程中主要功能的代码实现; 5 、解决工程中的关键问题和技术难题; 6 、协调各个程序员的工作,并能与其它软件工程师协作工作; 7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。...>> 问题二:学习软件工程师需要学什么 软件工程师吗?目前最好的软件工程师证书就是软考得中级工程师(软件设计师)~很权威~~要想成为软件设计师你要看的书包括:1:数据结构 目前清华大学严蔚敏老师的数据结构是一个经典.可能的话,再搜罗其他版本的教程,这样可以互相印证.3:计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,和参考模型理论.4:计算机专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料.5:软件工程(第二版) 要熟悉数据流图和流程图6:数据库理论.这要求熟悉SQL的语言.7:C语言或者VB语言应该掌握最后要学习统一建模语言UML,它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。计算机学习要经历一个从理论―――实践―――理论的认识不断深化的过程,这一过程是非常艰辛的.但是要相信“天道酬勤”的道理,你最终会成为一名优秀的软件设计师的~~祝你成功 请采纳。 问题三:软件工程师都需要学习什么? 1.网络设备技术,这主要涉及网络的硬件建设,包括路由器、交换机、组局网、广网,这方面有代表性的是CISCO、NORTEL; 2.网络操作系统,这主要涉及操作系统的系统管理与网络管理,这方向有代表性的是WINDOWS 2000、UNIX、LINUX等; 3.网络数据库,这主要涉及应用于网络的数据库,这方面有代表性的是SQL和ORACLE等; 4.网络安全,大家不应把网络安全片面的想成对操作系统、应用系统的安全,其实安全问题在网络的各方面都存在,在这方面国内还没有出现比较好、比较全面的认证; 5.网络管理,这涉及一个局网、广网的综合管理、优化、计费等等,也没有一个综合性的认证; 6.网络应用开发,企业的网站的基本开发、互动性开发,技术有HTML、ASP、JSP、JAVA等等。 这六个方面都是企业信息化必备的因素,所以大家如果要补充自己的知识,可以从这六个方面去补充,自己还要作一个定位,是成为一个全面性的人员,还是专业性的人员。不过如果能在这个方面打下扎实的基本功,那么再在工作中选择一个方向,会更加厉害。 总之,大家应分步确定自己的方向,然后努力在多方向充实自己 . 问题四:软件工程师需要什么学历。 软件工程师对学历并没有要求,如果你说的是各种资格考试的话,那只是一个行业认证,如果你就是讲普通意义上的软件工程师,对学历并没有要求,而是对你的技术、专业知识有要求 问题五:软件工程师主要是学什么的啊? 软件工程师主要学习的方面有很多。比如.NET ASP ,c ,c++, c#,java安卓,javaweb(包括主流的框架strtus,hibernate ,spring ,Myibatis,)。AJAX,jQuery,javascript,PHP。用途做客户端应用程序。网站应用程序,还有管理系统比如淘宝网站,O叮办公管理系统,CRM客户关系管理系统,订票管理系统。种类很多。 问题六:做一名软件工程师需要学习和准备什么? 首先让我们来看一下软件工程师考试(高级)要求: (1)理解软件工程管理的概念和任务; (2)理解软件生存期过程; (3)理解软件工程标准; (4)掌握需求分析、测试、维护基本技术; (5)掌握软件度量、软件配置管理方法; (6)理解软件复用概念; (7)理解软件质量保证的手段; (8)理解软件项目对人员的需求; (9)理解软件知识产权的基本知识。 通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。 1:数据结构 数据结构可以说是编程的灵魂,它不是一门语言所以没有关键字。它只是给程序开发人员一个开发思路而已,讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言。就好像学习英语一样,学习编程语言让你会说英语,记住很多英语单词,熟悉英语的很多语法。而学习数据结构能让你编出很漂亮的英语文章。 3:计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,和参考模型理论 4:数学,数学是基础,你暂时不太能体会它的作用,但是以后会非常有用。所有的计算原理都要数学作为指导。 5:计算机专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料 6:软件工程(第二版) 要熟悉数据流图和流程图 7:数据库理论.这要求熟悉SQL的语言.几乎所有的编程语言都要和数据库打交道的。 8:C语言或者VB语言应该掌握,不过目前JAVA和是当前比较火的两个编程语言。 想当一个软件工程师,最后要学习统一建模语言UML,它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。 问题七:软件工程师都需要学习什么? 1.网络设备技术,这主要涉及网络的硬件建设,包括路由器、交换机、组局网、广网,这方面有代表性的是CISCO、NORTEL; 2.网络操作系统,这主要涉及操作系统的系统管理与网络管理,这方向有代表性的是WINDOWS 2000、UNIX、LINUX等; 3.网络数据库,这主要涉及应用于网络的数据库,这方面有代表性的是SQL和ORACLE等; 4.网络安全,大家不应把网络安全片面的想成对操作系统、应用系统的安全,其实安全问题在网络的各方面都存在,在这方面国内还没有出现比较好、比较全面的认证; 5.网络管理,这涉及一个局网、广网的综合管理、优化、计费等等,也没有一个综合性的认证; 6.网络应用开发,企业的网站的基本开发、互动性开发,技术有HTML、ASP、JSP、JAVA等等。 这六个方面都是企业信息化必备的因素,所以大家如果要补充自己的知识,可以从这六个方面去补充,自己还要作一个定位,是成为一个全面性的人员,还是专业性的人员。不过如果能在这个方面打下扎实的基本功,那么再在工作中选择一个方向,会更加厉害。 总之,大家应分步确定自己的方向,然后努力在多方向充实自己 . 问题八:软件工程师需要学习哪些专业知识 计算机导论 内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。 数字电路与数字逻辑 内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。 计算机组成原理与汇编语言 内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。 计算机网络 内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。 计算机体系结构 内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。 离散数学 内容提要:包括 *** 论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。 高级程序设计语言 内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。 算法分析与设计 内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。 希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。 数据结构 内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。 数据库系统原理 内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。 编译技术 内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。 操作系统 内容提要:介绍操作系统的设计与实现,包括操作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。 问题九:要做软件工程师大学选什么专业? 关键主要看学了哪些课程,如果单纯的注重做软件,需要学习数据结唬、逻辑结构与算法、编程语言、数据库、操作系统、网络理论、软件工程理论等,当然这只是一些主要的课程,如果做大师,还需要拓宽范围,学习其他的,如高数、线代、几何、电路分析、模电、数电、单片机、汇编、各种编程语言等等 问题十:如何当一名软件工程师,要学哪些知识 1.网络2.软件3.集成电路如果您希望进入IT行业,那么您先要确定进入这三个方面中的一个。三个方面的就业方向:1.集成电路方向,这是一个非常专业的方向,需要求职者有很强的专业知识,这些专业知识很能通过培训来补充,需要很好的类似于大学教育的培养;这类人才就业面很窄,但如果就业了,其薪水很高(当然要看企业的情况)2.软件方向,这个方面比集成电路设计在专业上相对宽一些,一个好的软件工程师,也需要有扎实的数学基础。常规的培训可以使一个没有软件基础的人成为一个软件蓝领,但要成为软件设计人员,还是需要相当的工作与学习时间;这类人才大多就业于软件企业;3.网络方向,这个方面涉及的面就比前两者宽得多,通过培训可能从一个对网络技术不了解的人逐步成为网络的工程师,因为网络技术是一种更偏向于操作的技术。在就业面也宽得多,因为信息化是一个全社会的工程, *** 、企业都在进行信息化,都需要在网络方面寻找合适的人才进行其网络系统的运行、管理、维护。因此,从就业面来看, 网络工程师>软件工程师>集成电路工程师而不同的是,网络工程师却是各行各业所需要的。1.企业信息化主管:负责信息化建设中的目标与方案决策,信息化建设中的方向研究;2.工程技术人员:负责信息化系统的设计、建设,包括设备、系统、数据库、应用系统的建设;3.运行维护人员:负责信息化系统的运行、维护、管理以及基本的开发;4.操作应用人员:主要应用信息化系统进行本职工作。在企业信息化建设运行的过程来看,一个企业会把建设过程以外包方式交给专业的IT公司来完成,于是一般一个企业不会有IT系统的工程技术人员,可以说IT 系统的工程技术人员都集中于专业的IT公司;而当信息化系统建成后,企业一般会有一个人,或一个组来负责信息化系统的运行、维护、管理,这部份人是企业必配的,而且从成本角度来看,企业会招聘一个对网络设备、网络系统、数据库、网络管理、网络安全以及基本网络开发都有所了解的人来负责其信息化系统,这类人一般叫网管。这类人的知识是水平性的,多方面的,但不是特别专业的。如果当企业真正遇到非常专业的技术问题,一般会让这个网管带着问题咨询专业的IT公司。因此从这个角度来看,网络工程师的就业面会远大于其它两类工程师。1.网络设备技术,这主要涉及网络的硬件建设,包括路由器、交换机、组局网、广网,这方面有代表性的是CISCO、NORTEL;2.网络操作系统,这主要涉及操作系统的系统管理与网络管理,这方向有代表性的是WINDOWS 2000、UNIX、LINUX等;3.网络数据库,这主要涉及应用于网络的数据库,这方面有代表性的是SQL和ORACLE等;4.网络安全,大家不应把网络安全片面的想成对操作系统、应用系统的安全,其实安全问题在网络的各方面都存在,在这方面国内还没有出现比较好、比较全面的认证;5.网络管理,这涉及一个局网、广网的综合管理、优化、计费等等,也没有一个综合性的认证;6.网络应用开发,企业的网站的基本开发、互动性开发,技术有HTML、ASP、JSP、JAVA等等。这六个方面都是企业信息化必备的因素,所以大家如果要补充自己的知识,可以从这六个方面去补充,自己还要作一个定位,是成为一个全面性的人员,还是专业性的人员。
1程序员和软件设计师难度差别是比较大的,我看过相关的题目,不过如果是计算机专业的学生直接参加软设应该还是没有问题的,系统分析师最麻烦的有两点,第一就是专业跨度比较大,涉及开发、网络、数据、法律、信息系统、数学等等很多学科,而且考得也很深入,第二就是第三科论文,一般来说很难把握论文能否达到合格线,我很多朋友都是前两科过了,论文差3分的样子。 2专业语言对于软考来说帮助不是很大,一般来说这样的考试主要是考基础知识,对于一些书本上的内容要掌握的比较扎实,虽然也会有相关的实务题目考编程但是比真正实际工作中间的还是差很远。所以重点看书做题,重心是通过考试而不要重点去钻研语言。 3教程都差不多,内容也都差不多可以包含所有的知识点,关键就是做题了,说实话,中国的各类资格考试要通过最大的捷径就是题海,做多了自然就顺了,现在的资格考试,都是沿用了高考一样的模式,软考的话一般分布题型很平均,三分之一是一定要拿到的分数,三分之一是中等难度,三分之一是很难拿到,也就是说是怪题,一般来说只要容易题全部搞定,中等题搞定一半以上就可以通过考试了,所以相关类似的题目特别是常见的每次必然要考的多做多做,就很有把握能过。 4现在软考对于进入软件行业可以说帮助不大,因为软件行业非常看重实务能力,也就是说能不能写程序,你如果有自己编辑的程序源码,并且熟练掌握一到两种语言,对于数据库也比较熟悉的话,我可以肯定这个作用比软考证书大得多,不要期望任何证书给你带来翻天覆地的变化,照中国人的考试能力,什么证书都不奇怪,我记得最小的通过软考程序员考试的只有9岁。特别作为同行,说实话,我觉得现在的应届,主要是能力,获得证书是个不错的途径,你有证书说明你非常了不起,很好学很能学习知识,但不要拿着它当个宝贝一样,除了应聘的时候有用,其他时候都藏在箱子里,证书可以给你机会,但是不一定给你成功。
1,如果高中数学不太好的话(即高考数学正确率在60% 以下),最好是报中级电子商务设计师。以后向网站设计方向发展。2,如果高中数学不错,最好是报初级程序员或中级软件设计师。以后从事C++或JAVA开发,即系统软件或游戏软件开发。需要有良好的逻辑推理能力和语言组织能力。对算法(即解题步骤)要精通。3,软考历年试卷上考点很多重复考,要多做历年试卷和模拟试卷。4,平时多上考试吧。5,软考除初级信息技术处理员有上机考试以外,其他的科目只有笔试。中级全都没有上机考试。上午75道选择题,共75分,下午五道主观题,每题15分,共75分。合格线一般是45分(上午45分,下午45分),没有补考,也就是上,下午都必须合格(45分)才行。