时间:2023-09-28 18:00:30
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇课程开发和课程设计的关系,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:数据结构;课程设计;教学质量
数据结构是计算机专业的核心课程之一,是计算机软件技术的基础,以数据为中心讲述问题如何在计算机程序中得以实现。该课程的教学不仅要注重学生对理论知识的理解,更要培养学生能针对具体问题,设计合理的数据结构,对数据进行有效的存储、操作,并能完成相应的高效算法。课程设计的教学是整个教学环节中非常重要的一环,它弥补了课堂教学中实践少的缺陷,其教学目标不仅要培养学生缜密的逻辑思维和数据抽象能力,更要培养学生在软件设计领域科学的思维方式,将算法理论和编程实践完美结合,能够在工程实际中灵活应用。因此不断改进课程设计的教学方法,提高教学质量是培养高素质软件人才的迫切要求。
1存在的普遍问题
1.1编程语言基础差
数据结构课程设计通常是在大二进行,算法是基于C/C++语言。虽然学生之前已先修过这些课程,但C++本身规则复杂,面向对象的思想不容易掌握,而学生又没有经过系统训练,普遍存在编程语言基础薄弱、对调试程序的方法不够熟练、程序结构设置不合理、代码编写可读性差等问题。不少同学反映算法能听懂,看教师演示一些实例也觉得简单,但轮到自己编程就无从下手。这种状况直接制约了学生完成课程设计的质量[1]。
1.2缺乏系统的软件开发思想
计算机专业的课程体系中,软件工程通常安排在数据结构课程设计之后,这样学生在进行课程设计时,尚不具备软件开发的思想。遇到问题时,只考虑怎么实现,没有进行整体软件开发的过程规划,忽视了软件的性能、质量、甚至于需求都不甚明确就急于动手编写程序。这样的做法使得课程设计的完成效率很低,经常需要返工。
1.3教师的指导“过多”或“过少”
课程设计中,教师的指导相当重要,但是目前存在两个极端,有的教师对每个课程设计都讲解得面面俱到,如何实现,用什么样的存储结构,所得结果等都作了交代,学生只是被动的接收者,这种“填鸭式”的教学方式制约了学生的创新能力。而另一个极端,有的教师认为课程设计是由学生上机完成的,教师督促学生,最后给出考评,对学生完成课程设计的过程关注太少,很多学生因此敷衍了事。教师如何把握指导的度,如何指导是学生能力能否得到提高的一个重要因素[2]。
1.4考评制度不合理
长期以来,课程设计报告被看成是评定学生成绩的一个重要依据,而对学生软件开发的过程关注不多,学生只要上交了报告就能获得成绩[3]。这样的做法导致学生过度追求报告的整洁度、实验结果的正确性等。甚至部分同学抄袭、直接从互联网上下载报告交差。一个学期下来,除了交了几份报告,学生的收获甚少,课程设计教学效果甚微。因此,必须改革考评制度,才能真正培养学生的动手能力、创新能力。
2提高课程设计教学效果的措施
2.1规范软件开发的过程,培养良好的编程习惯
在学生开始课程设计前,教师首先通过一个具体的实例,从需求分析、概要设计、详细设计、编程测试等各个方面出发,让学生了解完整的开发软件过程。在数据结构课程教学中,所有算法均用可运行程序讲解,避免出现懂算法不懂编程的现象。有意识地让学生强化编程的技巧、调试方法、面向对象思想等内容。
我院数据结构课程组教师采用面向对象的思想,将数据结构中基本算法全部用C++模板类实现,学生通过多看、多读这些规范的程序,取得了不小进步。
2.2梯度命题,循序渐进开展课程设计
课程设计以往是教师根据实验指导书布置课题后由学生完成,部分学生感到难度很大,无从下手。现阶段我们将课程设计改为验证型、验证设计型、设计应用型多种层次,针对各种基本数据结构,教师首先用模板类实现,学生在课程设计时先用实例验证程序,在此基础上,设计出预留的一些函数接口,实现该类的部分功能。最后再针对某一具体问题,由学生开发出完整的程序。这是一个由易入难的循序渐进的过程,学生通过验证型实验更加牢固掌握基本数据结构,再由验证设计型和设计应用型实验学会如何应用数据结构,如何在计算机中实现存储,实现各种需求的功能。
下面以二叉树部分内容为例,首先实现二叉树的模板类如下:
/*二叉树类*/
template
class BinaryTree
{
public:
BinaryTree():m_root(NULL){} /*构造函数*/
~BinaryTree()//析构函数
/*按以先序次序输入结点值的方式建立二叉树的接口函数*/
void Create1(ElemType ch[],const ElemType &endChar);
/*以二叉树的先序和中序次序建立二叉树的接口函数*/
void Create2(ElemType ch1[],ElemType ch2[],int );
/*先序递归遍历二叉树的接口函数*/
void PreorderTraverse (void (*visit)(const ElemType &));
/*中序递归遍历二叉树的接口函数*/
void InorderTraverse (void (*visit)(const ElemType &));
/*后序递归遍历二叉树的接口函数*/
void PostorderTraverse (void (*visit)(const ElemType &));
……
private:
BTNode *m_root;
/*按先序次序输入结点值的方式建立二叉树*/
void _Create1(BTNode* &,ElemType ch[],const ElemType &,int &);
/*已知二叉树的先序遍历次序及中序遍历次序,建立二叉树*/
void _Create2(BTNode * &,ElemType ch1[], ElemType ch2[],int ,int ,int &);
/*先序递归遍历二叉树*/
void _PreorderTraverse(BTNode* ,void (*visit) (const ElemType &e));
……
};
对于这样的模板类,设定的验证型实验为:给定一棵二叉树,验证其先序中序和后序遍历结果。在掌握了二叉树遍历的基础上,设计出模板类中预留的两个接口函数create1和create2。最后,安排设计型实验为创建表达式树;分别用三种遍历方式遍历该树,比较它与实际的波兰式、中缀式和逆波兰式之间的区别;完成给定表达式树的表达式求值运算。这样有梯度地安排课程设计,一方面强化了基本概念,另一方面引导学生完成更复杂的设计。对基础薄弱的同学来说,验证型实验难度不大,基本都能完成,大大增强了自信;对优秀学生来说,挑战设计型实验更能提高自身的能力。
2.3抽丝剥茧,层层深入启发
学生遇到复杂问题时,往往一筹莫展,不知如何下手。教师应教会学生如何从问题本身出发,层层分析,应采用哪种数据结构,用到什么样的操作,在这样的操作需求下应用何种存储方法比较合适,最后细化到具体的函数实现。
如教学计划编制问题[4],要求根据课程和课程之间的先修关系,得到合适的教学计划安排。首先分析这个问题是对有向图进行拓扑排序,课程和课程之间的先修关系可用有向图描述出来。数据结构为有向图,存储方式为邻接表,应用的操作是拓扑排序。拓扑排序的基本思想是先输出有向图中入度为零的顶点,再从图中删除该顶点和所有以它为尾的弧,重复执行,直至图中所有顶点均输出为止。要完成拓扑排序,首先要求出图中所有顶点的入度。拓扑排序算法中还用到了一个辅助的数据结构栈,因此还需要初始化栈、出栈,入栈,判定栈空等操作实现。这样层层分析下来,程序中需要的函数一一明了:创建有向图、邻接表的建立、求顶点入度、初始化栈、出栈、入栈、判定栈空、拓扑排序等。函数层次关系图示如图1所示。
图1函数层次关系图
通过这样的教学方式,学生学会了带着问题去思考,逐步学会将大的程序化解成若干小函数,最终经过整合完成整个设计开发。
2.4加强团队合作,调动每位同学积极性
在课程设计中,针对每一种数据结构安排了一个工程性综合实验,这个综合实验由几名同学组成小组合作完成。团队成员分工明确,一名同学担任组长,负责组织和控制组内的工作进程,强调任务落实到组内每一个同学。
教师布置任务后,每个团队将软件开发流程应用到课程设计中,实质性进行问题规划、模块划分、项目整合等工作。只有团队中每个成员都积极面对,整个团队才能获得优秀成绩,无形之中鞭笞每位同学认真对待。在一个团队中,大家集思广益,可以跟伙伴一起交流,互相学习,形成共同进步的良好局面。
最后在验收答辩时,团队中每个成员都应汇报自己所做工作,教师和其他团队可以提问,交流开发过程中的心得。
2.5改革考评制度,从多角度综合考虑成绩
合理的考评制度可以对课程设计过程进行有效的监控,通过考评体系可以反馈各阶段的进展情况,便于总结经验,找出不足,保证课程设计的质量和效果。课程设计考评有别于普通的课程评分,我分院数据结构课程设计的成绩由几个方面综合决定:课程设计的内容、课程设计的实现以及实验报告。各项考评指标均有一定的权重,能够比较客观公正地确定学生成绩。其中课程设计的内容主要考虑学生所选课题的难易度、工作量多少。实现过程主要考虑完成情况、软件代码规范化、文档规范化、答辩质量等,最后由学生提交设计报告进行总结和讨论。设计报告除了包括常规的系统需求分析,概要设计,详细设计,调试分析和实验结果外,还鼓励他们提出优化方案,对于每个课程设计再“多想一点”,即其他可能存在的求解方法,如已经使用了链式存储结构实现,那使用顺序存储结构如何实现?各种设计的优缺点是什么?如何提高时间空间性能?通过总结,学生对问题有了更加深入全面的理解,锻炼了扩散思维方式,培养了创新能力。同时教师对评价优秀的学生或团队给与奖励,促使学生之间形成你追我赶的良好学习氛围,整体提高教学质量。
3结语
数据结构作为计算机专业的重要基础课程之一,对学生软件开发习惯的培养至关重要。提高课程设计教学质量不仅可以巩固基本知识,还可以让学生适应快速发展的软件开发技术,激发学生学习和研究的兴趣。本文从五个方面讨论了提高课程设计教学质量的措施,通过一个学期的教学实践,从效果上来看,这届学生分析问题、解决问题的能力,综合创新能力,学习积极性都比前几届学生有了明显提高,绝大部分的同学都能顺利完成课程设计并获得较好成绩,这为他们后续的课程打下了坚实的基础。
参考文献:
[1] 庞晓琼. 案例驱动的数据结构课程设计教学改革实践[J]. 计算机教育,2009(1):53-64.
[2] 陈越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J]. 计算机教育,2008(8):54-55.
[3] 李群,赵玉霞,庄波.《数据结构》实验课程设计与探讨[J]. 中国现代教育装备,2007(3):27-28.
[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2006:180-182.
Discussion and Practice on Improving Teaching Quality of Data Structure Course Design
XU Chong, WANG Libo, JIANG Juan
(College of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: Data Structure course design is an important professional practice lesson for computer major in university or college. According to the current situation of the low teaching quality for course design, based on the experience in our college, the paper puts forward several steps on improving the teaching quality, and then have been analyzed and discuissed.
关键词:项目开发能力;教学过程;实施方法;考核方法
中图分类号:G642 文献标识码:A
1引言
数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广泛的技术之一,已成为计算机信息系统与应用系统的核心技术和重要基础。当前,计算机的计算模式已由单用户发展到主从式或主机/终端式结构、C/S结构、B/S结构,进而发展到了Web服务与网络计算时代,而数据库及其技术一直是它们的后台与基础。
当前国内软件产业发展迅速,为了增强学生的就业竞争能力,必须全面培养学生的软件项目开发能力,以适应时代的发展。学生在大学四年学习中,不仅应该掌握一定的理论与技术知识,而且应该树立管理理念,建立项目工程思维观念。
数据库课程设计是学生实践数据库理论知识,真正掌握数据库应用系统开发技能所必须的学习环节,目的在于培养学生面对大量而复杂的数据管理要求时,具备分析问题和解决问题的能力。我们于2004年完成对数据库课程设计的教学方法改革,不仅在教学手段(包括课程设计的实施过程、考核方法等)上进行了体系化和规范化,而且与“软件工程”课程结合,对两门课程的实践教学环节进行了整合。
通过两课整合的课程设计,不仅使学生在理解数据库理论的基础上,实际动手开发一个实际的应用系统,而且培养学生应有的团队协作、自主管理、主动学习、创新思维、综合运用、动手实践等能力,使课程设计真正成为学生验证理论的“实验场”,成为开发学生潜力、培养实战能力的“战场”,成为体验项目开发过程的“运动场”。
2数据库课程设计的教学方案
2.1基本内容
学生运用已学数据库理论思想和数据库设计理念,具体设计一个实用小型数据库应用系统。开发设计过程按以下顺序进行――自选课题研究方向,调查用户需求,总结归纳数据流程,分析性能,书写需求分析及总体设计报告(包括数据流图、数据字典、数据库概念模型、逻辑模型、系统功能模块),完成应用系统的开发,汇报设计成果(包括撰写设计报告、系统验收、结果汇报),在这一系列工作中树立学生项目开发管理思想,培养学生的综合素质。
2.2进度安排
为使学生充分感受数据库系统开发的全过程,安排课程设计进度如下。
2.2.1前期准备阶段
该阶段主要任务是理解数据库、数据模型和数据库系统的基本概念;掌握数据库的概念模型、数据模型及数据
库系统的设计方法;进而确立自选课程设计题目,并依据软件工程中项目需求调研方法进行系统需求调研,绘制系统数据流程,提出系统要解决的问题。该阶段成果主要包括3份报告。
(1) 系统需求分析报告:包括采用的工程开发模型,数据流图和数据字典,系统功能。
(2) 数据库信息要求报告:对数据库中要存储的信息及语义进行详细描述,对数据约束和数据之间的关联进行详细描述。
(3) 数据库的操作和应用要求报告:详细描述数据库的数据操作要求、处理方法和处理流程,画出系统功能划分的模块图。
2.2.2基本操作阶段
主要任务是掌握数据库系统的基本操作,包括SQL语言的应用以及利用DBMS的工具进行数据库定义、维护、查询及掌握数据库安全性、数据完整性和并发控制技术等基本操作,初步设计系统测试数据,并能够正确解决实际遇到的问题。该阶段的成果包括一套系统数据表、关系以及基本数据。
2.2.3技术提高阶段
该阶段要求学生不仅掌握书本上的内容,而且还需要自学一些数据库系统开发新技术和相关知识。主要任务是掌握数据库备份和恢复技术以及有关的数据转换、复制、传送和数据库系统编程技术。该阶段成果为新技术交流讨论资料。
2.2.4设计完成验收阶段
该阶段教师通过3种方式对学生设计的应用系统进行全面验收:系统运行测评、分小组成果汇报和上交课程设计报告。
2.3全程指导原则
在课程设计进行过程中教师仅从宏观上把握一系列原则,让学生自己有更大的可选范围,实践时间长,紧密结合应用,实现了在课程设计中全面培养项目开发能力的目标,体现了新课程教学理念。在方案实施中严格要求学生从理论出发,与实际项目结合,从而提高他们项目开发的综合能力。
2.4评分原则
2.4.1根据数据库系统总体结构对系统从三方面进行评测
数据库原理、数据库应用和数据库设计三部分有机地联系起来形成数据库系统的总体结构,因此对课题设计的评测也从这三方面着手,达到对数据库系统的主要内容和框架的评测。
(1) 数据库原理部分:主要评测学生在数据库的数据结构设计、数据库系统总体设计以及数据库安全保护方面完成的工作。
(2) 数据库设计部分:主要评测学生如何将现实系统的数据通过某种数据模型组织起来,并利用DBMS系统提供的功能,完成结构及其约束的建立。
(3) 数据库应用部分:主要评测现实系统业务逻辑的实现,即通过某种应用模式(C/S模式、B/S模式)和某些(个)程序设计语言、开发技术和工具,在数据库设计以及DBMS平台支持的基础上,实现现实系统的业务功能,为用户提供友好和人性化的业务操作界面。
该环节的目的是使学生对于理论课中涉及的内容和自学内容进行综合实践以达到对它们之间关系的清晰理解,实现理论与实际的紧密结合。
2.4.2严格把关和考核,确保每一名学生在课程设计中得到实实在在的锻炼
由于课程是在学生第七学期开设,并且贯穿整个学期,很多学生面临考研或其他一些毕业前的事务,为了防止有些学生对课程设计任务敷衍了事,我们对课程设计的考核方法进行了详细规划,实施过程考核,而不是结果考核。具体考核步骤主要分为以下几个方面。
(1) 开题阶段:在第1~3周进行,要求每组写一份开题报告,包括课题内容、建立的需求分析及总体设计、小组成员任务分配、具体时间分配计划等,审验合格后方可进行系统开发。
(2) 中期检查:在第8~9周开展,根据计划表检查学生开发进度,纠正问题,督促学生按计划开展课程设计。
(3) 系统验收:在第13周进行,学生演示系统,说明和解释运行效果。考查的重点:每名学生是否完成了分配的任务以及任务量的多少、完成情况等。通过该阶段以后方可进入答辩阶段。
(4) 答辩:在第14周进行,每组学生指派一名代表进行陈述,然后进入教师提问环节(可提问小组中任何一名学生,为了鼓励学生参与提问,凡是提问的学生可以获得成绩加分)。考查的重点:陈述是否清晰、回答问题是否正确。
(5) 课程设计报告:报告的编写是考查一个学生总结工作,撰写科技论文的能力。考查的重点:报告是否内容完整、充实,条理是否清楚,格式是否符合科技文章规范。
以上各个方面考查的结果,进行汇总和综合评判,最后得出评分。
3数据库课程设计的创新点
3.1整合课程
目前在我国项目管理人员奇缺,大多数项目负责人在技术上能独当一面,而项目管理方面的知识缺乏,并且普遍存在着“重技术,轻管理”的思想,因此导致项目开发效率低、花费大。我们在课程设计中结合软件工程课程中学习的项目开发管理思想,对整个课程设计任务进行全面管理与实施,树立工程概念,培养团队合作精神。主要从以下几个方面强调管理理念。
(1) 认真执行需求分析与需求管理。
(2) 合理制订时间执行计划,记录与分析时间分配效果,积累时间分配经验。
(3) 个人分工明确,团队合理协作,通过全过程管理理念的贯彻,提高学生的管理能力,培养学生团队合作进行项目开发的素质。
同时各项目小组在课程设计的各个阶段还需填写阶段性报告,包括项目开发计划、小组角色的职责、需求规格说明书、概要设计说明书、详细设计说明书、项目开发日志等。
通过全过程管理理念的贯彻,提高学生的管理能力,培养学生团队合作进行项目开发的素质。
3.2丰富选题
教师推荐部分设计题目供学生选择,学生也可以自拟题目课题。但是课题的选择要由教师把关,主要依据以下几个原则。
(1) 随着Internet和Intranet的普及,网络数据库应用需求越来越广泛,因此课题注重开发基于B/S或C/S结构的网络数据库系统,以适应时代需要。
(2) 选题要求学生尽量选择实际需求的题目,这样学生不仅可以走出“象牙塔”,通过调查走访,了解国内计算机应用发展的状况,开阔眼界,而且在开发一个真实项目中,带来求学的动力,激发自主学习的渴望以及创造力。
(3) 对于虚拟题目,要求学生切合实际需要,符合发展潮流。
3.3工具多样
市场实际可用的编程开发工具与日俱增,且不断更新,为此在课程设计中,对于学生到底选择哪种开发工具,不做过多限制,鼓励学生自主选择,使学生可以选择自己感兴趣的程序设计工具进行系统开发,一方面锻炼他们自学的能力,另一方面也让学生成为项目开发的决策者,这种“主人翁”意识使得他们变被动学习为主动学习,实践证明学生自主学习的积极性和主动性直接决定了项目开发的成与败。
实际运作中教师会随时了解开发工具的发展形势,提出指导性意见,使学生根据选题“量身订做”工具,避免所选工具“大材小用”;跟上当前发展方向,实践技术“与时俱进”。同时,要求学生以讲座形式分类介绍所用新的开发工具,讲解自己学习新开发工具之后的体会,通过这种研究性的学习方式,避免学生重复学习、盲目学习,同时打开眼界,更加广泛了解技术发展局势。
3.4彰显个性
在完成数据库应用系统基本功能的基础上,鼓励学生运用安全技术、多媒体技术和美术功底等突出系统特色,完善系统性能,培养学生综合运用知识和创新的素质。
主要在以下几方面做进一步要求。
(1) 强调系统中信息安全保护的实现,把理论课中关于“数据库安全保护”的教学内容应用到所开发的系统中,学以致用。
(2) 用户界面友好、设计合理、画面优美反映系统设计人员的审美意识,强调色彩的协调,布局的合理,操作的方便。
(3) 各组之间允许选题相同,但必须突出本组特色,使学生通过竞争,努力发挥个人特长和创新意识。
3.5理论联系实际
系统的评测按照数据库系统的总体结构进行,从而达到对数据库系统的主要内容和框架进行评测,使学生对于理论课中涉及的内容和自学内容进行综合实践,以达到对它们之间关系的清晰理解,实现了理论与实际的紧密结合。
3.6过程评测
课程设计分阶段,每阶段设有检查与评估,既做到及时指导,又确保督促每一名学生在课程设计中得到实实在在的锻炼。考核依据环节的特点进行不同形式的考评,不仅培养学生的语言表达能力、编写技术文档、科技论文的能力,而且可以发现有组织能力的人才。
4实践效果
依据汇总的五轮评测统计表格可以看到,学生在课程设计中,学习积极性高涨,开发出来的系统形式多样,有单机版、C/S或B/S结构的网络版,甚至C/S和B/S结合的网络版,使用的数据库管理系统从小型DBMS,如VFP、ACCESS到大型DBMS,如SQL Server、Oracle等,前台开发工具从传统的Delphi、VB到先进的.Net、Java等,学生们普遍乐于挑选新工具、新技术,积极检索学习资料,参与网上BBS技术论坛,相互讨论,全面体验网络学习环境的乐趣。各组学生除了完成系统应具备的功能外,都在努力突出系统性能特色,完善系统功能,发挥本组同学的特长。各组开发的系统基本符合课程设计总目标的要求,并有几个系统成为他们工作后继续研究的方向。
通过数据库课程设计,表现出大部分学生具备参与一个项目开发的基本能力,并使他们动手实践、自主学习、积极创新等科学素质得到很好的培养,反映出课程设计大大提高了学生综合应用所学知识的素质,说明我们培养的学生具备终生学习的能力,能够适应社会发展的需要。
5小结
学习是人生的一个环节,就业是大学学习后的现实目标。面对严峻的就业形势,培养学生的实际动手人力,提升他们的竞争能力,是教师的责任。在课程教学过程中不断探索新方法,开展课程教学过程的改革,是教师的必须任务。这里所做的数据库课程设计改革,意在与大家共同探讨如何帮助学生摆脱“没有工作经验”难于就业的尴尬局面。
参考文献:
[1] 钱雪忠. 数据库原理及技术课程设计[M].北京:清华大学出版社,2009.
[2] 苗雪兰. 数据库系统原理及应用教程[M]. 北京:机械工业出版社,2004.
[3] (美)Stephen R.Schach.面向对象软件工程[M]. 黄林鹏,等译.北京:机械工业出版社,2008.
[4] 张海藩. 软件工程[M]. 北京:人民邮电出版社,2006.
The Training for Students’ Project Developing Ability in Database Course Design
WANG Yan-hong, ZHANG Xiao-li, JIANG Xiang-gang
(Department of Computer Science and Technology, Beijing Electronic Science and Technology Institute, Beijing 100070, China)
作者:王海舜 蒋巍巍 刘师少 单位:浙江中医药大学信息技术学院
1依据课程内在联系
构建软件设计系列课程群构成学生程序设计能力的计算思维、算法设计、程序设计与实现和系统分析能力四个基本要素,关键是提高计算思维、抽象思维、逻辑思维的能力,一两门孤立的语言或算法课程无法完成,这需要从系统工程的角度进行整体设计,组合相关的系列课程构成相应的教学和实践系统,并有一个循序渐进的深入过程,这一过程一般需要经过知识的积累、程序设计课程学习、软件开发实践等不同的环节,也就是要经历启蒙入门,发展提高和开发应用三个阶段[2]。通过贯穿大学四年的程序设计类课程的学习,学生在程序设计启蒙入门、发展提高和开发应用的不同阶段都能够很好地达到各个阶段的教学要求,形成良好的学习习惯,循序渐进、潜移默化地养成程序设计能力。因此,依据程序设计能力不同培养阶段的教学规律,我们应选择对学生程序设计能力培养有着关键作用的课程组成软件设计类课程群,课程群的主要课程可由以下课程组成。1)启蒙入门阶段:计算机导论、程序设计基础、面向对象程序设计等。2)发展提高阶段:数据结构、面向对象程序设计、计算方法、数据库基础、软件工程、Java程序设计等。3)开发应用阶段:网络程序设计、数据库开发实践、医学信息学、信息系统设计、医学图象处理等。建设课程群的目的是把原本相对独立的课程在教学过程中有机融合,前后课程互相呼应,逐步深化,把学生引入门。在课程群内涵建设中,按“点—线—面—体”的思路构建课程群框架,即以每门课程的主要知识点为基础,把程序设计类主干课程串成前后有机衔接的教学“线”,在课程群的“面”上构建课内外相关的任务驱动学习激励机制,最终形成软件设计课程群的体系结构和系统化的程序设计类课程教学框架[4]。在具体实践中,从分析课程群每门课程的知识点入手,从知识点内涵、教学要求、教学策略以及与前驱知识点和后续知识点关系等多个维度建立课程群中课程的知识架构的点、线关系,进而形成相关课程知识点前驱、后续知识点互相融合汇聚的知识面和课程体系。在此基础上通过完善相关课程教学大纲,达到目标明确、层次分明、定位正确、强化基础、拓宽专业知识面的应用型人才培养的要求。
2建立基于混合式学习的程序设计课程群教学模式
混合式学习(BlendingLearning)将传统的课堂学习方式和数字化学习方式有机整合,根据程序设计能力培养的启蒙入门、发展提高和开发应用不同阶段教学特点,围绕程序设计能力的“算法设计与分析能力、程序设计与实现能力和系统分析、开发能力”的递进培养目标,从混合式学习课程导入机制、多元化的程序设计课程活动组织策略、课内外学习支持以及教学评价等四个教学环节,从启蒙入门、发展提高、开发应用不同阶段组织开展混合式学习[5-7]。2.1启蒙入门阶段从程序设计能力入门训练入手,其重点在算法设计与分析能力的培养。针对大一、大二学生程序设计启蒙课程主要有计算机导论、程序设计基础等;教学围绕基本知识点训练编程思路、算法设计与分析方法,引导学生入门;教学活动组织中侧重于以班集体为单位的理论和实验教学,同时结合程序设计竞赛、课程设计、大作业等开展课外编程学习;建立BB平台、开发上线ZCMUOJ(ZhejiangChineseMedicalUniversityOnlinejudge:浙江中医药大学在线编译)系统,使之成为程序设计阶段课外学习平台,把师生面对面及借助网络和BB平台的辅导相结合,通过检查平时程序设计作业完成情况和程序代码数量和质量,以及期末的现场程序设计实验考试,进行学习成绩综合评价。2.2发展提高阶段发展提高阶段重点在程序设计与实现能力培养,从软件工程的角度,研究从程序设计到软件设计能力培养。本阶段主要是针对大二、大三学生,主要课程有数据结构、面向对象程序设计、计算方法、数据库基础、软件工程等;该阶段的教学侧重在程序设计的综合性、整体性素养培养,综合相关课程设计任务,以设计性、综合性实验为主,重点围绕软件开发的完整流程开展实践,强调团队分工与协作;以小组协作方式为主,根据各课程知识间的依赖特性从课程群的角度组织开展课程设计与假期实践;同时,强化软件集成开发环境(如VisualStudioTeamSystem、Eclipse等),版本控制工具(如CVS等)等协同开发环境的应用;教师的角色也随之从“教”师变为“导”师,提供实践思路与方法的指导,引导小组成员协作学习、角色扮演、讨论交流;教学评价侧重于程序开发、文档撰写、软件评测、团队协作等多个角度,通过小组自评、组间互评与教师评价等方式综合考量。2.3开发应用阶段开发应用阶段重点在系统分析、开发能力培养,软件团队合作开发训练,基于常用团队协作软件开发平台的软件开发训练。针对大三、大四学生结合计算机应用领域,特别是我校医学领域信息开发的优势,从医学信息学的角度,开展跨学科的医疗卫生信息化项目开发实践。该阶段课程群主要课程有医学信息学、信息系统设计、Java程序设计、网络程序设计、数据库开发实践、医学数字图象处理等;该阶段以项目实训、企业实践为主,重点围绕医学信息工程软件开发、网络管理软件、数据库管理软件开发等以及软件测试等多种角色开展教学;以团队分工协作的方式开展课程设计、项目实训和科研项目开发,并与相关卫生信息化企业合作开展企业实践,组织学生参与医院信息化项目研发;由相关教师组成导师组,以客户经理、项目经理等角色给予项目团队方向、思路、策略的指导,教师参与并鼓励学生借助网络等相关资源共同研究解决完善相关问题;通过项目答辩的形式检查实训成果。
3以任务驱动的课内外程序设计推进机制
程序设计能力的培养,仅靠课内的教学是远远不够的,需要建立完善的课外程序设计学习机制,激发学生学习积极性和学习潜力,为此,我们主要采取程序设计类课程布置的课外大作业、课程设计任务以及参与教师实际科研项目开发等多种途径来驱动学生的课外参与程序设计能力训练,同时建立多种形式的验收讲评和评价激励机制,任务驱动与激励机制的结合是引导学生课外开展程序设计一种有效措施[8]。3.1启蒙入门阶段以程序设计竞赛为抓手在低年级学生的程序设计能力启蒙入门阶段,以实施课外程序设计竞赛为抓手,从程序设计能力培养与训练入手,根据程序设计能力的教学规律,建立不同难度、不同层次的课外程序设计训练和竞赛为主的学习激励机制;设计开发适合我校学生特点的ZCMUOJ系统,使之成为学生参与程序设计的主要学习支持平台。为了吸引同学参与课外程序设计,我们建立了周赛、月赛、学期比赛以及单挑赛等多种形式的程序设计竞赛机制,刺激学生的参与兴趣。平均每周组织一次程序设计周赛,每月组织一次个人单挑赛和团体月赛,每学年分别组织学院比赛和学校比赛,参与人员覆盖了计算机专业一二年级70%学生。以程序设计竞赛为主要抓手的程序设计能力培养使学生程序设计能力明显提高,低年级学生完成课程设计的编程难度和代码数量明显提高,学习程序设计的兴趣明显上升,特别是在ACM比赛中,我校2011年浙江省ACM程序设计竞赛中获铜奖三项;2011年4月,我校在ACM-ICPC亚洲赛区晋级赛福州站比赛中获铜奖1项,学校排名25位;在2011年9月第36届ACM-ICPC国际大学生程序设计竞赛亚洲区预赛大连站比赛中获铜奖1项。3.2发展提高阶段以课程设计为抓手大二和大三学生已初步掌握程序设计基础,需要提高发展程序设计能力,突出软件工程角度的软件工程化开发能力的培养。软件团队合作开发训练采用企业通用的集成开发环境和软件版本控制工具进行软件开发训练。此阶段主要采取相关课程的课程设计和二年级小学期的集中课程设计等多种形式实现程序设计。例如在“数据库开发”课程中,采用案例教学,启发学生开展课程设计,通过剖析数据库开发案例,详细展开需求分析、模型设计、程序设计、程序测试以及系统等各个环节的实现方法,引导学生从单一程序设计到较为复杂的软件系统开发的过渡,培养学生软件工程素养和软件开发能力。3.3开发应用阶段以项目开发为抓手大三和大四学生已经掌握了软件开发的基础,但需要更多的实际项目开发实践,以便迅速提高软件开发能力。对此,我们采取课程教学中的模拟项目开发和实际软件项目开发相结合的激励机制。针对全体学生,在后续的医学信息学、信息系统设计等课程中开展模拟软件工程开发全过程的程序设计。例如在医学信息学课程教学中,把完成一个医院信息系统子模块设计开发作为贯穿于整个教学过程的任务,要求人人都参与项目开发,并且要用软件工程的方法来实现项目开发。以班级为单位,开发医院信息系统的一个子系统,模拟实际项目开发,分层管理,班级设立项目经理和技术总监,负责项目实施管理和技术管理,3至4人为一组,设立项目组长,负责项目模块的开发,要求每组完成需求、概要设计、详细设计和软件测试四个文档,并且结合医院信息系统参观调研,完善需求分析和设计。通过课程设计,尝试对软件设计全过程,特别是软件开发团队的合作,这对提高同学们软件设计能力有很大的帮助。同时,在课程设计成果考核评价中,我们让项目团队中每个人上台宣讲自己所做的工作、演示系统,学生代表评分与教师评分相结合。自2005年级至2008年级,共五届490名计算机专业的学生参加医学信息学课程设计,共完成22个门诊或住院子系统,100个子模块。同时,通过公开招募考试等形式,召集一些软件开发能力较强或学习能力较好的学生参加寒暑假教师的实际科研项目开发,并使之形成班级软件开发的骨干力量,进一步带动整个班级的软件开发氛围。
4结语
在实践中,我们认识到程序设计能力培养是一个从启蒙入门、发展提高到形成综合软件开发能力的循序渐进过程,在程序设计能力培养实践中,我们根据程序设计能力培养的教学规律,依据课程内在联系构建软件设计类课程群架构,针对各个不同阶段,制定培养对策,采取网络混合式学习、任务驱动、竞赛激励等多种形式的教学策略,特别是注重营造学习程序设计的氛围,激发学生主动学习的激情,在教学实践中取得了较好的效果。
关键词:“立体”教学法;整合打包;学生虚拟团队
作者简介:关颖(1978-),女,锡伯族,辽宁抚顺人,沈阳工程学院信息工程系,讲师;衣云龙(1980-),男,黑龙江九三人,沈阳工程学院信息工程系,讲师。(辽宁 沈阳 110036)
中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2013)22-0162-02
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。目前软件工程专业虽然也在大力提倡和实施能力培养的教育理念,在教学上以项目为依托,以教育教学质量提升为出发点和落脚点,以内涵建设为核心,理论与实践相结合,强化应用与推广,以国际化的视野深入研究教育教学改革过程中的新情况、新问题、新要求,不断提高教研水平与能力,全面提高人才培养质量,但是在具体实施中还存在一些问题有待改进。
一、目前课程安排中存在的问题
(1)专业课配套的课程设计设置的实践时间比较短,基本上1~2周,在这么短的时间里学生很难将理论上的知识全面、深入地融入到实践过程中。
(2)通常课程设计大多开设在期末考试之前,课设一结束就进入考试周,学生的重心都放在紧张的备考当中,很少有人能够认认真真、踏踏实实地进行课程设计。
(3)目前很多专业课都有自己配套的课程设计,但设置的太离散,不同课程的教师各自负责各自的课程设计,彼此没有交流,对于一些课程相关的课程设计,给出的课设题目基本不同,学生分组的情况也不同,这样会造成学生所做的课设项目不连续,团队能力得不到很好地提升。
(4)很多课程设计的内容重叠,学生会花掉大量的时间在重复的工作上面,例如对于软件设计类的课程设计,都需要有系统需求分析、数据库设计与实现等,对于如此紧张的课程设计时间,学生所能学到的新知识就很有限了。
为此,根据相关专业课内在的知识关联性,重新构建和打包课程设计等实践活动,探索一个能够真正提高课程设计效率、让学生能够真正从课程设计中获益的实践教学方法对于培养应用型人才至关重要。
二、“立体”教学法的教学模式
首次提出了“立体”教学法的概念,阐述了课程设计整合打包、实践活动开展与实践内容三者之间的关系,如图1所示。进而提出“学生虚拟团队”的组织形式、虚拟角色、责任、载体活动和量化评价标准,这些都可以为其他工科专业提供一个参考示范。
1.整合打包相关课程设计(“立体”项目教学法图示的x轴)
由于一些专业课的工程特点,它们之间的联系非常紧密,使得在不管单独针对哪门课进行课程设计时,都会感到“内容孤独”或者“内容重复”的感觉,为此,笔者把一些专业课程的课程设计进行合并,让学生们能够把相关课程内容有机地结合起来,根据工程特点“一气呵成”,有效地克服了在撰写课程设计报告时容易出现的内容重复性。例如,把“系统分析与设计”和“Web程序设计”这两门课程的“课程设计”进行了合并。
2.分解实践内容(“立体”项目教学法图示的y轴)
软件开发的完整过程主要包括分析、设计、编码和测试四个阶段。“Web程序设计”课程设计的重点是让学生从一个模拟的实际应用开发来了解、熟悉软件开发的全过程,而“系统分析与设计”课程设计的重点是软件开发过程的前两个阶段——分析、设计,因此在“Web程序设计”课程设计时可以直接利用“系统分析与设计”课程设计的结果,这样既保证了项目的连续性,又为“Web程序设计”课程设计的编码、测试阶段赢得了充裕的时间,使学生可以更多更好地掌握些编程语法及实用技巧,积累编码经验,有效地避免了重复性工作。
3.实践活动的开展(“立体”项目教学法图示的z轴)
运用“学生虚拟团队”组织形式贯穿整个理论教学和实践教学,使其紧密的结合在一起,在理论教学中加强实践教学,在实践教学中升华理论教学,为目前所提出的“案例教学”、“项目教学”、“问题驱动”等各种教学方法提供施展的平台,使之得以很好地发挥和实现。
三、“立体”教学法的具体实施
建立基于“学生虚拟团队”的教学实践活动和过程,通过在授课过程中以“学生虚拟团队”形式布置“大作业”,解决“课堂与实践、个人与团队”之间的关系。具体实施如下:
(1)针对“课程设计”进行改革,把课程设计的内容分解到课堂教学中去,以“大作业”的形式进行布置完成,有效地解决课程设计学时不足和学生理解思考过程不足的难题,增加了学生理解和设计的时间。
(2)根据人类对新知识学习通常采取“模仿、理解、创新”的规律,把软件企业实际应用的设计、制造、测试和管理模板带入到课堂与实践教学中来,为学生们提供了一个真实的、易于理解和模仿的知识载体,真正实现了教学内容“模板化”。
(3)为了让同学们体验团队合作的过程,锻炼他们个人沟通能力、团队合作能力、抗压能力、冲突解决能力等,在专业课授课和实践教学过程中,笔者将按4~5人编制小组,每个人都担当一定的社会角色,所有的活动都是以小组的方式进行管理,同时还要求每个小组必须每周召开一次小组周会,并进行每周周会记录以便监控各个小组活动情况。
(4)为了让同学们有一个充分展示自我的机会,锻炼学生们的交流和表达能力,在课程设计的尾声笔者将创建“团队发表会”和“作品分享会”。
四、在实践教学过程中的量化考核
针对学生虚拟团队在课程设计等实践教学环节中的表现,设计了10个方面的评价指标:任务难度、任务完成量、任务完成质量、任务完成状况、文档规范性、调查能力、小组周会出勤、参与积极性、团队协作意识、执行力。按学生在项目组中承担的任务量、完成质量、文档规范性、参与积极性、执行力等10个方面,由组长进行量化评价,该评价结果直接作为课程设计成绩的重要参考依据,这些指标全部来源于企业调研,全部是企业对学生就业考核的指标之一。
五、结论
本着坚持以软件项目过程(启动、需求、分析、设计、制造、测试、维护)为导向,以特色核心课程为基础,以国际工程教育理论(CDIO)所倡导的4大能力培养(工程基础知识能力、个人能力、人际团队能力、系统工程能力)为目标,以“学生虚拟团队”为学习组织形式,探索性地构建了根据相关专业课的内在知识关联性,重新构建和打包相关课程的课程设计,并在几届软件工程专业课教学过程中进行了实践,得到了学生们的认可,使学生们的实践能力得到了很大的提高,直接反映在参与教师们科研、教研项目的人数急剧增多,毕业生的就业人数及就业单位对口的数据均得到了大幅提升,达到了预期的效果。
参考文献:
[1]赵辉,李万龙,郑山红.软件工程课程教学改革的研究[J].长春工业大学学报(高教研究版),2006,(4).
[2]田保军.软件工程课程教学改革的研究[J].计算机教育,
2007,(23).
[3]孙为军.“软件工程”课程的教学研究与实践[J].广东工业大学学报(社会科学版),2005,(S1).
[4]马林兵,王海仙.“GIS软件工程”课程的多元教学法探讨[J].高教论坛,2008,(5).
[5]段丽英,李红娟.软件工程课程教学的几个方法[J].福建电脑,
一、分层次培养学生的程序设计能力
程序设计能力培养是由多门课程即“课程群”和很多教师共同完成。培养学生程序设计能力,可分四个层次[1]:基本程序设计能力、模块化程序设计能力、数据库应用系统开发能力以及多层分布式系统开发能力。这个四个层次有一定的逻辑先后关系、相互联系和相互促进。在教学过程中,狠抓学生这四个层次程序设计能力的训练培养。
二、基本程序设计能力的培养
基本程序设计能力是程序设计能力进一步提高的基础,也是后续许多计算机专业课程学习的基础,由大学一年级第一门程序设计语言课程来完成,对于大多数学生来说,这是一个新的领域,因此必须高度重视。学生的基本程序设计能力表现为能比较熟练地运用一门高级程序设计语言提供的数据类型、运算符、语句和函数和过程独立地编写解决简单问题的程序,在一定的程序设计集成环境下独立地上机调试程序,掌握最基本的程序测试和调试的方法。为了有效培养学生基本程序设计基本能力,在教学过程中 从程序设计语言的选择,教材的选用,到任课教师的安排,都必须进行周密的考虑。
根据多年的教学实践经验,谭浩强编写的《C语言程序设计》作为程序设计课程的启蒙教育,是比较好的选择;教学人员安排,要求至少具有三年教学工作经验、工作责任感强的老师担任此课程的教学。
三、模块化程序设计能力的培养
学生在学完第一门程序设计课程后,只掌握基本程序设计能力,能编写处理一些简单的问题程序(代码通常不超过20行)。对于复杂一点的问题,还不能运行模块化技术分解一个程序的功能进行设计程序。模块化程序设计能力培养主要由《C语言课程设计》完成,由《C语言程序设计》教师担任,更利于学生能力培养。在《C语言课程设计》中,教师重点培养学生抽象思维能力,对程序要解决的复杂问题按功能进行分解成一个个具有独立意义的子功能,用C语言函数分别实现各个子功能,并使每个函数包含程序代码长度符合学生容易理解的代码长度。
案例教学法是快速培养模块化程序设计能力的有效教学方法。任课教师精心准备几个典型的案例[3],并对这些案例进行详细分析、讲解,让学生运行程序和阅读程序代码,分析程序中各函数的功能和算法,分析各函数间的调用关系,使学生对程序的一般组成和结构有一个直观的认识,然后让学生模仿一个类似的实例,编制一个程序实践,使学生逐步适应和学会运用抽象思维方式,学会模块化程序设计技术,编写出有一定规模、具有一定实用性的程序的能力,从而掌握模块化程序设计的基本思想。在后续课程学习中,如《数据结构》、《操作系统》,教师要对模块化程序设计技术做进一步加强、提高。
四、数据库应用系统开发能力的培养
信息管理系统应用非常广泛,信息管理系统实际上就是数据库应用系统,因此,数据库应用系统开发技术是计算机专业类学生必须掌握的技术。数据库应用系统开发能力(单机环境)的培养主要是通过《数据库原理》、可视化面向对象程序设计(如VB)等课程设计完成。
在实践教学中,主要采取两项措施保证这种能力的训练。一是教师讲解数据库原理、面向对象程序设计(如VB、Delphi)课程时,一定要仔细分析一个信息系统开发案例,如“图书管理系统”,“人才信息管理系统”,“学生信息管理系统”等等。这种生动实用的案例学习,能激发学生的学习兴趣和动力,也很容易使学生理解掌握数据库应用系统开发的一般规律。二是通过随后开设的《数据库课程设计》、《VB课程设计》、《Delphi课程设计》,要求学生自己用学到的知识,严格按照软件工程的思想,开发数据库应用系统实例。这种反复的训练,使学生数据库应用系统开发能力得到进一步巩固、完善。
五、多层分布式系统开发能力的培养
随着Internet/Intranet网络的发展与广泛应用,应用系统的规模不断扩大,业务量的变化,用户需求的进一步提高,多层分布式应用系统开发模式成为系统开发的主流,掌握多层分布式系统开发的基本过程、思想,也成为学生程序设计能力必不可少的教学内容。这种体系结构的软件设计,要考虑两个个方面的问题,一个是业务逻辑层(也叫应用服务器)设计,是程序设计的一个重点难点。另一个是网络环境下,软件系统部署和运行在多台计算机上,需要相互协调地工作,必须考虑网络通信协议的使用,客户端与服务器之间怎样建立连接,以及怎样实现数据的交流等因素。
这个层次通常在数据库应用系统开发能力培养和计算机网络课程开设后进行。多层分布式系统开发编程技术训练,可以在第三个层次培养案例基础上进行,只需将系统的单机环境改为网络环境,教师学生都只要把精力重点放“多层、分布式”技术上,既节约了时间,而且效果好。
六、加强实践环节要求和管理
计算机课程光是“听老师讲”和“自己看书”是绝对不够的。在努力提高课堂教学的同时,必须大力加强实践环节的要求和管理。“理论+实验+设计”教学模式,表明实践环节的重要性,但还得管理好实践环节。对于课程的实验环节主要从以下几个方面加强落实管理。
一是抓好常规实验。教师必须认真对待上机实验课,要像理论课教学那样,每次都要明确指明实验的目的、要求,对上机实验内容要精心安排,对学生上机实验要严格监督。
二是抓好课程设计,即综合实训。为了快速、有效培养这方面的能力,通常由课程设计的指导教师,分析几个代表行的案例,然后由教师布置一些事先想好的课程设计作业,以小组为单位进行课程设计。每一个小组要挑选一到两个专业素质较好的学生担任正副组长,让他们对本组项目全权负责,充分发挥优秀学生在课程设计中的积极作用,既可以减轻指导教师的压力,又有利于课程设计质量的保证,发挥学生的创造能力。课程设计落实得好,将使学生的知识运用能力和程序设计能力得到迅速成长,教学效果也显著。
为了保证学生认真对待实践环节,防止学生复制或不做,比较好的办法是要求每个学生提交实践作业,并进行批阅,批阅的成绩,参与课程结束的期末成绩评定,实践表明,这种办法效果非常好。
三是组织各种程序设计比赛,鼓励学生自己积极编写程序代码,对于程序代码编写多又好多学生,给予表扬和适当的物资奖励,提倡在大学毕业前,编写10万行代码。试想一个在校大学生,如果编写了近10万行的代码,程序设计能力一定达到较高水平。
七、将科研项目与学生程序设计能力培养结合起来
教师要积极参加科研活动,通过科研项目活动不断提高科研水平、教学水平和实践水平。在进行科研过程中,可以将优秀好学的学生吸收进来,共同完成科研项目的开发。将科研与学生程序设计设计能力培养两者结合起来,不但提高了教师的实际项目开发能力,也培养了学生的知识应用能力、解决实际问题能力和程序设计能力。
关键词:数据库课程设计;实践教学;软件工程观
中图分类号:G642 文献标识码:A 文章编号:1007-0079(2014)21-0022-02
教育部2012年对《普通高等学校本科专业目录》和《普通高等学校本科专业设置管理规定》进行修订。以此为契机,结合华北水利水电大学(以下简称“我校”)软件人才培养模式,根据软件工程专业的培养目标和培养要求,积极借鉴“高等学校本科教学质量与教学改革工程”实施以来的教学改革理念、措施和经验,对“数据库课程设计”实践教学环节存在的问题进行反思,提出将工程设计的理念固化在课程设计的各个环节,对其进行改革和研究,旨在提高学生的实践动手能力和自主创新能力。
一、“数据库课程设计”现状概述
“数据库课程设计”为软件学院(以下简称“我院”)软件工程专业在学习完“数据库系统”(包括“数据库原理”与“数据库应用”)课程之后于学期末独立开设的一个综合实践教学环节。实践教学在工科教学领域是一个不可忽视的环节,它不但是理论知识得以迁移的手段,也是抽象与具体、理论与实践结合的基点。数据库系统是一门理论性、实践性均非常强的课程,开设该环节旨在加深学生对数据库系统相关理论知识的理解,培养学生分析、设计和编程实现数据库应用系统的能力,并在具体的数据库应用系统开发过程中强化学生的专业技能。
“数据库课程设计”是让学生独立地根据具体的应用环境,构造满足相应需求的数据库应用系统,它属于设计性实验范畴。设计性实验不但能够促使学生运用所学知识培养综合解决问题的能力,而且也会充分激发学生的学习动机,培养学生的学习兴趣,加强学生的实践能力。但在目前的实施过程中达不到预期的效果,通过分析和反思主要原因如下:
1.轻视实践教学环节
“数据库课程设计”于学期末开设,为期2周。从时间上考虑课程已全部结束,从心理上处于一个放松的状态,已不能全身心地投入学习。且时间较短,学生总以为2周的时间学不到专业技能,不能充分认识安排实践环节的目的和重要性,缺乏学习的兴趣,不能积极参与。
2.缺乏软件工程观念
在学习完“数据库原理”之后进行“数据库课程设计”,大部分学生认为该课程设计只需编程完成数据库的建立、各位数据库对象的建立及数据的添加、删除、修改和查询等功能。学生根据老师布置的课程设计题目马上就做这部分工作,对系统设计缺乏一个整体认识。这部分工作一天时间足以完成,在实际的实践教学环节中,学生大部分时间会浪费在数据库的连接、登录等问题上。这就出现了重程序设计技能,[1]轻软件工程方法,热衷于探索各种机巧的程序设计方法,忽视需求分析、评审、测试等软件工程的基本原则与方法。
3.考核模式过于传统
“数据库课程设计”作为一个独立的实践教学环节,传统的考核方式为出勤率(10%)、电子版系统(30%,界面+数据库连接+数据库设计)和纸质课程设计报告(50%),没有对学生所设计的数据库应用系统进行深入分析,投入的人力、精力不足,没有充分调动学生的自主创新能力。
如何充分发挥“数据库课程设计”的作用,收到良好的教学效果,是本次教学改革的主要研究任务。基于以上分析,主要从以下几个方面进行研究。
二、课程设计实践环节改革思路
1.任务提前分配
通过“数据库系统”课程的教学及“数据库课程设计”实践教学环节的实施,经过反思和讨论,认为通过对课程设计任务的提前分配可以充分认识到实践环节中的要求,调动学生的学习兴趣积极参与其中。关键问题是任务如何分配,提前到什么时候。
“数据库课程设计”是在学习完“数据库系统”课程之后于学期末开设,课程与实践环节是前后连贯的。那么在讲授“数据库系统”时就把“数据库课程设计”的题目、内容、要求、目标及成果提交的方式等分配给学生,在学生认识到学习完课程之后还有一项重要的任务。在学习课程的过程中,学生自己就能认识到学习的重点与难点。
“数据库系统”课程与“数据库课程设计”各个环节的对应关系如图1所示。
2.注重题目设计
“数据库课程设计”的第一个环节:题目的设计,至关重要。教师查阅资料,认真选题。首先题目的难度要适中,若选题简单,会让学生误认为数据库应用系统开发是一件很容易的事情,学生不能在设计中全面了解数据库设计的全过程及数据库系统的各种功能,达不到课程设计的目的;若选题过难,部分学生会知难而退。其次,题目要充分,避免抄袭现象,要设计到较多的领域,题目示例如表1所示。由于在学期初进行任务分配,学生有充分的时间对自己感兴趣的题目进行详细地实地调研,并能让学生充分认识到所学的知识并不抽象,能用来解决现实生活、工作中的实际问题,理论与实践完美结合。
由于学生的工作经验和社会阅历都不够丰富,在给出题目时,不但包括系统应该完成的功能需求,也包括一些描述系统的素材,同时还对各系统中现实环境中的情景用flash或DV制作了一系列的虚拟片断,从而为学生直观地理解系统中的业务需求奠定了基础。[2]
3.培养团队合作意识
学生分组,每组一题,不能重复,组内成员分工合作,培养团队协作能力,避免出现注重个人程序设计技能的运用和各种经典程序设计难题的解决,轻视团队协作能力和具体项目环境下的工程开发能力。
尤其在设计环节,要求学生灵活运用学过的知识进行设计,给同学们提供了较大的思维想象空间,调动了学生的学习兴趣,勤于思考,充分表达对不同设计的看法,然后集体讨论和总结,发挥集体的智慧,得到较优的数据库模式。
4.加强软件工程观
根据学生在进行数据库信息系统设计时重编程、轻设计的问题,提出把软件工程的观念贯穿到信息系统设计的各个环节。基于国际软件工程学科CC-SE2004规范,软件工程的教学与实践,从早期注重培养学生的软件工程观。
软件开发过程是一个系列活动,应包括:需求分析、软件设计、实现与调试、测试与验收、部署、维护等活动,具体过程如图2所示,在此过程中要借鉴工业工程中的“过程决定质量”的理论,强调过程对于软件开发的作用。[3]由此可见,编程只是其中很小一部分工作,应把重点放在分析和设计阶段。
为帮助学生以工程方法构建中小规模软件系统的知识和技能,演示一完整的项目作品,并制作开发视频,视频中展示数据库应用系统开发中每个阶段的主要任务和具体做法,尤其是需求分析和项目设计阶段,从而避免重编程实现而轻分析、设计的现象。
5.考核模式创新
为充分调动学生积极参与到课程设计各个环节,课程设计最后一天,每个设计小组分别答辩,讲解项目开况并回答老师提出的问题,最后提交课程设计报告。最终的成绩由考勤记录、课程设计报告和答辩三部分组成,成绩比例为2:3:5。该方式可充分调动学生的积极性,让每个学生均参与其中。
在此基础上,院里可以组织系统设计大赛,课程设计的作品可以参赛,并把获奖作品上传到院系网站,让学生自己进行投票,评选出界面设计奖、功能奖、代码设计奖等奖项。
6.实践效果的评价与反思
在课程设计结束后要做好教学效果的反思工作,通过问卷、交谈、建议等方式了解学生的心得体会,[4]特别是在实践动手能力方面的收获以及不足之处,以便进行教学改革,逐步提高教学水平,达到更好地教学和实践效果。
三、总结
根据软件工程专业特色,对“数据库课程设计”实践教学环节的任务分配、题目设计、团队意识、软件工程观及考核模式等方面进行改革和研究。近几年的实践表明,改革后效果良好,提高了学生的实践能力,达到了课程设计的预期效果。
参考文献:
[1]何福保,道,胡开华.基于项目模拟实训的“数据库课程设计”教学方法研究[J].福建电脑,2012,(1):31-32.
[2]刘智,刘加伶,闫河,等.数据库课程设计的教学思路与实施[J].软件导刊,2009,(1).
[关键词]职业教育 课程设计 方法
中图分类号:G710 文献标识码:A 文章编号:1009-914X(2014)21-0237-01
课程问题是学校教育的核心问题, 也是开展教育改革的难点问题。随着我国职业教育改革的不断推进和深化,课程问题也逐渐凸显为我国职业教育改革的根本问题, 对职业教育课程问题的研究也就成为职业教育研究的重点、难点。本文主要从方法论角度对职业教育课程问题作一些探讨,期望对职业教育课程的改革有所裨益。
1.注重课程设计技术应用性。
职业教育人才培养模式的基本特征为: 以培养适应生产、建设、管理、服务等一线需要的高等技术应用性人才为根本任务; 以适应社会需要为目标, 以培养技术应用能力为主线设计学生的知识、能力、素质结构和培养方案, 毕业生应具有基础理论适度, 技术应用能力强, 知识面较宽, 素质高等特点; 以“应用”为主旨和特征构建课程和教学内容体系。因此职业教育不同于普通高等教育,职业教育人才培养应走“技术应用型”的路子, 而不是“学术型”人才培养。职业教育就是让学生在接受较完整的高等教育的同时, 具备较高超的职业技能。因此职业教育的专业设置要有明确的职业针对性, 培养目标为高素质、高技能型技术应用性职业人才, 简称“技术应用性人才”。技术应用性人才处于社会总体劳动链环的终端, 是社会物质财富的直接创造者, 是社会运行过程的具体执行者。因此技术应用性人才在知识结构上应具有应变、综合和创新的特征, 在能力结构上应具备操作、动手、应用的特征。体现在课程设计上, 即要开发一些与时代紧密接轨、能够起到培养学生在迅速变化的环境中生存、发展和开拓能力的课程。因此对于一些基础理论课程, 首先必须大胆地对课本内容进行删减整合。
2.注重课程设计多元智能性。
课程设计基础调动学生的积极性, 使其主动参与学习, 从而成为学习的主体, 是提高教学质量的基础, 也是课程研究的重要课题。对于我国接受高等职业教育的学生, 如何调动他们的学习积极性更是需要重视和解决的实际问题。学科系统化课程不仅对这类教育不适用, 对于接受这类教育的学生也不适用。这是由于学科课程的思维模式与学生本身的思维模式往往是冲突的。心理学的研究表明人类的智能是多元化的, 每个人至少可能具有八种智能, 这八种智能构成了人类不同的八种求知和认识世界的方式, 也是八种人类不同的学习途径, 每个人在这些智能的表现上有所差异, 而且会以不同的方式运用和综合智能, 学习不同的知识、解决不同的问题、完成不同的工作以及在不同的领域发展和取得成功。我国高考成绩居于中间段的学生, 是高职入学学生的主体, 一般具有思想活跃、参与热情高、社会活动能力强的优势, 也同时存在学习目标不明确, 学习动力不足, 稳定性差, 缺乏创新精神和自我调控能力等弱点。这与我国教育模式单一, 过于强调学生逻辑思维智能, 而忽视其他智能开发有很大的关系。对于应用性人才的培养要更重视其他智能的开发, 而上述中间分数段的学生往往更具有应用性人才的智能优势。这与培养应用性人才的目标十分吻合。因此在课程设计中要注重学生多元智能的开发, 用与学科教育不同的方式组织课程, 使教学更易于开发他们的智能, 调动学生学习的积极性。
3.注重课程设计的能力性。
设计专业课程从学生的职业能力的组成元素上讲,包括有关的知识、技能、行为态度和职业经验成分等; 从能力所涉及的内容范围上, 可分为专业能力、方法能力和社会能力。专业能力包括单项的技能与知识、综合的技能与知识, 是劳动者胜任职业工作、赖以生存的核心能力; 方法能力指独立学习、获取新知识新技能的能力, 还包括制定工作计划、工作过程和产品质量的自我控制和管理以及工作评价, 是基本发展能力; 社会能力包括工作中的人际交流、公共关系、劳动组织能力、群体意识和社会责任心。社会能力既是基本生存能力, 又是基本发展能力。专业课程设置是在能力本位课程观指导下构建能力本位的课程模式, “能力”的内涵具有时空属性, 取决于社会经济发展对人才需求形态的变化和社会劳动组织形式的演变。构建能力本位的专业课程方案要从职业分析入手, 专业分析可直接使用国家或地方教育部门给出的行业分析结果进行, 在没有国家或地区行业分析的情况下, 可由学校或专业自行组织进行行业分析。专业分析的最终产品是专业培养所应具备的专业职业能力。专业职业分析一般由教育专家、行业专家、企业技术专家共同进行。每个专业要有明确的职业目标和职业能力要求,职业能力由“职业专门技术能力”和“职业关键能力”组成, 职业专门技术能力的核心是“职业专门技术”, 它是完成职业任务所应具备的基本技术, 职业专门技术能力可外延到“职业延伸能力”, 某一职业的延展能力可能是另一职业的专门技术能力, 延展能力主要是考虑拓宽学生职业能力范围, 使学生具有一定的发展能力。
4.注重课程设计实践性。
以产学研结合作为课程开发的基本途径职业教育是直接为企业建设发展培养技术应用型人才的教育, 它的生命力在于能够及时满足社会, 特别是行业、企业对人才的需求。高等教育是培养人的社会活动, 其社会性是不言而喻的。高等职业教育的职业性、大众性、产业性决定了它不能把自己封闭在校园内单纯地进行知识传授或仅仅依靠学校自身的资源来进行职业技能训练, 而必须向社会开放。依托地方、行业和企业的技术与管理人员、基础设施和职业工作环境, 以产学研结合为纽带, 以服务求支持, 与地方相关行业企业建立密切的合作伙伴关系, 建立健全产学研合作教育机制, 发挥地方行业企业在办学全过程中的无可替代的关键作用, 使更多的社会用人单位成为学校的合作伙伴、订单教育的预订者, 甚至发展成为和学校相辅相成的办学主体之一。因此依托行业和企业、建立产学研密切结合的运行机制, 是发展高职高专教育的关键问题。
5.结语
课程设计开发的原则是制约课程开发活动的价值准则,是人们根据对课程开发过程的规律性认识而制定的用以指导课程开发的基本要求,规范课程目标的性质、课程内容的选择、课程实施的标准以及课程评价的方式等。因此,工作过程导向职业教育课程开发最根本的一点就是基于职业性和体现职业性。
参考文献
一、信息化社会对计算机人才的需求
各企、事业单位内部运行着多个应用信息系统,而应用系统的安全保护等级决定系统运维人员的水平。例如统计核心业务系统信息安全保护等级为二级,因此要求运维人员技能不低于二级等级保护的技能水平。要求核心业务系统运维人员责任心强,熟悉常用的操作系统和系统软件,掌握关系数据库常规使用方法和日常数据库管理的基本SQL操作命令,熟悉统计核心业务系统的功能和结构,具有网络及硬件设施日常维护能力。从上述计算中心主要的日常运维工作可以看出,计算中心的工作人员应掌握计算机软、硬件的基本理论知识;熟悉项目建设、技术方案论证、基础设施建设、需求分析、技术架构、系统部署、系统测试、系统运行维护方案制定、系统的定级测评等软件开发和运维过程中各个环节的目标、工作任务、主流开发技术等;具有较强的组织、协作、协调沟通能力。由此可见,在企、事业单位的计算中心、信息中心、网络中心或相关部门,要求任职人员具有扎实的理论基础、较强的实践技能和经验,计算机中心的专业人员在各部门的信息化建设中占主导地位。
二、教学体系与课程教学模式改革思路
1.适应社会需求,完善教学体系。根据学校的特点,明确以培养应用型人才为目标。计算机应用型人才的培养,必须以市场需求为导向,确定人才培养方案。同时积极进行教学改革,研究应用能力、创新能力培养模式,建设稳定的实践教学基地,完善教学质量控制过程,以达到课内课外教学实践相结合,提升学生实践动手能力和创新能力。论文根据实际工作中应用技能的需求,将专业课程分群组、能力培养分方向,优化课程体系。①知识体系模块化。应用型计算机专业的知识体系主要分为以下几个模块:公共基础课程模块、专业基础课程模块、程序设计课程群、计算机硬件课程群、操作系统课程群、数据库应用技术课程群、网络技术模块、软件工程与开发技术等模块。其中:公共基础课程应强化学生的数学基础和英语能力;专业基础课程重点建设《离散数学》、《数据结构》;程序设计课程群建设以C/C++程序设计语言为主线,以《Java语言程序开发》和《.Net程序开发》为两个选修方向;计算机硬件技术模块以汇编语言与计算机组成原理为核心,以嵌入式程序设计与开发为方向;操作系统课程群重点讲解《操作系统原理》,并以《Linux/Unix操作系统》为选修方向;数据库应用技术模块以《数据库原理》为主体,以提升主流数据库管理系统的管理与应用能力为具体实践训练目标;网络技术模块以网络原理为中心,实践操作内容以华为网络体系和思科网络体系为方向;软件工程与开发技术模块以软件工程为核心,以开发某一领域的应用系统软件为目的。②实践技能规范化。目前的教育教学体系理论知识讲的多,而实践训练较少,以上课程群除课程包含的实验/上机之外,至少都应单独设置一门相关的实践环节课程。目前,独立设置实践环节课程如下:专业基础模块有2周的《数据结构课程设计》;程序设计课程群有两门课程实习,即2周的《C/C++课程设计》、3周的《软件设计实习》;计算机硬件课程群有1周的《计算机组成原理与接口技术课程设计》;操作系统课程群有1周的《操作系统课程设计》;数据库应用技术课程群有1周的《数据库课程设计》,并有《软件设计实习》与之相结合;网络技术模块和软件工程与开发技术模块均采用3周、校外、校企合作形式的实习。
2.教育教学与课程教学模式改革。课程教学应以应用能力培养为导向,增加实践性教学环节,广泛开展校企合作,实现专业化的技能培养,严格质量控制过程管理,以提高学生适应社会需求能力。下面以数据库课程教学改革为例,探讨应用型人才培养的课程教学模式。①以应用能力培养为课程教学目标。《数据库原理》课程以当前主流数据库技术和应用为背景,以数据库管理系统为核心、以数据模型为线索,重点讲授关系数据库的理论与应用技能。数据库应用技术是软件开发人员必备的一项技能。设计一个数据库容易,设计一个好的数据库难。本课程要求学生熟悉数据库系统的基本概念与原理,掌握数据库系统的设计步骤和常用方法,能熟练地运用数据库SQL语言进行数据操纵,具有开发实用的数据库应用系统的能力并有效地进行数据库应用系统的维护。②理论实践相结合,注重实际需求。数据库技术既有坚实的理论基础,又是实践性非常强的一门技术。《数据库原理》课程必须注意分析实际应用系统设计、开发、运维管理过程中出现的常见问题。如对数据库管理系统的监控工作,主要包括:定期检查数据库集群运行状态、数据库对象的空间扩展情况、数据增长情况、数据库当日备份完成情况、所有实例的状态、正常登陆到所有数据库的例程,记录数据库的cpu使用、I/O、buffer命中率等。这部分内容在教材中很难见到,但实际工作中却极为常见,因此必须做必要的讲解。③重视设计规范,案例教学,强化实践能力。数据库应用系统的设计既有数据库结构设计,又有应用系统程序设计,一个好的数据库结构是应用系统的基础。为了强化学生设计、开发数据库应用系统的能力,增加了《数据库课程设计》实践课。课程以实际应用系统需求为案例,运用常用的CASE工具(如PowerDe-signer),从系统需求分析的数据流图、业务流图、数据字典的绘制,到概念模型、逻辑模型、物理模型的建立,严格按照给定的数据库设计规范进行数据库设计,并撰写系统需求分析和系统设计文档。同时以某种程序设计语言为工具进行系统功能开发,实现一个实用的应用系统。④注重课程间的衔接,提倡校企合作。数据库类课程由有实践经验的教师或企业中的数据库设计、开发人员讲授。在系统的设计、开发过程中,数据库技术与程序设计相结合,学生深刻地认识到数据库结构设计的重要性,能更深入地理解数据库设计理论、方法和经验,同时学生程序设计能力也进一步提升,这门课程是保证学生在校四年程序设计不断线的重要环节。
三、结束语
本文针对目前计算机专业毕业生多、就业难的现状,作者分析了企、事业单位计算中心、信息中心、网络中心对计算机人才的需求,结合多年计算机专业教育教学的经验和教学中存在的问题,并以培养应用型人才为目的,提出改革教学体系与课程教学模式,提倡开展校企合作,加强师资队伍建设。
vb课程设计心得体会一
我们组这次设计的程序是考勤管理系统,主要用于企事业单位的考勤,便于统计员工的出勤情况。
1.通过这一次的程序设计,使我能够进一步掌握用程序设计语言解决实际问题的方法,在操作当中把所学到的用于实际的编程里面去。
2.通过这一次的程序设计,使我能够提高分析问题、查阅资料、吸收新知识的能力,在分析解决问题时比以前有了很大的进步,一些常用的知识和一些常规的错误都能够解决。
3.通过这一次的程序设计和指导教师姜瑶老师的指导使我能够进一步对vb有了熟练的操作,并且在分析,编程方面比以前有了更大的提高。
4.我认为实践周的程序设计是给我们学习的一个大好机会,使我们在这样的机会里学到了一定的知识,毕竟理论要通过实践来锻炼,也只有自己参与了这样的一个锻炼,才能更好的发现自己的不足并加以改进和完善!
在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我也学到了不少数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师谢谢她的耐心指导和热心帮助。由于我水平有限,加之时间短暂,故学习数据库系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。
vb课程设计心得体会二
在前两周中我们进行的VB课程设计中,我获得了一些心得体会。
这是我第一次系统与完整的接触软件设计。我们组的题目是关于“俄罗斯方块游戏”的设计。我在组内主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计中,我的能力得到了锻炼,自己也有许多体会。这次的课程设计是自己第一次全面接触软件的制作过程。以前仅仅是对软件的开发有一个大体的印象,通过这次的课程设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样十分神秘,而是有着一个相对固定的模式和流程。我们只要按照这个模式和流程,就能够比较规范的完成一个软件的制作。软件的制作是一个系统的工程,需要我们掌握多方面的知识。在这次课程设计中,我觉得自己的知识面依然有所欠缺。因此我需要在以后的学习中加以注意,要不断的提高自己的知识面与知识层次。
我在这次课程设计中主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计之前,我对VB的编程不是特别的熟悉,这次的课程设计,我是一边学习,一边总结,一边进步。在编程的过程中,我体会到其实各种计算机语言是有相通之处的。在以前的 学习中,我只接触过C语言,这次在VB课程设计中,我发现C语言中的许多知识可以应用到VB中,两者具有相通的数据结构。所以我认为现在对计算机语言的学习,不要贪多,而应耐心的学好一门主要的计算机语言,在这个基础上,去学习其他的语言,这样会使学习效率大大提高。
在编程的过程中,我体会到编程是十分辛苦的。在课程设计这一段时间里,我每天的生活基本是在不断的调试程序和修改代码中完成的。有时,这种生活令人感到乏味和疲倦,但是在这种近似枯燥的生活中,我的编程水平有了一定程度的提高,这是课程设计中我最大的收获。以前学习计算机语言,总是静不下心来,不能认真的看书。这次课程设计,为了顺利的完成编程工作,我认真的学习了VB语言,并有了一定的心得体会。所以在以后的学习中,自己全身心的投入,这样学习才会有效率,才会有效果。
这次的课程设计是按小组进行的,我们的小组由两名同学组成。软件的设计本来就是一个团体的智慧结晶。这次课程设计也给了我们一次体验团体合作的机会。在课程设计中,我深深的体会到集体的智慧于力量是个人所无法比拟的。在课程设计中,我们的小组成员互相帮助,有问题两个人一起讨论解决,大大节省了时间。互相都提出了很好的建议,使我们的课程设计得以较好的完成。
课程设计已经结束了,但在课程设计的这些体会要应用到今后的日常学习中去。在新的学期,我觉得自己要在以下几个方面加以注意:
首先,在学习专业课的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。
其次,在学习过程中要经常与同学进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。
课程设计已经已经完美解暑,这次课程设计给我打来了很多新的体会,在以后的学习中要不断总结,不断改进,使自己的成绩有新的提高。只有不断努力,才会使自己变得更加优秀。
vb课程设计心得体会三
经过近一个月的设计与制作,我们组的《20xx世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。
这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。
1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题
2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。
3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。
4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。
vb课程设计心得体会四
数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称.net是用于创建下一代应用程序的理想而又现实的开发工具,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍()。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。
通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。
来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。
其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。
开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。
摘要:本文论述了我院从数据库系列课程体系的构建、课程知识结构化及优化、针对课程各模块内容特点的教学方法手段的选取、实验教学方式、课程设计教学模式等五个方面进行的积极而有效的探索。
关键词:数据库系统;教学方法;课程体系
中图分类号:G642 文献标识码:A
Research on Course Architecture and Teaching Method of Database System
CHEN Long-meng
(College of Information Science and Engineering, Qingdao Agricultural University, Qingdao 266109, Shandong, China)
Abstract: For the purpose of achieving the innovative education target of database system and improving teaching quality, this paper presented the active probes into the following five aspects: the construction of the database system series courses, the optimization of the course knowledge, the adoption of the teaching methods and means gearing to the characteristicsof each module in the course, the teaching mode of experiment, the teaching pattern of course design.
Key words: database system, teaching method, course architecture
1数据库课程体系建设
1.1数据库系统课程的教学目标
根据数据库技术应用广泛、快速发展的实际情况,按照学校关于加强学生实践能力和创新能力、培养高素质应用型人才的要求,我们确立了数据库系统课程的教学目标,用一句话概括为使学生具备“对数据库系统的认知、分析、设计、应用能力和学科素质”,具体而言就是:较全面的掌握数据库系统的基本概念和基本原理,了解学科发展前沿和发展趋势,提高数据库的理论知识水平;学习数据库技术和方法,掌握其应用技能,提高学生的动手实践能力;培养学生综合运用数据库系统的知识、技术和方法进行数据库应用系统的设计和实施的能力,提高其综合素质和创新能力。
1.2课程体系的构建
上述教学目标较庞大,单靠一门课程、一学期难以达到。上述教学目标体现出明显的层次性,即“基础、应用和综合”,为此我们将上述教学目标分解为三个层次,分三阶段来实现。因此我们设立了如下数据库系列课程:
Ⅰ 必修课:数据库系统概论(第6学期开设);
Ⅱ 选修课:“SQL SERVER使用技术”,“动态网站建设”(第7学期前面开设)
Ⅲ 必修课:数据库课程设计(第7学期后面开设)
数据库系统概论课程是学习数据库技术的第一门课程,属于基础层次,肩负着培养学生数据库基本理论、基本技术和方法及其基本应用的能力,使学生获得系统的数据库知识结构和基本应用技能,为后续课和考研打下基础;
SQL SERVER使用技术、动态网站建设两门课程都是选修课(学习选择权交给学生),其教学目的是使学生掌握一种数据库应用系统开发工具(人利用工具而生存),进一步掌握数据库理论和方法的应用,提高学生的动手实践能力。
数据库课程设计是培养学生全面理解和综合运用数据库系统及相关学科的知识、技术和方法分析问题、进行数据库应用系统的设计和实施以解决实际问题、提高其综合素质和创新能力的重要实践教学环节,是数据库系统课程教学目标培养中的最高层次。在这一教学阶段,学生需要综合运用前两阶段所学课程的知识,以及程序设计、软件工程、计算机网络等相关知识才能完成本阶段教学任务,达到教学目标。
因为上述三阶段的课程在内容上前后相承,层次递进,所以在教学时间安排上,它们的开设学期前后相连,符合循序推进的教学规律,在教学上可起到趁热打铁的作用。
1.3教学内容的结构化与优化
课程体系教学内容的优化包括教学内容的结构化、确定重点教学内容和在系列课程间合理分配教学内容和任务,使课程间教学内容不重复不遗漏,优化目的是最大程度地实现教学目标。数据库系统概论课程在整个数据库系列课程中处于基础和支柱地位,因此课程体系教学内容的结构化首要是该课程教学内容的结构化。按照美国教育心理学家和教育改革家布鲁纳提出的“学科基本结构”的观点,教师要指导学生掌握教材全貌,使知识结构化、系统化[1]。为此,笔者从教学内容的结构化入手,经过精心整理,将数据库系统概论课程的教学内容归结为“两行四块”的知识体系结构[2],见表1。“两行”即按照研究范畴(即本身的性质)将课程教学知识点在水平方向上分为理论知识和技术知识两类,四块就是按照在人才培养中的作用将课程教学知识点在纵向上分为原理、设计与应用、系统维护管理、前沿与趋势四个模块。
观察表1,发现有两条水平的有交叉的线索,第一条是理论知识线索,第二条是技术知识线索,前者为后者提供严格的理论支持,后者为前者的提出和完善提供素材,两者相辅相成,统一于关系数据库系统。这样一种内容设计上的安排,既让学生扎实地掌握数据库的基本理论,又使学生全面掌握数据库的实际应用,可以迅速投入实际工作。
数据库基本概念、数据库系统体系结构、关系模型数据库、关系数据理论(含关系规范化,数据依赖的公理系统,模式的分解)等部分,构成了关系数据库核心理论基础,本部分在数据库学科知识体系中处于基础地位;SQL语言、数据库设计、数据库编程等部分讲述数据库的开发技术和方法,这部分内容的学习要直接用到关系数据理论等基础;在数据库基本理论的基础上,讲授数据库安全性和完整性控制、数据库恢复技术、并发控制技术以及关系查询处理及优化技术,使学生掌握数据库系统的维护管理和优化方面的知识和技能;对数据库技术的前沿动态仅作简介,学生了解即可。因为关系数据库系统已成为最重要、应用最广泛的数据库系统,所以,关系数据模型的原理、技术和应用无疑是本课程的教学重点。知识结构化,利于学生从整体上把握课程知识体系,了解知识点间的关联,这样才能使同学们带着明确的目的性去学习,从而提高学习的主动性和适应性,增强学习效果。
1.4课程间教学内容分配
在讲解数据库系统概论课程中SQL语言部分的内容时,为使学生能看到SQL语句的执行结果,采用Ms SQL Server 2000为平台,来演示语句的执行情况。在此使用SQL Server 2000这一DBMS时,仅以满足本章内容教学演示的需要为目的,只讲解其必要的操作使用,对其它具体深入的应用不予讲解,留待学生课下自学或在后续“SQL Server实用技术”选修课中学习,这就避免了上述两门课在教学内容上的重叠。
2教学方法与教学手段
2.1适当应用一般的教学方法和手段进行教学
课程体系及教学方案设定后,教学方法和手段就成为影响教学目标实现的重要因素。教学方法和手段是为实现教学目标服务,以提高教学质量为目的的。为此,在教学中笔者针对各部分教学内容的具体特点,以教学质量的高低为取舍依据,灵活采用多种教学方法和手段。同时,在满足一般学生学习要求的前提下,对有一定基础的同学还增加一些个性化的教学,为学生的个性化发展提供空间。
例如,对于综述性知识,如课程绪论部分,采用多媒体授课效果较好;关系代数、关系数据理论等部分教学内容都是很抽象的理论,采用讲解+板书授课方式要比多媒体授课效果更好;数据库设计这一章详细介绍了数据库的设计的步骤和方法,其内容和实践联系很紧密,非常适合用案例教学法[3]。在这一章教学中,我们采用课后习题图书馆数据库设计作为教学案例,结合教材中的理论内容,详细讲解每一阶段的工作和形成的成果,这样既使学生深刻地理解了课本上抽象的理论内容,又使学生学到了如何用理论来指导数据库设计的实践,起到了一箭双雕的功效。
在引入新知识时,如关系数据理论和并发控制技术时,采用启发式教学法,得出一个不好的关系模式存在的四类异常问题,和数据库共享可能引起的三类数据不一致问题,从而引出相应概念:数据依赖和封锁。
对SQL语言这一章,一要结合目前信息系统建设的实际进行全面讲解,以增加学生的学习兴趣,二要让学生能亲历查询的结果,以加深理解。实际讲解时,笔者应用SQL Server 2000这一DBMS 平台,让学生实实在在地看到查询结果,这样加深了理解,激发了学习兴趣。此外,指导学生课下自学一种DBMS,如SQL Server 2000,并以此为平台进行上机实验,让学生通过对SQL语句的使用来掌握SQL语言的各种语法和功能。
对于重要算法,如求最小覆盖算法、数据库恢复算法等,先讲清思路,再辅以动画进行演示。
2.2运用计算机学科特有的方法论于课堂教学
理论、抽象和设计描述了计算学科的研究和实践的三种形态,是学科方法论的最根本内容[4]。当讲解抽象的概念或理论时,教师恰当运用从理论到设计或从抽象到设计的形态转化,会使学生对其产生兴趣并留下很深的印象。这就要求教师理解课程体系中点、线、面的关系。例如实体完整性是指关系中主关键字不能为空且其值不能相同。在人事管理信息系统中个人数据库的职工号就是主关键字。参照完整性是指不允许引用数据库中不存在的外键数据,在进行参照完整性检查和约束时,可通过触发器来完成。
针对该课程的实践性、应用性,我们在教学中加强了实践环节的训练,具体做法是:按照课程内容的进度设计了从SQL语言的使用操作到数据库编程的系列上机实验。上机实验密切结合基本知识和基本技术,帮助学生消化课程内容,让学生在实际的DBMS(SQL Server 2000)上进行实际操作和实验,提交规范化的上机实验报告。这种课堂教学与上机实验紧密结合的教学方式既利于学生对基础理论知识的掌握,又利于学生的自主学习,激发学习兴趣。
3课程设计
课程课程设计的教学目标是使学生全面理解、综合运用数据库知识和技术进行数据库应用系统的设计和实施,培养学生分析问题和解决问题的能力,提高其计算机理论水平和综合素质。这一实践教学环节在培养学生的综合实践能力和创新能力方面起着不可替代的作用,我们非常重视其教学组织,从选题到答辩采取了一系列切实措施来确保其教学质量。
3.1成立课程设计指导教师小组,提前下达课程设计任务
课程设计指导教师小组由承担过该门课程且有实践经验的教师组成,设组长一名,在组长协调下共同进行课程设计前的准备,如制定课程设计任务和实施计划等,共同组织对学生的答辩;但分工明确,每人指导1个班。数据库课程设计为期2周,安排在第7学期后半部分。指导小组在第7学期第一周向布置课程设计任务,组织学生分组和选题。课程设计时学生分组一般是按照学生的知识、能力、性别、性格等特征互补的原则搭配,每组2~3人,设组长一名。选题在第二周内完成。这样早地布置任务,目的是让同学提前进入课程设计,早开始,早准备。
3.2选题
课程设计题目的命题原则是:符合教学要求,紧密联系实际。具体题目一般是由指导教师小组提供备选题目清单,由各学生小组选择,也可以是学生从自己感兴趣并熟悉的方面提出,经指导老师审核通过的题目。学生小组组长负责召集和协调讨论本组的课程设计,组员间既明确分工,又相互协调配合。
3.3以过程管理管理为着力点,确保课程设计保质保量完成
指导教师组将从选题和分组确定后到集中课程设计周之前的八周左右的时间,按照数据库设计阶段和软件工程时间进度相应地划分为若干阶段(一般为6阶段),明确规定各时间阶段结束前各小组要上交阶段报告和设计方案,并记录是否按时上交情况,记入平日成绩,以促使学生抓紧此项学习任务。对上交的阶段报告和设计方案,教师要及时评阅、反馈和指导,使其可行。
在集中课程设计周,采用以安排学生集中上机为主,分散设计为辅的形式。教师制定集中上机时间内上机纪律,并对学生考勤。之所以设置分散设计,是为学生对上机实施中发现的问题进行研讨或资料查阅留出时间。
3.4考核与评定
课程设计完成后,不但要提交软件系统、课程设计报告,而且还要进行答辩,答辩含讲解、演示、答问三环节。为避免在小组课程设计中,有的同学不积极参与,采用随机抽查个人和以抽签方式随机确定一位同学代表本组上台答辩的方式来考核小组的成绩,促使小组内部相互督促、相互帮助。通过这种课程设计组织方式,既培养了学生的综合实践能力和创新能力,又培养了学生的团队意识和协作精神。
课程设计的成绩由考勤、平日成绩(各阶段报告提交情况、随机抽查情况)、课程设计报告、答辩(含软件运行情况)成绩等部分组成。这种成绩构成方式,强化了对课程设计过程的监督和控制。
上述一系列措施,经过我们带多届学生进行数据库课程设计的教学实践证明,是行之有效的,并且可供其它软件类课程设计的教学指导所借鉴。
4结束语
经近年来对“数据库系统概论”课程的建设,我们以综合实践能力培养和创新教育为本课程教学目标,构建了数据库系列课程体系,建立了课程教学大纲、教案、多媒体课件、实验指导书和教学网站等,并对课程教学内容进行了优化、教学方法手段进行了改革和革新,对实验教学方式和课程设计教学模式进行了探索,取得了成效。
参 考 文 献
[1] 连润江. 数据库系统概论教学改革的探讨[J]. 湖北广播电视大学学报,2007,(5):22-23.
[2] 王珊,萨师煊. 数据库系统概论(第四版)[M]. 北京:高等教育出版社,2006.
关键词:冲压工艺与模具设计;二次开发;课程设计
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)06-0243-02
对于高职院校的模具设计与制造专业,《冲压工艺与模具设计》课程是其专业核心课程之一,有着不可或缺的重要作用。而《冲压工艺与模具设计》课程设计更是模具设计与制造专业教学中相当重要的实践环节之一。在整个实训周期,学生需要掌握模具设计的整个流程及方法,并且自己独立查找模具设计大典、模具设计手册等相关资料,综合运用模具设计知识,并且通过一系列计算,完成整套模具零件图的设计、绘制与装配。通过实训,可以让学生从理论知识的学习逐步过渡到实际模具的设计。
1 冲压工艺实训教学现状
高职院校模具设计与制造专业大多都有开设冲压模具课程设计实训,该实训一般为期两周,目的是让学生掌握整个冲压模具的设计流程,主要内容包括模具类型选取,模具关键零件设计与零件图绘制,模具刃口尺寸计算,模具排样图的设计,模具装配图的绘制等等。在其中零件图和装配图的绘制过程中,大多数学校还采用手工绘图,由于零件数量较多,学生无法将所有零件图全部画完,这就导致装配图只能画出示意图,从而更加无法了解这样的装配是否会出现各个零件的相互干涉,以及装配出来的模具是否能够满足设计说明书的要求。
为了解决学生在冲压课程设计中出现的问题,近年来,随着计算机绘图的普及与发展,部分学校开始让学生采用AutoCAD或者CAXA等软件绘图,这在较大程度上提高了学生的绘图速度以及图形的可读性,不过在三维立体图方面还有所欠缺。还有部分院校让学生采用三维软件,比如UG NX10.0或者solidworks2015等软件进行零件图的绘制和装配图的组装,更加立体的图形让学生能够对各个零部件有更深刻的认识,由于绘图的工作量较大,很多学生采用分工合作,一部分负责设计计算,一部分负责画图,这就使得学生很难掌握模具的整个设计与绘制流程。
有鉴于此,本文以SolidWorks为基础,在VC++环境下,针对现有《冲压工艺与模具设计》课程设计中的不足之处,运用参数化设计,设计出模具的所有关键零件,通过选择其他标准件来完成整个模具的装配图,并且可以动态演示加工效果的课程设计系统。经过一年的教学与反馈发现,直观的动画有效地提高了学生学习的兴趣,让学生真正掌握整个模具设计的工艺和流程,更好地完成设计任务。
2系统总体结构
为了让学生真正掌握冲压模具设计的整个流程,本系统的设计思路与冲模设计流程完全吻合,其流程图如图1所示。
模具前期设计计算主要包括模具类型的选择(采用单工序模具、复合模还是连续模),模具关键零件尺寸的计算,模具的排样设计,材料利用率的计算,冲压力的计算,压力机的选择等等。
模具参数化设计主要是把计算的结果输入到系统的参数化设计对话框中,系统将自动生成零件的三维图,标准零件的调用是根据标准件的选择直接从标准件库中调取零件三维图。
装配模块是在所有零件的三维图都准备好后自动将其组装起来。
运动仿真模块是在装配Y束后实现模具的运动仿真,模拟真实模具加工场景,同时自动检查是否会出现零部件的相互干涉现象。
装配图与零件图打印输出模块是根据三维装配图,自动生成二维装配图,或者选择不同的三维零件转换成二维图进行输出打印,作为课程设计结束后的纸制资料上交保存。
3教学设计与实现
3.1 开发工具选择
教学系统采用SolidWorks作为三维开发软件,在该软件中,SolidWorks API是SolidWorks专门提供给开发人员使用的接口,这个接口是完全开放的而且功能齐全,它为开发人员提供了大量的功能函数,开发人员只需调用这些功能函数便可轻松实现所需要的功能,例如生成草绘图形并实现拉神、旋转等。SolidWorks API具有很好的兼容性,只要是支持OLE(Object Lingking and Embedding)和COM(Commponent Object Model)的编程语言,如Visual C++,VB等都可以用来进行SolidWorks的二次开发[1]。
考虑到SolidWorks软件自身是由VC++开发的,若用VC++来对SolidWorks进行二次开发,一方面有助于软件自身的兼容性,另一方面开发出的功能模块也能够更好的嵌入到SolidWorks中,实现VC++与SolidWorks的无缝链接。因此,本文以VC++6.0作为二次开发软件。通常对SolidWorks二次开发有两种方法:其中一种方法是基于自动化技术,开发出*.exe形式的程序,直接运行;另外一种方法是基于COM技术,先编写动态链接库(*.dll)程序,然后将该动态链接库嵌入到SolidWorks菜单栏中,使其作为SolidWorks软件中的一个插件使用。本研究运用的是第二种开发方式,即生成dll文件,然后嵌入到SolidWorks软件中。
3.2 参数化设计模块实现
参数化设计模块包括凸模,凹模,凸模固定板,凹模固定板等的参数化设计,这里以凸模的参数化设计为例。在我院冲压工艺与模具设计课程设计中,零件中采用的凸模主要有圆形,方形和其他形状,如下图所示为圆形凸模的参数化设计界面。标准圆形凸模的主要尺寸包括台肩直径D1和台肩高度h,凸模的两个直径D和直径d,以及凸模总高度L,在设计此类凸模时,学生只需要根据计算将数值输入到对话框中的凸模参数栏中,点击预览按钮便可以在SolidWorks中快速生成凸模三维图形。图2中a图所示为凸模设计对话框,在凸模参数栏中输入d=10.2mm,L=55mm,h=3mm,D1=17mm,D=14mm后,点击预览按钮,会弹出如b图所示图形,点击确定按钮则自动生成。
3.3装配模块设计实现
装配设计一般可以采用自上而下或者自下而上两种方法来实现[2],在本系统中,我们采用的是自下而上的设计思路,即首先将零件画好再装配。装配时,依次将零件加入到装配体中,同时根据相互之间的约束关系进行约束。若装配好以后有部分零件需要更改,只需要更改该零件的参数,只要约束关系不变,待零件更改结束后,系统中的装配图也会自动更新零件尺寸和形状。如图3所示为装配以后的形状。
3.4运动仿真模块设计实现
对装配好的装配图实现三维动画模拟仿真演示[3],在演示过程中判断是否会出现干涉现象以及其他模具设计方面的问题,比如冲压模具设计中凸模长度是否足够,条料在加工结束以后是否可以正常卸下,零件或者废料是否可以从凹模洞口中顺利排出或者顶出等等。通过运动仿真可以让学生完全掌握常见冲压模具的设计知识,同时运动仿真的完成也会大大增加学生的自信心和实训工作完成的成就感。如图4所示为运动仿真过程中的截图,从中可以看到条料已经伸入模具中,并且已经加工出了两个零件,加工过程所产生的废料从凸凹模孔中排出落下。
4结论
本文通过对SolidWorks的二次开发,对冲压模具中所有零件实现了参数化设计,学生通过必要的计算以后,直接在软件中输入各个参数值,件即可自动生成零件图,同时,还可以对零件图进行自动装配,在装配过程中完成干涉检查,并在最后实现运动仿真。通过一年的实际使用测试,自动装配和运动仿真的视觉效果大大增加了学生做课程设计时的兴趣,提高了课程设计的效率,学生通过软件的使用,可以更迅速的掌握整个模具设计的全部知识,为后续的学习以及今后走上工作岗位都奠定了坚实的基础。本研究对于其他类似课程的课程设计实训也有较强的参考意义。
参考文献:
[1] 孟庆当,丁战友.浮选机关键零件的参数化设计[J],西安工程大学学报,2014,28(4):496-507.
关键词:微型课程;自主学习;终身教育;学习情境
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)45-0208-04
在信息化、数字化时代,非正式学习和微型学习倍受欢迎,微型学习以其便捷、快速、微量的特征体现了较强的适应性。同时,微型学习的发展,对传统的课程设计提出了新的要求。而成人学习的一个重要特点是自主学习,即学习者在教师的指导下,自己制订学习计划,自己选择学习策略,自己安排和管理时间,自己控制和评价学习的一种学习过程。微型课程对成人自主学习有着重要的意义。本文在分析成人教育课程设计现状及存在问题的基础上,根据成人在职自主学习的学习情境,提出微型课程设计与开发的设想。
一、当前成人教育课程设计对学生自主学习的适应性问题
早期成人教育的课程开发基本沿用了普通高等教育的模式,无鲜明的特色。1999年电大开展开放教育试点以来,与开放教育相关的教学改革开始侧重于多元化教学模式的构建,以及教学方法、考核方法上的创新,但并没有在本源上对成人教育进行专门的课程设计。以至于教学改革的结果并不理想,比如面授课到课率低、网上资源的点击率低、网上实时教学形同虚设、学生学习兴趣不高。甚至可以说,部分学生的真正学习行为并没有发生,他们在学习过程中所付出的努力在于应付各种各样的教学安排、作业及课程考核。当然,造成这种结果的原因有很多,比如,学生本身工学矛盾严重、学习动机不纯(较强的学历需求)、学习能力较差等,但笔者认为,这与成人教育课程设计的缺失有一定的关系。我国现行的成人远程教育课程设计很多带有浓厚的传统教育课程设置的烙印,有些甚至照搬普通高校课程的内容和框架,并未体现成人远程教育的特点,不符合远程教育的要求,无法适应学员自主学习的需求,学员在学习过程中遇到诸如学习时间不够、学习动力不足、学习方法不当、学习条件不好等一系列问题,影响了学习效果和积极性,从而导致他们对远程教育产生失望和抱怨,大大降低了成人远程教育质量。
当前,国家开放大学的各项建设正在开展,成人教育也面临着功能性转变,学历教育不再是成人教育的唯一职责,终身教育成为成人教育新的使命,非学历教育将是成人教育的主体。同时,随着社会的进步,成人学习者的学习环境也在发生着较大的变化,使原有的课程设计表现出较大的不适应性,主要有以下几点。
1.课程设计不适应成人学习者的自主学习情境。成人自主学习情境,主要是成人学习面临的客观环境,包括学习时间、学习条件等。成人学习者的学习情境之一是工学矛盾严重、学习时间碎片化。相关数据分析显示,45%的成人学员周工作时间在40个小时以上,26%的学生周工作时间为固定的40小时,另有29%的学生周工作时间低于40小时。除工作之外,上下班、照顾家庭、社会应酬、娱乐等日常生活内容也占用了工作之余的大部分时间,这决定了成人在职学习只能利用工作、生活之余的闲暇时间来进行学习,这些时间是零碎的、分散的时间,不适宜进行有深度的思考和系统的知识学习。而现有的约定时间地点的面授教学、网上实时教学很难以适应学生的需求,而且,每节课固定的时长也为学习者带来了较大的学习障碍。
成人学习的第二个情境――新的移动学习方式正悄然兴起。网络和移动终端使得学习随处、随时可及。据中国互联网络信息中心(CNNIC)的《第31次中国互联网络发展状况统计报告》显示,截至2012年12月底,我国网民规模达5.64亿,全年新增网民5090万人。互联网普及率42.1%,其中18岁以上成人网民占网民总数约80%,2012年中国网民人均每周上网时长达到20.5小时。同时,移动互联网也蓬勃发展,各种移动终端,如手机、Pad、移动终端越来越多,2012年,通过笔记本电脑上网的网民为45.9%,通过手机上网的网民比例增速较快,从2011年的69.3%上升至74.5%。且2011年3月~2012年9月间我国移动互联网流量增加了10倍。教育是信息的传播,而现有的成人教育资源很难适应移动学习的需求。
2.课程设计不能适应学习者的个性化、差异化需求。学习需求个性化、差异化不仅体现在生理方面,如由于性别、年龄、身体、体能和感知等方面引起的差异,也可能体现在心理方面,如由知识结构、智力类型、兴趣、爱好、动机、情感和意志等方面引起的差异。这些差异必然引起每个学习者学习需求的差异,可能表现为学习内容的差异、学习方式的差异,甚至学习兴趣的差异。如果学习目标、学习内容、学习时间统一,学习方式单一,则会使成人学习者不适应,学习压力加大,面对学习比较焦虑,自主学习信心不足。远程教育者必须重视并适应这种个体性差异,并尽可能使得课程设计能够满足个性化学习的需求。
3.课程设计不能兼顾非学历教育或非正式学习的需求。现有的成人教育课程沿袭了传统高等教育的课程,主要是针对成人学历的教育设计、学习资源、教学组织、课程考核等设定对人才的培养目标。而在终身学习背景下,学习需求可能是非正式的、随机的、即时兴起的需求,可能只是针对某一个问题的解决。在这方面,现有的课程设计显然难以适应。
可见,终身教育环境下,要求课程具有形式多样化、灵活性等特点,要求课程满足学习者在短时间内掌握某个学习内容或技能的学习需求。
二、微型课程在适应成人终身教育及自主学习等方面的意义
(一)微型课程的特点
微型课程应该是相对于传统普通课程而言的一种新课程理念。传统的普通课程的内容主要是以学科知识为主,强调知识的系统性和逻辑性,根据初学者的认知习惯,重视知识学习的先后顺序。而且,传统的普通课程体系僵化,资源开发缓慢,新的知识需要经过长时间的磨合才能被纳入学科体系,难以适应不断更新、不断扩大的知识学习需求。因此,微型课程不仅从形式上,而且从内容上都不同于普通课程。从形成上看,微型课程主要适应微型学习,因此微型课程应该是内容短小、精炼,媒体形式多种多样,能灵活适应各种学习方式。从内容上看,微型课程为了适应更广泛的、灵活的、即时的需求,它的内容来源应该包括一切可学习的知识,既包括学科的知识也包括能被描述、传递、认知的技能等专题性的知识。从学科方面来看,微型课程是学科课程微型化的结果,即把传统的学科课程模块化、项目化、知识点化,形成相对独立、短小的学习单元。而专题型知识则包含了更新的、新增的知识、技术等,或是生活中的热点。所以,微型课程并不强调系统性和逻辑性,这样才能保证有足够丰富的微型课程资源。具体说来,相对于传统的普通课程而言,微型课程有以下特点。
1.微型课程的内容在于学习者的学习需求。微型课程内容来源于所有被学习者需要的知识和技能,只要这些知识和技能能被描述、传递、认知,都是微型课程的素材和依据。而传统课程一般仅从属于学科,而且外在于学习者,并凌驾于学习者需求之上。
2.微型课程是动态的、即时的。微型课程因为容量小、开发时间短,任何新增知识都会很快纳入微型课程的学习内容,所以微型课程是动态的、不断被充实和丰富的。而传统课程是既定的、先验的,相对静态的。
3.微型课程之间相对独立。微型课程是相对独立的知识单元,既可以被包装整合为较为系统的学科知识,也可以作为独立学习单元,适应成人的补充性学习,知识关系相对比较松散。而传统课程重视课程之间严密的逻辑关系。
4.微型课程内容简短、精炼,学习时间短。微型客程容量小,针对性强,需要较少的时间投入。而传统课程内容多,学习时间较长。
5.微型课程表现为包括各种媒体的全媒体资源。微型课程的表现形式主要不是教材,而是电子文稿、音频、视频等多种媒体,适应数字化学习、移动学习等灵活的学习方式。而传统课程最主要的媒体形式就是教材。
所以,笔者认为微型课程应该是基于学科的或专题的,内容丰富、时间短、媒体多样,能广泛适应各种学习需求的学习对象。
(二)微型课程在适应成人终身学习及自主学习等方面的意义
构建终身教育体系和学习型社会,就是要构建一个人人可学、时时可学、处处可学的广泛的学习状态。其中,人人可学要解决的是对学习内容的需求满足问题;时时可学要解决的是学习时间的匹配问题;处处可学是学习环境、学习方式的适应问题。根据微型课程的特点,微型课程在以下几个方面均表现出对成人终身学习、自主学习的适应性。
1.微型课程能适应不同个体的差异化、个性化、多样化的学习需求。由于微型课程来源于一切可以学习的知识,且不断地进行动态更新,保证了学习资源的足够丰富,能适应“人人可学”的需求。
2.微型课程能适应微型学习的需求。由于微型课程短小、精炼,学习时间短,成人学习者可以利用工作生活的碎片化时间进行学习,实现学习时间的匹配,适应“时时可学”的需求。
3.微型课程能适应移动学习的需求。微型课程更多地表现为数字化多媒体学习资源,随着移动终端设备的普及,学习者无论身在何处,都可以利用移动终端进行学习,适应“处处可学”的需求。
三、基于知识点的微型课程设计
知识点一般是知识系统中相对独立的最小的学习单位。按知识点为基础进行微型课程设计,可以使微型课程的容量尽可能缩小,学习时间缩短,充分适应学习者利用碎片时间进行微型学习的需求。基于构建成人终身学习体系的需要,微型课程设计必须考虑课程的内容、课程资源媒体以及学习方式。以知识点为基础的微型课程设计如图1所示。
这种基于知识点的微型课程设计思路如下。
1.以学习者为中心。这对于教学设计至关重要。切实考虑成人学员的学习情境,才能从方便学习者的角度进行教学设计,把对学习者的服务和支持放在第一位。
2.知识的系统性与松散性相互结合。知识的微型化只是为了适应学员对碎片时间的利用,以及方便学生根据自身的知识结构个性化选择学习内容。但作为学习资源,应该保证课程内容的完整性,单纯零散的内容很难保证学习者系统学习的需求。
3.基于远程网络学习、移动学习的全媒体资源开发。现代社会网络和移动设备的普及程度越来越高,已经不断融入人们的生活,成为伴随人们工作生活的主要状态。终身学习要符合成人学生的学习情境,因此决定了必然要选择以网络和移动终端为媒介的学习资源。同时,资源的形式要融合文字、图形、图像、动画、声音和视频等各种媒体,体现以学习者为中心的理念,增强用户的学习体验,提高学习兴趣。
4.学习者依据自身需求自主学习。微型课程设计的最主要目的是适应学习者的需求,包括对学习内容的需求、学习时间的需求、学习方式的需求。成人学习者已经具有一定的知识基础,但这些知识基础对于每一个成员来讲,千差万别,每位学习者的学习需求完全是自主的、即时的,学习时间、地点也不可能固定,这就决定了要由学习者自己决定学什么、什么时间学、怎么学。
以知识点为基础的微型课程设计,创新了远程开放教育环境下的课程理念与课程模式,充分考虑了成人学生的工学矛盾及个体性差异,并适应知识经济条件下的移动、微型学习需求,可以为下一步国家开放大学的课程建设提供一种借鉴。
参考文献:
[1]陈义勤.网上人大远程学习者学习困难调查与分析[J].中国远程教育,2008,(8).
[2]中国互联网络信息中心(CNNIC).第31次中国互联网络发展状况统计报告[R].
[3]聂然,李盛聪.成人远程学习的特点与课程设计[J].继续教育,2004,(12):72-73.
[4]陈联,芦丽君.成人远程教育课程设计问题探究[J].湖南科技学院学报,2006,(6):224-225.
[5]李可夫,王爽.微型课程的概念界定[J].延安职业技术学院学报,2010,(10):62-63.
[6]罗丹.微型课程的设计研究――以“老年人学电脑”课程为例[D].天津大学,2009.