1、
计算机专业毕业生的软件行业就业发展之路
摘要:本文分析了当前软件行业的发展前景以及对人才的需求,同时也分析了软件行业有哪些计算机专业毕业生可以选择的工作。
关键词
本文来自:计算机毕业网 :软件行业;IT;就业
近几年来,面对社会再就业和高校毕业生就业的巨大压力和剧烈竞争,计算机专业毕业生的就业优势不断下降,就业难度不断增加。一个比较普遍的现象是,学生就业的单位层次和待遇在不断降低。那么计算机专业毕业生应如何选择自己的就业方向呢?根据现有的就业情况看最好的就是软件相关方面,毕业生的起薪48%
2、在1500元以上(见下图),远远高于其他专业。
1软件行业对人才的需求
据介绍,计算机软件行业是目前的热门行业。2007年我国的软件产业增长率依然保持在30%以上。据招聘网站的统计,其相关职业单月发布数量达数十万,申请数量达到百万级。计算机软件领域是一个包括系统软件、Linux应
用、中间件软件、嵌入式软件、数据库软件、财务及企业管理软件、教育软件、游戏软件、语音应用软件等在内的复杂的集合体。随着计算机深入各行各业,在大大提高效率的同时,也在深刻影响着人们的生活。计算机的深入应用离不开软件,软件产业将成为21世纪拥有最大产业规模和最具广阔前
3、景的新兴产业。
从2007年的招聘情况看,软件工程师、软件测试工程师、网络系统工程师、咨询工程师等都有很多招聘职位,人才需求很大。尤其是软件测试工程师,继2006年的短缺之后,2007年仍然有很大的人才缺口,很多软件测试工程师都享受着地位和薪水的双高待遇。企业招聘人数很多,而且更青睐有经验的应聘人群。软件行业中从事计算机和网络技术类工作的人员比重优势很明显,占到了从业人员总数的四成左右。从事销售类和软件工程师职位的人也较多。专家指出,中国的IT队伍存在严重的结构失衡,既缺乏高级IT人才,也缺乏技能型、应用型信息技术人才,以及一大批能从事基础性工作的技术人员。中国软件人才的“金字塔”型
4、合理结构并未实现,软件产业健康、快速发展需要三类人才:既懂技术又懂管理的高级项目管理人员、系统分析及软件测试人员、熟练的程序员,这三类由高到低的人才结构并未呈金字塔型。在软件行业,具有3000元以上月工资的人员比例接近50%。
2全球软件发展总体概况
(1) 全球软件产业保持平稳增长。
(2) 各国形成自身特质发展。
美国:占据软件产业最上游:基础软件、产品标准、高端产品。
日本:大企业需求、大企业应用。
爱尔兰:软件产品本地化。
印度:软件出口外包。
韩国:数字内容、网游。
中国
5、国内信息化巨大需求、未来将影响软件产业分工的重要因素。
(3) 中国软件产业呈现以内需拉动型的增长模式。
这样看来,软件开发的确是计算机专业毕业生的好职业,那么如何成为软件工作者,如何发展呢?
3目前软件工作现状
软件行业提供了许多就业机会。能熟练使用办公软件,如Office,Excel等等,会一点编程,你最起码可以做一个办公白领。熟悉网络的话,可以做企事业单位的网管、网络维护、建网站等工作。能熟练使用C++编程,熟悉操作系统,可以成为专职程序员,熟悉底层软件还可以成为系统工程师。能熟练使用JAVA,可以处理面向对象的企业型的应
6、用开发,公司企业Web页面设计、Internet可视化软件开发及动画等,Web服务器手机上的JAVA游戏开发等等。熟悉Linux,完全可以在Linux世界里自由竞争,你只需要一台电脑连上Internet以及一个好的头脑就足够了。你的Linux战友们将会根据你的意见、你的代码和你的其他贡献来判断你的能力,不愁找不到工作。能熟练使用Protel,可以找设计电路板方面的工作,如设计PC机板卡等等。单片机熟练,可以找单片机开发编程应用方面的工作。小企业,小产品多多,其中也自有一番乐趣。对DSP有一定基础的话,可以在人工智能、模式识别、图像处理或者数据采集、神经网络等领域谋求一个职位。熟悉ARM,可以成
7、为便携式通信产品、手持运算、多媒体和嵌入式解决方案等领域里的一名产品研发工程师。熟悉EDA,能熟练应用HDL语言,熟悉各种算法,如FIR、FFT、CPU等等,同时掌握最新FPGA/CPLD器件的应用,把研制的自主知识产权的模块用于ASIC。
此外,我国软件开发工程师与测试工程师岗位比例为6∶1,远远低于国际水平。预计在未来10年内,我国IT企业对软件测试人才的需求还将继续增大。在谈及测试人员的薪酬待遇时,企业方介绍“目前大多数公司给软件测试人员提供了双轨制的培训和广阔的发展平台。薪金方面也比较丰厚,具有一定经验的测试人员的薪水在5千到8千不等”。前程无忧2006年的薪酬报告显示,软件
8、测试工程师在IT行业中越来越受到重视,其薪资也节节高升。初级软件测试工程师的起薪从2000至5000元/月不等,若有三年工作经验的话,薪资在8000元/月左右,具体视不同地域、不同性质企业、测试工程师的不同能力而定。以3.5年左右从业经验的软件测试工程师各地薪资情况来看,北京地区该职位的平均年薪逾5.8万元,其中外商独资企业的年薪为全国之最,将近8.5万元,而其余各类型企业的年薪都在5万至6万元。上海地区软件测试工程师的平均年薪为6.3万元,欧美独资和欧美合资企业的薪资不相上下,分别为7.9万和7.7万元。以上种种迹象表明,软件测试工作已成为IT职场上炙手可热的新“黄金职业”。
在今
9、年北京国展招聘会上,国家软件出口基地北京软件出口中心人力资源负责人介绍,本次参与招聘的企业将主要对软件测试工程师、J2EE高级软件开发工程师、JAVA开发工程师等岗位展开招聘;由于测试工程师等人才极其紧缺,大多企业都比较急,甚至有些企业像金山、联信永益等就直接打出“高薪急聘”字眼。也就是说计算机毕业生在软件行业中就业面临巨大压力的同时,也有很多前所未有的机会和挑战。
4软件工作者如何发展
软件行业的门槛相对较低。初级的开发者很多,这些开发者大多从事最上层的基本开发,基本知识相对薄弱,几乎没有经验和系统思维,而且成长的空间也不大。在成长的初期,即软件工
10、程师和高级工程这个阶段,是成长的关键。在软件工程师阶段,如果走不到高级工程师就只能转变角色去其他的领域生存,实际上就大学毕业生而言,最终成为高级开发工程师的并不多,大概有10:1的比例。大多数在初级工程师到高级工程师这个过程中选择了其他的发展方向,有一部分工作了数年依然是初级工程师的,很多时候感觉他们选择这个行业是完全错误的。在高级工程师阶段,如果继续发展自己的技术能力走技术路线,可能成为系统架构师、分析师、资深技术专家。如果具备一定的领导能力,则可能成为团队的领导者,甚至成为一个软件开发企业的CTO。也就是说,要想在软件开发的道路上走下去,就必须先成为高级开发工程师。
要成为系统开
11、发者、专业开发者、高级应用开发者,需要很高的专业知识和很强的逻辑、抽象、空间思维能力,这就要求从业人员具有很好的基础,同时具有较大的提升潜力。而要成为简单开发者和初级应用开发者相对容易,因而使很多人走上了软件开发的道路。初级开发者在发展的过程中很容易遇到障碍,能否跨过这个障碍成长为高级开发者就需要扎实的软件理论基础,较强的思维能力,努力的学习态度。由此可见,软件开发者的路是很不好走的。成为入门级的开发者相对容易,但是普通的开发者基本过了30岁就很难找到满意的工作了,如果没有成为高级开发者继而走上正确道路的能力和决心,在选择软件开发行业的时候一定要慎重!对于在技术路线上苦苦摸索的人来说,与其苦苦
12、追寻,不如发挥自己的特长另辟蹊径;对于适合技术路线的人,一定要规划好自己的技术方向,努力提升自己的各方面能力,营造良好的人事环境,争取自己最大的发展空间。
参考文献:
本文出自: 计算机毕业网
[1] 刘杰. IT职业教育报告[EB/OL]. .
[2] 周兴龙. 人才的素质与培养[M]. 南京大学出版社,2004.
13、>
摘要:本文从分析目前数据库系统教学的缺陷出发,提出了概念教学的重要性,探讨了课程设计在数据库系统课程中的重要地位及传统考试方式的改革。14、进。大部分院校都将数据库应用作为一门独立的课程开设,开设Visual FoxPro、Delphi、SQL Server等。综合考虑,数据库系统课程开设存在一些共同的缺陷。
1.1重视理论教学,轻视数据库设计
在教学时,多数教师重点偏向理论教学,对数据建模、关系数据库、数据查询语言核心内容用大量的时间讲授,而对于数据库设计则用很少的时间,很少向学生介绍具体的数据库使用技术,使学生不能将所学知识融会贯通,不知道如何将所学理论与实际结合。致使部分学生对数据库系统课程失去应有的兴趣,学生不能掌握课程的实质,达不到应有的目标。
1.2对实践教学环节重视不够
目前实
15、验课教学存在很多弊端,例如学生不明确实验目的,实验内容不清楚,考核中实验课也没有一定的比例等,使得实验流于形式,既花费了时间又没有起到应有的作用。
1.3课程内容相互独立,忽视知识间的联系
数据库系统中,各章之间联系相对紧密,有些概念在不同的章节中重复出现,但这些概念都是由浅入深,逐步完善,知识点也是相互交错。教师讲授时,有时忽视这些知识间的联系,将问题单一化,不利于学生知识的掌握。例如在关系数据理论中,在讲授将关系分解为保持函数依赖的第三范式并具有联接无损性的算法时,要求在求出极小集后,将函数依赖按左部相同的合并,并将每一组依赖作为一个分解。在讲授数据库设计时,在逻辑结构
16、设计时,要求实体之间的一对一关系,可以将两个实体的码组成一个关系也可以与任意一端的关系合并,对一对多关系,可以将两个实体的码组成一个关系也可以与将一端关系的码与一端关系合并,同时强调具有相同码的关系可以合并。实际上,模式分解理论与逻辑结构设计的转换规则是相同的;在模式分解中,函数依赖的左边属性一定是关系的码,而在逻辑结构设计时,一对一或者一对多的关系也是将被决定属性合并到决定属性(码)所在的中关系中。
1.4考核模式单一,不利于学生能力的发挥
传统的考试模式通常以期终一张试卷作为学生的最终评分依据,造成学生为考试过关而学,死记硬背一些概念、规则方法,而不能提高学生自身能力,
17、教师仅为完成教学任务而教,并不注重培养学生的能力。
2教学改革的方法及措施
2.1注重基本概念教学
在数据库课程的教学中,掌握好基本概念对理论课程的学习很有帮助,数据库中的有些概念贯穿在课程的始终,这些概念的掌握对整个课程的学习有很重要的作用。如数据库、数据库系统、关系、元组、实体、属性、事务、完整性约束等。有的概念联系比较紧密,弄清概念之间的联系与区别,对概念的掌握有较大帮助。如实体和属性的概念,实体是客观存在并可以相互区别的事物,属性是对实体特征的描述,它们之间有必然的区别,但是也有一定的关系。实体和属性不是绝对的,如果属性需要进一步描
18、述,则属性就作为实体,反之如果实体不需要再进一步描述,则实体也可以作为另一实体的属性。如在考虑学生管理数据库时,政治面貌如果只考虑现在的情况(党员、团员等),则政治面貌就是学生实体的属性,但是如果考虑学生何时入团、何时入党,则政治面貌就是一个实体。再如事务和程序的概念等都有较强的联系。
另外,数据库中的概念由渐入深,随着课程教学内容的逐渐深入一些基本概念也更加具体和完善。例如在课程中,有四个地方都定义了码,在介绍概念模型时,码定义为:唯一标识实体的属性集。在研究关系模型时,码定义为:表中的某个属性组,它可以唯一确定一个元组。给出了码的粗略描述,没有实质性的量化定义。而在关系数据库中,
19、讲授关系的形式化定义时,码定义为:若关系中某一属性组的值能唯一的标识一个元组,则称该属性组为候选码,若一个关系有多个候选码,则选中一个为主码。在讲授规范化理论时,学习了函数依赖后,利用函数依赖的概念定义码为:设K为R中的属性或者属性组合,若K→U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。从理论上来说,这四个概念都是正确的,但一个比一个更具体、更严密、更准确。
同样在对函数依赖讲授时也采用了同样的手法,在关系数据理论中函数依赖定义为:设R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值
20、相等,而在Y上的属性值不等,则称X函数确定Y或者Y函数依赖于X,记作X→Y。为了便于Armstrong公理的证明,对函数依赖又给出了定量的描述。定义为:若对于R(U)的任意一个可能的关系r,t和s是r的任意两个元组,X、Y是U的子集,若对于任意一个t[X]=s[X],必然有t[Y]=s[Y],则称X函数确定Y或者Y函数依赖于X,记作X→Y。教师要讲清楚对同一概念为什么这样处理,这些概念层层的描述有什么好处。掌握了同一概念的不同定义,便于对这些概念的深入理解。
2.2注重理论与实践的结合
学习数据库课程的主要目的是为了应用,结合所学的数据库语言搞好每一章的课程实验,以便验证所
21、学理论是很重要的。如在讲授SQL语言时,让学生建立一个数据库,并结合所学内容做查询、插入、删除、修改等实际操作,真正理解和掌握SQL语言的应用环境。在讲授数据库安全性和完整性时,利用实际系统让学生对系统做数据控制。提高学生对数据库课程的认识,激发学生的学习欲望。
2.3加强课程设计,提高学生综合能力
数据库设计理论主要是为了指导数据库实践,通过系统的理论学习和部分单元训练,通过课程设计让学生掌握数据库设计的全过程,并进一步掌握数据库课程。课程设计是数据库中必不可少的,我采取将学生分组的方式每5~6名同学一组,为每组同学拟定一个题目,如图书管理系统、学生档案管理系统、销售管理
22、系统、能源管理系统等,教师提出要求让学生深入图书馆、学生管理部门或者企业进行系统调查,进行需求分析设计出数据流图,编写数据字典,然后进行概念结构设计,从数据流图和数据字典中提炼出E-R图,再进行逻辑结构设计、物理结构设计、数据库实施和维护的设计。让每一位同学明确数据库设计的过程,使每一组同学进行上机调试,使所有功能进行程序实现,最后让同学们进行设计答辩。
通过课程设计和设计答辩,学生巩固了理论知识,丰富了课程实践,掌握了如何运用理论指导实践,突出了学生在教学中的中心地位,发挥学生的主观能动性。这样既使学生掌握了数据库设计的理论又使学生学习了系统设计的方法,既提高学生程序设计能力又锻炼
23、了学生的协作能力,也为学生今后撰写毕业论文(设计)打下了坚实的基础。
2.4扩展学生思路,向学生传授新知识
由于课本的出版周期长,更新也较慢,也由于课本编写的一些要求,所以课本上有些内容是陈旧的,对有些问题也不可能全面的介绍,有些新知识也很难溶入到教材中。我在讲授课程时,除了给学生有意补充新知识外,又给学生开设了“数据库中的空值问题”、“数据仓库和数据挖掘技术”、“目前数据库的研究方向”、“数据库的查询优化问题”等专题讲座。扩充了学生的视野,激发了学生的学习兴趣,为他们今后的学习和研究打下了一定的基础。
2.5改革考试模式,注重学生能力的提高
试卷考试主
24、要考查数据基础理论知识,同时将平时成绩和上机实习成绩尤其是数据库课程设计的成绩纳入最终成绩中,使平时成绩占30%-40%,降低期末考试的分数,让学生用更多的时间投入到平时的学习中。
3结束语
数据库系统课程是计算机专业的核心课程,随着计算机科学的发展,数据库系统原理课程也在不断的发展,教学内容不断更新,教学方法也在不断改革,所以课程教学改革是一个永恒的课题。只有不断的改革教学方法和教学手段,才能使教学更加丰富,使学生学到更多的知识。
参 考 文 献
本文出自:计算机毕业网 欢迎转载
[1] 王珊,萨师煊.
25、数据库系统概论(第四版)[M]. 北京:高等教育出版社,2006.
[2] 孟小峰,王珊等译. 数据库系统导论(第七版)[M]. 北京:机械工业出版社,2000.
[3] 陈红编著. 数据库原理与应用(第2版)[M]. 北京:高等教育出版社,2007.
[4] 陈树平等. 数据库系统原理课程教学方法研究[J]. 电脑知识与技术,2007,(3).
26、
项目背景:为帮助高校讲述最新业界技术等,依靠高校现有师资力量难以在短期内开设的课程,微软亚洲研究院的员工组成教学团队,直接参与授课。微软员工义务授课的课程,由双方联合制定教学计划,微软公司员工负责完成课件制作和讲授,而学校相关教师作为教学协调人,全程跟踪课程,参与课程设计和实验指导。
27、员较少,而且主要力量集中在数据管理方向上。但是,在这样的格局下,如何拓展学生的知识面,使得他们在中国人民大学也能够接受到一流的教育一直是我们面临的问题。引进外援,就成为必然的选择。早在上个世纪八十年代,杨芙清院士、王阳元院士等就给我院研究生上过课 。我在人大念书时的高级操作系统课程是由中国科学院的张尤腊、陆维明等大家上的,至今印象深刻。因此,邀请专家来学院开设课程在我们学院是有传统的。
我们与微软亚洲研究院马维英副院长、文继荣主任研究员带队的互联网搜索与挖掘组有过多次接触。2006年底在FDM2006研讨会上,马维英、文继荣、聂再清三位研究员作了三场学术报告,他们的工作代表了未来搜索
28、技术的发展方向,也实实在在地让我们看到了数据库技术在其中的作用。为了加强与微软亚洲研究院的合作,我们报经学校同意,聘请文继荣博士为中国人民大学兼职教授。2007年9月27日,我们和微软亚洲研究院联合举办了一次“互联网数据管理主题学术报告”的活动,由文继荣、刘铁岩、聂再清三位博士作主题演讲,同学们反映热烈。就是在这次会上,文继荣介绍了他们在清华大学等高校给学生们开设搜索技术课程的情况,于是我们萌生了将这门课程完整介绍到人大的想法。当我将这个想法和继荣商量,他也正有此意,于是我们一拍即合。
策划
尽管将搜索课程引进人大的意向已经确定了,但是还有一些需要解
29、决的事情。
首先是经费,给授课人报酬是很正常的事情。我担心按照人大官方的标准是否能承受得了有关费用,当我有些不安地询问继荣有关费用的时候,他明确地告诉我,他们给大学上课并不收费。不仅不收取任何费用,去外地上课的飞机票还是他们自己掏的。听到这样的消息,我感到很吃惊。我想这也许就是微软之所以强大的文化力量,也是他们尽管在市场上不断受到挑战,但是始终得到人们尊敬的重要原因吧。
其次是课程设计。微软的课程已经在其他学校和各种场合实施过多次,自成体系。虽然整个课程是以讲座的形式出现,每个人有不同的授课内容,但总的来说,还是比较系统和全面地涵盖了IR(Information Retri
30、eval)技术的各个重点和基本内容。由于授课对象主要是硕士一年级的学生,对于信息检索技术的一些基础知识并不一定了解,作为一门课程,既要让同学们了解最新的进展,更重要的是要让同学们掌握基础概念和理论体系。另外,讲座之间内容的交叉和重复也是要极力避免的。所以我希望能够合作开设,由我根据人大的具体情况进行内容的选择。对此,微软表现出极大的诚意,也很认同。在高校关系部陈雯的协调下,作为课程设计所需要的材料,微软方面都及时地提供给了我。最后确定了课程的教学方案,课程以我和文继荣共同主持的方式确定下来,相关课程信息得以及时在学校研究生院的网站上发布(见表1)。
第三是教学目的。考虑
31、到这是一门两个学分的选修课,经过与继荣的多次讨论确定这门课的教学目标是:掌握信息检索的基础知识,通过对信息搜索技术的前瞻性课题的介绍,使学生能对信息搜索技术和应用有一个初步的了解,激发学生进一步探索的兴趣。正如我在开班仪式上所说的,希望通过这种合作开设课程的形式为信息学院的学生带来国际领先的研究成果和研究理念,感受学者追求真理乐在其中的精神境界。
最后是教学过程。教学不仅仅是讲课,除了课堂讲解还有其他的教学环节,还要求有固定的时间和场地。比如作业、练习、考试、课程报告等。考虑到这门课程的特殊性,最后确定要求同学们按照论文的方式完成课程报告,微软的研究员们主动提出来承担批改部分课程报告
32、的任务。
这样,作为一门课程的基本要求就具备了,等新年一过就可以鸣锣开课了。
实施
2008年2月15日,元宵节的晚上,由马维英博士主讲第一讲“互联网信息搜索:历史与未来”。马博士比规定的上课时间晚到了半小时,原因是司机想当然地以为马博士是要去北大,等到了北大才发现错了,于是再掉头往回赶。也许是这个原因,马博士觉得对不起同学们,当天的演讲他特别卖劲,慷慨激昂。窗外连绵不断的鞭炮声,就像是掌声,在为马博士热情的演讲鼓掌,也像是庆祝的礼炮,预祝我们与微软的合作成功。这样的结果也让我从开始有些郁闷的心情中高兴起来。
后面的三讲由我来讲解
33、主要是分两类模型来介绍。一是基于文本内容的模型,包括经典的布尔模型,向量空间模型和概率模型等,也包括统计语言模型,语义网络模型等。另一类称为与内容无关的模型,包括协同推荐模型、Page Ranking模型、Link Analysis模型等。
第五讲,宋睿华博士介绍一种在信息检索中被广泛应用的评价方法Cranfield范式,以及其他一些常用的评价方法,如MAP和NDCGweb等。她还介绍了检索所面对的新挑战,通过SIGIR'07的一篇论文展示了如何在信息检索评价领域开展研究。
第六讲,李航博士介绍了互联网信息检索基础和主要课题,包括相关性排序、重要性排序、网页理解、查询理解
34、抓取、索引、反垃圾、搜索结果展现以及搜索日志数据挖掘等。
第七讲,张磊博士介绍互联网图像搜索。在回顾了图像搜索的历史后,介绍了传统的基于内容的图像检索的一些基本技术,包括特征抽取,相关回馈以及图像标注,讨论了Web图像检索的主要挑战,包括如何改善搜索结果相关度、质量以及结果的组织形式,同时介绍了微软亚洲研究院在该领域的几项相关工作。
第八讲,刘铁岩博士主讲链接分析技术和网页排名欺诈,主要讨论超链如何影响搜索引擎中的网页排名。介绍了链接分析的一些最新的工作如Topical Page Rank,基于层次的链接分析,同时介绍了Web垃圾制造者是如何欺诈这些算法以提升他们网站的排
35、名,典型的欺诈技术包括链接交换,链接场等。最后对检测和清除链接垃圾的算法,如Trust Rank和Temporal Spam Detector进行了讲解和评述。
第九讲,刘铁岩博士提出了将排序作为机器学习问题的新思路。在评价了信息检索中的一些传统模型(如布尔模型、Okapi模型以及语言模型等)后,介绍了应用机器学习技术来训练模型以及将排序转换为分类和回归而提出的方法,如Ranking SVM,RankBoost和 RankNet。介绍了近年来基于对排序和信息检索问题的深入理解而提出的一些新算法,如ListNet,AdaRank,SoftRank, SVM-MAP等,并讨论了该领域的未
36、来研究方向。
第十讲,由史树明博士介绍信息检索领域近年出现的一些特殊的模型,包括逻辑模型、基于引力的模型等。
第十一讲,聂再清博士介绍对象级别的互联网搜索。他首先介绍了对象级别搜索引擎所要解决的问题,包括大规模的Web分类,对象级别信息抽取,对象识别与集成,以及对象关联挖掘与排序。然后演示了三个已经实现并实际运行的系统实例:Libra 学术搜索、Windows Live产品搜索, 以及Renlifang社会关系搜索,并概要介绍了这些系统中所用到的一些核心技术。
37、
第十二讲,文继荣博士主讲搜索引擎综述:系统、算法和挑战。概述了当前的Web搜索引擎技术,包括搜索引擎的架构,主要的组件和算法,对搜索引擎的一些错误认识进行了分析并讨论了未来主要的研究挑战。
第十三讲,谢幸博士带给我们的是关于移动搜索与基于位置的搜索。他介绍了移动搜索领域的研究近况,其中包括微软亚洲研究院研发的一些用来改善移动搜索和浏览体验的新技术。
第十四讲,李航博士再次来到人大,介绍信息抽取技术。首先介绍了信息抽取的一些方法,包括隐马尔科夫模型、最大熵模型,
38、以及条件随机场;然后给出了一个实例说明了如何在Web搜索中应用信息抽取技术。
细心的读者也许已经发现了实施的内容和计划有一些出入。微软研究院的研究员们毕竟是在工作之余在大学授课,难免受到一些工作临时安排的影响,所以,不可避免会有些变动,好在我们在课程设计的时候就有所准备,并不影响整体的教学效果。由于上课时间的关系,研究员们每次都是提前半小时到达教室,空着肚子来上课的。教师需要的正是对学生的这份感情。
反馈
同学们对这门课的评价如何呢,我们来听听同学们的声音。
一位四年级的同学这样写道:“作为一个大四本科生,我全程旁听了‘智能信息检
39、索’这门课程。这个课程好就好在不同知识层次的人都能从课程中学到知识,无论你是博士、硕士,还是本科生。这门课有对基础问题的超强归纳与总结,也有对热点问题的全新解读与展望,内容深入浅出,论述详实透彻。授课风格或风趣幽默,或朴实深刻,每一堂都令人流连忘返,不舍归去。‘智能信息检索’课程中还能听到极其新奇的理论,类似万有引力的信息检索模型令在座的每一个人咋舌,原来信息检索还可以这么玩……”
一位硕士生则在他的课程报告中总结到:“这个课程最大的收获,是开拓了我的视野,让我对很多搜索方面的课题看得更加清晰。这门课程也许会为我未来的职业发展带来无穷的益处。”
一位同学这样评价:“微软的研
40、究员们个个身怀绝技,上课风格各异。令人印象最深刻的是他们乐观向上的科研态度,真正让人体会到了知识探索是一件多么令人愉快的事情。从第一次马维英院长的精彩演讲,到文继荣博士、刘铁岩博士的深邃严谨,还有宋睿华研究员的敬业,李航博士的幽默等都给我们留下了难忘的回忆。”如果这门课能让
摘要:“程序设计”课程是计算机专业重要的基础课程,本文针对学生群体特点从课堂教学和实验环节两方面进行改革,抓住知识主线进行循环教学、注重实践能力培养的教学方法收到了很好的教学效果。实践表明,教学改革在提高教学质量、培养学生编程能力方面都是有效的。
关键词:
41、程序设计;教学方法;教学改革;循环教学;编程能力
“程序设计”课程作为计算机专业教育重要的基础课程,是“数据结构”、“操作系统”等后续专业课程的先行课,学生对这门课程的掌握程度直接影响到他们对整个计算机专业知识体系的掌握程度。我国教育部计算机教学指导委员会在“高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)”中明确把“程序设计”列入计算机和信息技术相关学科专业的本科必修专业基础课程[1],美国的ACM和IEEE的Computing Curricula 2005也把“程序设计”列为计算机专业本科必修课[2]。对任课教师来说,如何教好如此重要的一门课程是件值得思
42、考的事情。
云南大学信息学院承担计算机和信息技术方面的教
学和科研工作,每年招收超过300人的本科生到学院就读。在这些学生当中,约90%来自云南本省,而其中的70%又来自经济和文化相对落后的地州各县及农村地区,还有的来自少数民族边远地区。即使是现在,这些学生在中学阶段仍然没有条件体验现代信息技术普及所带来的好处,缺少从小接受计算机文化耳濡目染的机会,缺乏计算机的基本操作,更不用说编程的经历。大部分学生共有的特点是英语和计算机基础底子薄。因此,要提高教学质量,必须考虑学生群体的特点。另一方面,“程序设计”作为基础课,设置在大学一年级,学生刚刚经历了紧张的高中学习,初进
43、大学的学习状态普遍不佳。在这样的条件下,按常规教学方法开展“程序设计”教育难以取得理想的效果。
为了提高“程序设计”课程的教学质量,达到知识和能力的联合培养目标,我校奉行因材施教的人才培养宗旨,对常规的教学方法进行改革,针对学生群体特点开展有效的“程序设计”课程教学活动,以便帮助学生顺利完成第一门编程课的学习,为后续专业课程的学习打好扎实的基础。本文从以下几个方面对这门课程的教改实践做一简要介绍。
1课堂教学的改革
在教学过程中,针对学生特点,首先从教学内容的选取和教学方法两方面进行教学改革。
1.1适当取舍讲授内容
“程序设计”课程的学习语言
44、是C语言,大多数教材内容是按照C语言的基本语法规则和知识点编排,这种教材的优点是内容详尽全面、讲授细致,但也有一个明显的负面效果,就是学生在使用教材的过程中,很容易陷入枯燥的语法泥潭,进而失去了学习的兴致。另外,书中的例子通常是与章节对应,较少有综合的示例,也缺少对问题的分析、抽象以及算法的注解。
为了抓住知识主线,激发学生的学习兴趣,培养学生的综合解题能力,对课堂讲授内容进行适当的取舍,与其将所有内容通讲,不如精选部分内容精讲,让学生牢固掌握这些知识,打好编程的基础。不过仍然要求学生在学期后段掌握未讲到的一部分语法细节,这部分内容由学生在上机实践过程中去认识。比如,课堂讲授一维数组
45、的内容,但不讲字符数组的内容,待学生把一维数组理解得清清楚楚后,二者的共同点和不同点在实验课上通过演示和学习示例程序得到理解,效果比在课堂上全部讲授好得多。这种做法能够在较短的时间里给学生铺垫一层编程基础知识,避免花费时间和精力达不到预期教学效果的局面,也促使学生在学习时变被动为主动。
1.2循环教学方法
逐章讲授的方法的弊端是学生容易学了后面忘前面,也很难让初次接触程序设计的学生建立起全面、完整的概念,还容易造成语法学习与编程脱节的现象。为了打破这种传统教学方法所带来的问题,我校大胆采用“循环教学”的方法,分两个阶段实施“程序设计”的教学内容。
第一个阶段是打基
46、础阶段。其目的是消除学生的编程陌生感和畏难心理,掌握C语言的基本语法,掌握程序设计的基本概念和思维方式,为后续部份的深入学习打下基础。这一阶段占用9周时间,主要内容包括程序设计初步,即常用数据类型、常量与变量、表达式、输入和输出、选择结构、循环控制、穷举、函数的传值调用、一维数组,以及指针和文件的基本概念和编程。除了部分章节,几乎涉及到教材的所有内容。这个阶段包含期中考试,通常期中考试的书面考核由概念题和一道编程大题组成,其中编程大题用于考核运用数组、选择和循环等重要知识点的综合编程能力。 第二个阶段是提高阶段。在期中考之后,学生已经基本掌握了C语言重点知识,并具备初步的编程能力,这时,开始进
47、行第二阶段的学习,其目的是学习和掌握C语言较难的知识点、经典算法以及编程的高级技巧,建立起程序设计的思维习惯。这个阶段同样使用9周时间,但学习内容的深度和广度不同,主要内容有递归、二维数组、指针的运用、文件操作等。此外,根据学生情况决定是否讲授回溯、结构体等难点内容。
2实践能力的培养
实践能力包括两个含义,一个含义是指编程动手能力,这种能力是教学的主要培养目标,在整个教学环节中占有十分重要的地位。教育部计算机教指委的“高等学校计算机科学与技术专业实践教学体系与规范”中明确强调学生动手能力培养的重要性[3]。另一个含义是指计算机专业的学生与时俱进的能力,即主动了解现代社会计
48、算机技术应用状况的能力。在这样的指导思想下,针对学生群体特点,通过三个途径有目的地培养学生的实践能力。
2.1上机环节
上机实验是程序设计必不可少的教学环节,一般安排从第3周开始,但在正式上机开课之前,针对那些进大学以前没有或很少接触计算机的学生,按学生的自愿原则,通常会安排专门的2~4小时的计算机操作补习。在前2周课堂讲授结束后,可以从验证性的实验开始启动实验课。实验课应该是一个更生动的教学环境,因此实验辅导员和任课教师都到场指导,课上随时讲解共性的错误。随着知识的增加,上机题目也逐步从考查单一的知识点到考查多个知识点,到考查学生运用经典算法的综合编程能力。特别是在第9周
49、以后即第二阶段的学习期间,上机主要训练学生的综合编程能力。每个学期的正式上机课持续16周,每次2小时,共32个学时。为了能让学生在课外也能有充裕的上机时间,鼓励学生办卡到公共机房上机调程序。
2.2程序阅读和练写
在思考如何教好一门程序设计语言的过程中,我们从人类学习自然语言的方法得到启迪。每个人从小学习母语,都是先学会如何用,然后才是语法的分析[4]。借鉴这样的思路,在教学过程中,经常有意识地体现程序先入为主的思想,但在两个阶段的学习中有所侧重。在学习的第一阶段,先讲基本概念和语法规则,紧接着提供示例程序进行讲解,以使学生从视觉到思维对程序产生熟悉感。在讲解过程中,除了解释语法的运用外,还注重分析问题、抽象问题、抽象数据的能力的培养。编程风格也是学习的重点,从变量命名习惯到注释语句的书写,以及程序的结构,都在阅读程序过程中加以强调,以培养学生良好的编程风格和慎密的编程习惯。此外,经常在课堂上随堂练写小程序,并鼓励学生上机调试。
第二个学习阶段,在讲新内容之前安排预习任务,除了书上的内容,还经常给出一个问题和一段程序代码让学生阅读,自己发现其中懂的内容和不懂的内容。这样的方法促使学生主动思考、主动学习。上课时,教师从预习程序讲起,学生带着问题听课使上课效果提高不少。教师在讲解程序的同时导入新知识点,这样不






