“智能科学与技术”本科专业软件实践类课程建设探讨

时间:2022-08-31 07:00:05

“智能科学与技术”本科专业软件实践类课程建设探讨

摘要:“智能科学与技术”专业从2004年国内开始招生至今,全国已有不少高校设立此专业。我校2007年开始招生,该专业的本科生将在2009年下半年进入专业课阶段学习。本文从社会需求的角度出发,以提高学生就业实践能力为切入点,探讨软件实践类课程的课程设计、教学方法、教材建设以及考试方式。关键词:智能科学与技术;软件;实践性课程

中图分类号:G642 文献标识码:B

1 引言

周济同志在实施“质量工程”的二号文件中指出: “提高高等教育质量,本科教学质量是关键”。智能科学与技术是信息类学科中最年轻的本科专业,也是最具有发展潜力的专业。2008年中国科协举行的“五个10”系列评选活动中,作为智能科学技术核心的“人工智能技术”和作为智能科学技术重要应用领域的“未来家庭机器人”均入选“10项引领未来的科学技术”,这在当今所有学科中独一无二。

文献[2]对中国计算机相关专业作了一次比较全面的调查,调查中发现,目前学生仍处于应试教育模式中,要考很多基础理论课程,而实践课程少,动手能力不强,致使毕业后竞争力较差。调查结果显示,认为毕业生在实际工作中动手能力培养不足的比例高达70%。有的用人单位还反映,学生在校学习过程中没有形成一个好的习惯,没有把基础的东西学好,而是认为学一个语言就可以去用了,结果编程基础很不扎实,稍微复杂点的编程就会出问题,而且编程不太规范,项目工程能力较差,突出的例子就是不喜欢写项目文档。

学生在校期间缺乏有效的、足量的实践环节,是企业和毕业生的共同反映。例如,关于“工作中最有用的技能或知识的来源”的多选题,70.7%的毕业生认为是参加工作之后逐渐学习到的;其次为课程实习,例如硬件试验和上机项目实习题,占40%;第三为到公司实习,占39.2%,都高出大学教师的课堂教学。

对于智能科学与技术专业,将所有专业课程分成两大类:理论性课程和应用实践性课程。有的课程既兼顾理论性,又兼顾实践性,但是有所侧重。理论性课程是方法论的内容,是知识传承的载体,是本科阶段必须强化的内容,目前对于理论性或者偏理论性的课程比较重视,但是比较忽略实践性课程。

虽然每年各类公司招聘应届毕业生的标准几乎一致,但是貌似并未对教学大纲产生过影响。每年各类公司到学校招聘,要求掌握的开发工具和开发平台等,大多没有在课程体系中出现,如图1所示。

为什么在课程体系中没有出现的这些技术呢?不少老师会认为我们是本科教学,这些是专科甚至是职高应该学的内容。然而事实并非如此,2002年开始,我校和比利时鲁汶工学院合办了一个硕士班,这个专业是鲁汶工学院的硕士类专业中的最好专业,毕业生在比利时非常受欢迎。他们的课程覆盖了大部分企业的招聘需求:c++程序设计(QT平台)、用户界面(UI)设计、JavaWeb开发和Flas设计,等等。除了一门“电子媒体导论”属于偏理论性的课程,其他全部是实践性的课程。这些课程是目前国内不屑于开的一些科目,而恰恰又是企业所需要的。

目前对于课程的设置,国内很多专业课程体系和10年前的课程体系设置大体相同。当然,对于基础类课程,没有多大变化是可以理解的。信息类学科每隔5年都会发生重大变化,课程体系却变化很小。这有两方面原因:(1)课程内容变化,第一遍讲解需要大量的备课时间,而且讲课效果还不一定好。(2)要继续学习新技术,不如讲老课程来得熟练、轻松。这样导致新课程开不出来,即使开出来也没有人愿意讲。

2 软件应用实践类课程设计探讨

首先要明确这个体系中有些什么,才能决定需要设置什么。用人单位和毕业生都认为,现在的本科教学有一种教师“闭门造车”之嫌,教师是根据院系的课程安排和课本上的内容、按照自己的思维方式去讲解,其实,就课程安排本身而言就可能已经与社会需求脱节了。

在对所使用的操作平台的调查中,选择使用UNIX/Linux开发平台的比例明显居高。学生在校期间和实际工作中所使用的平台有一些差异,如果能在本科课程中增大UNIX/Linux平台的比例,效果会更好些。在对开发语言与环境方面的调查中,也发现目前在校期间和工作中使用的开发语言和环境不太一致,相差最大的是Java和JSP/J2EE。可见,高校关于开发语言的课程设置中也存在一定问题。

目前在应用开发领域中,从软件开发体系上分类,主要分成三大体系,一种是基于浏览器的B/S(Brower/Server)架构,另一种是C/S(ClientJServer)架构、面向嵌入式系统的开发架构。开发体系如图2所示。

基于B/S架构的开发,目前主要采用三种服务器端语言:JSP(Java Server Pages)、PHP和,这三种语言构成三种常用应用开发组合:JSP+Oracle体系、PHP+MySQL体系以及ASP,NET+SQL Server体系。

基于C/S架构的开发,传统的开发环境有VB、VC以及Delphi等,随着Java体系以及,NET体系的普及,目前更流行NET编程体系和Java编程体系。

对于嵌入式开发,很多老师可能觉得应该并入硬件类课程。我们认为应当并入软件类课程,主要有如下两个原因:(1)目前面向嵌入式的开发,并需要涉及多少硬件设计,开发板都是定制好的,和开发软件的套路没有区别。(2)嵌入式开发环境与普通计算机开发环境已经基本统一,比如QT,Eclipse和Visual 开发套件等。目前,面向嵌入式系统的主流平台分成两种:Linux和WinCE,从开发角度上划分,可以粗略分成应用开发与驱动开发。

将每一个体系都分成基础部分和提高部分,为了能将扩大知识面,将基础部分设置成为必修课程或者选修课,提高部分设置成为选修课。同学可以根据自己的兴趣和发展方向,选择某一个分支学习下去,并在这个方向进行综合案例设计和毕业设计,并以此为作为就业的方向,从而提高最终的就业成功率。基本课程规划如图3所示。

将“算法分析与设计”作为软件类课程的基础,参考MIT大学的智能方向的课程规划,主要讲解智能搜索、排序以及动态规划方面的内容;然后设置3个主线结构:(1)Java基础J2EE开发;(2)NET应用开发基础NET Web开发;(3)基于ARM/DSP系统的Linux应用开发一基于ARM/DSP系统的驱动开发,其中大部分基础类的课程以必修课的形式开出,后面的课程以选修课的形式开出。

通过基础类课程的学习,可以对这个体系的内容有一个初步的认识,学生可以根据自己的就业方向以及兴趣合理选择后续的课程。

3 软件应用实践类课程的教学方法探讨

大部分实践类课程由课堂讲解和上机组成,课堂讲解 将大部分知识点讲解清楚,然后通过上机将课堂的内容进一步巩固,并通过练习,提高课程的动手能力。

如果上午课堂讲解,下午上机练习,效果还可以。很多情况下,要间隔好几天,这样再上机效果将大大降低,根据遗忘规则,很多同学已经忘记课上的大部分内容,上机的效果将大大降低。

我们计划采取一种折中的方法,分成小班在实验机房上课。将讲解部分与上机练习结合起来,对每一个知识点进行讲解后,让同学立刻进行练习,这样可以提高同学的动手实践能力。通过教师的课堂讲解和同学的课堂练习,将知识达到融会贯通的程度,如图4所示。

这种设置提高了对教师的要求,教师除了熟练的知识讲解,还要有快速发现问题的能力,及时查找同学练习中出现了问题。还需要对知识有良好的把握和课堂的整体控制能力。

4 软件应用实践类课程的讲义教材建设探讨

对于讲课的积累,除教学大纲和完整的PPT以外,还应该根据专业特色建立一套完整讲义。每年要对讲义的内容进行完善和修改。讲义是教学过程的总结,一套完善的讲义不仅方便老师教学和同学学习,还能为其他老师授课提供有益的参考。

但是,讲义的编写需要耗费大量时间,是知识再加工整理的过程。内容是讲义和教材的生命,保证内容质量,是提高教学质量的关键。300页的讲义至少需要1200小时以上的时间投入,即使是讲了很多遍的课程,建立讲义的周期也需要半年到1年的时间。

讲义一般情况下使用Word录入,如果对Word不熟悉,对300页左右的书稿进行整理将会非常辛苦。灵活使用Word样式表,可以使排版更加轻松,使整个稿件条理性很强。除此之外,图表的清晰程度也很重要,图题和表题要按照章节进行标注。由于书稿是单栏排列,为了使自己的书稿能够美观大方,尽量不要使用高度大于宽度的图,图的高度与宽度的比例在1:1.5到1:2.5之间比较适宜,比例尽量接近黄金分割点“0.618:1”,这样的图从视觉上是最舒服的。从开始设计大纲到正式完成,科学的方法大概需要5步左右,如图5所示。

前期的预研阶段,需要与同行讨论规划讲义的大纲与章节,并针对每一章定出一级节标题,并反复与同行讨论并修改大纲。如果作为规划讲义的一部分,还需要考虑与其他讲义的衔接、知识点的统筹规划等。根据实际情况,这一阶段一般需要1个月左右。

即使作了充足的预研,到实际写作的时候,也会举“手”维艰,往往投入大量的时间,也看不到多少产出。但是如果不投入时间,则一定不会有产出。很多第一次接手讲义或者教材编写的老师,经常会选择在这个阶段放弃。其实对于第一遍编写,并不需要过于细致,这一阶段需要调动发散性思维,将自己授课的材料,“填鸭式”放到规划的每个章节上,并不断地对资料进行整理,用非口语化的语句,整理素材。讲课的思维很容易影响讲义的语句,因此会出现大量的类似“我们看这样是不是更好啊”、“这样不行了啊”等语句,这些口语化的文字,尽量避免。

第二遍编写和修改,是决定讲义质量好坏的关键过程。按照规划将理论知识、实际案例和综合应用等补充完整。控制好各部分的比例,例如理论知识与实际例子的比例为7:3或者6:4等。对每一章节进行反复细致的修改,并根据内容编写每章习题以及答案。

经过第二遍的编写和修订,写出的内容已经可读了。找个同行进行内容上、技术上和概念上的审查,并根据意见进行修改。因为最终面向的是学生,找几个同学从初学者的角度阅读,只有他们才能感觉到什么地方不连贯、什么地方跳跃有些大了或者什么地方看不懂等。

第三遍修改是一个逐步“求精”的过程。根据同行以及同学的意见,再进行修改,修改的同时,再请他们对相应的地方进行阅读,看调整是否恰当。经过反复修改后,就可以定稿了,在稿件的基础上再编写内容提要和前言等。

经过两遍以上的使用,学生反映良好,就可以在此基础上将讲义建设成为一本教材。如果教材不来源于讲义,不经过课堂的检测,很难是一本好教材。

5 应用实践类课程的考试方法探讨

闭卷考试有很多缺陷,不能客观反映出学生理解、掌握、应用知识的实际情况,但是如果没有闭卷考试的督促,学生会放松学习,从而不能产生良好的学习效果。可以不应拘泥于闭卷这一种形式,对考核内容和形式作适当调整,形成多样化的考评方法。例如:

(1)减少闭卷考试的科目,安排具体实践项目,结合平时组织的小讨论、小论文,做项目、写方案报告,以论文考核为主。

(2)更多地通过课程的实验和成果来考核,鼓励在实验中的创新,理论成绩所占比例可以缩小到总成绩的50%以下。

(3)布置给每位学生的作业都不一样,不以统一的答案标准作为考核依据。

(4)减少必修课比例,鼓励学生选择选修课程。

大部分专业核心课程都有实验环节和课程设计环节。课程设计环节对学生是一个综合性锻炼的机会,要求学生从工程的角度进行考虑和设计,考核时不仅要看程序的运行,更重要的是要看设计思想和程序代码及逻辑,这样就有效地防止了一个学生做出来其他同学就都拷贝的现象。为了保证课程设计的质量,题目事先要进行筛选和评议,根据课程设计的时间长短,题目的难度要进行相应调整,偏难和偏易都不合适。

参考欧洲一些科目考试的经验,并结合国内的课程的特点,我们将课程考核分成3个部分,平时的成绩占10%,课程最终的答辩占30%,闭卷考试占60%,如果有任何一个类别不通过,课程都算不及格,如图6所示。

其中,试卷答题和项目答辩同时进行,某一组在答辩时,其他小组在考试,这样交替进行。每组的项目需要设计出完整的程序演示、系统的需求分析、详细设计以及答辩PPT等。

6 结束语

智能科学与技术专业是一个新兴的专业,每个学校都有自己的特色。在学科建设上,各个大学也应该百花齐放,不应该过于拘泥于一些细节。但是,对于本科教学,两个永恒的主题是打专业基础和提高就业能力,如何让两者有机结合,让两者互相促进,将是我们每一位教学第一线老师共同需要完成的任务。

这里提出我们对学科应用实践类软件课程建设的一点见解,肯定有一些不妥的地方,希望能和兄弟院校共同交流,共同进步。

上一篇:智能科学与技术的知识体系:语义分析的结论 下一篇:基于CDIO理念的多媒体应用基础课程实践教学改...