程序设计发展到今天,出现了两个重要的阶段:一个是结构化、面向过程程序设计思想的出现,例如C语言。一个是面向对象开发程序思想的出现,例如C#语言。这两种设计思想在解决问题时是不一样的。结构化思想是针对待解决的问题来展开程序设计,而面向对象的设计思想是针对解决某一类问题来进行程序设计的。但是,这只是解决问题的切入点不一样,用面向对象的思想设计程序,当设计到具体实现部分的时候,也就是到功能部分的时候,仍然要用结构化的程序来实现。由此可见,结构化程序设计的思想是必然要学习的。支撑课程信息表见表3-11。
如表3-11所示,由《C语言程序设计》和《数据结构》这两门课来支撑该部分内容的学习,C语言是学习结构化程序设计的思想的最经典的语言,对于软件专业来说,《C语言程序设计》是一门经典的专业基础课程,对C语言掌握的好坏,直接关系到后继专业课程的学习效果。当我们在学习C语言这门课程时,学习的重点是放在对结构化设计思想的理解上,而不是C语言的语法。我们要掌握设计解决一个具体问题的过程,怎样分步骤实施,先做那一步,后做那一步,通过什么样的一个流程控制,来可以解决这个问题。这是C语言这门课程的本质作用。
表3-11 支撑课程信息表
数据结构可以说是编程的灵魂。它不是一门语言,而是给程序开发人员一个开发思路,这门课主要分析编程思想和算法,而且几乎适用于所有开发语言。就好像学习英语一样,学习编程语言让你会说英语,记住很多英语单词,熟悉英语的很多语法。而学习数据结构能让你写出漂亮的英语文章。
那么C语言与数据结构是什么关系呢?一句话:数据结构是思想,C语言是工具,思想需要用工具来具体化。建议参考书籍见表3-12。
表3-12 建议参考书
2.面向对象的程序设计——C#语言
在具体了解C#语言的学习思路之前,我们首先要搞清楚下面三个问题。
(1)为什么学习C#语言。基于.NET平台上有很多语言,比如C#、VB.NET、IronPython、IronRuby等,在国内,IronPython、IronRuby等语言并没有广泛应用,VB.NET是仅次于C#的第二大基于.NET的语言,但是微软只是为了将原来使用VB的程序设计人员平滑的转移到.NET平台下的语言。而C#语言才是微软.NET平台战略力推的开发语言,因此,C#语言是我们学习.NET平台技术必须掌握的一门设计语言。
(2)C#和.NET的关系。大家刚开始学习C#语言的时候,可能会无法区分C#和.NET的关系,实际上,.NET是一个技术平台,在这个技术平台上,有很多开发语言可供选择,而C#只是这个技术平台上的一门语言,就像Windows XP是一个操作系统,而Word只是运行在XP系统上的一个应用程序。随着学习的深入,大家应该能够明白这两者之间的区别。
(3).NET平台版本的选择。基于.NET框架的开发工具是VisualStudio,现在比较常用的版本有:VisualStudio2005、VisualStudio2008、VisualStudio2010等版本,大家会疑惑:究竟选用哪个版本呢?是不是一定要使用最新的版本呢?
实际上,这些版本并没有本质的不同,使用方法都类似,就好比你会用WindowsXP,现在升级到了Windows7,你也只需要经过短暂的熟练会用Windows7一样。不过具体使用时,VisualStudio2010比较消耗系统资源,如果计算机配置较好可以安装VisualStudio2010,如果配置一般则推荐安装VisualStudio2005或者VisualStudio2008。支撑课程见表3-13。
表3-13 相关支撑课程
对C#语言的学习分为两个阶段:
第一阶段为C#面向过程编程。看到这大家会问:“C#不是一门面向对象的语言吗,哪儿来的面向过程编程?”实际上,面向对象的程序设计思想并不是完全用来替代面向过程的开发模式,而是面向过程的一个补充和发展,面向过程的思想就是代码逐行执行,C#面向过程部分,我们主要学习的内容是变量、程序结构、函数,而这部分内容与C语言类似,如果我们C语言学得好,那这部分内容学起来时很轻松的。
第二阶段是C#面向对象基础两部分。这个阶段,我们主要学习面向对象的一些关键语法,包括:怎样声明类、什么是访问级别(主要是public、private)、什么是属性、字段、方法、什么是继承、什么是override就可以。面向对象有三个特性:封装、继承、多态。这个阶段我们要能掌握封装和继承,多态对于初学者来说是非常困难的,我们只要做到了解。在学习的时候,大家一定会感到困惑,很难完全理解面向对象的设计思想,遇到这种情况是正常的,因为如果想深刻的理解面向对象,必须要有大量的编程经验才能真正体会面向对象是怎么回事。参考书籍见表3-14。
表3-14 建议参考书
3.数据库应用设计(以SQL2005为例)
在学习了C#语言后,我们开始学习数据库相关的知识,大家可能会问:“数据库有什么作用?”“为什么要学习数据库?”“应该怎么样学习数据库?”等。
(1)数据库是什么,有什么作用?数据库主要用于管理数据,现实生活中的很多信息都能用数据来表示,例如:和我们自身有关的学生信息,学籍管理,还有,大家在银行的账户信息等都是用大量的数据表示的,如果没有数据库的管理,那么教师查找学生信息或者银行工作人员查找客户信息不仅耽误时间,而且影响效率。
(2)为什么要学习数据库?因为现在的软件开发,包括各种应用系统设计,绝大多数都需要使用数据库,如果不学习数据库,那我们的编程语言的作用将大打折扣,所以,数据库应用设计是我们专业的一门重要的专业核心课程。我们学习数据库,就是了解数据库的基础知识,而且根据自己所学的数据库知识,能够开发一个数据库实例系统,只有学好了基础,才能更好地学习更为重要、核心的技术,才能更好地发展自己。
(3)怎样学习数据库?支撑课程见表3-15。
表3-15 关联支撑课程
学习一共分为三个阶段,用SQL Server 2005来进行教学。
第一阶段是学习SQL Server 2005的安装、配置、管理、数据库表的操作等内容,这部分首先带我们了解SQL Server 2005的使用,做到对工具有一定的了解。
第二阶段主要学习SQL语法,能够掌握常见的SQL语法。尽管数据库管理系统有MSSQLServer、MySQL、Access、Oracle等,但是对于软件开发人员来说差别并不大,因为无论是什么数据库管理系统,都使用统一的操作语言“SQL”,通过SQL这门通用的语言,你可以操作不同的数据库,也就是说,以后在工作中,你可以根据系统的需要自由地选择合适的数据库管理系统。
第三阶段主要学习Select、Insert、Update、Delete等数据操作实例,以及Join、Union、子查询、存储过程等高级部分。建议参考书籍见表3-16。
表3-16 建议参考书
4.WinForm程序设计
在对C#语言和数据库SQL Server 2005有了一定了解后,就可以开始学习WinForm编程了,WinForm是.NET中用来构建Windows窗体应用程序的技术。
目前,B/S结构的开发已经成为主流,但我们首先学习C/S结构的WinForm编程主要是因为和ASP.NET比较起来,学WinForm编程需要掌握的前置知识相对较少,可以较快的入手学习,而如果要学习ASP.NET,则需要先学习HTML、JavaScript、Dom等相关的很多知识。学习应当注意循序渐进,在这个阶段,我们学习重点不是WinForm本身,而是希望通过WinForm开发,学会.NET大量控件的使用、掌握利用ADO.NET操作SQL Server 2005,加深对类、对象、属性、方法、事件等概念的掌握,为进一步学习ASP.NET打下坚实的基础。相关支撑课程见表3-17。支撑该部分内容的课程有两门,都开设在第三学期。
表3-17 相关支撑课程
WinForm编程结合项目进行学习,学习的时候一定要多动手,该部分有两块核心的内容需要我们重点掌握。
(1)掌握常用的.NET Framework类。.NET Framework中的类是.NET中最丰富、最有价值的内容,.NET Framework中的类是和表现层无关的,也就是无论是在WinForm中还是ASP.NET中都可以调用的类,例如把一个字符串转换为整数都是使用Convert.ToInt32这个方法。
.NET Framework非常庞大,我们不可能全部掌握所有的类,在这个阶段,只需要掌握最常用的.NET Framework类,包括:String类、StringBuilder类、输入输出(I/O)类相关的类(FileStream类、File类、Path类)、集合类、XML操作类等。
(2)掌握利用ADO.NET操作数据库。ADO.NET是.NET中用来访问数据库的技术,在学习ADO.NET之前一定要掌握常用的SQL语句,这也就是为什么要开学习WinForm编程之前首先要学习数据库应用与设计这门课。
这阶段的学习主要学习使用SqlConnection、SqlCommand(ExecuteNonQuery、ExecuteReader、ExecuteScalar)等类的使用、参数化查询等,掌握DataSet方式使用离线数据集。参考书籍见表3-18。
表3-18 建议参考书
5.网页设计
在学习ASP.NET之前,一般先要学习HTML、JavaScript、Dom以及软件界面设计等相关的很多知识。这部分内容支撑的相关课程如下表所示,一共有3门课程,这3门课程是我们学习ASP.NET的重要前导课程。支撑课程见表3-19。
表3-19 相关支撑课程
下面分别探讨下这三门课程的学习思路。
(1)课程《HTML+DreamWeaver网页设计》。刚接触HTML语言,大家可能会感觉难以理解,但是一旦熟悉了这种标签式的用法,HTML就变得非常简单了,HTML标签比较多,标签的可用属性更多,作为初学者,只要掌握最常用的标签以及他们的常用属性即可,主要的标签有:p、br、div、font、a、input、img、li、table、select、textarea、span等。刚开始学习HTML的时候一定要坚持手写HTML,在比较熟练后再使用可视化开发工具DreamWeaver来编写HTML页面。HTML学习的一个目标就是能够利用DreamWeaver设计一个静态页面。
当对HTML有了一定了解后,还要学习HTML中一个重要的知识点:CSS。CSS是用来对页面进行美化的描述语言,CSS中有非常多的样式名,不需要掌握这么多样式名,学习的时候只要过一遍,大概知道每个样式名是做什么的就可以。也不需要学习怎么将页面做的看好,不需要研究那些好看的CSS效果到底是什么做出来的,因为那些工作是美工做的事情。初学者只要掌握几种CSS选择器和Div+CSS布局就可以。
(2)课程《客户端动态网页设计》。和ASP.NET后台用C#写代码不一样,对于Web前台页面(即客户端)的动态效果一般使用JavaScript/Jquery来编写,因此需要首先掌握JavaScript语言,因为有C语言和C#语言的基础,因此不用再从头学JavaScript语法,只要学习JavaScript和C语言(或C#语言)相比特有的语法就可以。
在简单了解JavaScript语法后,就可以开始学习Dom编程了,Dom的东西非常多,大家刚开始学习的时候不要纠结于“到底什么是Dom”这个概念,要彻底理解Dom,我们需要通过大量的编程练习才能清楚。在学习Dom的时候,我们主要掌握以下知识点:
事件、动态设置事件、定时器、event对象、getElementById方法、动态创建Dom元素。(www.xing528.com)
大家在学有余力的情况下可自学JQuery,但是在学习JQuery之前,一定要明确一个概念:JQuery不是一门新语言,它只是一个JavaScript的封装库,尽管Jquery语法看起来非常奇怪,但是Jquery确实是完全符合JavaScript语法的一个封装库。Jquery只是对Dom操作的一个封装。学习Jquery一定要有JavaScript和Dom基础。
(3)《软件界面设计》。不管你的软件代码写的是多么规范和高效,对于用户而言,他最关心的是软件的界面是否符合他的要求,如界面是否符合用户的审美观点,是否简洁美观,是否符合用户的使用习惯和尽可能减少用户使用软件的疲劳程度等。软件界面是用户每天要面对的对象,要尽可能提高用户的使用体验和舒适感。一般的原则是:简单明了原则、方便使用原则、用户导向原则、实时帮助原则、色彩舒适原则、平面版式整齐原则。
对于Web页面而言,还有考虑页面的加载量和自适应屏幕大小,另外浏览器的兼容性也需考虑。
常见的软件界面设计工具有:Photoshop、GUI Design Studio、DirectUI、SharePoint Designer、DreamWeaver cs4等。参考书籍见表3-20。
表3-20 建议参考书
6.基于ASP.NET的Web开发
在充分掌握.NET框架、C#语言、数据库应用设计以及网页设计等知识的基础上,接下来就要学习基于ASP.NET的Web应用开发了,该部分内容是软件专业的核心主干内容,支撑课程见表3-21。由下表所示的5门专业核心课程构成,开设学期主要在第四学期(AJAX应用设计放在第5学期)。
表3-21 相关支撑课程
本部分内容我们可以分为如下几个阶段进行学习:
第一阶段,学习ASP.NET表示层技术,会设计Web页面。应掌握如下内容。
(1)掌握常用Web控件的使用。
(2)掌握Cookie、Session等的使用。
(3)理解ASP.NET应用程序与网页的生命周期。
(4)理解request、response等内置对象的用途。
(5)ASP.NET实现事件驱动的内幕。
第二阶段,掌握在ASP.NET中利用ADO.NET访问SQL Server 2005。该部分内容在WinForm编程中已经有所涉及,有之前的基础,掌握就比较容易了,除此以外,我们还要学习数据绑定控件的使用。
第三阶段,理解多层架构。在学习多层架构的时候,我们之前学习的面向对象的思想就十分重要了,现在,网站架构大多采用多层架构:表示层、业务逻辑层、数据存取层以及数据库本身。
第四阶段,学习XML与Web Service。先了解XML的基础知识,找本讲XML的书看一下就差不多了,然后,再学习Web Service。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。
第五阶段,学习AJAX。学习AJAX的主要目的是创建具有更丰富特性的Web表示层,而经过前面几个阶段的学习,到此再学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。
第六阶段,学习RIA技术。RIA(Rich internet application),可看成是将C/S与B/S优点合二为一的尝试。该部分内容可作为拓展内容自主学习。
最后,要指出的是,学习Web开发一定要按照正确的顺序进行学习,千万不要被一些市面上的快速入门书所影响,不学C#、不学.Net Framework、不学Dom,直接上来就学ASP.NET,欲速则不达,速成的结果就是以后浪费更多的时间,回想这么多年你走过的路,有多少次为了走快点就跳着走,最后又浪费时间返工的事情,按照正确的顺序才能更快、更好地掌握.Net。参考书籍见表3-22。
表3-22 建议参考书
7.软件测试
在有了一定的程序编程基础和程序设计实践后,就可以开始学习软件测试了。在学习软件测试时,大家可能会在认识上有一个误区,就是“软件测试应该比较简单,只有从事软件开发的人才是软件高手,而且软件测试出去工资没有软件开发的人高”,果真是这样吗?
造成这种认识的偏差,实际上是由于我国软件整体开发能力比较低,软件过程不规范,大多数软件项目的开发都还停留在“作坊式”阶段。项目的成功往往靠个别全能程序员决定,认为软件开发就是编写代码,所以大家会觉得从事软件开发的才是真正的牛人。在这种环境下,软件测试不受重视,甚至软件测试变得可有可无。
但是,随着市场对软件质量的不断提高,软件测试已经越来越重要,相应的软件测试人员的地位和待遇已经逐渐提高。在比较规范的大公司里,软件测试人员的数量和待遇与软件开发人员一致,优秀测试人员的待遇甚至比程序员还要高。实际上,经验丰富的测试人员很多本身就是程序开发高手,你只有具备了一定的程序设计能力后,才能真正从事软件测试工作,这也是为什么我们这门课开设在第5个学期的原因。支撑课程见表3-23。
表3-23 相关支撑课程
软件测试人员就像万金油,需要各种软件开发技术、测试技术、质量管理、数据库、计算机网络的知识,最好精通一门或多门。软件产品开发的语言和工具很多,不能面面俱到,所以要学会程序设计语言的精髓,像C++、C#、Java等,其实程序设计语言的基本结构是一样的。数据库有MS SQL Server和Oracle、MySQL;计算机网络的TCP/IP协议和LAN组建也是必须的,网络社会的到来要求软件从业人员必须具备网络知识,因为所有的软件产品都趋向于网络环境了。下面介绍如何学习软件测试。
(1)理解软件测试的重点概念,老师在讲解概念或理论的同时,也在不断灌输软件测试的实质,没有理论上的掌握,你就无法理解一个软件产品怎么测试,为什么这么测试,怎么去考虑测试的方法或策略,软件测试术语是怎么引申来的,其实都在启发你的逻辑思维能力;也在不断的讲授和上机练习中体验软件测试的流程,软件测试的过程,由无形到有形,从无序的知识点到有序的系统的知识体系。很多东西是要由讲师潜移默化把他的经验传递给学生。如果都是自己看书能看明白的,那也不需要开设这门课了。
(2)学会统筹兼顾的思想,做测试工作不是一个孤立、片面的工作,目前的软件开发与软件测试往往需要大量的人力来协同工作,每个人的工作都是必不可少的一部分,所以需要在全局上把握,要站在项目管理的层面上,从时间上、成本上、效率上、人员分工上、测试团队的能力上、风险上等诸多方面来统筹考虑。
(3)多上机实践,从软件测试实践中总结出测试理论,再用测试理论去指导实践,这是个循环往复的过程,只有当你的认识达到一定的高度,你就深刻理解了什么是软件测试,你才会发现原来软件测试是那么的有意思、那么有动力、那么具有挑战性。软件测试技术到目前为止,还是一门新兴学科,还没有形成固定的理论体系,还需要很多人的努力。参考书籍见表3-24。
表3-24 建议参考书
8.软件项目管理
软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止。支撑课程见表3-25。
表3-25 相关支撑课程
对于软件项目管理这门课程,我们应该按照3个阶段去学习和掌握:
第一个阶段:掌握软件项目管理的核心知识;
第二个阶段:掌握软件项目管理工具的使用,最典型的是Microsoft Project 2003工具的使用;
第三个阶段:运用软件项目管理的基本概念和基本方法,结合管理工具的使用,完成和管理一个特定的软件项目。
我们学习这门课的目的是带大家了解软件项目管理的一些必备知识,要真正的能成为一个项目管理人员,我们还需要不断的磨炼自己各方面的能力。参考书籍见表3-26。
表3-26 建议参考书
9.专业知识拓展
在学习完软件项目管理这部分内容时,前面已经学习了从事.NET方向软件开发的绝大多数课程了,但是也必须认识到当同学们从事软件开发时,只掌握一门软件开发技术还是不够的,在企业里,有的项目可能使用.NET去开发,而有的项目可能指定要求使用Java去开发,所以必须能够适应这样的情况,据此,在第四、第五学期分别开设了两门Java课程,带领大家去了解Java,为大家打下一个基础。
目前物联网技术及应用在我们国家得到了飞速的发展,也是IT领域的一个热点问题,作为计算机专业的学生,一定要关注新技术、新应用的发展,这样才能紧跟时代的步伐,不至于被淘汰。所以根据需要,本专业开设了《物联网技术应用》这门课,来向大家介绍物联网技术应用的一些新热点。支撑课程见表3-27。
表3-27 相关支撑课程
对于《物联网技术应用》这门课,做到基本了解就可以了,因为物联网是一门跨专业、跨学科的学科,要完全掌握是很难的。《Java语言程序设计》这门课的学习方法和《C#语言程序设计》这门课比较类似,两门语言都是完全面向对象的程序设计语言,在学习的时候,我们一定要注意比较两门语言的异同,而不能被这两门语言混淆。《JSP网页设计实践》这门课主要是J2EE WEB应用开发的相关知识点(如HTTP协议、Servlet、JSP等)的综合运用的课程,适用于计算机网络和软件专业。要求学生熟练运用HTTP协议、Servlet和JSP进行开发,通过简单Web应用项目开发来提高实战和Team等方面的能力。参考书籍见表3-28。
表3-28 建议参考书
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。