1.软件技术专业需要学哪些专业知识
计算机导论
内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。
数字电路与数字逻辑
内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。
计算机组成原理与汇编语言
内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。
计算机网络
内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。
计算机体系结构
内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。
离散数学
内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。
高级程序设计语言
内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。
算法分析与设计
内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。 希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。
数据结构
内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。
数据库系统原理
内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。
编译技术
内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。
操作系统
内容提要:介绍操作系统的设计与实现,包括操作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。
2.现在大学生非常好的学习软件有哪些
电子类:学习数、模电,单片机,常用电子领域和机百械领域的软件等;总之 是学硬件为主,软件为辅,并囊括基础的计算机领域的知识。
计算机类:主要分两类,一是计算机网络度,主要学习计算机硬件,计算机网络方面的知识,与电子类稍接近;二是编程,主要学习计算机硬件,软件编程等知识,主要以软件为主知。
至于软件好还是硬件好?
这主要看个人兴趣和天赋,但行业里有一句话叫:“你工作的八年内,软件吃香,工资较高;八年以上的硬件吃香”;你参考下吧~~道另外,对硬件人员而言,要求必须懂简单的软件及简单的编程,而这些 在电子类学校基本都学习版;而年轻的软件人员基本不懂硬件;想做的好,必须软件不分家;不过,近年来,电子、IT行业没以前那么火爆,不是说技术权问题,而是说工资待遇问题。
呵呵~以上,请参考!希望对你有帮助!
3.大学里写软件的专业叫什么
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。[1] 《计算机科学技术百科全书》:软件工程是应 软件工程 用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
[2] 比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。[3] 培养原则 软件工程领域(管理信息化方向)工程硕士应掌握从事本工程领域坚实的基础理论和宽广的专业知识,了解当代信息管理技术发展前沿、应用前景和最新发展动态,能熟练地阅读本领域的外文资料,掌握解决信息管理问题的先进技术方法和现代技术手段;具有创新意识和独立承担软件工程技术管理或信息系统管理工作的能力。
编辑本段 发展过程 软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。
程序设计阶段 程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。
软件设[4]计阶段 软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组 软件工程 织形式。
开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。
但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。软件工程阶段 自1970年起,软件开发进入了软件工程阶段。
由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。
此阶段的特定是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。[5] (关于软件危机的详细介绍可以阅读参考资料:[5]) 编辑本段 基本目标 软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性 软件工程 、可互操作性和满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。(1)适用性:软件在不同的系统约束条件下,使用户需求得到满足的难易程度。
(2)有效性:软件系统能最有效的利用计算机的时间和空间资源。各种软件无不把系统的时/空开销作为衡量软件质量的一项重要技术指标。
很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。
(3)可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。
(4)可靠性:能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。(5)可理解性:系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。(6)可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。
软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
(7)可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。
(8)可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。(9)可追踪性:根据软件需求对软件设。
4.现在写软件都用什么写,需要掌握什么语言
写软件需要一个编译器,将你写好的语句编译成可执行文件。
编程语言分为低级语言,中级语言,和高级语言。
汇编语言属于低级语言。
c语言属于中级语言,它保留了一些低级语言的特性也有一些高级语言的特性。它属于面向过程语言。例如系统软件大多采用c语言。
高级语言一般是面向对象语言,比较适合大型软件的开发,因为面向对象有很好的扩展性。
如果你想学编程的话,建议你学c#和java语言,这些都是典型的面向对象语言。
5.专业知识包括哪些内容
一、组织工作业务知识
二、计算机及信息化相关知识
1、熟悉计算机系统、信息化基础知识、数据通信的基本知识、计算机网络的体系结构、TCPIP协议的基本知识、计算机网络的建设、维护及管理、计算机网络安全的相关问题和防范技术;
2、了解计算机网络有关的法律、法规;了解计算机网络的新技术、新发展;正确阅读和理解本领域的简单英文资料。
3、需要掌握的相关知识
(1)计算机网络设计及信息系统相关知识;
(2)计算机科学与技术基础:数据结构、计算机组成原理、数据库原理、软件工程等相关知识;
(3)计算机应用与开发基础:数据通信、局域网应用、因特网应用、操作系统、应用服务器、信息采集、远程会议系统等;
(4)网络系统的运行、管理与维护;
(5)数据备份和数据恢复;
(6)网络安全与技术;
(7)网页制作及网站管理维护;
(8)常用办公软件使用技巧;
(9)专业英语。
6.学习软件知识 主要指的是什么些知识
那要看学的人是要学基础的用软件的技能(非技术人员)还是高端的开发软件的实力(专业开发、维护人员)。
1、用软件比较简单,只是熟练地掌握常用的Office、PS等软件就可以了。另外,说明一点,即使是计算机专业的,也未必用得好这些软件,毕竟计算机专业本就不是学用软件的,所以也别认为计算机专业就非得学好这些,学不好的话就是连开发都做不了,这是强盗逻辑。
2、开发软件的能力较为复杂。基础的、非科班出身的,得熟练地掌握几门编程语言,较常见且目前应用较广的有Java(手机软件开发)、C++(PC端软件开发)等。
再进一步,得学会算法、数据结构、设计模式等编程的基础知识,才能编出出色的程序。然后,对于软件工程、数据库、系统原理、编译器原理等和软件相关的知识也得了解,才能真正了解一个软件在计算机中运行的过程是怎样的,才能做到知其然且知其所以然,才算真正了解了软件的知识。
7.做软件测试员需要学哪些专业知识
第一步,测试基础:
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等。
第二步:学习脚本语言
如:python语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。都说C语言最难,但是用得确实也多。
第三步:学习软件测试工具
学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。
第四步:计算机硬件知识
做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
第五步:数据库测试
MySQL数据库
MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。
Redis数据库
Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。
第六步:项目实战
最好参与真实项目的测试工作,积累真实项目的测试经验。
成为优秀软件测试员之提升条件,如果你想成为一个更优秀的软件测试员的话,除了上面那些,你也最好能够具备开发语言即代码编写能力,虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程 师的一部分工作就是在写测试工具。虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你 现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是Java或者是VB什么的)所以在开发语言中测试需要更广的学习。
成为软件测试员之必备条件,就是你一定要有良好的心态。心要静、细心耐心、责任心。心静不下来无法对bug展开发向思维及拓展想像。任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理