数学建模算法与程序范文

时间:2023-12-20 14:57:08

数学建模算法与程序

数学建模算法与程序篇1

关键词:工程计算能力;计算基础教育;理工类

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

1问题的提出

我国大学计算机基础教育经过了三十几年的发展历程,几代教育工作者为此付出了辛勤劳动。他们针对我国理工类大学生的特点和中国国情,在当时的历史条件下提出了一系列培养大学生计算机操作技能的教学方法,形成了具有中国特色的计算机基础教育理念和体系。但是,大学计算机基础教育发展到今天如果仍然停留在以计算机基本操作为主体的教学模式上,那将与社会发展对大学生的要求很不适应。今天我们更应该强调培养大学生尤其是理工类大学生以计算机为工具的工程计算能力,并将这种能力与各自的专业结合起来,真正起到为专业服务的作用。由此我国的大学计算机基础教育应该转变为大学计算基础教育。

八十年代初期以来,我国计算机基础教育成为大学里的公共教育,面向全体大学生开设计算机基础教育公共课,并由专门的教学小组(教研室或计算中心)组织教学,依不同专业确定教学内容,因此理工类大学生计算机基础教育的教学内容基本统一。教育部教学指导委员会和全国高等学校计算机基础教学研究会相继出台一些教学指导性意见,如2004年教育部高等学校非计算机专业计算机基础课程教学指导分委员会出台的《关于进一步加强高校计算机基础教学的几点意见》(简称《白皮书》)以及1997年教育部高教司颁发的《加强非计算机专业计算机基础教学工作的几点意见》(简称155号文件),虽然针对不同学科和专业有不同的教学要求,但是培养目标和内容主要以教导学生如何操作好计算机或者说如何提高大学生计算机操作技能为主体,没有强调大学生工程计算能力的培养。以典型的理工类大学生为例,大学期间的计算机基础教育主要开设“大学计算机基础”和“程序设计”两门课程,在“大学计算机基础”课程中,主要介绍计算机的基本组成、环境以及常用软件平台,在“程序设计”课程中也只是讲解编程的基本方法,其他课程更趋向于计算机专业类学生的课程。笔者认为,开设这些课程对于提高大学生计算机操作技能和计算机应用能力起到了重要作用,但是在计算机基础教育的教学体系中没有涉及工程计算能力培养的内容,没有阐明工程计算能力与计算机基本知识和应用能力之间的关系,实际上没有认识到计算机基础教育的根本问题是要以培养大学生现代工程计算能力为目标。

随着计算机技术的迅速发展和广泛应用,作为我国高层次人才――大学生的培养,尤其是规模最大的理工类大学生的培养,应培养他们具有将计算机应用与自己专业知识密切结合的能力,这种结合实质上就是要增强大学生以计算机为基本工具的工程计算能力,而不是简单地操作计算机或使用某一个软件。回顾我国近三十年来的计算机基础教育,大部分精力花在教大学生如何提高计算机操作技能上,如:Windows基本操作、Office软件的使用等,没

作者简介:邹北骥(1961-),男,江西南昌人,博士,教授,博士生导师,研究方向为计算机教育、计算机图形学与数字图像处理。

有涉及工程计算能力的培养。造成这种结果的主要原因有以下几个方面:(1)计算机技术虽然发展很快,但历史不长,对于以计算机为工具的工程计算能力的培养没有深刻的认识。(2)存在误区,误以为培养大学生的操作技能就能提高学生应用计算机的能力。(3)师资问题。大部分从事计算机基础教育课程的教师都是学计算机专业出生的,对于计算机与其它专业的融合问题缺乏了解。(4)大部分从事计算机基础教育的教师很少参与实际科研项目的开发,缺乏软件开发经验,不能体会计算机软件开发中的计算问题和工程计算能力之间的关系。

如果说这种现象的出现是由于历史造成的,或者说是历史发展的必经之路,那么从现在开始,我们就应该高度重视大学生工程计算能力的培养,真正提高他们运用计算机的能力,发挥计算机技术在其它各专业领域的作用。

2工程计算能力培养

什么是工程计算能力?本文所述的工程计算能力是以现代计算机为工具的工程计算能力,也就是以计算机为工具的计算方法的掌握和运用能力。多年以来,“计算方法”或“数值分析”课程是理工类大学生一门重要的基础课,它教给学生用数值求解方法解决工程问题,其中涉及到基本的以计算机为工具的计算方法,如:递归求解等。然而计算机技术发展到今天,特别是软件开发技术和方法的发展,使得以计算机为工具的计算方法变得更加丰富和神奇,非计算机专业,尤其是理工类专业的大学生应该尽可能多地掌握这些方法,以便他们能更好地融入到自己的专业领域。笔者认为,理工类大学生工程计算能力培养应包含以下几个方面。

2.1建模能力

建模能力实质上就是数学建模的应用能力。在理工类大学计算机基础教育中,应该大力加强数学建模方法的学习,大力加强数学建模训练。理工类大学生面临不同领域工程问题,应用计算机求解这些问题的基础是数学建模。在过去几十年的计算机基础教育中,我们忽略了这一方面的培养,使得大学生的计算机应用能力受到限制。因此从培养大学生尤其是理工类大学生工程计算能力的角度出发,应普遍开设数学建模课程。

2.2数据组织能力

工程计算能力培养的第二个方面是数据的组织能力。在计算机专业人才的培养中,是通过“数据结构”课程来教学生基本的数据组织方法。笔者认为,对于非计算机专业尤其是理工类专业的大学生,应该为他们开设“数据结构”课程。我们应该认识到,“数据结构”课程中介绍的数据组织方法,如:堆栈、队列这些基本结构和树、链表等这些复杂结构绝不只是计算机专业学生需要学习的,非计算机专业尤其是理工类计算机专业学生同样需要学习,而且对于他们来讲,这门课程更为重要。有一种观点认为:“数据结构”课程有较大难度,一般理工类学生学习起来比较困难。其实不然,历届研究生入学考试成绩表明,理工类大学生大多通过自学学习“数据结构”课程,而且相当一部分学生成绩优异。

数据结构是程序设计的基础,没有掌握好数据的组织方法,不会运用数据结构表达工程问题中的数据,又怎么可能学好程序设计课程?又怎么能编写好程序?几十年来的计算机基础教育强调了程序设计能力的培养,但没有开设“数据结构”课程,实际上像一座空中楼阁,基础很不牢固。

2.3算法设计能力

算法是计算机计算的步骤描述,是实现计算机求解问题的关键。培养理工类大学生的工程计算能力,需要教给他们基本的算法思想和常用的算法。例如:基本的算法包括排序、递归、查找等。设想一个理工类大学毕业生,如果大学期间对于计算机常用算法理解得比较深刻,应用得比较好,对于他在实际工作中利用计算机解决问题就会变得轻而易举。反之,如果对基本算法一无所知,如:不知道什么是递归算法,不知道什么是排序算法,那么对一些基本的工程问题他都会一筹莫展,甚至无法求解。因此基本算法的学习对于理工类大学生而言是非常重要的。

2.4程序设计能力

工程计算能力培养的第四个方面是程序设计能力,它是工程计算能力的实际载体,用计算机解决实际工程问题最终要落实到计算机程序的开发,也就是人们常说的编程。在学习和掌握数学建模、数据结构和算法设计的基础上,以一门具体的程序设计语言为模板,学习程序设计的基本方法,学习程序的基本结构和运行规律,掌握顺序结构、分支结构和循环结构等对于理工类大学生工程计算能力的提高是极其重要的。

3计算机基础教育与计算基础教育

面向非计算机专业大学生的计算机教育一直沿用“计算机基础教育”这个名称。笔者认为:“计算机基础教育”是围绕计算机本身的计算机科学与技术方面的专业基础教育,面向非计算机专业学生的计算机教育应该用“计算基础教育”这个名称,其本质是要培养非计算机专业大学生以现代计算机为基本工具的工程计算能力,而不是关于计算机本身的科学与技术。长期以来,我国从事非计算机专业计算机教学的教师忽视了这一细节,有意或无意地将非计算机专业大学生的计算机教育引向了计算机科学与技术专业教育的道路,越来越多的课程设置与计算机科学与技术专业的核心课程一致了,如:“计算机网络技术”、“微机接口原理”、“多媒体技术”等。如此下去不仅大大增加了理工类大学生课程学习的负担,而且没有提高理工类大学生工程计算能力。因此我们需要从观念和教学理念上转变,要清楚地认识理工类大学生工程计算能力的培养并不需要为计算机专业类学生开设的那些课程内容,只是需要围绕“数学建模”、“数据结构”、“算法设计”和“程序设计”四个方面的基础课程。

4实施方案建议

综上所述,面向理工类大学生以计算机为工具的工程计算能力培养需要从数学建模、数据结构、算法基础和程序设计四个方面进行,所有的教学要求、内容和目标都应该围绕这四个问题展开。笔者建议,针对理工类大学生的计算基础教育课程体系可以有两个方案,一个方案是紧缩方案,开设的课程概括上述四方面内容,设置两门课程,分别为“大学计算基础”和“大学计算机程序设计”;另一个方案是扩展方案,开设四门课程,分别对应上述四个方面的内容,即“大学数学建模方法”、“数据结构基础”、“算法基础”和“程序设计基础”。两种方案的内容、要求和课时见表1和表2。

表1方案1(压缩型)

课程名称 主要内容 要求与目标 学时建议

大学计算基础 1.计算机的基本知识 掌握计算机基础知识 80

2.数学建模方法介绍 掌握基本的数学建模方法

3.数据结构基础 掌握常用的数据结构

4.算法基础 掌握常用的算法

大学计算机程序设计 1.程序的基本概念

2.C语言程序设计 掌握计算机程序的原理和运行方式

掌握C语言编程方法 48

表2方案2(扩展型)

课程名称 主要内容 要求与目标 学时建议

大学数学建模方法 1.计算机的基本知识 掌握计算机基础知识 80

2.数学建模方法介绍 掌握基本的数学建模方法

数据结构基础 1.数据的组织方法 掌握数据的组织方式 48

2.基本的数据结构及其应用 掌握队列、堆栈、链表等基本数据结构的应该

算法基础 1.算法的基本概念 掌握算法的思想、流程、表达方式及其与程序之间的关系 48

2.基本算法及其应用 掌握常用的算法

程序设计基础 1.程序的基本概念

2. C语言程序设计 掌握计算机程序的原理和运行方式

掌握C语言编程方法 48

5结束语

教育理念和观念的转变需要全体教育工作者形成共识,提出的方案需要通过论证和实践检验,建议相关部门

组织一部分长期从事非计算机专业计算机基础教育的教师、学者进行研讨,针对理工类大学生计算机基础教育和计算基础教育的内涵进行讨论,明确理工类大学生计算机基础教育因面向工程计算能力培养,文中提出的实施方案可在高水平大学试点。

参考文献:

[1] 教育部高等学校非计算机专业计算机基础课程指导分委员会. 关于进一步加强高校计算机基础课程教学的几点意见[M]. 北京:高等教育出版社,2004.

数学建模算法与程序篇2

关键词:C++程序设计;课程建设;负反馈教学法;实践环节;特色教材

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

文章编号:1672-5913(2007)12-0018-03

C++不仅是一门程序设计课程,而且是这些专业后续专业课程(如数据结构、操作系统、微机原理、单片机及应用等)的重要基础,更是这些专业开展计算机研究和应用的重要表达工具和开发工具。因此,Visual C++程序设计课程的教学改革与建设具有十分重要的意义。本文下面从教学方法改革、教学内容研究、实践环节建设、特色教材编写等方面介绍我校VC++课程建设的一些做法。

1积极推进教学方法改革,形成颇具特色的负反馈教学法

负反馈教学法的原理是从教学过程中反馈(作业、实验、答疑、单元测验等)的问题入手,通过及时讲评,解决学生学习中存在的问题,以达到预期的教学目标。由于反馈的是教学过程中存在的问题故称此方法为负反馈教学法。负反馈教学法包括以下方面。

1.1用“范例”组织课堂教学,贯彻“发现式”教学思想

范例教学法由教育学家瓦根舍因提出,教师通过范例辅助学生理解、掌握知识和原理,其目的是让学生能够独立地获得判断能力、推理能力、认识能力和继续学习的能力。以往,程序设计课程教学通常以一门具体语言为主线,围绕语法知识展开。而实质上,设计程序是为了解决实际问题,是一种缜密思维方式、创新素质和综合能力的培养。要使学生对程序设计有兴趣,必须亲自感受并体验程序设计的无限魅力。为此,我们改用范例组织课堂教学。在多媒体教学设备和真实编程环境的支持下,课堂教学以程序(范例)为主线。所选范例程序具有典型性、综合性和可扩展性,涉及基本语法、基本算法和基本调试技术。范例程序的讲解首先符合“现象发现问题分析问题解决问题验证”的探索过程,使学生掌握基本语法、算法及应用。其次,通过对范例程序的启发式扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和编程的工程化思想,获得实际编程能力。

1.2采集教学负反馈信息,做好分类、分析和讲评

按负反馈教学法要求,任课教师做好作业和实验报告的抽样批改、单元测验的全样批改,重视实验指导和答疑,从中了解学生的学习情况。在获取足够的负反馈信息后,任课教师及时做好问题的分类、分析和讲评,及时发现和解决学生学习中存在的问题,确保学生对所学知识的真正掌握。

1.3根据大班教学特点,推进强同步教学策略

大班教学成功的关键在于保持师生教与学的同步状态。负反馈教学法的师生同步措施有授课、作业、实验、讲评和测验等。其中,作业与实验报告由于学生存在一定抄袭现象,同步效果欠佳,为弱同步措施。授课、讲评和测验同步效果较好,为强同步措施。为使大班教学取得较好效果,采用强同步措施是必要的。特别地,我们在每个单元安排一次测验,以实现师生的强同步,及时取得真实的负反馈信息。

1.4编写负反馈教学法配套教辅资料,培养学生自学、探索和自我完善能力

配套教辅资料主要有:①学习指导。注重概念理解、知识巩固,设单元测试,便于学生学习和自测自查;②实验指导。共有17个实验,每个实验包含调试技术介绍、程序调试题、程序设计题和选做题,注重培养学生的编程能力和调试能力,激发学生编程兴趣;③典型问题和综合问题编程。共8个专题,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养分析和解决问题的能力;④二级考试模拟试卷;⑤VC++ 6.0程序调试技术,包括使用VC++ 6.0 IDE编写和调试程序的方法和技巧。

2强化实践教学,注重培养学生的实际编程能力

VC++课程是一门难点多、综合性较强的课程,实验是该课程至关重要的环节,只有通过实验才能检验自己是否真正掌握和运用该语言。通过上机调试程序,会发现很多想不到的问题,通过解决这些问题,可以加深对语言和算法的理解,提高程序调试和实际编程能力。为此,本课程设有课内实验(32学时)和课程设计(两周)实践教学环节。

2.1课内实验注重培养学生基本编程和调试能力

基本编程和调试能力是深入学习本课程并取得实际编程能力的前提。课程实验是至关重要的教学环节,与课堂教学同步进行。我们根据教学内容编写了一套以调试技术、基本语法、基本算法、综合编程为核心内容的同步实验指导,共拟定了17个实验,每个实验通常包括调试题、编程题和选做题,可供不同层次的学生选用。

2.2课程设计注重培养学生综合编程和实际应用能力

课程设计安排在课程结束以后,以综合性程序设计训练为主,选题具有典型性、综合性和示范性,突出难点与实用价值,使学生体会到难点不难,难点在实际编程中非常有用。通过课程设计,学生进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格(模块化、结构化)和严谨的科学作风,初步形成软件工程化思想,具有一定的程序组织能力。

课程设计的内容涉及基本算法和数据结构。基本算法包括穷举、迭代、递推、递归、排序和查找等。基本数据结构包括数组、结构、指针、动态内存分配、单向链表、对象、文件等。课程设计的实施,对非计算机专业采用小综合方案,计算机专业采用大综合方案。所谓小综合是指程序规模在几十到几百行的小题目,大综合则是程序的规模在数百行以上有一定实用价值的题目。

2.3实践教学认真实施,严格考核,确保效果

在课内实验和课程设计的实施过程中,配备富有经验的指导教师,现场实时进行辅导和答疑,指导学生解决编程中出现的问题。同时对学生严格要求,严格考核,确保实践教学质量。加强实践环节的考核是提高实践教学质量的重要保证。预习和考勤占总成绩的30%,上机检查并回答提问占总成绩的40%,课程实验报告和课程设计报告占总成绩的30%。

3积极开展教学内容研究,不断优化和更新教学内容

根据程序设计课程本身发展快、更新快、综合性强、存在问题多的特点,针对同类教材中存在的一些问题和不足,积极开展教学内容的研究,先后发表 “C++运算符重载教学和编程中易被忽视的问题”、“C++中二维数组与指针关系的深入剖析”、“C++语言引用型变量的实现机制浅析”、“C/C++语言可变参数函数的参数传递机制剖析” 等论文,并及时把这些教研成果和学科最新进展引入教学。

3.1课程内容分为三个知识模块

(1) 结构化程序设计基础:包括C++概述、数据类型、运算符、表达式、简单的输入输出、算法与流程控制语句等。

(2) 模块化程序设计:包括函数、编译预处理、程序的多文件组织、数组、结构体、共用体、枚举类型、指针和引用。

(3) 面向对象程序设计:包括类、对象、构造函数、析构函数、继承、派生、友元、虚函数、静态成员、运算符重载、I/O类库、命名空间、模板和异常处理等。

3.2课程的重点、难点及解决办法

(1) 算法表达、结构化语句:结构化编程的基础。注重讲授算法的结构化表示法,结构化语句,常用基本算法,断点+单步调试技术。

(2) 函数:模块化编程基础。注重讲授程序的模块化组织思想和方法,自顶向下逐步求精的程序设计思想,参数传递,变量作用域,程序的多文件组织。

(3) 数组、结构体、指针:数据的结构化和模块化组织基础。指针是重点和难点,应正确区分指针与地址,强调指针类型的作用,讲清各类指针的含义及作用。特别注重讲授指针在动态生成基本数据结构,解决实际问题方面的综合实例。

(4)类、对象、继承、运算符重载、虚函数:面向对象程序设计基础。运算符重载较易理解,但有些方面易忽视,应提请学生注意。虚函数是重点和难点,应注重讲授虚函数的必要性、重要性、实现机制和综合实例。

4改革考评方式,正确发挥考试的导向作用

根据VC++课程的特点,正确发挥考试的导向作用。改革考评方式,实行考教分离,并使其与江苏省大学生计算机等级(二级)考试方式接轨,采取笔试(50%)+机试(50%)的方式,理论与实践并重。

试卷的试题源自题库和现任教师的征卷,试卷由选题算法和软件系统产生,难度与二级考试相当,提高了考评的科学性。

5总结提炼教学经验和成果,积极开展特色教材建设

教材建设是课程建设的重要方面。几年来,课程组对国内外流行C++教材进行研究、分析和试用,总结、积累和提炼自己的教学经验和成果,从校内讲义开始,逐步开展具有自己特色的教材建设工作。2005年2月,自编教材《Visual C++程序设计习题、实验与编程实践》由华东理工大学出版社出版,同年12月又第二次印刷,得到了社会读者的认可。2005年10月,本课程获江苏省高等学校精品教材立项建设,课程组编著的体现“负反馈”教学特色的教材《C++程序设计实践教程》一书目前已与清华大学出版社签订出版合同,书稿已经交付,将于2007年上半年出版。

6运用现代化教学手段,加强网络教学资源建设

经过多年的教学、研究、建设和总结,本课程已积累了丰富的网上教学资源,经常更新,在教学中发挥重要作用。网上教学资源包括:课程教学大纲、课程设计大纲、教学日历、课程设计任务书、实验指导书、教学课件、习题集、典型问题及参考程序、相关教学论文、英文版课外辅导材料、模拟试卷等。课程组成员开发的“基于WEB的《C语言程序设计》教学系统”2006年11月获得第二届全国高等学校计算机课件评比二等奖。本课程网上教学资源的网址为:。

参考文献:

[1] 刘维富,陈建平,王春明. 浅谈“C++程序设计”课程的建设与实践[C]. 第二届全国计算机课程报告论坛,2006,11.

[2] 刘维富,丁卫平,沈学华. Visual C++程序设计习题、实验与编程实践[M]. 上海:华东理工大学出版社,2005,2.

[3] 顾晖,刘维富,管致锦. 负反馈教学法的原理与实践[J]. 电气电子教学学报,2004,(4): 102-104.

[4] 邱建林,刘维富,顾晖. C语言程序设计教学的研究与实践[J]. 电气电子教学学报, 2003,(4):96-98.

[5] 刘维富. C++运算符重载教学和编程中易被忽视的问题[J]. 南通工学院学报(自然科学版),2003,(3):56-59.

[6] 刘维富. C++语言引用型变量的实现机制浅析[J]. 南通工学院学报(自然科学版),2002,(1):64-66.

[7] 顾晖. C/C++语言可变参数函数的参数传递机制剖析[J]. 电脑与信息技术, 2004,(3): 37-38.

[8] 丁卫平,刘维富,沈天晴. C++中二维数组与指针关系的深入剖析[J]. 南通工学院学报(自然科学版),2004,(3):85-87.

投稿日期:2007-2-24

作者简介:陈建平(1960-),男,江苏南通人,硕士,教授,研究方向为快速算法设计与实现等。

刘维富(1961-),男,江苏南通人,硕士,副教授。研究方向为计算机语言与程序设计等。

通信地址:江苏省南通市啬园路9号南通大学计算机科学与技术学院陈建平邮编226019

E-mail:

电话:0513-85975405,13962955020

基金项目:江苏省高校精品教材建设项目“Visual C++程序设计”(苏教高[2005]26号)

数学建模算法与程序篇3

关键词:数据结构;精品课程;课程建设;课程教学

精品课程建设是教育部“高等学校教学质量与教学改革工程”的重要组成部分,是贯彻落实《教育部关于加强高等学校本科教学工作提高教学质量的若干意见》精神,进一步更新教育观念,提高教学质量和人才培养质量的关键[1]。精品课程建设是教育新理念的体现,是新时代教学手段的具体运用,是各种教学资源的开发与整合,是学生自主学习、探究学习的窗口,是实施素质教育的新途径[2]。精品课程的建设有利于优质教育资源的传播和利用,也是我国教育事业的一次大的改革[3]。如何正确理解精品课程内涵、探索实现精品课程的科学途径,对确保这一质量工程的顺利进行具有重要意义[1]。

数据结构是计算机专业的核心基础理论课,在整个专业知识体系中占据非常重要的地位[4]。通过学习数据结构课程,不仅要为后续课程打好基础,而且要进一步提高学生的数据抽象能力和程序设计能力。数据结构课程概念多、方法多、逻辑性强、实践性强,这些特点决定了教与学的难度大,其教学水平和效果又将直接影响后续课程的学习以及学生程序设计实践能力的提高[5]。但是许多学生对于数据结构的概念、知识理解不够,思考分析能力还处于一个较低的水平,所以不少学生反应数据结构是比较难学的一门课[6]。这些年来,我校各级领导对数据结构课程非常重视,加大力度进行组织建设,特别是在教学内容组织、师资队伍建设、教学模式改革、实践环节加强以及共享资源的开发等方面,具体论述如下。

1教学内容的组织

数据结构作为计算机专业的核心基础课,主要思想是问题求解的理论与方法、抽象和设计的理论与方法等[4]。于是我们将课程内容分为概念表述、构建数据模型、算法设计与实现3个层面,突出数据组织方法与算法的实现技术,以适应不同层次的教学需求。采用面向对象的思想方法介绍数据结构的相关理论与方法,贯穿程序设计的思想观点,引入抽象数据类型的概念及其基本性质,重点培养学生的数据抽象能力,突出构造性思维训练,强化程序抽象能力和数据抽象能力的培养。

在教学过程中,我们围绕抽象数据类型,采用面向对象的思想观点,从基本概念、基本结构、基本方法来讲解教学内容,并贯穿了计算机专业的一些问题求解方法。使用熟悉的C语言作为算法描述语言,便于学生把注意力集中在算法的理解上。通过给出用C语言实现抽象数据类型的方法,使数据结构的表示容易理解。采用定义、存储以及典型算法实现来展开教学内容,并引导学生提高实际的应用能力。

我们在组织教学内容的时候注意知识点的前后呼应,而不是以简单的流线形式呈现[7]。通过实践证明,这样可以帮助学生在学习新知识的同时复习以前的知识。例如有关排序知识,在程序设计课中已经学习了冒泡排序、选择排序,在数据结构课中又学习直接插入排序、希尔排序、归并排序、快速排序、堆排序等;这些排序算法可以应用于现实生活的很多地方,学生成绩的排序、大学食堂买饭菜的排队等;同学们在学习新的排序算法的同时可以复习以前的排序算法;还可以在自己熟悉的应用问题中实现各种排序算法,并对它们分析比较,收到很好的教学效果。

2师资队伍的建设

教学质量的优劣取决于课程负责人、主讲教师的教学水平和整体的能力[8]。课程建设需要有一支结构合理、综合能力强的教学师资队伍;建设学术水平高、教学水平高的师资队伍是保证课程教学质量的关键。因此精品课程的建设过程也是筛选和培养一流教学师资队伍的过程。通过精品课程的建设,我们组建了一支由8名教师组成的结构合理、综合能力强的教学师资队伍,其中高级职称3人,中级职称4人,初级职称1人。教学队伍中所有老师具有硕士或博士学位;年龄呈现梯队结构,其中30岁以下的2人,40岁以上的2人。

本课程的教学师资队伍中不但有主持过多项科研、教研项目的教授,也有教学经验丰富的主讲教师,并配有动手能力强的专职实验教师。在课程建设过程中注重对青年教师的培养,通过“传、帮、带”的办法,使青年教师走上主讲教师的岗位,逐步挑起教学重担;鼓励中青年教师参加相关领域的师资培训学习、参加科研和教研活动等,逐步提高他们的综合能力。

3教学模式的改革

我们主要选择并推广精选案例(Selected Cases)、扼要讲解(Briefly Explain)、任务驱动(Task-Driven)的教学模式,简称SBT教学模式[9]。

第一步,任课教师在深入钻研数据结构教材的基础上,根据课程的教学目的精心选择教学案例。所选案例既能反映教学内容要表达的思想,又能让学生容易理解。因此要求教师明确数据结构课程的教学目的:学生通过本课程的学习掌握如何根据问题的需求合理地组织数据,在计算机中有效地存储数据和处理数据[10];通过该课程的实践环节,对学生进行程序设计的训练,巩固加深对数据结构的理解,提高综合运用本课程所学知识的能力,培养学生独立思考、分析问题和解决问题的能力[11]。

第二步,任课教师对教学内容进行概括,结合教学案例进行简单扼要地分析讲解,使学生理解有关概念、掌握有关操作。在教学过程中注意启发学生思考问题、分析问题,引导学生解决问题,提高学生的实际动手能力。

第三步,任课教师给学生布置具体课外任务,通过学生独立完成具体的课外任务来实施教学。其中课外任务的提出可以结合学生的特点和兴趣,使学生按自己的需求去学习,从而培养出独立思考、勇于创新的自学能力[12]。

例如在讲解哈夫曼编码的内容时,我们一般先讲一个简单易懂的实例。学生很快就能理解哈夫曼树的构造过程以及具体的哈夫曼编码形成过程。然后引导学生理解哈夫曼树的存储和哈夫曼编码的存储。在学生掌握了这些存储结构之后,再结合实例讲解哈夫曼树的构造算法、哈夫曼编码的求解算法。最后布置课后作业完成一个求解哈夫曼编码的实例程序,大多数学生能够按时完成任务,教学效果良好。

4加强实践环节

数据结构实验应能达到如下基本目标:培养学生应用数据结构基本知识来分析问题、解决问题的综合能力;帮助学生建立计算机问题求解的意识,主要是通过认识数据结构在问题求解中的地位来完成这种认识的建立;训练学生用系统的、规范的观点来进行计算机问题的分析、设计、编码等[13]。

首先,改善实验条件。在各级领导的大力支持下,我们更新了计算机专业实验机房;实验所需软件都能在新学期开学之前完成安装调试;每个实验室配备一名维护人员,负责实验室的运行与维护;设备完好率99%以上,实验开出率100%。除了规定的上机实验以外,提倡学生自己课余时间上机练习。为此,学院设有两个开放实验室,配备专门的实验指导老师对学生免费开放。机房内计算机专业学生身影不断,有的在复习教师的课堂教学内容,有的在阅读网上的参考资料,有的在下载教师布置的作业,有效促进了良好学风的形成。

其次,加强实验管理。在开学之初,主讲教师与各班学习委员确认课内上机时间,并通知到每一个学生,实验指导书、教材、习题集同时发到每个学生。每个学生必须完成教学大纲规定的8个实验项目,实验成绩占30%;所有实验实现1人1组;实验前安排1次答疑;学生上机前必须完成预习,写出完整的源程序,准备好上机步骤和调试数据。在实验过程中遇到学生提问时,老师给学生一些提示信息,尽量让学生自己将程序调试通过;实验后要交实验报告;教师批改后评定成绩,不合格的学生必须重做。

第三,注重课程设计。课程设计是对所学知识的巩固提高,是培养科研能力的重要环节。引导学生搞好课程设计的关键是选好题目与做好课程设计的准备工作。而课程设计题目的选择要和所学知识紧密联系,又与学生的创新能力培养密切相关。通过课程设计积极引导学生参加课外科技活动、校级省级程序设计大赛、大学生创新项目的探索等,以提高学生程序设计能力。

5共享资源的开发

建设精品课程的目的是通过为学生提供优质的教学资源来提高教育质量。我们在课程建设中使用网络技术手段,建设了精品课程网站。精品课程网站由以下几个部分主成:课程介绍、课程负责人、课程特

色、申报材料、教学大纲、课件与教案、教学录像、教学论坛等。其中课件与教案就是教师上课使用的课件和教案,方便学生在不同时间、不同地点进行下载,然后根据自己的需要进行自主化的学习。任课教师还把自己的实验程序、常见问题分析、习题解答等内容放到网上,供同学们学习参考。

6结语

随着计算机技术的不断发展,教学改革也在逐步深入,这必将对数据结构课程的教学提出更高的要求。因此精品课程的建设是一项长期的工作,也是一项综合的系统工程。在今后的课程建设过程中,我们要用先进的教育理念武装自己,不断扩充新的教学内容,完善教学网站,强化实践教学环节,为学生提供更多优质教学资源,培养出更多更好的符合社会需求的应用型人才。

参考文献:

[1] 侯治富,金祥雷,谷树严,等. 精品课程建设目标及实现途径的研究与实践[J]. 中国大学教学,2006(1):21-23.

[2] 李银芳. 高校精品课程建设中应注意的几个问题[J]. 中国高教研究,2007(1):91-93.

[3] 许坦,石长征. 精品课程发展现状综述[J]. 中国电化教育,2007(5):53-56.

[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2002.

[5] 耿国华,王小凤,张德同.“数据结构与算法”课程工程型知识体系研究[C]//大学计算机课程报告论坛组委会. 大学计算机课程报告论坛论文集. 北京:高等教育出版社,2009:9-13.

[6] 顾沈明,张建科,李鑫. 数据结构教学模式的改革与实践[C]//浙江省高校计算机教学研究会. 计算机教学研究与实践. 杭州: 浙江大学出版社,2010:111-114.

[7] 刘雪梅,袁文翠,富宇,等.“数据结构”教学模式变迁的若干思考[C]//大学计算机课程报告论坛组委会. 大学计算机课程报告论坛论文集. 北京:高等教育出版社,2006:535-537.

[8] 耿国华. 数据结构课程改革与教学资源建设[C]//大学计算机课程报告论坛组委会. 大学计算机课程报告论坛论文集. 北京: 高等教育出版社,2006:150-153.

[9] 潘洪军.“精选案例,扼要讲解,任务驱动”教学模式[J]. 中国高教研究,2008(11):55-56.

[10] 王玉峰,刘宝旨,王猛刘,等. 也谈“数据结构”的教学[J]. 计算机教育,2007(15):21-23.

[11] 舒坚,刘琳岚,陈斌全,等.“数据结构”课程实践教学改革的设计与实践[C]//大学计算机课程报告论坛组委会. 大学计算机课程报告论坛论文集. 北京:高等教育出版社,2007:401-404.

[12] 王炳强,张植才. 任务驱动法在C语言程序设计课程中的应用[J]. 黑龙江科技信息,2009(5):53.

[13] 李治军,廖明宏,张岩. 数据结构与算法课程设计教学模式的探讨教学资源建设[J]. 计算机教育,2006(2):54-56.

Organization and Construction of High-quality Course of Data Structure

GU Shenming, WU Yuanhong, HUANG Haifeng

(School of Mathematics, Physics and Information Science, Zhejiang Ocean University, Zhoushan 316000, China)

Abstract: The characteristics of the Data Structure course are discussed. There are some problems existed in the teaching process of Data Structure, and these problems make students lost study interest of the data structure course. According to the course feature and our teaching experiences, this paper mainly discusses the organization and construction the Data Structure course, as a high-quality course. Such as the organization of the course contents, the construction of teaching faculty, the reform of the teaching form and the emphasis of the course experiments, etc.

数学建模算法与程序篇4

关键词:核心能力;程序设计;混合教学模式;线上线下

程序设计类课程是大数据智能化产业建设的基石,是承担培养工程开发技术、物联网技术、大数据开发技术、人工智能技术等创新应用型人才的支柱之一。大数据智能化背景下计算机程序设计课程主要包括C/c++方向、Java方向和Python方向。目前高校开设的程序类课程,C/C++方向包括面向过程的C/c++程序设计(基于函数),面向对象的C/C++程序设计(基于对象)和智能应用开发。Java方向包括JavaSE程序设计、JavaWeb开发和JavaEE开发。Python方向包括Python程序设计和PythonWeb开发课程。程序设计课程覆盖了大数据智能化应用专业基础课、专业核心课和专业方向课,是专业能力培养的支柱。与时俱进的程序设计类课程混合教学模式研究,是当前高等教学研究的热点。

1程序设计课程教学模式存在的问题

程序设计课程计算机类专业都在开设,但课程教学模式缺乏针对性。程序设计课程培养目标与专业大数据智能背景结合不够,线上线下教学整合的深度和广度不够。程序设计课程教学没有同大数据智能化创新应用型人才培养目标体系结合起来,没有同当前智能化时代需求和技术场景结合起来,没有同大数据智能化人才的知识结构结合起来,没有同专业课程结合起来,没有建立起适合大数据智能化创新应用型人才培养的线上线下混合教学模式体系。目前线下的程序设计课程教学模式,教学效果还存在一些问题。①课堂预习缺乏目的性。②教学活动互动参与性不强。③习题资源不够,测试操作不方便。④作业提交不及时。⑤作业评阅不方便。⑥学情统计、课堂统计和成绩统计缺乏数据支持,无法自动进行。⑦学生自学拓展缺乏平台资源。因此,大数据智能背景下程序设计课程线上线下混合教学模式构建是当前程序设计课程教学改革急需解决的重要问题。

2程序设计类课程线上线下混合教学模式构建

大数据智能背景下,程序设计课程混合教学模式构建采用基于工程教育认证、新工科建设和课程群建设的思路进行研究与实践,坚持以成果为导向,以学生为中心,以持续改进为目标[1-2]。坚持以成果为导向,依据市场和专业发展需求,确定程序设计课程培养目标和课程培养的核心能力体系,构建课程知识体系和教学资源体系。坚持以学生为中心,强调以全体学生为中心制定课程群培养目标及配置教学资源,开展线上线下融合教学。持续改进,改革课程考评体系,建立多元测评系统,强调混合教学模式教学质量监控机制和持续改进机制,不断提升人才培养质量[1-3]。大数据智能化背景下程序设计类课程混合教学模式构建主要考虑以下问题。2.1构建程序设计课程培养核心能力的体系。程序设计课程教学模式构建,需应对市场需求的大数据创新应用型人才特征进行调查分析,结合工程教育认证和新工科建设发展需求,确定专业人才培养目标[4]。专业人才培养以“面向工程、项目驱动、能力培养、全面发展”为目标,依据培养目标确定毕业要求[5-6]。根据毕业要求对程序设计类课程培养的学生核心能力进行分类分层次打造。课程核心能力体系分为通识能力和专业能力。通识能力分为口头表达能力、沟通交流能力、团队协作能力和创新应用能力。专业能力分为识记理解能力、阅读修改程序能力、程序编写调试能力、程序逻辑思维能力、系统分析设计能力、系统开发能力、项目管理能力和自主创新学习能力。根据核心能力体系重构程序设计课程体系,明确课程具体培养目标和要求。大数据智能化背景下创新应用型人才培养计算机程序设计课程主要包括C方向、Java方向和Python方向。对语言方向的每一门课程知识体系进行研究与实践,明确与核心能力匹配的课程知识体系,与课程内容匹配的学生能力目标体系。2.2构建语言-课程-平台一体的程序设计课程体系,解决程序设计课程群建设系统性问题。根据大数据智能化背景下的应用型人才核心能力的培养要求,构建面向应用、面向工程、面向能力理念的语言-平台一体化课程体系[6-7]。大数据智能化背景下创新应用型人才培养程序设计语言选择主流的C语言、Java语言和Python语言。根据核心能力培养体系开设课程,一个语言方向统一开发平台,解决学生培养知识脱节,开发平台混乱的问题。开发平台的选择要符合市场主流,选择具有模块化开发、代码分层、功能分层的框架集成式开发环境,以便提高学生解决复杂问题的能力。C方向课程体系分为面向过程的C/C++程序设计,面向对象程序设计和智能应用开发,统一开发平台可选择DEVC++,MicrosoftVisualStudio和Qt。DEVC++是C/C++轻量级开发环境,侧重于算法,VisualStudio是Window集成式开发环境,侧重于项目开发,Qt是跨平台GUI开发环境。Java方向包括Java程序设计,JavaWeb开发和JavaEE企业级开发课程,统一开发平台可选择MyEclipse和IDEA。Python方向包括Python程序设计,PythonWeb和爬虫课程,统一开发平台可选择PyCharm。同时要解决语言方向课程知识的衔接问题,确定课程标准,明确教学目标。程序设计语言-方向-课程一体图如图1所示。2.3开发在线课程资源,解决线上线下融合教学问题以全体学生为中心,应是集中学和分层分散教学的统一。线下课堂集中教学,适合课程理论知识的讲解学习,线上教学适合课程实训指导和拓展。程序设计课程线上线下融合教学过程分为资源开发、课前准备、课堂教学、课程实验、课程设计和课程总结五个过程。整个教学过程,以学生为中心,采用“参与式、启发式、研讨式”教学方法,利用平台提供的签到、章节学习、讨论、选人、分组、抢答、作业、测试、互评、群聊、通知等教学手段,实施线上线下、课内课外融合的教学模式,充分发挥教师主导作用和学生主体作用,引导学生参与互动、自主学习、创新学习,调动学生学习积极性和主动性,逐步培养学生的专业通识能力、识记理解能力、阅读修改能力、程序设计能力、修改调试能力、项目开发能力和工程实践能力[1,6,7]。程序设计课程线上线下混合教学模式如图2所示。2.4构建程序设计阶梯能力训练平台,解决能力培养平台单一问题。构建程序开发能力训练平台是一项系统工程,涉及到思维、体制和管理问题。依据学生程序设计能力培养层次,构建与能力培养匹配的阶梯能力训练模型,解决能力培养平台单一问题是程序设计能力培养的重要保障。根据学生程序能力培养层次建立课程章节训练、课程设计项目训练、方向课程综合训练、程序算法竞赛、创新创业项目训练和开发竞赛训练的阶梯式训练平台。每个阶梯训练平台要有具体的目标、训练内容、场地保障和组织管理。课程章节训练主要在课堂,解决章节模块知识的应用问题。课程设计项目综合训练旨在通过项目形式进行课程知识的综合训练,解决课程知识的综合应用问题。语言方向课程综合训练通过理论和项目形式解决同一门语言前后课程衔接和知识综合应用问题。程序算法竞赛利用一种语言工具进行算法专题训练,比如查找排序、贪心和动态规划算法等。创新创业项目训练通过创新创业项目与程序设计课程结合,提高项目分析设计和开发能力问题。学科竞赛通过对创新创业项目培养,按照竞赛文件要求,完善系统功能和文档,提高项目开发能力。通过程序设计阶梯能力训练以培养学生程序设计核心能力,提高学生就业质量。例如C语言方向程序设计课程能力阶梯训练模型如图3所示。2.5考核方式改革,解决学生能力考核科学系统性问题。大数据智能化创新应用型人才程序设计课程考核,理论知识和实践能力考核要注重全面性、科学性,突出课程培养的核心能力考核。课程考核应建立标准化考核、过程化考核和能力考核的多元测评系统[1,7]。标准化考核利用在线平台,建立标准的试题库和试卷进行课程章节、期中和期末考核。过程化考核充分利用平台对学生学习全过程活动进行记录、跟踪和统计分析。能力考核从学科竞赛、创新创业项目和科技创新方面来进行,注重学生程序设计开发能力,创新思维能力及团队合作能力的考核。同时改革考核线下操作模式,利用平台对学习过程进行大数据分析,利用在线平台进行半自动或全自动的考核方式,提高学生学习效率和教师工作效率。改革老师单一的评阅方式,建立学生互评、小组互评和教师评阅的方式,合理地分配成绩权值,建立重能力考核的观点及理念。能力考核多从单元知识应用、课程设计、学科竞赛、创新创业项目和科技创新方面来进行,注重学生程序设计开发能力,创新思维能力和团队合作能力的考核。

3结束语

本文对大数据智能化背景下程序设计课程线上线下混合教学模式构建问题进行了研究。大数据智能化背景下程序设计课程线上线下混合教学模式,应结合专业背景优势和课程本身教学需求,从教学思维、教学目标、教学内容、教学保障和组织管理方面建立起适合专业发展需求的程序设计课程完整教学体系,以提高学生学习效率和老师教学质量,提升学生程序设计开发能力,培养大数据智能化创新应用型人才。

参考文献:

[1]李昱,郭晓燕,梁艳春.应用型本科计算机专业程序设计类课程教学模式改革与实践[J].计算机教育,2020.311(11):111

[2]高晓娟,牟莉,张旭风.程序设计类课程混合教学模式研究[J].商洛学院学报,2020.34(2):60

[3]杨卫明.创新应用型信息类专业实践能力培养模式研究[J].教学现代化,2019.6(88):21

[4]王晓芳,刘鹍,赵燕.工程教育认证背景下程序设计类课程改革探索-以济南大学为例[J].合肥工业大学学报(社会科学版),2019.33(4):134

[5]乔加新,梁后军,魏苏林.构建全方位分层次程序设计类课程创新教学体系-基于新工科理念下的计算机专业[J].黑龙江工业学院学报,2019.9:20

[6]吕娜,张琎,张芊茜,史桂娴.混合教学模式在程序设计类课程中的应用[J].计算机教育,2019.5:115

[7]王瑞平.新工科背景下应用型本科院校程序设计类课程混合式教学模式研究与实践[J].科技视界,2019.8:125

数学建模算法与程序篇5

(1.甘肃农业大学 信息科学技术学院,甘肃,兰州 730070;

2.兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)

摘 要:高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的“理论教学及实验教学相统一的课程建设体系,理论教材及实验教材相统一的教学资源建设,CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养过程”实践人才培养模式,培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才,在实践人才体系培养方面取得了显著成效.

关键词 :高等农业院校;程序设计;CBE教学模式;实践人才培养模式

中图分类号:G645文献标识码:A文章编号:1673-260X(2015)07-0265-03

基金项目:中华农业科教基金会教材建设研究项目“基于CBE项目驱动式的C语言程序设计教学模式探索与研究(NKJ201203023);国家自然科学基金(61063028);甘肃省科技计划资助项目(No.145RJYA288);甘肃农业大学教学研究项目(GSAU120226,GSAU120229);甘肃农业大学盛彤笙科技创新基金资助项目(GSAU-STS-1322)

1 引言

当前,我国农业正处在由传统农业向现代农业转变的时期,用信息技术对农业生产的各种要素进行数字化设计、智能化控制、科学化管理,能够大幅度减少农业消耗,降低生产成本,提高产业效益.根据教育部“面向21世纪教育振兴行动计划”提出的以培养人的创新思维和创新能力的创新教育来适应日新月异的科技发展和社会需求的有关精神,结合高等农业院校的具体情况,以创新教育为导向、深化农业院校学生计算机程序设计能力培养的教学体系建设为目标,对高等农业院校程序设计类课程人才培养模式进行了探索和改革.

程序设计类课程是高校计算机教育的基础与重点,是一门对理论与实验开展同步教学的课程[1].在不远的将来,程序设计和数学建模与微积分、高等代数、大学物理一样,成为所有大学的核心基础课程[2].程序设计类课程具有知识点多、概念复杂、规则繁多、使用灵活、自由度大、抽象度深等特点[3-5].我校生源中农村学生居多,基础教育阶段接触计算机较少,大学低年级阶段急需大力普及计算机基础知识、培养计算机应用能力.作为农业院校,程序设计类基础课程培养人才的目标要更明确,方法和手段要更有效,因此培养具有“宽基础、强特色、高素质、实用性”复合型实践人才是非常有必要的.

在这个培养目标基础上,学校按照国家精品课程指标体系要求,突出创新意识和能力培养的先进教育思想,强化教学全过程管理,以把程序设计类基础课程建设成为能够反映本学科领域的最新研究成果、具有农业院校鲜明特色的示范性精品课程为目标,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的实践人才培养模式,在实践人才体系培养方面取得了显著成效.

2 基于CBE项目驱动式的程序设计类实践人才培养模式

CBE(Cometency Based Education)的涵义是“职业综合能力为基础的教学模式”,简称能力教育[6].CBE教学模式的特点是教学方法多样化,一切以学生为中心,强调在实践中学习,在学习中实践[6].CBE的特点恰好和我校实践人才培养目标相符合,学校以“十二五规划”建设为契机,融合CBE教学特点,建立程序设计类基础课程实践人才培养模式,结合高等农业院校的实际,以岗位必须的知识、技能、行为意识为从业能力的基础,以能力表现为教学目标,教学进程的基准,注重“学”并以学生的学习为中心,不受时间和环境限制组织课程与实施教学,形成了2+2+3的实践人才培养模式.

2.1 理论教学内容及实验教学内容相统一的建设体系

2.1.1 理论教学内容课程体系建设

随着我国经济持续快速增长和信息技术的飞速发展,我国走新型农业现代化道路对培养新一代具有信息素养和计算科学创新能力的农业科技创新人才提出了迫切需求.以这种社会需求为导向,对农业院校程序设计类课程体系建设进行探索和改革,构建“分层次、分专业”的课程体系,贯通三大层次全校五十三个农业本科专业培养方案,将程序设计类课程按专业分三类开设,农医类专业开设VB、文史类专业开设VFP、理工类专业开设C,实现了因材施教、以社会需求为导向的目的.教学内容强调课程内多知识点融合、跨课程知识体系融合、已学与拓展知识融合、实验与课外研究融合等四方面,做到了从点到面、从单元到系统、“引导入门-基础系列-专题研究-科学研究”的循序渐进的教学过程.

2.1.2 实验教学内容体系建设

通过实验进一步理解程序设计的基本知识,通过理论和实践教学,使学生较好地掌握程序设计语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用程序设计集成环境进行程序设计语言的编写、编译与调试,达到全国计算机等级无纸化考试的要求.为配合理论教学我们将实验分为以下三种类型.第一类是基础与验证型实验,主要涉及该课程的相关知识点;着重培养学生逻辑分析的能力,学会使用流程图、伪代码描述问题,学会使用计算机的处理方法思考问题,把计算机语言的教学内容从数学游戏的圈子转变到社会实践中的计算机应用,培养和训练学生分析、解决实际问题的能力.第二类是设计与开发型实验,有效培养了学生综合应用知识与技术的能力,培养学生带着问题自主学习、寻找答案的能力.实际中结合学生信息管理系统、数值数据处理、信息数据管理等开发案例展开实验.第三类是研究与创新型实验,针对部分兴趣高、编程能力强的学生设计该类实验,重在培养学生的研究能力与创新意识.采用软件工程的方法引导学生进行分析和设计,实现完整的小型应用系统,主要以“挑战杯”、“创新杯”竞赛、SRTP项目及毕业设计的形式进行开展.

2.2 理论教材及实验教材相统一的教学资源建设

2.2.1 理论教材建设

根据《普通高等教育农业部“十二五”规划教材》的要求,并按照2013年全国计算机等级考试调整方案要求,对教材每个知识点按照“提出问题—解决问题—归纳分析”三部曲进行建设.对每个实例按照“提出实例—程序设计分析—参考程序—程序运行结果—程序分析—注意事项”几个步骤进行编写.在各知识点中,增加了一些兼具趣味性和实用性于一体的程序实例,并补充了代码风格、函数封装、程序调试、常见错误分析等现代程序设计必备的知识.这些资源通过整合后上传至网络教学平台成为网络课程,由授课教师按课程进度授权给学生使用.

2.2.2 实验教材建设

为配合等级无纸化考试要求,实验教材运行环境建立在等级考试集成开发环境下,增加了无纸化上机测试题,包括选择题、程序改错题、程序填空题和程序设计题四大部分.教材建设过程中,收集整理了大量教学资源,注重立体教材建设工作,教材全部配套编写了多媒体课件、讲义和教案,习题提供标准答案.配套课件实现“文字分层显示、算法动态演示”的功能,增强图文并茂的特点.

2.3 CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养模式

强调实践对理论教学的指导作用,将企业作为实训基地,建立校企长期合作,采取校企互动的方式,针对性地培养既具有扎实的基础理论知识,又能解决实际工程问题的复合型、实用型人才.实践项目内容从知识方法应用、综合设计到研究探索循序渐进,深化实验项目的层次性和工程背景,实现以工程为背景、研究方法多样、综合应用所学知识、对实验进行研究探索的程序设计类实践教学体系,从而使程序设计类课程体系更加适应社会需求,更加灵活应变.实践教学体系如图1所示.

充分利用现代化教学手段,注重各种立体化教学资源的积累和充分利用,采用项目案例递进式实训过程LTM(Learning Training Mentoring)的循序渐进的模式提高实训质量,利用网络教学平台优化课程答疑和反馈的方式和途径,改革课程的考核方式使其更有利于检验学生的能力,广泛利用网络教学平台帮助学生课后学习和自主学习,培养学生的学习能力.具体教学方式如下,教学过程见图2所示.

2.3.1 CBE教学方式

第一层次是通过互动式和案例教学法,在教师的指导下根据教学目的和要求,运用多种形式启发学生独立思考,根据遇到的实际问题,进行综合分析研究,提出见解,做出判断和决策,从而提高学生分析问题和解决问题的能力;第二层次是基本操作技能训练和基本工作能力培养,培养学生具有严谨的科学态度与规范的操作方法,采用仿真与实际相结合的手段,既加强了学生对基础理论知识的理解,又学会了知识的综合运用,使学生能运用掌握的理论知识来解决实际问题;第三层次是实践和创新能力的培养,在实习基地实现基本技能转化现实的工作方法和工作能力,实现“校园人”向“社会人”角色转变.

2.3.2 项目驱动教学方式

从农业院校实际需求出发,项目力求既结合实际,又能涵盖课程教学的要求.教师提出学生自学和开发、研究的进度,设计教学进程,以程序编制牵引理论教学,以项目开发和程序的拓展驱动教学.通过项目和实例讲授程序设计的基本概念、基本方法,把重点放在解题思路上.从开始就使学生将注意力集中在所解决的问题领域,从具体实例理解程序设计类课程的开发特点和程序总体框架,通过实例本身既学会某一类问题的解决方法和算法设计,又掌握了程序设计类课程的基本语法、语句.即在程序设计类课程的环境下,针对农业类实际问题进行分析、构建数学模型、设计算法、最后编程实现.

在学习的不同阶段设计不同针对性的实例,主要包括以下三个阶段.第一,开始阶段设计的实例是将学生的注意力吸引在程序设计类课程的总体功能和程序的总体框架上;第二,在学习中间阶段设计针对某些数据类型或应用特点的实例、针对模块分解和组合的实例、针对算法分析与设计的实例等;第三,在学习的后期进行综合课程设计,将所学知识融会贯通.在设计实例的同时还需要调整课程的教学模块,有些章节知识需提前引入,如函数、文件等,先不深入学习,仅作为宏观分析问题解决问题的工具,可在后续实例学习过程中逐步加深理解和应用.

2.3.3 双语教学方式

双语教学是贯穿于以上各教学方式中的.作为程序设计语言,其语法表达采用的就是简单而含义明确的英文单词,且上机环境也为英文界面,二者关系密不可分.程序设计课程教学中加入适当的计算机及程序设计方面的英文专业词汇,部分或全部教案采用英文形式,有助于学生专业英语水平的提高和尽快熟悉、适应以英文信息为基础的软件开发环境.

3 教学成效

程序设计类基础课程实践人才培养模式在全校推广的几年内,教学成效显著,具有显著的教学示范效果.(1)课程教学质量评价高,教学效果好.由教务处组织的学生评教结果显示,课程组的所有教师近3年的评价平均成绩均在90分以上.(2)凝练并更新教学内容,融入农业院校的特色先后编写出版了8部教材,其中《C语言程序设计》两部教材先后被列入《普通高等教育农业部“十二五”规划教材》,“VB程序设计”和“C语言程序设计”课程先后被评为甘肃农业大学校级精品课程.按照省级精品课程建设要求,搭建了程序设计类课程学习网站,并开发了程序设计类课程学习论坛.(3)学生学习效果整体得到提升.我校学生参加全国计算机等级考试(二级)的过关率逐年稳步上升,并在全省高校中名列前茅;参加全国计算机等级考试(三级、四级)的学生人数逐年增加,过关率也有所提高.培养模式应用推广期间,课程组教师负责指导学生参加学校SRTP项目50余项;指导学生参加第一、二、三、四届甘肃省“创新杯”计算机应用技能大赛,共获奖项30余项,参与学生90余人;指导学生参加全国大学生数学建模竞赛,共获奖项8项,参与学生24人;指导学生参加全国大学生电子设计竞赛、共获奖项3项,参与学生9人;指导学生参加甘肃省“挑战杯”课外科技学术作品竞赛,共获奖项3项,参与学生10余人;近三年内课程组成员指导学生累积获得省级以上奖励120余人次.我校生源中农村学生居多,基础教育阶段接触计算机较少,但在全国计算机等级考试中通过率已连续多年高于全省高校平均水平.

4 结束语

高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,形成了特色鲜明的2+2+3的实践人才培养模式,全校推广后教学成效显著,具有显著的教学示范效果,为高等农业院校培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才奠定了基础.

参考文献:

(1)付沙,薛娟,陈智俐.计算机程序设计类课程实验教学改革与研究[J].计算机时代,2010(4):56-58.

(2)习慧丹,胡洋.高校计算机专业程序设计课程教学改革探讨[J].信息技术与信息化,2012(3):37-39.

(3)乔淑云,黄刚.程序设计类课程教学改革与计算思维之培养[J].计算机教育,2012(10):17-23.

(4)王方.C语言教学模式:“简单任务+归纳法”[J].安庆师范学院学报(自然科学版),2011,17(3):112-116.

(5)王圆妹.非计算机专业C语言教学改革的探讨[J].长江大学学报(自然科学版),2009,6(2):385-386.

数学建模算法与程序篇6

关键词:C#语言;聚氯乙烯;计算机模拟;玻璃化转变温度;误差

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)46-0163-02

一、前言

计算机模拟式在第二次世界大战后出现,当初被当作开发计算机用的一种工具。在20世纪50年代初,计算机模拟才真正开始。计算机模拟的奇特之处在于人们对一些方程不用笔和纸,用计算机就可以得到准确的答案。本文构想:利用DSC分析测试设备中测定PVC的玻璃化转变温度(Tg),并利用关联指数法建立一个数学模型,利用数学模型编写一个小型的计算机程序。将测试结果与计算机程序模拟结果对比,分析其误差和模拟结果的可靠性。

二、计算机在高分子科学中的应用

计算机已应用于高分子材料的性能预测、聚合物反应的模拟及计算机辅助分子设计、成型加工的质量控制与条件优化等各个领域,其中应用最广泛的就是计算机模拟在高分子科学的应用。常用的模拟方法有分子动力学(简称MD)、蒙特卡罗方法(简称MC)和分子力学方法(简称MM)。

三、实验部分

聚氯乙烯颗粒料(PVC)的Tg测试。实验设备:示差扫描量热仪(Pyris Diamond DSC),千分位电子天平(AE200)及其他常用实验设备。测得的玻璃化转变温度为:Tg=85.08℃=358.23K,其DSC曲线如下:

四、理论模型的建立和计算机程序的编写及结果校验

1.关联指数法对PVC的Tg预测。关联指数法是美国高分子科学家Jozef Bicerano与上世纪90年代提出的,这是一种基于空间拓扑学及原子之间相互关系的半经验公式,对简单聚合物的性能预测结果较为准确。关联指数法是图论的具体化形式。近年来,关联指数法在聚合物的性能预测方面已拓展了许多,其目的是想获取一种既简单、有效又合理精确地预测聚合物的性能的方法。

2.聚氯乙烯的关联指数。下面介绍PVC关联指数法的求算方法与过程。聚氯乙烯关联指数法主要是计算器零级关联指数和一级关联指数,用于以后的参数校正。作出聚氯乙烯的分子结构,将氢原子从结构图中排出的到隐氢图。如图2和图3

一级原子指数(δ)和二级原子指数(δv)和价键指数 βij=δi*δj βijV=δVi*δVj,在前述基础上,产生零级关联指数(0x与0xv)和一级关联指数(1x与1xv)。零级(原子关联指数)0x与0xv,和一级(键)关联指数1x与1xv,其表达式分别是:0x=■(1/■) 0xV=■(1/■) 1x=■(1/■)

1xV=■(1/■)综上,PVC结构单元相应的诸关联指数分别为:0x=2.2845 0xv=2.4183 1x=1.3938 1xv=1.47115

3.关联指数法预测聚合物的Tg的温度方程和结构校正参数。①温度方程:对于普通的聚合物可以通过溶度参数δ、结构参数X13和Ntg/N,在参数普遍参数的条件下预测:Tg≈351.00+51.6*δ+31.68*NTg/N+23.94*X13 其中NTg为校正参数。NTg=15*X1-4*X2+23*X3+12*X4-8*X5-4*X6-8*X7+

5*X8+11*X9+8*X10-11*X11-4*X12。②结构校正参数:X1到X13为结构校正参数。③结构校正参数总结:以上X1到X13结构参数中除了X5和X6,大多数的结构参数的为零。最终我们得到X5=1;X6=2,在程序中进行了PVC玻璃化温度的预测。

4.程序的编写与验证。本文采用了微软.net中的开发语言C#开发了这个WindowsForm应用程序并用到了MATLAB进行混合编程。开发环境是Microsoft Visual Studio 2010,将材料学与计算机科学得到了结合。①MATLAB编程:MALTAB是一种计算工程计算及模拟用的数学软件,其计算能力十分强大其为跨平台的编程提供了很好的利用方法,可实现与C++,Java,C#等语言的混合编程。具体方式如下,数学模式进行编程,编写好后将MATLAB程序编写成所需的DLL文件(可选择编译的语言,该过程自动完成)。②C# Windows Form程序开发:建立Windows Form开发项目,将编写好的DLL文件引入到该项目中来,进行程序的开发。并进行程序校验,开发的程序界面如下面的截图。

5.结果验证。通过我们最终的模拟得到的PVC Tg= 344.79K,实验室中得到的实验值为Tg=358.23K,查阅相关的文献值得到PVC的Tg=360.15K。误差分析:模拟值与文献值的误差:W1=(360.15-344.79)/360.15=4.26%,实验值与模拟值的误差:W2=(358.23-344.79)/358.23=3.75%。通过模拟值与实验值及文献标准值的比较,可以看到,预测值与文献值的误差并不大,W

五、结论

本文利用差热扫描耐热性能分析方法(DSC)测试了聚氯乙烯颗粒料的Tg,同时采用微软net中新的开发语言C#开发了这个WindowsForm应用程序,利用该程序模拟了PVC的Tg值,两种方法的误差为3.75%,说明该种方法开发的程序是可信的,在误差范围内。

参考文献:

[1]朱伟平.分子模拟技术在高分子领域的应用[J].塑料科技,2002,(05).

[2]刘欣,顾宜.高分子材料中的计算机模拟[J].高分子材料科学与工程,2000,(11).

[3]Jozef putational modeling of polymers,New York,Marcel Dkker.1992.

[4]王吉星.高分子合成与性能预测的就算计模拟[D].河北工业大学,2004.

[5]李楚新,吴超富,熊远钦,徐伟箭.分子模拟方法在环氧树脂研究中的应用[J].精细化工中间体,2006,(03).

[6]王艺峰,程时远,王世敏,陈艳军.高分子材料模拟中的分子力学法和力场[J].高分子材料科学与工程,2003,(01).

[7]王秀丽,孙丽朋.分子模拟在高分子材料研究中的应用[J].齐鲁石油化工,2008,(04).

[8]黄江华.使用化工计算机模拟:MATLAB在化学工程中的应用[M].化学工业出版社,2010.

[9]刘昌明,郑卉.基于C#的Windows应用程序设计项目教程[M].中国人民大学出版社,2011.

[10]李春葆,曾平.C#程序设计教程(第2版)[M].清华大学出版社,2013.

基金项目:本文得到黑龙江省教育厅教改项目(JG2012010281)、哈尔滨理工大学大学生创新实验和综合试点改革项目——面向区域经济理工科院校创新创业人才培养模式综合改革与实践的项目支持

数学建模算法与程序篇7

关键词:评价方法实证分析过程分析

自20世纪初杜邦公司运用投资报酬率指标进行绩效评价以来,绩效评价已从单指标评价发展成多指标综合评价。在多指标综合评价中,评价方法的恰当选择对评价结果具有重要影响。本文拟对AHP、模糊综合评价法、灰色关联度分析法、因子分析法及TOPSIS五种方法在上市公司经营绩效评价中进行实证比较,并通过对各种评价方法具体评价过程的差异分析,试图对实证比较结果的差异作出解释,以期为评价方法的选择提供参考。

一、上市公司经营绩效评价指标体系

由于本文重点是探讨评价方法的比较,故对评价指标的选择不作深入探讨。上市公司经营绩效评价指标是在考虑上市公司特点的基础上,参照《国有资本金效绩评价规则》及其细则来构建的,如图1所示。

二、上市公司经营绩效实证分析

本文选取沪市八家高速公路运营公司作分析样本,分别运用上述五种评价方法对其经营绩效进行评价。原始数据来源于“巨潮资讯”(),对原始数据的预处理原则为:(1)对于极小型指标,取其倒数使用转化为极大型指标;(2)对适度型指标(如资产负债率),按公式xij=1/转换,其中k为原始数据xij’的均值,xij为处理后的数据;(3)无量纲化处理的方法是均值化方法。

1.运用AHP进行经营绩效评价

层次分析结构的构建按图1的模式构建,通过咨询专家,在各层元素中进行两两比较,构造判断矩阵,所有的判断矩阵均通过了一致性检验,并运酶扑愕贸龈髦副甑娜ㄖ兀荽巳ㄖ囟愿髦副杲屑尤ㄗ酆希醋酆辖峁园思腋咚俟吩擞镜木ㄐЫ信判颍峁绫?所示:

表2

评价对象皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

绩效得分1.32140.06711.46721.47331.31311.51391.06351.1020

排名48325176

2.运用灰色关联度分析进行经营绩效评价

取八家公司各指标的最大值所构成的序列作为最优指标集,计算灰色关联系数时取ξ=0.5,计算加权关联度时,权重取上述AHP法所得到的权重。按计算出的灰色加权关联度,上述八家公司的经营绩效评价结果如表3所示:

表3

评价对象皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

绩效得分0.92440.85160.94130.93940.92790.94390.90100.9066

排名58234176

3.运用模糊综合评价法进行经营绩效评价

在这里,评判因素集为图1所示14个指标,即:

U={X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14}

评价集为V={经营绩效高V1,经营绩效中V2,经营绩效低V3};

评价因素集中的所有指标均为定量指标,故采用梯形隶属度函数建立指标值与评价等级间的隶属关系(如图2所示)。将预处理后的数据带入隶属度函数,可得到三个评价等级的隶属度向量R1,R2,R3,对三个等级取权重(本文取(0.5,0.3,0.2))计算评判矩阵R,故评判矩阵R=0.5R1+0.3R2+0.2R3。本例在建立模糊评价模型时,各评判因素权重A的确定采用上述AHP法所确定的权重,评判模型为:B=A*R,其中合成运算采用普通矩阵乘法。运用模糊综合评价法对上述八家公司经营绩效的评价结果如表4所示:

表4

评价对象皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

绩效得分0.46350.24210.59640.50000.59820.51790.35660.3911

排名58241376

4.运用TOPSIS法进行经营绩效评价

运用TOPSIS法时,取八家公司各指标的最大值所构成的序列作为最优向量,最小值所构成的序列作为最劣向量,通过计算各评价对象对最优向量和最劣向量间的欧氏距离,来获得评价对象与最优向量的“拟合”程度,以此作为评价依据。其基本模型为:Ci=(Di-/Di-+Di+),其中Di-为评价对象到最劣向量间的距离,Di+为评价对象到最优向量间的距离,Ci为评价对象与最优向量的相对接近度,Ci越大则经营绩效越好,加权时的权重仍采用AHP法所得的权重。运用TOPSIS法的评价结果如表5所示:

表5

评价对象皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

绩效得分0.65610.08370.72260.72530.65230.74390.53850.5560

排名48325176

5.运用因子分析法进行经营绩效评价

运用SPSS软件可直接得出上述八家公司的因子得分,本例中,通过因子分析,前四个因子的特征值大于1,所解释的方差占总方差的91.35%,为精确起见,本例取前7个因子,该7个因子解释了所有的方差。对各公司经营绩效评价是以其综合得分为依据的,综合得分的计算方法是以各因子的贡献率为权数,将各公司在7个因子上的得分进行线性加权而求得的。运用因子分析法的评价结果如表6所示:

表6

评价对象皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

绩效得分0.0185-1.07990.27550.30730.23180.3956-0.15110.0024

排名58324176

三.评价结果的比较分析

上述实证过程的5种排序结果汇总如表7所示:

表7

排序方法皖通高速东北高速中原高速福建高速楚天高速赣粤高速宁沪高速深高速

AHP48325176

灰色58234176

模糊58241376

TOPSIS48325176

因子58324176

序号总和58324176

上文实例中各种评价方法所用的评价指标体系、原始数据及其预处理方法均相同,因此表7所示实证评价结果的差异仅取决于评价方法本身,即各种方法从输入原始数据到输出评价结果这一过程的差异导致评价结果的差异。本文对过程差异分析的前提是,因子分析、关联度系数、欧氏距离等所基于的数学理论均是可靠的,均能真实反映了评价对象间客观存在的差异。

为便于比较,将上述五种方法按评价过程中包含主观因素的程度作如下分类:因子分析法属客观评价法,AHP、灰色评价法和TOPSIS为主观评价方法Ⅰ,模糊综合评价属主观评价法Ⅱ。表8所示为各种评价方法得到的排序结果间的Spearman相关系数,系数越大表明排序结果越接近。

表8

排序方法客观评价法主观评价方法Ⅰ主观评价法Ⅱ

因子AHP灰色TOPSIS模糊

客观评价法因子10.9760.9760.9760.786

主观评价方法ⅠAHP00.97610.95210.69

灰色0.9760.95210.9520.833

TOPSIS0.97610.95210.69

主观评价法Ⅱ模糊0.7860.690.8330.691

1).客观评价法与主观评价法Ⅰ的比较:通过表8的Spearman相关系数可知,因子分析法的排序结果与三种主观评价方法Ⅰ的结果具有相同的相关度,相关系数均为0.976。

因子分析法在构造综合评价值时所涉及到的权重都是从数学变换中伴随生成的,同时因子分析的具体过程在数学上都有严格的逻辑,可以说因子分析法从处理数据开始直至输出综合因子得分的整个过程都具有很强的客观性;而主观评价法Ⅰ与因子分析法相比,其中的AHP法对原始指标加权综合前、灰色关联度法对关联度系数加权综合前、TOPSIS法对欧氏距离加权综合前的过程都是数学运算过程,不同的是在加权权数的确定上主观评价方法Ⅰ是主观确定的;因此从评价结果的输出过程来看,因子分析法与主观评价法Ⅰ的差异取决于加权权数。

2).客观评价法与主观评价法Ⅱ的比较:因子分析法的排序结果与模糊综合评价法的结果相关度较低,相关系数为0.786。

模糊综合评价法从评价集的定义、特别是隶属度函数的构建、合成算子的选取直到权重的选取、输出评价结果全过程均包含主观判断的因素,随意性较大,其评价结果很大程度上取决于参与评价的专家的素质。因此模糊评价与因子分析法评价结果的差异可能产生于评价过程的任一环节,两者的评价结果很容易产生较大差异。

3).主观评价方法Ⅰ与主观评价法Ⅱ比较:两者评价结果的相关度也不高,如上文所述,主观评价方法Ⅰ在加权综合前的过程是数学运算过程,而模糊评价在加权综合前的过程是主观判断,如果两者用于加权综合的权数是通过同样的方法取得的(上文的实例均是采用AHP法得到的权数),则评价结果的差异取决于加权综合前的任何一环节。

4).三种主观评价方法Ⅰ间的比较:AHP与TOPSIS法的排序结果完全相同,两者与灰色关联度法高度相关,相关系数为0.976。

这三种方法都是通过对原始指标值的数学运算,再利用主观确定的权数对数学运算的结果进行加权综合后输出评价结果的,在采用的加权权数相同的情况下,应该输出相同的结果,上文AHP与TOPSIS法的排序完全相同也证实了这一点;但灰色关联度法在加权综合前的数学运算过程中,计算灰色关联度系数时“分辨率ξ”的确定无一个合理的标准(本例取ξ=0.5),这与AHP和TOPSIS法有点区别,也正是这点差别,使灰色关联度法与AHP和TOPSIS法的评价结果产生差异。

上述分析与实证的结果基本一致,但并不能说明评价过程中客观的数学运算和主观判断的优劣,实际上数学运算有时可能扭曲真实情况,主观判断有时能结合评价对象的特点形成更真实的反映。

不过有的学者认为综合各种评价方法的结果可以找到一个最优排序,并提出序号总和理论、众数理论和加权平均理论等,所谓“序号和理论”是指把各种不同的评价方法下的排序序号相加,得到序号总和,按序号总和从小到大的排序即为最优的位序,当序号总和相等而无法排序时,可按众数理论确定其位序,本例按序号总和排序的结果见表7。这里运用spearman相关分析对各种排序与序号总和排序的相关性作了简要分析,结果如表9所示:

表9

排序方法客观评价法主观评价方法Ⅰ主观评价方法Ⅱ

因子分析法AHP灰色关联度TOPSIS模糊评价

Spearman相关系数10.9760.9760.9760.786

由表9可知,客观赋权法即因子分析法与序号总和法的结果完全相同,三种主观评价方法Ⅰ与序号总和法的相关度相同,且高度相关(相关系数均是0.976),模糊评价法与序号总和法相关度最低,相关系数为0.786。

四、结束语

鉴于上述各种评价方法间在评价过程上存在的差异,在选择评价方法时要结合评价对象的特点,充分考虑这些差异可能给评价结果造成的影响。比如当某项决策需突出评价对象某方面的特征时,运用主观性更强的评价方法可能会得到较好的结果;而评价对象的特性不易把握、或评价人员的知识不足以准确把握评价对象的特性时,运用客观性更强的评价方法更恰当。

参考文献:

1)周国强.经济系统综合经济效益评价方法比较.武汉理工大学学报(交通科学与工程版)2002(4)

2)白雪梅,赵松山.多种综合评价方法的优劣判断研究.统计研究2000(7)

数学建模算法与程序篇8

论文关键词:企业导向 算法设计与分析 创新型

论文摘要:“算法设计与分析”是计算机科学与技术专业的一门核心课程,是一门理论性与实践性相结合的课程。学生在这门课程的学习过程中过分注重基础理论的学习,动手能力差,不具备算法创新的思想,无法适应世界著名的IT公司大对软件人才的要求。文章讨论了企业用户对员工算法分析与设计能力的需求,针对目前该课程教学中存在的问题,就教学目标、教学内容、教学方法及考核评价等方面进行教学改革,以提高学生的综合能力和教学质量。

算法是计算机学科中最具有方法论性质的核心概念,也被誉为计算机学科的灵魂。“算法设计与分析”是计算机科学与技术专业的一门非常重要的专业基础课,在整个专业教学体系中占有重要地位。这门课程的学习,不仅是对学生前面所学的“程序设计”、“数据结构”、“离散数学”、“线性代数”等课程的理论延伸和强化,而且对后续课程如“编译原理”、“人工智能”、“计算机图形学”的学习及培养学生分析问题、解决问题的能力和软件设计与开发的能力起着至关重要的作用。

当前著名的IT企业特别注重应聘者算法设计与分析方面的能力。这些公司往往要对应聘者进行2-4轮的算法面试,要求面试者在给定的时间内(通常5-15分钟)给出具体问题的抽象数学模型、设计相应的数据结构及算法描述和效率分析。这就要求应聘者对算法设计及分析拥有坚实的理论基础,并具有敏捷的思维,能够在短期内归纳问题的实质,找出多种求解方案并且能够对各种方案的优劣性进行分析比较。

一、教学目标

由于我们学校的本科教学目标是适应社会发展的需要,培养与企业要求接轨的应用型人才。因此,“算法设计与分析”这门课程的教学目标应该是:要求学生在学完这门课程后应能够掌握算法设计与分析的基本理论和方法,了解新兴算法的原理及应用,并培养学生抽象模型搭建、启发式求解、创新求解、发散思维等方面的能力。具体目标如下。

1.重视学生抽象数学模型搭建的能力的培养。

数学模型是利用数学语言(符号、式子与图像)模拟现实的模型。把现实模型抽象、简化为某种数学结构是问题求解的第一步。简单问题仅需要一两种数学模型就可以进行描述,而复杂问题则往往需要多种数学模型彼此关联相互整合而成。数学建模是算法设计的前提,是构建现实问题与算法实现之间桥梁的关键。现代企业需要的不是理论家,而是能够解决实际问题的技术人员,因此必须重视学生这方面能力的培养,使学生具备基本模型构建能力。

2.重视学生发散式思维的训练

发散式思维是指在学习研究、工作中,根据提供的信息,沿不同方向寻求多样的、独特的答案的一种思维方式。它本身有不依常规、寻求变异、探索多种答案的特点。具有发散式思维的人一般具有回避老一套方法的强烈愿望。在提高人的发散式思维能力方面,创造性心理品质就大有用武之地。培养和拓展学生的发散式思维,做到“一个问题,多种求解”,可以启迪学生智力,提高学生举一反三,对比分析,灵活应变,多方位思考及想象创新的能力。

3.重视对学生适用性知识的传授

结合时展的潮流和趋势,针对目前流行的新兴技术和方法(例如:团购网站、社交网络、垂直主体搜索、并行算法、启发式搜索算法、遗传算法、蚁群算法、近似算法等),给学生进行一定的讲解和展示,进行相应的案例分析,使之了解其中重要的模型和算法,了解其基本原理,以达到与社会需求直接接轨的目的。因为很多公司在研发过程中新兴算法的使用频度要远远高于经典算法。对新兴算法有所了解,有助于入职者尽快适应岗位需求。

二、教学内容

“算法设计与分析”所涉及的领域非常广泛,通常包括下面几方面的内容:各种基本和经典的算法,如排序算法、图的搜索算法、组合算法、数值计算算法、递推法、枚举法、分治法、贪婪法、动态规划;关于算法分析和算法设计策略、可计算性理论和问题复杂性等方面的理论研究,如计算模型、问题复杂度分析、函数渐进分析等理论;各种新兴算法,如压缩算法、加密算法、人工智能算法、并行算法、随机算法、近似算法、搜索引擎算法、遗传算法等方面的理论及应用研究。我们根据“算法设计与分析”的教学目标,本着“设计与分析并重,基础与应用结合,经典与现代互补”的原则,进行教学内容的选取。具体包括如下几个方面。

“引入章”介绍算法设计与分析的基本步骤,其中包括数学模型构建、“自顶向下、逐步求精”的算法设计过程、循环和递归的设计要点、数据结构的选择及应用,函数渐进分析及算法复杂性度量等内容。

“核心篇”介绍各种常用的算法策略,如递推法、枚举法、分治法、贪婪算法、动态规划及与图搜索有关的算法策略,并对算法策略进行总结比较。

“应用篇”针对具体的应用,采用不同的数学模型、不同的数据结构或不同的算法策略进行算法设计,并进行效率分析。引导学生能够针对具体问题,进行自主的算法设计及分析。

“提高篇”介绍本学科领域的最新进展,讲述并行算法设计技术、概率算法、近似算法、遗传算法、搜索引擎算法等。

在以上各个部分的讲授过程中,还注意引导学生进行数学模型的构建。

三、教学方法

从面向企业需求出发,以培养创新精神和提高实践能力为目标,本课程可以采用多种教学方法,充分发挥学生学习的能动性和积极性。

1.理论与实践相结合

算法可以有多种描述方式,例如自然语言描述、类C语言描述、类Java语言描述等。这些描述无法直接在程序设计环境下编辑和执行,必须进行一定的转化。笔者在教学过程中,经常碰到学生追问“为什么我一字不差地把书上的代码输入到计算机中,却无法运行?”学生在初学算法时,往往无法理解算法描述和程序设计语言之间的区别和关联,总是试图按照程序设计的方法,将算法描述直接输入编辑环境进行编译和调试。因此,在学生学习算法理论的同时,应当引导学生将理论用于实践,完成算法到程序的完美转换。

2.设计与分析相结合

学生在学习过程中,往往只重视算法设计过程,而忽视算法的性能分析。而事实上,算法性能分析在本课程中占有非常重要的地位。通过算法分析可以在不同算法之间进行对比,例如对于排序、查找、最短路径等常用算法已经有很多种,不同算法通常在设计思想、时间和空间性上有其不同的特点,所以在讲授时不仅要把算法思路讲清楚,更应该通过不同算法之间的对比来分析其特点及应用方向。通过对比学习,一方面可以加深学生对所学知识的系统化理解,另一方,有利于引导学生在进行算法设计过程中注重算法效率的提升。

3.课堂授课与网络互动相结合

课堂授课采用多媒体授课模式,可以在有效的教学时间内增加单位时间的信息含量,将有限的时间和精力用于剖析课程中的重点和难点部分。将抽象的算法通过动画演示以直观的形象展示给学生,以辅助学生进行抽象算法的理解。例如:采用冒泡排序进行排序时,利用课件可以让学生更清楚地理解排序过程中两个相邻元素进行比较并相互交换的过程,从而更好地掌握“冒泡”的设计思想。课堂授课的内容制作成PPT在课程网站上,方便学生进行课下复习。除此之外,我们也注重加强互动教学环节。在课程网站上开设论坛、答疑、作业、网络考试、问卷调查等模块,通过布置作业、让学生提问、论坛讨论等方式加强教师与学生之间,以及学生与学生之间的协作与交流。

4.具体算法与设计讨论相结合

本课程目标是培养面向企业需求的应用型人才,而现代企业对雇员的要求是希望他们具备开放性思维,能够在面对新问题时有自己的思路和独到的见解,或者是面对旧问题时能够独辟蹊径,采用在时间或空间方面更为有效的方法来进行求解。因此,本课程在教学过程中,除了对具体的算法进行讲解和分析外,还应该针对某些实际问题,引导学生找出其中的关键技术,进行相应的建模,并启发学生进行求解策略的讨论。例如:针对目前的流行的社交网站,引导学生找出其中的核心技术——好友推荐功能,构建其相应的数学模型——图,并进行相应的算法讨论——图的最小路径问题。

5.个人设计与团队合作相结合

随着计算机技术的发展及其广泛的应用,软件开发已经从“个体单干”过渡到了“团队协作”阶段。大型软件的开发离不开团队合作,团队合作精神在软件开发行业有着极为重要的意义,没有良好的团队合作,就做不出好的项目。目前,各大公司在招聘过程中也会对应聘者进行相应的性格测试,以确定其是否具有团队合作精神。据此,本课程在教学过程中,除了要求学生独立完成简单和基本的算法设计外,还会布置相应的团队项目作业,要求学生3-5个人组成一个工作小组,由学生推选组长进行任务整体划分和分配、协调任务完成并进行终期展示和报告,各组员负责各自模块的展示和技术汇报。

四、考核方法

考试的主要作用是对学生所学的知识进行评价反馈、检测教学效果并督促学生认真学习、巩固所学知识,同时也有利于教师发现教学中的问题,不断地改进教学工作。传统的考核方式比较单一,仅根据期末考试的成绩来对学生好坏进行衡量,不利于反映学生真实的学习效果。因此,本课程考核方式主要从以下两个方面做出改革和新尝试。

1.学生成绩由平时成绩、期末成绩两部分组成

其中平时成绩占30%,期末成绩占70%。学生的平时成绩由以下三个因素决定:课堂出勤率,30%;作业完成情况,40%;团队项目中所发挥的作用,40%。

2.期末成绩采取多样化的考核方式

期末考试的形式由学生本人自主选择,分三种类别:理论试卷、上机测试、理论与编程兼备。数学推理能力、算法理论较好的学生可以选择理论类试卷,编程能力好的学生可以选择上机测试,在两个方面都不是特别特长或者两个方面能力均兼备的学生可以选择两种方式共存的模式。

这种自由考核模式体现出考核过程的人性化,避免了传统考核模式中“一刀切”的弊端,有效提高了学生学习的积极性,并实现了与企业需求接轨的教学目标。

五、结束语

“算法设计与分析”课程是一门非常重要的计算机科学与技术专业的核心课程,具有理论与实践并重、设计与分析并重的特点,是保证学生校园所学知识与企业需求相互匹配的关键课程。如何根据企业需求调整该课程的教学目标、教学内容、教学方法及考核方式,是我们进行新一轮课程改革的目标。本文就前面四个方面的教改提出了见解和策略,并将在以后的教学过程中将这些理论应用于实践,以帮助学生尽快适应社会发展的需要,提高他们在社会上的竞争能力。

参考文献:

[1]吕国英,任瑞征,钱宇华.算法设计与分析(第2版)[M].北京:清华大学出版社,2009.

[2]王晓东.计算机算法设计与分析[M].北京:电子工业出版社,2003.

[3]Cormen,T.H.,潘金贵.算法导论[M].北京:机械工业出版社,2001.

[4]陈蕾,张怡婷,许建.基于创新能力培养的算法设计与分析课程教学改革[J].计算机教育,2010,(20):27-29.

[5]高尚.“算法设计与分析”课程改革初探[J].教改纵横,2008,(14):37-38.

上一篇:恢复记忆力的训练方法范文 下一篇:小学教资笔记重点范文