时间:2023-03-20 16:16:21
序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇c语言程序设计论文范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。
西安理工大学工科非计算机专业和计算机专业虽然都开设C语言程序设计课程,但是前者具有鲜明的专业特点,对该课程的要求明显不同,仅仅按照“面向对象教学”的原则,适当调整教学组织活动和教学内容对于后者是远远不够的。针对目前工科非计算机专业C语言程序设计课程教学实践中所暴露的主要问题,笔者积极开展了非计算机专业C语言程序设计课程教学设计的教改工作。
1.1教学设计概述
所谓教学设计,就是为了达到一定的教学目的,对教什么(课程、教学内容等)和怎么教(组织、方法、媒体的使用等)进行设计。教学设计不等同于传统的备课写教案。教学设计有利于教学工作的科学化,使教学活动纳入科学的轨道。教学设计的意义就在于追求教学效果的最优化,不仅关心教师如何教,更关心学生如何学,注重将人类对教与学的研究结果和理论综合应用于教学实践。教学设计主要包括确定教学目标、组织教学内容、分析教学对象、选择教学形式和方法及教学媒体、设计教学过程、教学质量评价设计等基本环节,其中,设计教学过程是课程教学设计的核心。
1.2该课程教学设计的内容
西安理工大学C语言程序设计课程组于2003年出版了《C语言程序设计教程》及配套的《C语言程序设计教程上机实验与学习指导》特色教材。自2011年开始,非计算机专业选用的教材与计算机专业不同。目前非计算机专业选用《C语言程序设计》(第1版,张毅坤教授,高等教育出版社,2011)作为该课程的教材。非计算机专业C语言程序设计的教学设计是一项复杂的系统工程,主要包括课程教学设计、章节教学设计、课堂教学设计和实验教学设计,以西安理工大学C语言程序设计课程教学大纲为指导,以《C语言程序设计》(第1版)及其配套教材为基础,确定课程教学设计的内容:①将该课程的教学目标确定为“掌握C语言的基本语法和语义,理解结构化程序设计的思想和方法,提高学生的编程能力和调试程序的能力”。②组织教学内容的关键是进行教材的组织呈现,理论教学内容包括《C语言程序设计》(第1版)的第一章至第八章,实验教学体现于该教材的第九章及配套教材。③学生作为教学对象始终是教学过程中的重要角色,工科非计算机专业的种类多,分析教学对象就是掌握学生特点与了解专业背景并重。④重点突出课堂教学设计,传统教学与案例教学有机结合,“讲解+多媒体演示+课堂板书”缺一不可。⑤设计教学过程与“组织教学内容”联系最为紧密,主要包括课堂教学设计和实验教学设计,教学过程设计遵循的总原则是:激发学生兴趣,注重能力培养,合理安排教学顺序,讲清重点与化解难点紧密结合,课堂提高与课后巩固拓展有机统一,并预测教学实践中可能出现的意外情况。⑥将学生评价、同行评价、教学督导组专家评价、主管教学的领导评价和教师自我评价这几种评价的结果综合起来,比较客观的评价教学效果与教学质量。
2教学设计的实践及效果
我们连续多年承担非计算机专业C语言程序设计课程,先后承担过西安理工大学电气工程及其自动化(电力)、水文与水资源工程、印刷工程、包装工程和材料科学与工程等专业的C语言程序设计的理论教学和实验教学任务。始终将上述教学设计的内容贯穿于课堂教学和实验教学之中。C语言程序设计本身是一门实践性很强的课程,加之各个理工科专业的特色鲜明,所以结合学生所学专业特点与需求,同一门课程,针对不同专业的学生,适当调整教学设计内容,并在教学实践中检验教学效果。2012年以来,学生对笔者的教学评分一直在95分以上,也给予了肯定性的评价,例如“采用启发式教学,阐述问题深入浅出,重点突出,能理论联系实际或联系学科发展的新成果”;“对于您的授课方式我们很满意,感谢您对这门课程的热忱,我们会努力学下去”;等等。
3结语
关键词:C程序设计;C语言;课程;教学
1概述
C语言是当今计算机应用中最重要且被广泛使用的一门程序设计语言,它兼具高级和低级语言的优点,特别适合于编写计算机系统软件。高校的很多计算机专业课程,如数据结构、操作系统、算法设计等,多选用C语言作为教学语言。学生学好C语言,不仅是一门课和一种技能的问题,而且涉及到能否学好整个专业课。因此,C语言程序设计的教学越来越被提高到重要的位置,各校纷纷进行C语言教学方法的改革和试点工作[1-3],并取得了一定的经验和成绩。
笔者所在高校也进行了有益的探索[4]。在国家级教学团队“计算机基础系列课程教学团队”共同确立的教改思想和指导原则下,各授课教师根据自己的教学经验,进行了多种教学方法的尝试,取得了良好的成果。其核心思想是,不断加大C语言的实践课时,注重学生编程技巧和编程能力的提高。尽管如此,部分学生仍然不能很好地掌握C程序设计技术。在C语言考试中,学生更易于完成填空、选择、判断正误等检验“基础知识”的题型,程序设计或上机编程题则完成质量较差。直到学习数据结构等课程时,部分学生仍然难以用C语言编写算法,这直接影响到了数据结构等课程的教学效果,对后续课程造成了影响,甚至严重影响了毕业论文的进度和质量。
C语言是一门程序设计语言,它是程序员和计算机相互交流的语言。作为语言学习,它也遵守人学习语言的最一般规律:在实践中学习语言,重视单词的学习和积累,重视语言的交流能力。
2像婴幼儿学习说话一样,学习计算机语言
婴幼儿学习语言的方法对C语言程序设计课程的教学组织具有很大的启示作用。
2.1跟着大人,重复学习说话
婴儿学习说话,是从“mama、baba”开始,爸爸妈妈积极应答,并鼓励孩子继续“说话”。期间没有人在意,孩子是有意识或者是无意识的,孩子的发音是否准确,只要有声音,就给予足够的鼓励。之后,婴儿继续学习其他称呼和各种词汇,会说“开门、妈妈抱”等短句,直到“我要出去”等简单的句子。这一语言学习的过程特征很明显:跟着大人,重复说话,不在乎语法是否正确,能简单表达意思,大人能听懂即可。
C语言学习也一样。教师把自己看作大人,学生就是婴儿。从语言教学上看,不首先去强调语法等规则,而是教授“例子”。教师可以在课堂上重点讲授一个又一个例子,在课堂上编译、连接并调试运行程序,让学生课后去重复这些程序。这种方法可以让学生在最短的时间内,真正“接触”到C语言,通过老师的程序实例和计算机实现对话。教师通过作业,鼓励和引导学生修改这些简单的程序,并鼓励学生独立完成一些新的程序。这种方法使学生在刚开始上课时就接触计算机,重视学生快速和计算机建立联系,让学生在编辑、排错、调试和运行程序的实践过程中,和计算机对话,达到从实践中学习的目的。
“在例子中,学习和计算机的对话,让计算机训练自己。”
2.2不断学习单词,丰富语言的内涵
会说话的婴儿有了新的渴求,他需要通过不断学习,拓展自己的知识和生存空间,大人们也非常配合他,不断教他新的“知识”,这些新知识,首先就是“单词”。婴儿会指着电视机“啊啊”地叫,大人们教给他说“电视”,于是婴儿学会了“电视”这个单词。他可能说“宝宝要电视”,虽然不符合语法,但他已经勇敢地清楚地表达了自己的需求。宝宝在大人的纠正过程中不断学习,掌握的词汇越来越多,他也越来越具有和人交流的能力。这种能力是通过不断学到“新词”开始的,是不断被大人们纠正提高的。
C语言学习也一样。教会学生编写基本的C程序后,接下来的工作,不是要写复杂的“让计算机唱歌跳舞”的程序,而是让学生不断掌握新词汇,扩大和计算机的交流范围。在C中,这些新词汇就是C的库函数。C语言提供了丰富的库函数,程序员不可能脱离开这些库函数妄谈编程。以往的C教学中,可能会忽视这些库函数的介绍,只有在课本的附录里,才能找到他们的索引。教师课堂上的主要时间,花费在介绍C的各种语法上。考试中,这些语法就是“基础”知识,这又会把学生的学习重点,引导在学习和背这些语法上,无形中又忽视了实际编程能力的培养和锻炼。这是造成学生不会“写程序”重要原因。
婴儿不认识新事物,就无法开口说话。学生如没有很好地掌握库函数,就难以写程序。比如,若没有printf()函数,学生就不可能知道如何把信息显示在屏幕上。因此,学习写C程序,首先需要学好C的库函数。教师在课堂上的重点,就在于在例子中,尽可能多地使用库函数。让学生“见过”并“知道”有这样的库函数可以用,再通过编程作业,促使学生掌握库函数。库函数就是C语言中的“单词”,有了这些单词,才能开始编程,和计算机“对话”。
“不仅要会和计算机说话,而且可以天南海北地聊。”
2.3多说多练
学会说话的婴幼儿对这个世界充满了好奇,他已经长大了。他不仅和他的爸爸妈妈说话,他还要和其他人说。他要去上幼儿园,可以和老师说话,可以和幼儿园的其他小朋友说话,他的语言能力不断进步,他会唱歌,会背唐诗、三字经、弟子规,他已经像个大人了。
学生学习C语言也一样。最开始模仿老师的程序,编写程序,按照老师布置的作业练习编程,最后可以根据自己的兴趣,编写一些应用程序。学生解决问题的能力越来越强,可以排除程序中的错误,掌握调试程序的方法,逐渐能够书写小规模的程序了。
这些能力的提高和培养不是教师在课堂上能够完成的,需要学生在实践中提高。此时教师可以使用特殊资源了,即上机课时。高校中C语言的课时一般由3部分构成:课堂学时、课后机时和专门的上机课时。利用上机课时,教师可以布置小规模的系统编程作业,让学生去完成。通过这种作业,让学生系统掌握C的编程知识,提高程序设计能力和水平。
“多写多练,可以和计算机讨论问题。”
2.4上学后,我们再学语法
婴幼儿长成了小学生,他要开始上学了。在学校,他开始学习课文,通过课文认字、认词、认成语,写字、写词、写句子,他开始锻炼写作文。不知不觉中,他读了很多书,从童话开始,到小说、散文、诗歌,最后是名著。他开始系统学习语法,主谓宾定状补,不胜枚举。
C语言的学习也没有止步。实际上,C语言程序设计课程只能完成上述2.1~2.3部分的内容,这些部分教会了学生写程序,而不是教会了学生C语言的语法。C语言的语法,可以融于课堂的例子中,通过程序设计和调试,直观地介绍C的语法,通过程序练习和调试,由计算机来告诉学生,怎样符合规则,怎样不符合。对于一般的语法,要求学生自学。C程序中的众多语法,比如C语言从main()函数开始执行、变量定义位置、注释写法、函数命名、参数以及函数返回、变量作用域、运算符的优先级等,多是规则,并不难理解,需要学生记住并掌握,而单调的看书和记忆,效果远不如在程序排错和调试过程中学习。
通过程序实践和例子学习语法,而不是只是在课堂上讲授语法。这样,当学生有了一定的编程能力后,再回过头去研究语法,可以更好地提高对C语言的理解水平。如果在一开始就把重点放在语法上,可能反而无法掌握C程序设计技术。
实际上,C的一些语法细节在实际工作中是不常用的。例如,判断闰年的逻辑表达式:( Year%4==0 && year%100!=0 )||year%400==0,其中涉及到运算符、运算表达式以及运算符优先级等问题。若要计算该表达式的值,当然需要记住表达式的优先级顺序等语法知识。但实际工作中,是不鼓励把程序写成那种样子的,实际工作中,要求程序书写清晰明了,简单易懂,强调程序的可读性。因此,上述代码可以写为:
(( ( year%4 == 0 ) && ( year%100 != 0 )) || ( year%400 == 0 ))
“不仅让计算机能听懂,而且要易于听懂。”
2.5学无止境
经过了中学阶段的学习,孩子已经完全掌握了“汉语”这一门语言,此后能否成为编辑、记者、作家、诗人,则需要更多的学习和锻炼。他需要研读名著,体验生活,笔耕不辍。
C语言也如此。C语言课程结束后,学生可以通过参加课外兴趣小组、各种计算机编程竞赛、后续的专业课学习、毕业设计等,不断锤炼自己用C语言进行程序设计的能力。他可能逐渐接触到C语言课程永远无法讲授的东西,比如socket编程、进程与多线程、并发与竞态、Linux驱动程序、Windows驱动程序、研究开源代码等。他成了一名高级程序员、资深程序员、专家,他开始“用Word写程序”。
“计算机编程,一个玩具(计算机)的更高级的玩法(写软件)而已。”
3结语
C语言是一门程序设计语言,教学的目标在于让学生“掌握”C语言。所谓掌握,不仅指C的基础知识、语法结构等,最重要的目的是会用C语言写程序。C的其他所有知识,都在程序编写和调试中得到学习和掌握。
本文根据婴幼儿学习语言的特点,提出了C语言的教学思想和教学方法,其主要思想为:教学目的在于教会学生用C语言写程序,让学生在不断实践中提高程序设计的水平;课堂上,主要通过程序讲授编程的方法和技巧,强调C语言的库函数学习及其使用方法,通过程序重点介绍难点和重要语法知识,一般语法由学生自学;强调大量的C程序锻炼,在C语言的编写、调试中,由计算机教会学生编写程序,在编写程序和调试程序中,学习C语言的语法。
致谢:本论文得到了国家级教改项目“国家级教学团队――计算机基础系列课程教学团队”的支持。
参考文献:
[1] 李莉. C语言程序设计的教学改革[J]. 计算机教育,2009(12):28-29.
[2] 李业丽. “C语言程序设计”课程建设的思考[J]. 计算机教育,2009(12):31-32.
[3] 赵金萍. “任务驱动式”的C语言程序设计教学[J]. 计算机时代,2007(8):25-26.
[4] 王冰. C语言程序设计课程教学方法的探讨[C]//王永生. 研究型大学建设本科教学改革的研究与实践. 北京:北京交通大学出版社,2008:624-628.
Teaching Methods of C Programming Language Learned from Baby’s Language Learning
ZHAO Shuaifeng, HU Shaohai
(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China)
关键词:网络课程;教育软件;网络教学
随着计算机技术、网络技术和多媒体技术的发展与深化,教学手段不断改进,经历了从板书、教具、多媒体课件到网络课程的发展阶段。网络课程是建立在网络技术、多媒体技术等现代信息平台上的一种新型教学模式,与普通的多媒体课件不同,网络课程是通过计算机网络来表现教学内容和实施教学活动的教学模式。通过网络课程的构建可以整合丰富的教育资源,突破了学习的时空限制,实现了自主化学习、个性化学习和远程交互途径,学习模式由传统的基于课堂的教师讲授转变为立体化、多元化学习,因此网络课程是实现教育信息化的重要体现和手段。
1“高级语言程序设计”网络课程的意义
高级语言程序设计是计算机专业的一门核心基础课程,是学生从事软件开发的必备技能。这门课程概念繁多、抽象难懂,逻辑性和实践性极强,学习容易枯燥,如何利用开放式网络教学环境,创建生动的、个性化、研究型教育模式,是现代教育在观念、内容、方法、手段和结构上的一次全方位变革,“高级语言程序设计”网络课程的构建与实施,变静态的、形式单一的教学模式为动态的、多元化的网络多媒体教学模式[1],是高校教育改革的重要举措和内容。其意义体现在以下几方面:
1) 转变学生的学习方式。网络多媒体课程的自主学习方式使学生变被动接受为主动构建者,有利于培养学生的主动性和创造性思维。学生从课程中不仅学到了专业知识,更重要的是通过检索和利用各种信息资源,获得了信息素养能力的训练,为工作和科研培养了良好的信息能力[2]。
2) 学习资源突破了时间和空间的限制、使得课程资源的交流和共享成为可能,使学习更加便利,有利于培养学习的自主性和积极性。
3) 提供了丰富的教学资源,突破了课堂教学内容的狭隘性,扩展了学习范围,开阔了思维,使学生科研能力和创新能力得以提高。
4) 强大的多媒体功能可以提供实验和实践的模拟和仿真,化抽象概念为生动具体的情景,使得学习更加轻松和容易。
5) 网络的及时性、开放性和交互性也是普通课堂教学无法比拟的,留言簿、论坛、电子邮件、及时通信等方式使学生之间、师生之间的交流更加轻松。
6) 在线考试为学生检查学习效果,减轻教师阅卷负担提供了可能。
2 “高级语言程序设计”网络课程的目标
基于传统多媒体课件的“课堂演示型”教学方式给学生带来了图文并茂的生动效果,但这远远没有发挥多媒体的交互性特点,课件只不过成为了电子版的板书,学生只能够被动地接受知识而不能主动参与教学活动。要实现教学的开放性、交互性和自主性,就需要把网络技术和多媒体技术结合起来,构建网络课程正是实现这一目标的途径。
因此,“高级语言程序设计”网络课程的总体目标是:构建一个导航清晰、界面生动友好、教学内容充实、教学主线设计合理,具有教学、个性化学习、网上答疑及讨论、自测等功能的教学系统平台。具体表现在:
1) 教师可以整合丰富的教学资源,各类教学资源、提供教学大纲、周历、课后作业、实验作业、电子教材、软件下载、试题下载、源程序下载、相关论文等。
2) 学生通过留言本、论坛、邮件等方式与教师或同学之间进行交流,轻松实现互动和远程交流。
3) 课程的实践性要求课后要加强编程练习,网络课程要围绕课后习题这一重要教学环节,使学生最大限度地参与练习与实习,达到理想的教学目标。
4) 采用以章节为单元的折叠式树型目录导航结构,循序渐进,合理的信息分类与链接使自主学习得以顺利进行。
5) 整合大量教学资源和素材,弥补教材内容的不足和课堂讲授时间的不足,创造并提供自主学习环境,提供全国计算机等级考试介绍、全国软件水平考试介绍、二级C语言考试大纲和试题、二级C语言模拟考试软件等。提供C语言的论文和相关科研训练,提高理论水平和扩展思维。
3网络课程特色栏目设计
网络课程建设就是要按照学科知识体系以及网络教学要求,对各种教学资源进行集成和综合[3]。教学内容是网络课程设计的主体,在网络课程中教师是组织者、设计者、指导者,在教学内容的设计上应按照网络环境的需要和教学目标进行合理分解与重组,并根据不同内容的知识特点选择不同的媒体表征形式。以便使教学内容适于以网络化形式和手段表现出来。
以“高级语言程序设计”网络课程的需求为例,为了让学生了解课程内容、方便学生选课需要进行课程介绍,为了实施教学内容需要对每一章节进行讲解,为学生提供课件、源代码、论文等大量学习资源,为了实现教学的互动还要实现在线的师生交流和答疑,为了配合国家计算机等级考试、加强练习还需要提供二级考试大纲、模拟软件和试题等。
根据以上需求分析,本网络课程采用以章节为教学单元的模块化结构,采用纵向树型目录导航结构组织知识点和章节,根据具体的知识要求采用文本、图片、音频、动画、视频等多种形式。共分为5个栏目。
1) 课程简介:包括课程介绍、理论课和实验课教学大纲、周历、考试方式、教师信息等方面的内容。
2) 教学内容:共分10章,是网络课程的核心模块,按照C语言知识体系的结构循序渐进行详细讲解,分别介绍预备知识,C语言基础,顺序结构,选择结构,循环结构,数组、函数和编译预处理,结构体与共用体和文件。课件采用PDF格式,单击每一章的标题链接,即可打开相应的PDF文件。
3) 学习资源:提供上机习题、教材源程序、课件下载、C语言运行软件下载、参考论文和电子书等。
4) 交流平台:有留言本和论坛两种方式,留言本针对师生之间,学生提问留言,教师作为管理员可以回复和删除某个学生的留言。而用户在论坛中注册后就可以发贴,并且无论是学生还是教师都可以回复贴子,轻松实现开放式答疑和交流。教师还可以定期地创建不同主题的讨论组,引导学生进行讨论、分析和思考问题,开扩编程思路。
5) 计算机二级考试:提供全国计算机C语言二级考试大纲、C语言二级考试模拟软件下载和历年真题。网络课程的整体结构框图如图1所示。
4网络课程开发流程
4.1教学素材收集
教学素材是网络课程的基础,是需要规范的重点和核心。教学资源主要分8类:试题库、试卷素材、媒体素材、文献素材、课件素材、案例素材、常见问题素材和教育资源索引[3]。学习资源包含了大量支持学习的材料,除了课程本身的专业知识点以外,还可以链接到互联网上的其他参考资料,如视频、软件、国内外优秀教学网站、全国计算机等级考试、计算机水平考试等。教师是学习资源的组织者和设计者,通常要经过搜集、筛选、分类、整理、组织与数字化等工作过程,同时还要考虑方便学习者的使用[4]。因此我们按照教学大纲将每一章的知识点制作成图文并茂的多媒体课件或PDF文件。课后习题和上机实验习题制作成网页文件,试卷和二级考试真题制作成网页或Word文档。教材源程序制作成压缩文件以供下载。C语言论文和电子教材使用PDF格式。搜集相关软件,包括C语言集成开发软件,如TurboC、Visual C++、WinTC、C语言二级考试模拟软件等。
4.2动画制作
为使页面生动友好,迅速引起学生的注意力并激发其学习兴趣,在首页应用Flash MX制作了动画和标题滚动字幕;为使学生能够更好地理解和掌握C语言中比较抽象难懂的概念,如函数的递归调用、冒泡排序、选择排序等,制作了递归曲线的生成动画,递归调用的汉诺塔动画、显示回溯搜索过程的八皇后动画、显示广度优先搜索过程华容道动画等,这些动画形象地展示了算法实现的过程,化静态的思维过程为动态的实现,有利于学生更好地掌握这些知识点。汉诺塔动画如图2所示。
4.3开发实现
网络课程的开发技术分为前台开发技术和后台开发技术两部分[2]。前台开发技术是指网页的设计与制作技术,利用DreamweavMX、Flash、Fireworks等软件来实现,教学网站导航清晰是关键,因此首页采用嵌套框架布局,上面是标题,左边是按模块组织的树型目录,每个链接单击后目标文件显示在右边,下面是版权、制作者信息和日期时间。在页面中使用了文本、图像、表格、超链接,Flash 动画和视频动画等。后台开发技术使用了Web服务器编程技术ASP(Active Server Pages)。本网络课程的论坛模块、留言本模块通过ASP编程实现与网络数据库的连接和动态交互访问,能够对各种数据资源不断地更新和维护。
4.4编写脚本程序
为了实现生动的动画效果,脚本的编写是网络课程制作过程中重要的一环,运用JavaScript脚本程序和HTML代码可以实现以下特效:1)折叠式树型目录,可以展开和折叠每个栏目。2)滚动字幕,显示在首页标题上,用C语言程序设计代码实现。3)当前的日期和时间,以下脚本代码仅在网页底部输出年月日和时分秒(其余代码略)。
document.write( year + "年" + month + myweekday + "日" + day);
document.write( myhours + myminutes);
4.5引用层叠样式表
层叠样式表(CSS)是一系列格式设置规则,CSS样式是对HTML语言的一种扩展,主要用于控制Web页面内容的外观和页面风格设计,在网页制作过程中起着非常重要的作用,掌握CSS能够有效地提高制作网页效率。CSS扩充了HTML各标记的属性设置,丰富了网页视觉效果,而且CSS样式可通过脚本程序来控制,这样便可以有效地对网页的外观和布局进行精确的控制,从而使网页的表现方式更加灵活和美观[5]。为了统一网站页面的风格,在页面中定义了大量的样式来统一的页面背景图片、字体大小等,部分样式定义如下所示。
.STYLE1 {font-size: 18px}
.STYLE2 {font-size: 18px; font-weight: bold; }
body {background-image: url(../image/ back1.JPG);}
5结语
随着计算机网络技术的迅猛发展和信息化的逐步深入,网络课程在高校的应用也日趋广泛,为了更好地配合课堂教学,笔者将先进的信息技术与教学内容相结合,创建了“高级语言程序设计”网络课程,获2009年云南省多媒体教育软件大赛二等奖。网络课程提供了丰富的教学资源,将课堂延伸到课外,为学生创造了获取资源、评价学习效果和师生互动的环境。将课堂教学与网络课程相结合,使学生不仅学到了专业知识,还能更多地进行信息检索和独立思考。“高级语言程序设计”网络课程为教学提供了一种全新的教学手段,对于推动高校教学改革具有参考价值。
参考文献:
[1] 杜文,曹旭斌,庞先伟. 高校体育网络(教程)的构建与应用[J]. 北京体育大学学报,2007,30(1):104-106.
[2] 熊鹰. “信息检索与利用”网络课程的教学设计与实现[J]. 图书馆论坛,2006,26(2):23-25.
[3] 程晓旭. 高校网络教学研究[J]. 中国成人教育,2007(19):118-119.
[4] 董飞,王广新. 成人教育网络课程开发的关键问题分析[J]. 中国成人教育,2005(12):64-64.
[5] 玲. CSS层叠样式表在DHTML中的应用[J]. 鞍山师范学院学报,2006,8(2):63-65.
Research and Development of High-level Language Programming Network Course
DING Hai-yan, ZHAO Zheng-peng, LI Wei-hua
(Information Institute, Yunnan University, Kunming 650091, China)
关键词:游戏教学法;游戏案例;激励机制;案例教学
中图分类号:G431 文献标识码:A 文章编号:16727800(2013)009019203
基金项目:国家自然科学基金项目(61171075);湖北省自然科学基金项目(2011CDB297);武汉市教育局重点科研项目(2011020);湖北省教研项目(鄂教(2011)32);湖北省教育厅科研项目(B20129003);湖北省教育厅科学研究项目(B2013254);校本重点研究项目(2013JZ06)
作者简介:周方(1982-),女,硕士,武汉生物工程学院计算机与信息工程系讲师,研究方向为分布式系统与软件工程。
0引言
纵观笔者所在院系人才培养方案,除去专业实习与毕业设计环节,专科学生在校学习5学期,程序设计类课程开设共持续4学期,本科学生在校7学期,程序设计类课程开设共持续6学期,虽然经过长时间的系统学习,但是效果并不理想。该系针对面向过程和面向对象两类程序设计类课程,开设有《C语言程序设计》、《面向对象程序设计》、《Java语言程序设计》、《Delphi语言程序设计》、《C#语言程序设计》、《.Net语言程序设计》等一系列程序设计类课程,期望用程序设计语言的高覆盖率换取高就业率。但大多数学生均感觉投入了过多的精力,却没有精通任何一门程序设计类语言,并且从事计算机相关工作的毕业生
人数比例不到25%,这与人才培养初衷出现了严重的不一致。针对该现象,汲取各程序设计类课程任课教师的经验,在现有教学学时的基础上,通过调整人才培养方案,寻找各类程序设计类课程教学方法、教学内容、考试方式、教学评价等的通用性研究,并构建知识共享平台,摸索出一套适合本校校情的程序设计人才培养模式,并争取向其它兄弟院校推广。
1游戏教学法定义及创新
所谓游戏教学法,就是在分析常规教学方法的基础上,结合在校大学生爱玩游戏的实际情况,采用学生普遍感兴趣的游戏案例作为载体,教学过程中,注重与学生平等、信任关系的建立,实现“寓教于乐”的最高境界。具体创新如下:
(1)该方法通过深入剖析计算机相关专业程序设计类课程之间的关联关系,将其组成群组进行立项研究,通过调整教学大纲、注重第一门程序设计课程的教学、利用案例特别是游戏案例进行知识点讲解等方式,从多个角度激发学生学习程序设计的积极性,达到提高学生工程实践能力的目的。
(2)该方法首次将软件产业中的角色定位和角色职能,引入高校计算机教学课堂,以便学生对该行业有所了解,更早、更好地涉及该领域,从而定位和充实自己的职业生涯。
(3)该方法在进行案例教学过程中,以小组协作方式进行学习,以提高学生的团队合作意识;依照“将课堂还给学生”以及“授人以鱼,不如授人以渔”的思想,让学生自己组合成小组,自己参与管理,摸索适合自己团队的激励机制,促使学生在提升程序设计能力的同时,也相应提升其管理能力,这样有助于培养技能和管理相结合的复合型人才,全面提高学生的综合素质,以适应我国软件产业迅猛发展的需要。
(4)本项目研究坚持强化学生的抽象思维能力和设计(动手)能力的培养,从教学过程的一点一滴入手,逐步引导学生建立创造性学习和创造性工作的意识,以达到培养创新人才的目的。
(5)本项目以游戏案例为载体,快乐学习为理念,通过寻找程序设计类课程教学的通用性并建立通用性案例库等方式,达到缩短能力培养周期的目的。
2游戏教学法具体内容
该教学方法以《C语言程序设计》、《C++语言程序设计》为主,《数据结构》和《数据库》为辅,通过对这4门计算机软件系列类课程立项进行研究,针对学生爱玩游戏的特点,通过对知识点进行提取、整合,构建核心知识体系,将其融入到游戏案例中, 从教学计划、教学案例、教学方法、教学模式、教学内容、教学反思、评价体系、考核形式、激励机制等9个方面进行研究,具体内容如下:
2.1教学计划研究
虽然网络游戏已经盛行,但暂时还没有进入高校计算机专业的课堂教学,因此很难借鉴其它兄弟院校的教学计划,而培训机构和游戏公司却充当了先行者。可以借鉴其课程体系结构和人才培养方案,例如:开设游戏策划基础、游戏构架设计、Flash、Flex、Java、网络游戏程序设计、网络游戏算法设计、游戏数理概论、游戏渲染技术、游戏平台设计、游戏组建开发等课程。
2.2教学案例研究
建设程序设计专用案例库,以便复用。以游戏案例为切入点,结合当前计算机业内的热点,选取游戏中的某个片段,结合程序设计的理论知识,带领学生去实现,例如:人人网、腾讯网、雅虎网平台上的社区类游戏。案例收集过程中,兼具趣味性和实用性,例如:交通信号灯程序、打字程序、计算器、猜数程序等,以此来吸引学生,学生对其了解后,可进行适当的完善和修改,以培养其创新意识。
2.3教学方法研究
教学过程中,要综合考虑学生的知识水平、认知规律、学习特点和接受能力,同时也要清楚地意识到第一堂课的重要性。能否上好第一堂课,直接影响到整个课程的学习,在上第一堂课时,教师应帮助学生明确学习该门课程的目的和学习任务,建立一个完整的学习框架,使学生能树立为用而学的学习动机。在课前充分了解学生的基本情况,包括他们的入学起点、已学课程、对该门程序设计类课程的认识和需要、兴趣爱好和关心的话题等,还要对课堂上可能遇到的各种问题予以充分估计,并拟定多种相应的教学方案。
讲解知识点时,加入公司实际运作时岗位分工的介绍,例如:美工、前台程序员、后台程序员、游戏策划、运维等工作人员应具备的知识体系等,让学生依据自己的兴趣爱好,有针对性地培养和提高自己在该方面的能力,以便更早、更快地与工作接轨。
2.4教学模式研究
采用“以例激趣—以例说理—以例导行”的教学模式,激发学生的求知欲和表现欲,寓教于乐。心理学研究表明,良好的心境可以使思想活跃,思维敏捷,表达欲增强。游戏能激发学生的学习兴趣,能给课堂营造良好的氛围。游戏活动能激发学生的创新意识,针对青少年模仿能力强、好动、好玩、爱表现的天性,将游戏元素引入课堂,通过游戏案例对程序设计类课程教学方法进行改革,打破传统的“概念—命令—程序”一条线的教学安排,让学生能够轻松接受新知识,调动他们主动学习新知识、探索新方法的积极性,使得学习逐步进入一个良性循环的轨道[1]。
2.5教学内容研究
重设授课内容顺序。程序设计类课程,通常是按知识的体系结构进行组织,即“数据类型—基本结构—数组—函数—模块与项目—文件”的章节顺序,在课程起始阶段,系统地讲述各种数据类型和基本语句,需要花费大量的时间,映证相关内容重要性的例子又相对缺乏,导致许多学生在此阶段开始就丧失了学习的耐心和兴趣。按此授课内容顺序不利于案例教学法的进行,而授课时以案例为载体,将核心知识体系贯穿其中,则有利于加强学生对抽象知识的消化与吸收。
2.6教学反思研究
教学反思是教师进步的阶梯,是教师进步的重要途径,进行教学反思能够充分激发教师的教学积极性和创造性,并为其专业发展提供机会和条件。教学反思鼓励教师通过多种策略和方法审视、分析自身的教育观念及教学活动,充分尊重教师的主体地位,发挥教师的能动性、积极性和创造性。只有通过不断的教学反思,才能够逐渐提高教师的教学监控能力,提升教师的专业素质、综合水平等[2]。
2.7评价体系研究
要检测教学效果,必须有完善的评价体系,只有各个方面的评价指标都较高,才能真正做到教与学的完美结合,从而促进游戏案例教学在程序设计类课程教学中的发展。评价主要包括两个方面:对学生而言,应该从知识的掌握程度、理解程度和是否具备了独立设计管理软件的能力等指标来进行评价;对教师而言,主要从案例的选取、课堂实施效果以及教学艺术等方面进行评价。
2.8考核形式研究
计算机程序设计类课程的实践性决定了它不注重学生死记硬背各种语法规则,而看重学生利用程序设计解决实际问题的能力。因此,可以将考试形式多样化,采取闭卷、开卷、考查、免考、实验报告、口试(类似于毕业答辩)、现场操作、小论文、作品等方式,精心营造“创新”的浓厚氛围,通过全程考核来激发学生学习的主动性和积极性。
2.9激励机制研究
激励有两种对象:一种是游戏玩家,对游戏而言,激励就是游戏的可玩性,即如何使得玩家能够对某个游戏乐此不疲。从游戏的视觉效果、声音效果,到人物设计、剧情编制,乃至规则制定、操作设置等方面都充分发挥其激励作用。将玩家类型分为成就型玩家、探索型玩家、社交型玩家和杀手型玩家,研究其特点并制定相应的激励机制;另一种是学生,在项目的分工合作中,也需要构建健全的激励体系。
3结语
本方案已在笔者所在院系实施了3年半的时间,效果良好。该教学方法的实施,不仅提升了本系计算机相关专业学生的程序设计能力,而且锻炼了学生的创新思维能力。通过对学生进行试点,并跟踪调查,提升了学生在程序员岗位的就业率,同时也提高了学生对计算机相关专业的认知度和对学校的认可度。
参考文献:
关键词:计算机专业;创新能力;多维平台
在高等教育阶段,大学生创新能力培养的主动力来源于学生自身,但授课教师、学习环境等因素也对学生创新能力的培养起着重要作用。国内诸多学者对高校大学生的创新能力的培养进行了相关的研究和实践,取了一定的成果[1-5],但研究主要还是集中在具体课程或教学方法改革方面,对于创新能力培养平台构建的研究相对较少。本文针对计算机专业学生的特点,在对西安科技大学计算机学院近900名本科生进行问卷调查的基础上,深入分析了高校计算机专业学生创新能力的现状,并以此为基础,构建并实践了高校计算机专业学生创新能力培养的多维平台。
一、创新能力培养的多维平台构建
2015年笔者对西安科技大学(以下简称“我校”)计算机学院近900名本科生进行了创新能力问卷调查,通过对调查问卷的分析,了解到影响学生创新能力的关键因素包括:学生主观能动性、教师创新能力、课程内容、实践环节、竞赛参与、职业规划等。以调研结果为依据,以创新能力培养为导向,建立课堂、实践和课外三层教学体系,并在课程、学生、教师各自的维度进行具体分析,找出每个维度的关键目标,并寻求跨维度三层教学体系各目标之间的对应关系,以此来构建大学生创新能力培养的多维平台的基本框架,并据此设计各个维度的具体任务,达到贯穿维度与教学体系创新能力培养的目标,其中大学生创新能力培养的多维平台的基本框架见图1。在课堂教学层上,教师教授给学生相应的理论知识,学生通过课堂上对于教材、辅导资料的了解,掌握相关课程的基本知识和原理,这个也是创新能力培养金字塔的基础。而在实践教学层上,主要是对于学生实验课程和设计内容的安排,在实践层上,学生通过教师的指导,逐步具备运用知识与工具的技能,教师在这一层的主要任务是对实践操作的指导。最顶层的课外教学层,教师的主要任务就是引导并激发学生的学习兴趣,对学生的职业规划给出合理的意见,而学生更多是通过学科竞赛和实习活动将前两层中掌握的基本知识、方法和工具加以运用,并结合自己的兴趣,寻找创新点。
二、大学生创新能力培养的教学实践
(一)课堂教学
1.更新教学内容。本论文主要依托于陕西省教育厅教改项目及西安科技大学教改项目,而项目组主要成员承担的课程为:C语言程序设计、Java程序设计、程序设计方法学,因此本项目主要围绕上述课程进行教改活动。对Java程序设计课程内容进行改革,引入Java认证考试真题讲解,因学生对此类题目比较感兴趣,因此引进相关内容可以激发学生学习的积极性。在程序设计方法学课程中添加设计模式的内容,学生普遍反映此知识模块与就业应聘的笔试内容关联度较高。在C语言程序设计教学中,加大了算法设计教学内容的比重,将往届的蓝桥杯程序设计大赛的填空题和编程题作为例题补充,激发了学生的学习兴趣,也对相关竞赛的难度有了提前的了解和准备。2.重编教材。重新编写了《C语言程序设计教程》和《Java语言程序设计教程》。与以往教材相比,《C语言程序设计教程》引入案例化教学思路,侧重培养学生的程序设计思维能力和实践能力。教材分为基础篇和实践篇,其中实践篇内容安排了俄罗斯方块、贪食蛇、英文单词小助手、计算器、万年历和保龄球计分系统,学生通过对这一教材的学习,获得了C语言程序设计的基本知识、基本算法设计思想和实践编程技能,具备了分析问题和解决问题的能力。3.开发多媒体课件。在调研了优秀获奖多媒体课件后,根据C语言课程的特点,开发制作了C语言程序设计各章节的多媒体课件,该课件通过1个年级9个班的学生的使用,受到学生普遍欢迎和高度评价。对程序设计方法学课程的多媒体课件,引入了设计模式的相关内容,并通过图片与动画进行设计展示,使得互动效果更明显。4.开发课程网站。本课题通过Java程序设计课程网站直观的课程内容,简单直接地提供给学生关键学习热点,让学生可以在线留言,方便教师与学生进行及时的互动交流;同时网站后台可以随时教师当前的授课计划或者备课的教案,方便学生进行课前预习。充分利用互联网平台,在C语言的教学过程中,可以建立微信平台,教师可以在平台上推送相关知识内容,这样有助于拓宽学生的知识面。同时教师还可以对个别课程的核心知识点进行微课的设计。5.整理学习资源。在教学过程中,主讲教师还需对所讲内容进行相关资料的收集整理,提供给学生可拓展视野和思路的网络新闻、学习网址、参考书籍或者网络视频等电子资料,也可布置相关的关键词,由学生自发查找并在课堂进行专题报告,这样既可以挖掘出学生真正的兴趣,又可以深化知识内容。重视作业的点评与讲解,将往年学生的电子版作业进行整理,在布置给学生作业前进行往届优秀作业展示,学生可在此基础上进行功能拓展,在Java程序设计课程中,使用此方法进行作业的布置,学生普遍反映在展示优秀作业后,对自己的作业有了新的启发,完成效率明显高于无参考作业的课程。6.改革教学手段。引入并实践项目驱动教学模式、探究式教学模式、翻转课堂等教学模式,实施“观察—实践—启发—创新”的创新能力培养的教学模式。在Java程序设计课程中实践项目驱动教学模式及翻转课堂教学模式,可以有效培养学生的创新能力。
(二)实践教学
1.实验指导书的编写。针对Java程序设计中面向对象的新特点,在实验指导书编写中设计丰富有趣的实例,引导学生主动思考,开放式的实验内容能使学生可以更好地发挥自己的创造力。在程序设计方法学课程的实验指导书编写中,根据不同学生的程度划分基本要求和提高要求,学生可根据自己的水平进行选择,鼓励学生尝试高级别的实验项目。2.课程设计。一般第3至第7学期每学期将会安排至少2门的课程设计,但教师发现这一安排不利于学生学习效果的提升。为了解决这一问题,在软件工程专业,试点进行了Java程序设计课程和软件工程课程的联合课程设计,合并两周的课程设计时间,教师在原有大纲知识覆盖的标准下,重新设计能结合两门课程知识要点的综合性题目,有益于学生对综合知识的运用与实践。3.实训环节。不仅重视校企联合实习实训基地的建立,还要充分利用实习实训基地的相关师资力量。计算机学院与高新软件园的几家企业均签订了校企联合基地的相关协议,因此在实训环节由这些企业选派优秀企业导师对学生的专业综合技能进行培训,对提升学生实践能力,夯实学生的基础知识大有裨益。在2015和2016年的生产实习环节,笔者带领部分专业学生走进企业进行实地学习,有效提高了学生学习的积极性,对学生创新能力的提升也起到了非常积极的作用。
(三)课外教学
1.建立本科导师制。鉴于各学校近年来引进人才的规模加大,学院现有师资力量及水平逐年增强,建立“导师制”,由一名教师对每个年级的若干名学生进行指导,教师不仅可以对学生学习中存在的问题进行答疑解惑,还可结合自身科研方向,鼓励学生参与其中,增强学生的创新能力。近三年我校相关导师指导学生申报并获批大学生创新创业实验国家级3项,省级6项。这些题目的来源都与导师的科研项目相关,对学生更早接触和了解新技术和新知识起到了积极的推动作用。2.成立学生团队。成立正式的软件协会,面向全校招募有意在计算机领域发展的学生,并通过考核筛选出符合要求的成员,随后协调一批经验丰富的教师,对学生的创新能力进行定期培训。同时可结合教师的科研项目和各类竞赛项目,选择团队学生作为主要参与人员积极参与科研项目。由学生自主管理,小组进行学习和交流,并进行项目申报,为学生的创新创业实验和学科竞赛项目进行知识储备和项目实训。3.鼓励学生参与学科竞赛。针对全校程序设计大赛甄选出的优秀选手,选派具有丰富经验的指导教师进行算法专题讲座和培训,为创新中的核心技术储备人才。在近几年的数学建模比赛、蓝桥杯大赛、ACM程序设计大赛上我校取得了喜人成绩:其中2014年蓝桥杯全国总决赛二等奖3人,三等奖6人;2015年一等奖1人,二等奖4人,三等奖7人,团队赛总决赛二等奖;2016年二等奖3人,三等奖7人。2016年中软杯全国总决赛三等奖一项,ACM省赛三等奖两项,互联网+省赛银奖1项,铜奖1项,近3年学生获得软件著作权20余项。由此可见进行学科竞赛可大大提高学生的创新能力。4.构建信息平台。集合课堂、实践和课外三个维度,构建网络化信息平台,引进项目管理的新思路,在平台上建立以项目为引导的学习小组,将学生参与竞赛的项目整合在平台上进行信息化管理。在使用过程中,要注意采纳学生的意见和建议,进行平台功能的重构,可引入竞赛信息板块,创业项目板块,并将课程内容增加到网络信息化平台中,使学生可在此平台上能够进行有效学习。
三、结语
大学生创新能力培养多维平台的构建,解决了现有高校学生创新能力培养缺乏系统体系的问题,从多维度进行实践,摸索并总结出了基于此平台培养学生创新能力的一系列经验,下一步将聚焦于如何在该平台下建立学生和教师的激励及成效评估机制,以便保证大学生创新能力培养平台的可持续运作。
参考文献:
[1]陈新.以科技竞赛培养学生创新能力[J].发明与创新(综合科技),2011(2):42-43.
[2]罗晓霞.融合式的实践教学在软件工程专业中的应用[J].科教导刊,2015(12):101-102.
[3]史晓楠.软件工程专业学生创新能力培养的探索与实践[J].科技创新导报,2014(10):226-227.
[4]史晓楠,贾澎涛,罗晓霞.计算机专业学生创新能力培养研究:以西安科技大学为例[J].软件导刊(教育技术),2015(11):30-32.
我国现代远程教育试点十余年来取得了突破性的进展,招生规模进一步扩大,精品课程建设成果显著,课程资源共享与学分互认进展突出,但仍存在一些不足。课程内容是实现课程目标所采取的一种手段,课程内容的选择与组织在很大程度上取决于课程目标。同时,课程内容、课程任务是课程目标的体现,好的课程应该是目标、内容、任务三者统一,最终实现学生知识结构、能力水平的提升。本文将以三所高校网院的“C语言程序设计”为例,从目标一致性的角度,研究如何从课程内容的层面,深入分析网络课程内部,探讨教学目标实际情况,并提出相关网络课程开发建议。
【关键词】 网络课程;学习目标;目标实现
【中图分类号】 G423 【文献标识码】 A 【文章编号】 1009—458x(2013)07—0030—08
一、引言
《国家中长期教育改革和发展规划纲要(2010-2020年)》中明确提出要“大力发展现代远程教育”,现代远程高等教育作为继续教育的一种主要形式,是信息技术高速发展和终身学习社会催生的产物,在实现继续教育目标及终身教育的过程中承担着重要角色。我国现代远程教育试点十余年,现代高等远程教育稳步发展,取得了突破性的成果,招生规模进一步扩大,精品课程建设成果显著,课程资源共享与学分互认进展突出。但同时,我们也看到发展过程中仍存在一些不足与挑战,如课程设计不够重视,在线学习活动设计水平滞后;虽然部分课程开发已经有教学设计环节,但往往课程实现的教学目标与之前设定的目标水平有差异,在最终的网络课程中教学目标无法理想地实现。[1]
网络课程体现了网络教育的教学理念、课程设计、教学内容、媒体呈现、教学活动等多项内容。课程内容是体现课程目标的一种方式,课程内容的选择与组织在很大程度上取决于课程目标,课程的质量与课程目标设定有着非常密切的联系。同时,课程内容、课程任务是课程目标的体现,好的课程应该是目标、内容、任务三者统一,最终实现学生知识结构、能力水平的提升。
为了更好地探讨网络课程的建设,促进网络课程的发展,网络课程分析是很好的手段之一。目前,在网络课程研究领域,通过分析对课程进行的思考与研究大概可分为两类:要素分析、交互分析。要素分析是指以网络课程“要素”作为分析的类目,对已有的课程进行反思,如分析网络课程的表现形式以得到课程的分类,对精品课程整体结构设计与核心要素建设的研究,统计分析网络教育精品课程中的学习活动、学习评价情况,对网络教育精品课程功能栏目调查研究等。交互分析主要是以网络课程“交互”作为分析的关注点,对课程的交互进行反思,包括对教学平台交互功能的研究,学习资源交互性的现状调查,学生学习过程交互的分析等[2][3][4][5][6][7][8][9][10]。
综观这两大类分析,主要是对网络课程的表层进行分析,而忽略了课程内容本身。关于课程内容,我们可以理解其包括知识点与课程中的学习任务。知识点是整个教学和学习过程的基本单元,知识点的类型、目标水平会影响教学内容的组织、安排和活动任务的设计。要针对不同类型的知识点,采取不同的教学策略,以提高学习者的学习效率。在网络课程中,知识点也是信息组织与传递的基本单元,是影响网络学习质量的关键。学习任务是课程预期学习结果和评估的桥梁。在教学过程中,学习任务能够促使学生阐明他们在课程学习中的内容应用的能力,使学生能够发展达到学习结果所需要的绩效水平的能力。
如何从课程内容的层面深入分析网络课程内部,是目前网络课程分析亟待要做的研究,对探讨网络课程教学设计,提高网络课程质量,促进课程资源共享具有积极的意义。本研究从目标一致性的角度,对网络课程中的学习目标相关描述、知识点的教学设计、学习过程中的任务设计,分别从知识准备、信息呈现、任务活动等方面进行分析,试图挖掘目前网络课程内容设计与目标设定一致性的现状,发现存在的问题并提出相应的网络课程设计与开发建议,以期促进网络课程资源设计与开发的发展。
二、网络课程目标一致性研究设计
本研究主要采用内容分析法,对三门“C语言程序设计”网络课程的相关数据进行比较分析,了解不同学校的同一门课程的目标水平、知识组织、任务设计的情况与差异,以及课程与目标一致性的情况。
1. 内容分析样本
“C语言程序设计”课程具有内容枯燥但要求较高、实践性较强的特点,注重培养学生的动手实践能力,因此也有利于对课程的学习任务进行分析。研究样本来自三所高校网络教育学院(以下简称“网院”),分别为理科(A)、工科(B)、文科师范(C)类院校,三所网院均具有较强的办学水平、丰富的网络教育经验、雄厚的师资力量和较强的教学资源建设能力,且均有课程被评为国家网络教育精品课程。
2 . 分析类目设计
在本研究中,我们以每一门课程网站作为基本分析单元,将网站上呈现的资源内容按设计好的分析类目进行内容分析。
在相关文献调研的基础上,参考国内外网络课程、网上学习环境的相关分析框架和研究成果,以及《国家网络精品课程评审指标》中的评审分类,本研究确定从描述目标、知识点设计、学习过程三个方面进行比较分析,并得到研究分析的类目,如表1所示。
(1) 教学目标分析
课程预定目标,我们认为其主要是课程学习之前呈现的“课程目标”,以及每个章节中的“章节目标”,它们体现着教师(课程设计者)预想的教学活动实施的方向和预期达到的成果,即学生通过学习后要掌握的能力与达到的水平。至于实际网络课程中内容设计达到的目标水平,我们分析课程中知识点的呈现和任务设计,从而通过这三个方面来了解课程内容设计与目标设定一致性的情况。研究中我们采用布鲁姆的六维目标,记忆、理解、应用、分析/评价、创造,来进行学习目标研究。
(2) 知识点呈现分析
本研究主要强调网络教育课程客观信息的真实再现,从知识点类型与信息类型两个方面对知识点呈现进行研究。在基于知识建模的课程分析研究中[11],研究者已经验证知识点类型具有一定的目标指向。
我们借鉴杨开城教授的知识分类,将网络教育课程的“知识点类型”主要分为:符号和名称、概念、原理公式、过程步骤、格式、目标策略。结合杨开城教授对知识分类的解释[12],我们对“C语言程序设计”课程各知识点类型进行解释:
· 符号和名称:是概念的表征方式,它本身没有语义,比如网络教育课程“C语言程序设计”中的知识点“int”,代表整型的符号。
· 概念:是指符号的语义而不是符号本身,如“数组”、“指针”等。
· 原理公式:是指某些概念之间的关系,有时用命题的方式表达,有时使用公式表达,各种标准、规范、规则、某种事物的性质/功能等都属于原理公式。
· 过程步骤:是指事物的运动过程或者某种操作的步骤序列,如“链表的删除操作、文件的打开与关闭”。
· 格式:是指某种文体或者语言的组成结构,如“条件语句”、“break 语句”、“while循环语句”等。
· 认知策略:从形式上看属于过程步骤。
信息类型能够体现网络教育课程的教学性。知识点类型是稳定不变的,但网络教育中针对某个知识点类型的材料的信息类型在不同的网络教育课程中是可变的。我们结合杨开城教授的课堂信息分类将要研究的“信息类型”分为:知识语义、范例。其中知识语义主要包括解释性的文本、知识结构图等,范例包括案例、问题、例子及命题的推导过程或论证过程等,代表知识的运用及特定的现实。
根据知识点类型、信息类型,参考“知识技能领域目标分类的二维模型”,我们可以得到知识点的目标水平指向,从而进一步分析知识点呈现维度上的目标水平,探索网络课程所采取的这些设计能否与预设目标达成一致(如表2所示)。
表 2 知识点类型与信息类型的目标水平指向
[知识点类型\&信息类型\&目标水平指向\&目标水平\&符号和名称、概念、原理公式、格式、过程步骤、认知策略\&知识语义\&意义建构\&记忆、理解\&原理公式、格式、过程步骤、认知策略\&范例(应用)\&能力生成\&应用\&范例(分析/评价)\&能力生成\&分析/评价\&范例(创造)\&能力生成\&创造\&]
(3)学习任务分析
学习任务一方面体现对其所覆盖知识点目标水平的约束,另一方面体现网络课程对学生能力的培养水平。在本研究中,我们从任务类型、任务形式、任务数量、任务目标水平四个方面对网络课程中的学习任务进行分析。
我们参考杨开城教授的“知识技能领域目标分类的二维模型”纵轴的操作类型分类,考虑任务的目标,将任务划分为记忆、理解、应用、分析/评价、创造6种类型。“记忆”主要指需要学生进行直接复述的任务,如请列举出C语言的特点;“理解”是指从书面和图画传播的教学信息中建构意义,需要学生不仅进行复述,还需进行理解,如“char *s="\t\\Name\\Address\n"中指针s所指字符串的长度为()”;“应用”主要是指让学生在给定的情境中执行或者运用某程序,应用原理公式解决问题,这类问题有时与现实生活不直接对应,如将“设有如下的程序段:char str[ ]="Hello" ;char *ptr ;ptr=str ;执行上面的程序段后 ,*(ptr+5)的值为 ()”;“分析/评价”指把材料分解成各个组成部分并确定各部分之间的相互关系以形成总体结构或达到目的,或基于标准做出判断,如“比较for循环语句与do while循环语句的异同”;“创造”指综合运用多个知识点,把要素加以组合形成一致的或功能性的整体,或新的模式或结构,主要是让学生运用所学真正做出一个产品,如“编写扫雷程序”。
任务形式主要包括单选题/多选题、填空题、简答题、论述题、应用题/计算题、实验报告、作品(如PPT、Word文档、程序)、案例分析报告、虚拟实践系统中的任务等。
任务的目标水平,主要有“记忆、理解、应用、分析/评价、创造”。
3. 研究过程
本研究的研究过程共分为知识点提取、内容分析、目标水平比较和内容-目标一致性分析四个阶段。
首先,根据“C语言程序设计”教材中的总体目标描述及主要知识点进行课程目标和内容的分析,提取用于后续分析比较的课程知识点;其次,按照设计的分析类目对三门网络课程进行统计分析,并按各个类目比较这三门课程的情况;再次,根据目标描述、知识点呈现、学习任务三个方面得到的目标水平维度,分析各个维度上三门课程中知识点目标水平的差异;最后,分别比较三门课程预设的目标(描述目标)与实际课程的知识点呈现、任务设计体现出来的目标是否一致。
在进行课程比较分析之前,本研究根据计算机学科的特点,参考杨开城教授的概念知识分类,对网络教育通用《C语言程序设计》教材,从分类、组成、能力等角度将课程知识分为“运算符、表达式、输入输出语句”、“选择结构程序设计”、“循环结构程序设计”、“数组”、“函数”、“指针”、“结构与链表”、“文件”八个能力单元,每个能力单元包括一系列次级知识点。
在分析过程中,编码框架中选用以上八个能力单元作为知识的一级分类,知识点为二级分类,编码时首先按二级分类即知识点进行分析,以便进行更为深入的研究。分类框架的确定基于覆盖性、可靠性两点考虑,首先要确保分类框架中的主题内容包含所有C语言程序设计的内容,其次要考虑编码的易操作性以提高信度。
三、结果与发现
1. 课程知识点的预设目标
根据三所网院的“C语言程序设计”课程目标描述,将知识点的目标水平进行编码,得到目标描述维度上,各能力单元知识点目标水平分布,如图13、16、19所示。
2. 知识点呈现目标
(1)知识点覆盖
通过对网络课程的内容分析,根据对课程及知识点关系之间的分析,我们发现课程缺少的知识点中“程序调试、default与break语句、goto语句与循环”是后续知识点学习的必备先前知识,是C语言中较关键的内容;“程序调试”更是进行C语言编程的基础,没有学习好这部分内容,编程的实践将很难完成。这些知识点的欠缺,大大影响了课程的质量和学生能力的培养。
(2)知识点类型
A、B、C网院的“C语言程序设计”课程中,知识点类型以“格式”为主,其次为“过程步骤”、“概念”,如图1、2、3所示。我们可以看到B、C网院课程的知识类型分布较相似。
图 1 A网院的课程知识点类型分布图
图 2 B网院的课程知识点类型分布图
图 3 C网院的课程知识点类型分布图
(3)信息类型
三所网院的课程中,信息类型以“应用类范例”为主,如图4、5、6所示,这与课程内容特点相符。
图 4 A网院课程知识点信息类型分布图
图 5 B网院课程知识点信息类型分布图
图 6 C网院课程知识点信息类型分布图
(4)知识呈现维度目标水平
根据课程的具体设计,参照“知识点类型与信息类型的目标水平指向”规则,形成“知识点”与目标水平的对应,统计得到知识点与资源设计维度上,各能力单元知识点目标水平分布,如图14、17、20所示。
通过内容分析,比较知识点呈现维度上三所网院的三门课程之间知识点目标水平,我们发现A网院的课程对“循环结构程序设计,函数,指针,文件”单元的要求更注重“应用”能力的培养。通过SPSS多独立样本分布差异性检验,我们发现三门课程之间知识点目标水平分布并无显著差异。
3. 学习任务目标
(1)任务形式
A网院的课程中,学习任务形式以简答(27.09%)、单选(24.14%)、填空(20.69%)为主,编程(15.27%)、实验(10.34%)为辅。B网院、C网院的课程中,学习任务形式只有单选、判断两种,比例分别为B(51.67%、48.33%)、C(75%、25%)。学习任务数量上C网院是最少的,大致只有A网院的30%,B网院的50%。具体如图7、8、9所示。
图 7 A网院课程学习任务形式分布图
图 8 B网院课程学习任务形式分布图
图 9 C网院课程学习任务形式分布图
(2)任务类型
A网院的课程中,学习任务类型以“应用”、“理解”为主,其次为“记忆”、“创造”。B、C网院的课程中,学习任务类型虽然也以“应用”、“理解”为主,其次为“记忆”,但B网院未涉及“创造”类学习任务,C网院未涉及“创造、分析/评价”类学习任务。具体如图10、11、12所示。
图 10 A网院课程学习任务类型分布图
图 11 B网院课程学习任务类型分布图
图 12 C网院课程学习任务类型分布图
(3)学习任务维度的目标水平
我们通过对三所网院的任务形式和任务类型进行分析得到学习任务的目标水平。我们发现三所网院中,只有A网院的课程中每个知识点都有设计学习任务,B、C网院只对部分知识点设计了学习任务。在学习任务目标水平维度上(如图15、18、21所示),三所网院课程中的知识点目标水平以“应用”为主,其次是“理解、记忆”,虽然各个知识点的目标水平有差别,但并不显著。
4 . 网络课程内容与目标设定的一致性情况
(1)A网院课程目标实现情况
A网院的“C语言程序设计”实际课程内容与目标设定的一致性情况并不是很理想(如图13、14、15),对学生的“创造”能力的培养并未落实,更多的是培养学生对“知识点”的“应用”能力,但同时对“应用”能力的培养未达到理想水平,有些降低到了“理解”的层次。
图 13 A网院课程能力单元知识点目标水平分布图
(目标描述维度)
图 14 A网院课程能力单元知识点目标水平分布图
(知识呈现维度)
图 15 A网院课程能力单元知识点目标水平分布图
(学习任务维度)
(2) B网院课程目标实现情况
B网院的“C语言程序设计”在课程设计中,课程预定目标、知识呈现与学习任务体现的目标三者一致性并不理想(如图16、17、18),对学生的“创造”能力的培养并未落实,更多的是培养学生对“知识点”的“应用”和“理解”能力。但同时知识呈现侧重知识语义的讲解,学习任务不够,很多对“应用”能力的培养未达到理想水平,有些降低到了“理解”、“记忆”的层次。
图 16 B网院课程能力单元知识点目标水平分布图
(目标描述维度)
图 17 B网院课程能力单元知识点目标水平分布图
(知识呈现维度)
图 18 B网院课程能力单元知识点目标水平分布图
(学习任务维度)
(3) C网院课程目标实现情况
C网院的“C语言程序设计”在课程设计中,课程预定目标、知识呈现与学习任务体现的目标三者一致性并不理想(如图19、20、21),对学生的“创造”能力的培养并未落实,更多的是培养学生对“知识点”的“应用”和“理解”能力。但同时知识呈现侧重知识语义的讲解,学习任务不够,很多对“应用”能力的培养未达到理想水平,有些降低到了“理解”、“记忆”的层次。
图 19 C网院课程能力单元知识点目标水平分布图
(目标描述维度)
图 20 C网院课程能力单元知识点目标水平分布图
(知识呈现维度)
图 21 C网院课程能力单元知识点目标水平分布图
(学习任务维度)
四、分析与讨论
1. 网络课程目标实现及设计中存在的问题
(1)课程目标实现不理想
通过对三门课程的分析,我们发现“C语言程序设计”的课程设计与学习目标设定的一致性情况并不理想,课程设计实际能达到的目标往往低于课程先前的预设目标。“C语言程序设计”是一门实践性较强的课程,要求学生,尤其是成人学习者通过学习后能够编写一些程序,解决现实工作中的一些问题。然而,我们看到实际的网络课程更多的是传统课程的复制,无论是在知识点呈现还是学习任务的设计各个方面,都未能充分培养学生解决问题的能力,相反,更多的是要求学习理解一些概念与语句,能够应用相应的语句即可。在知识点呈现方面,缺少生动、形象的信息来促进学生更好地掌握高目标水平的知识点;在学习任务方面,缺少较复杂的、需要学生运用多个知识点综合起来解决的多层次任务;在学习交互方面,缺少对学生整个学习过程的监控、指导与帮助。可见,网络课程的学习材料只是在传统课程的基础上,形式发生了变化而已,而教学内容、难度与远程学习者的知识、能力水平不符,也与其需求不符,目标实现情况并不乐观。这些都不利于激发学生的学习动机和兴趣,更不利于学生对知识内容的掌握,阻碍了有效学习的发生。
(2)课程之间差异较大
不同网院的同一门课程之间差异较大,个别知识点呈现方式多样,课程资源丰富,学习任务多样且难度层次分明,而个别课程相对来说仅仅是对传统课程的复制,在资源形式、学习任务、活动设计上都不理想。同时,有些课程之间无论是内容还是形式都特别相似,不仅使用相似的教学平台,在知识点设计、教师讲解方面差异也不大。
(3)学习内容设计不符合学习需求
a. 学习内容选择(知识点选择)
学习内容的选择未切合成人学习特点与课程特点,三门网络课程只是传统课程的搬家,复制传统课程的现象较普遍,课程明显缺乏符合远程学习者学习特征的教学设计。在教材选取上,三所网院采用的均是全日制本科生所用的教材,没有开发与网络教育形式相适应的自编教材。对于“C语言程序设计”这门课程,没有网院为其提供学习指南,线上的课程学习与线下的实验编程该如何配合的问题较为突出,没有网院为学生的线下实验实践提供专门的指导。
知识点的选择上,部分课程缺乏一些关键知识点。这些关键知识点有的是后续知识点学习的先前条件,有些是该课程中较关键和重要的组成部分,有些是直接影响C语言编程的关键能力的知识点。
b. 学习内容设计
学习内容不符合课程学习的需求,未根据知识点做详细的分析与教学设计,缺乏学习活动、实践环节。“C语言程序设计”课程中的知识点类型以格式、过程步骤为主。该课程实践性较强,理论内容相对来说较少,因此在知识点的信息表达类型上,三门课程均是以“应用类范例”为主。三门课程在知识点的信息类型上,未能合适地运用“应用类范例”,未针对知识点做详细的分析与教学设计。就分析的情况来看,这三门网络课程缺乏学习活动的设计,知识点的呈现都是单纯地对知识点进行讲解,而这大部分的教学内容都是按照参考教材上的章节顺序和知识点进行编排。在这三门课程中,能体现自主、协作、实践学习等网上教学活动设计的功能模块非常少,也没有给学生设计相应的学习活动,以完成目标水平较高(如:应用)的知识点的学习。
同时,实验资源非常少,往往只是将教材中的实验文字复制到网页上,缺乏主题研究和开放性的实验资源。课程中缺少对学生实验过程的监控和指导,没有给学生提供相应的实验指导文件(如视频、动画等),对学生在实验过程中遇到的问题没有提供适当的帮助。
(4)学习任务脱离教学设定目标
三门“C语言程序设计”网络课程中,都相应配备了课程学习任务,但是学习任务较单一,且数量较少。“C语言程序设计”对学生动手编写程序的水平要求较高,然而在课程中的学习任务以“应用”、“理解”为主,其次为“记忆”,较少涉及“创造”类的学习任务。学习任务设计大部分是根据参考教材中的学习任务进行改编,或者直接照抄得到,而参考的教材一般都是传统课程的教材,并不是专门针对远程学习者制定的。
2. 基于现状的分析对网络课程开发的启示
由以上分析发现,“C语言程序设计”课程内容设计与目标设定之间的一致性并不理想,在满足师生实际需求与期望方面还存在一些问题。通过分析,我们可从网络课程的学习目标确定、知识内容设计、学习任务设计几个方面获得以下有益的启示。
(1)确定合适可行的学习目标
清晰的课程目标是网络课程开发的前提和基础。网络课程主要群体是在职成人,成人学习者的学习目的是以获得证书或资格为目的,是一种问题中心或任务中心为主的学习,他们学习的目标大部分是希望通过学习能直接运用所学知识解决当前的社会生活、工作问题,寻求方案解决问题,对学习结果心存期待。同时,成人学习是一种参与式的学习,网络教育或课程应努力激发和提高成人学习者参与网上学习的热情及参与水平,实现学习者在“做中学”,培养实际解决问题的能力。
因此,在确定学习目标时,应充分考虑成人学习者特殊的需求与特点,对传统课程的知识点进行适当取舍、增添,并合理组合,以培养解决问题的能力为目标,力求所学课程能对学习者的实际工作、生活有所帮助。实际操作过程中,可以采取学习者访谈、学习者需求调研、学习者先前知识分析等方法,结合该门课程的特点,对课程的目标进行分析和确定。
(2)选择组织符合课程目标的学习内容
在设计网络课程时,应该根据课程特点、学习者特点、学习目标,对学习内容进行选择。学习内容设计是网络课程教学设计的核心环节,实践性较强的学习内容侧重的是学习内容中核心的、具有启发性的主题知识点的重点讲解、深入理解、能力形成。对于筛选出来的学习内容,根据知识点类型、知识点的目标水平,进行教学设计。由于成人学习者的特点,我们认为采用“以活动为中心”的课程设计,是网络课程设计的方法之一,尤其是对像“C语言程序设计”这样实践性较强的课程。
网络课程的学习活动设计应以实现课程目标为宗旨,设计师生间的交互活动和学生的自主学习活动,注重课程导学活动(网上学习指导、课程导引短片、首次课见面会、学习风格调查与反馈等)、自主学习活动、协作学习活动、课程辅导活动(讨论类活动、答疑类活动等)、学习评价活动(自测、作业、考试、电子档案袋、学习表现等)的设计,以实现激发学习者的学习主动性和积极性,引导学习者学习,监控网络课程的学习过程等意图。
教学内容的设计必须有前后协调一致的内容呈现方案,要明确定义各内容的呈现方式。保持呈现方式设计的前后一致性,既有利于产生联想学习的效果,又利于媒体素材整理的标准化、规范化,为教学内容的动态管理构建好的环境。
(3)设计为课程目标服务的学习任务
设计网络课程的任务首先应明白其设置的目的,并遵循关注学习过程、内容多元化、方式多样化、手段网络化和人性化结合等原则,为实现课程目标服务。对于在职成年学习者来说,任务的方式和内容也应该适合他们的学习特点。例如:对于“C语言程序设计”之类实践性较强的课程,应多设计运用型、解决问题型的任务,达到课程学习的目标,培养学习者所需要的能力。
总之,我们建议加强网络课程资源的教学设计,注重开发更多符合师生需求的教学资源,建议采用“以活动为中心”的设计理念,加强学习任务的建设,以及学习过程的组织、管理和评价。在考虑课程目标能否实现的问题时,课程的内容只是一方面,教师对课程实施过程的控制与调整、课程的模式等也影响和决定着课程目标的实现。本研究仅仅是从课程内容的角度来探索目标实现,希望在未来的研究中能够结合课程实施过程等方面,进行更全面、系统的分析。
[参考文献]
[1] 网络教育教学基本规范与网络课程资源开发指南的研究及从业者培训资源建设与应用课题组[R]. 现代远程教育试点高校课程资源建设情况调研报告,2008,10,28.
[2] 李志河. 网络课程的类型分析[J]. 中国教育信息化,2009,(13):38-43.
[3] 吴中福. 高校精品课程建设中教育技术支持的成功案例研究[R].高等教育出版社项目中期汇报PPT,2009,(8).
[4] 昝宏雷. 高校生物学精品课程网上资源分析[D]. 北京师范大学教育硕士学位论文,2006,(12).
[5] 周彩霞,张宇,贾换锋. 网络教育精品课程功能栏目调查研究[J].中国远程教育,2009,(2):50-53.
[6] 陈庚,丁新,袁松鹤,徐琤,蔡永. 网络课程要素分析及建设[J]. 开放教育研究,2008,(12):73-79.
[7] 邹应贵,袁松鹤,蔡永. 网络教育精品课程的整体结构设计与核心要素建设研究[J]. 中国电化教育,2009,(7):67-73.
[8] 张国民,张剑平,邱红霞. 基于教学交互视角的网络课程分析——以《现代教育技术》精品课程为例[J]. 现代教育技术,2008,(7):78-82.
[9] 张庆秀,王跃生,韩清献. 网络课程交互特性分析与利用[J]. 开放教育研究,2004,(5):32-34.
[10] 赵润娣. 高校图书馆《信息检索》网络课程交互性研究[J]. 图书馆学,2009,(3):11-15.
[11] 杨开城. 以学习活动为中心的教学设计理论[M]. 北京:电子工业出版社,2005.
[12] 孙双. 基于知识建模的课程分析研究——以北京师范大学教育技术学专业本科课程为例[D]. 北京师范大学,2010,(5).
收稿日期: 2012-11-30
作者简介:陈鹏,硕士,首都师范大学(100048)。
考试
1.考场设置:由各州、市办考部门确定,需在县城以外设考场的,须报省招考院批准。“广告”专科只在昆明设考点。
2.考生应试时,须带准考证、考试通知单和居民身份证(或其他能证明身份的有效证件),三证不全者不得进入考场。考生必须严格遵守考场规则,不得以任何形式作弊。凡违反考场纪律者,按2011年教育部第33号令及我省有关规定严肃查处。
3.考试成绩以百分计,六十分为及格,及格者发给单科合格证书,不及格者可参加该门课程的下一次考试。考试成绩公布在“云南省招考频道”上,考生自行登录网站ynzk.cn查询。考生对成绩有质疑的可在成绩公布之日起10个工作日内到各州(市)招生考试机构办理查分申请,由各州(市)招生考试机构汇总后统一到省招考院查分,查完后通知考生。省招考院不直接对考生查分。
4.考生考试时间及临考复习假的占用问题,按原省自考委、人事厅、财政厅、教育厅一九八七年发文《关于对参加自学考试的考生给应考假、复习假和发放自学考试奖学金的规定》执行。
5.考试时,除“高等数学”考生不得使用计算器外,其他科目的考生可携带使用计算器,但不能有程序存储功能,也不得互相借用。不准使用有存储、接收、发射功能的电子工具。考生进入考场考试严禁携带任何通讯工具,否则将视同作弊。
6.同一考试时间段,一名考生只能参加一门课程的考试,不得考两科。
7.全国计算机等级考试(NCRE)成绩在自考系统中的使用:
根据全国考委办函[2004]148号文件规定:
(1)NCRE课程暂与高等教育自学考试的部分专科课程进行衔接。
(2)凡获得NCRE一级合格证书者,可以免考高等教育自学考试中的《计算机应用基础》(0018)或《计算机应用技术》(2316)课程(包括理论考试和上机考试两部分)。
(3)凡获得NCRE二级C语言程序设计(笔试和上机)合格证书者,可以免考高等教育自学考试中的《高级语言程序设计》(0342)课程(包括理论考试和实践考核两部分)。
(4)凡获得NCRE三级PC技术(笔试和上机)合格证书者,可以免考高等教育自学考试中的《微型计算机及其接口技术》(2319)和《微型计算机原理及应用》(2277)课程(包括理论考试和实践考核两部分)。
8.全国公共英语等级考试成绩在自考系统中的使用:
高等教育自学考试的考生参加PETS二级或PETS三级考试,笔试合格者的成绩可直接替代自考有关专业大专或本科公共英语〈即英语(一)、英语(二)〉的考试成绩,并可获得相应的学分(PETS二级替代专科英语(一)成绩,PETS三级替代本科英语(二)成绩,英语专业不能替代)。考生是否参加相应口试,则根据考生是否要求获得PETS等级证书或高等教育自学考试的相关专业来定。