前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机程序设计基础主题范文,仅供参考,欢迎阅读并收藏。
关键词:高职;程序设计;翻转课堂
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)23-0059-02
随着信息技术的发展和教育改革的需要,翻转课堂在全球教育界获得了广泛的关注。翻转课堂把学习的主动权还给学生,被认为是一种有效的教学方法,能培养学生的自学能力、交流沟通能力、团队合作能力,增强学生的自信心。对师生的走访和调查表明,计算机程序设计课程普遍存在学生“难学”、教师“难教”的情况,在程序设计课程中使用翻转课堂教学模式,为解决现有的困难提供了可能性。
1 高职程序设计课程教学现状
程序设计课是高校理工类专业普遍开设的一门基础课,它注重操作性,对培养学生的信息技术和计算思维能力具有重要作用,也是国家计算机等级考试(二级)的必考科目。目前,高职院校程序设计课程教学主要采用教师讲授和学生上机操作相结合的方式。
1)学生对程序设计课程失去兴趣。大部分学生都能认识到信息社会中程序设计课程对后续学习、工作的重要性,刚开始学习积极性比较高,但学习过程中普遍认为上课节奏太快,很难理解计算机的思维方式,不会写程序,更不会调试程序,逐渐失去学习的热情和兴趣。
2)教师觉得课时不够用。教师都知道这门课程的重要性,也一直在尝试通过教学改革提高学生的积极性,但效果不太理想。程序设计课程一般开设于大一下学期,教学课时为60。程序设计需要用计算机的思维方式来解决问题,对初学者而言,本来就面临着思维方式转变的困难。况且每种程序设计语言都有特定语法,自然语言向程序设计语言转变需要一个过程。程序设计是一门以实践为主的课程,编译工具的使用和熟悉也需要一段时间,况且还有那么多的教学内容,所以教师觉得课堂时间远远不够用。
3)学生缺乏学习主动性和毅力。中小学教育中学生已习惯被动接受教师传授的内容,不愿意去思考。而程序设计课程需要学生有自己的观点和想法,还要将自己的想法转变成程序设计语言。通过分析和设计,编写代码并调试。调试程序也是一个枯燥的过程,很多学生碰到困难就放弃了。
翻转课堂将大量的学习内容安排在课前让学生自学,课堂时间则用于答疑、讨论、应用和评估,有效地解决了课堂时间不够用的问题,教师作为一个观察者和引导者,对学生的关注度更高,还可以适时进行个别指导;翻转课堂上,学生从被动接受者变成主动学习者,以小组为单位完成项目,成员间可以相互启发和鼓励,程序调试不再单调和枯燥。翻转课堂为计算机程序设计课程教学改革提供了可能性。
2 翻转课堂概述
翻转课堂(Flipped Classroom)起源于美国。一般认为,翻转课堂是柯罗拉多州林地公园高中的两位化学老师乔纳森・伯尔曼和亚伦・萨姆斯为解决学生因病缺课,无法跟上课程进度而提出的,取得了较好的效果,进而翻转课堂在美国中小学得到了快速推广。
传统教学模式是教师在课堂上讲授知识,学生课后通过复习巩固学习内容,有时候教师也会在课前布置预习任务,基本限于让学生提前看教材;在翻转课堂上,学生课前通过教师或第三方机构(在国内,课前学习资源主要是教师提供提供)的各类教学资源进行自学,这些教学资源包括学习内容相关的音视频、文字材料、学习测验等。课堂上,学生可以就学习资源中的疑问进行提问和交流,通过参与讨论、项目应用等教学活动加深对学习内容的理解,提高实践应用能力。翻转课堂上,学生由被动接受知识转变成积极主动参与学习活动,面对面的课堂时间被更好地用于师-生、生-生间的交互、协作和深层次思考[1]。
翻转课堂不仅转变了教学流程,将原先“课上”与“课下”的活动进行互换;翻转课堂还转变了课堂组织形式,将传统教师单向讲授形式转变成自学为主,师生、生生交互多种形式;翻转课堂也改变了教学主体,由传统的教师为主体转变为学生为主体;翻转课堂还转变了主要的授课地点,传统教育中主要授课地点为教室,翻转课堂主要授课地点是网络;翻转课堂也转变了知识传播的载体,传统课堂上,知识传播载体是老师和教材,翻转课堂是以种电子资源为知识传播载体。
3 翻转课堂的实施
翻转课堂通常被认为由两部分组成:课前基于电脑和网络的学生自学,课上交互式的小组学习活动[2]。
3.1 课前准备与学习
3.1.1 学习素材准备
在翻转课堂中,学生基础理论知识的学习主要通过课前教师提供的学习材料来完成。教师是教学资源的主要创作者,学期开始前要根据学生特点和课程目标选择合适的项目,再对项目进行分解,确定具体的单元目标和课时目标,再根据课时目标选择和制作教学资源。
课程教学资源一般包括课件、软件项目库、案例库、各种媒体素材(视频类素材、音频类素材、动画类素材)以及文献资料等[3]。教师可以从网络上搜索可用资源,但我国翻转课堂尚处于起步和摸索阶段,可用资源不多,从国外网站搜索的资料因为语言、教学目标等不同,通常也不能直接使用,所以教师需要自己设计、录制、编辑和教学视频。这对教师而言,不仅是增加了工作量,也是一个挑战,视频内容的选择、视觉效果、互动性、时间长短等对学生的学习效果有着重要的影响。
视频内容要与教学目标一致,而且要能够简明、清晰、到位地解释新知识点[4]。每个视频长度最好不超过15分钟,知识点较多或者操作复杂的部分,可以分成多个短视频,这样可以满足不同学生的个性化学习需求。学习能力较强、学习时间充裕的学生,可以根据个人兴趣一次学习几个小单元,对于学习基础稍差、时间紧的学生,可以根据自身情况,每次学习一个小单元,而且可以反复观看和练习[5]。在教学视频后面紧跟一个小测验或几个小问题,便于学生及时检验学习效果,对自己的学习情况作出判断。如果发现问题回答得不好,可以再看一遍,仔细思考后重新回答,直到自己满意为止[6]。
3.1.2 学生自学
教师将教学资源到网上后,学生就可以开始学习。学生通过网络资源进行自主学习,在时间上和空间上都有充分的自由度。学生可以根据实际情况安排自己的学习时间,什么时候有空或者状态最好就什么时候学习,生病了也不要担心学习进度会落下;学生也可以根据自身情况和接受能力选择看一遍或多遍视频,没有学习的压力,不必担心老师同学异样的目光,真正实现了个性化学习。学生在自学过程中碰到问题的时候,一方面可以借助互联网查找更多资源来补充,还可以将问题发到QQ群或者网络讨论区,及时跟老师同学互动、讨论。
每个教学单元学完后,一般都有简单的测验或任务。实践中,我们除了在视频后面增加小测验,还要求学生在课前6小时提交1-3个跟材料相关的问题,学生可以问材料相关的任何问题。通过学生提交的问题,教师也可以看出学生对材料的掌握程度,是否停留在表面还是有自己的思考。也有时间根据大家的讨论内容和尚存的问题,及时调整课堂内容和教学策略。
3.2 课堂内化
因为学生已经在课前完成了基础知识和技能的学习,课堂时间主要用于讨论、分析和内化。教师根据教学目标和学生自学后的反馈信息,设计课堂上的各种活动,合理安排课堂时间,把握好课堂节奏,更重要的是课前学习材料和课堂学生活动要能够进行无缝对接[7]。
3.2.1 答疑与提问
课堂的前10-15分钟一般用来解释、检查学习材料中的内容。学生在课前自学时提交的问题,以同学间相互解答为主,教师进行适当提示并引导学生进行深层次思考。
由于学生是带着已知的知识和一定的问题来上课,教师可针对不同水平的学生给予更多一对一的针对性的指导和具体的帮助,从而成为学生学习的主要指导者和推动者。
3.2. 2 分组探究
对于一些重难点内容,可以通过设计有针对性、能发挥学生能动性和创造性的探究任务,为学生提供整合和应用知识技能的机会。
根据任务需要,模拟软件开发企业组建开发团队,4人组成一个团队,每个团队设项目经理、分析师、程序员和测试员各1名,团队中的每个成员都有自己的角色和任务。每个项目都要经过需求分析、流程图设计、编码和测试等环节,每个环节以一名成员为主要负责人,其他成员必须参与,项目经理对项目全面负责。在项目进行过程中,教师作为指导者,进行巡视和个别指导,遇到共性的问题,则统一讲解。
学生通过小组合作的方式分析、讨论问题,在对程序的不断修改和调试过程中领悟新知识,最终完成项目。每个人都为项目的完成贡献着自己的智慧和力量,团队意识和合作能力提到加强;在不断的分析、编码和改错过程中,分析问题、解决问题和探究能力都得到了提升;“探索―训练―思考―创新”的过程中知识得到了内化[8]。经过多次尝试终于解决了困难,学生能感受到成功的喜悦,增加学习的自信心和积极性。
3.2.3 成果展示
每个项目完成后,都需要以团队为单位提交项目源代码。根据项目大小,每队派一个或多个成员运行项目,并讲解主要算法思想,就项目完成过程中碰到的问题以及解决过程跟全班同学交流。项目展示环节能促使学生积极认真地投入到程序开发过程,学生也能从其他团队介绍的问题解决方式中受到启发,或者能为解决问题提供新思路,或者能避免犯类似的错误,教师也可以从中了解各组的学习情况。
3.2.4 交流评价
翻转课堂中评价方式有多种,以过程性评价为主。在课前自学和课堂内化的各个环节,教师都可以根据学生的表现进行评价;在所有组展示完项目后,也可以让小组互评;还可以通过反馈性写作,如“这节课你学到了什么”、“你还有什么不清楚的地方”、“你最想知道的问题是什么”等问题来了解学生的学习效果。
4 小结
翻转课堂将学习的主动权还给学生,能调动学生的学习积极性;学生在课前自学知识和技能,节约了大量课堂时间。翻 转课堂为计算机程序设计课程的教学改革提供了新途径,但翻转课堂在我国刚刚起步,对教学模型、教学策略、评价体系等的研究都处于摸索阶段。一方面,我们可以借鉴国外研究成果和实践经验,另一方面也要结合学生和学科特点,真正做到以学生为中心,构建具有中国特色的翻转课堂新模式。
参考文献:
[1]Pang Nai Kiat, Yap Tat Kwong.The Flipped Classroom Experience[C]// Software Engineering Education and Training (CSEE&T), 2014 IEEE 27th Conference. Klagenfurt, Austria:39-43.
[2]Bishop J L,Verleger M A.The flipped classroom:A survey of the research[EB/OL]. http://dts.drake.edu/wp-content/uploads/sites/2/2014/03/The-Flipped-Classroom-A-Survey-of-the-Research.pdf,Paper presented at the meeting of American Society of Engineering Education, Atlanta, GA,2013-6.
[3]曾明星,周清平,蔡国民,等.软件开发类课程翻转课堂教学模式研究[J].实验室研究与探索,2014(2):203-209.
[4]杨伟杰.翻转课堂:转变与挑战[J].教学与管理,2013(10):93-95.
[5]王健,王京菊.翻转课堂模式在服装实践类课程教学中的运用[J].教育与职业,2015(3):98-100.
[6]宋金[,郭新峰,石明吉,等. 翻转课堂在大学物理实验教学中的应用[J]. 实验技术与管理,2015,32(3):33-37.
关键词:信息的编程加工;讲解演示法
中图分类号:G434 文献标识码:B 文章编号:1671-7503(2013)01/03-0119-04
【设计思想】
以程序为基础,以算法为核心,不以代码编写训练为要义,而以程序设计方法和算法思想的体验为旨归。
充分利用与学生生活、学习经验联系紧密的例子,碰撞出思维的火花,让学生了解信息编程加工的方法,理解算法的作用,尝试简单代码的书写?熏体验编程的魅力,激发学生的学习兴趣,同时,也锻炼学生的思维。
【教材分析】
《信息的编程加工》是教育科学出版社出版的《信息技术基础(必修)》第三章第二节的内容。本节课主要是通过分析、编写简单程序?熏让学生初步了解信息编程加工的一般过程?熏感受利用计算机编制程序解决问题的魅力,解开计算机程序的神秘面纱。教材没有详细介绍编程加工的关键步骤:算法,但是这部分内容是编程的核心,所以,引入了算法的概念及算法的简单设计。
【学生分析】
高一学生思维活跃,逻辑思维能力也日趋严密。所教学生大部分来自城市,基础整体相对较好。但是,程序设计很少有学生接触过,再加上内容本身相对枯燥,因此,创设情景,激发学生兴趣,消除他们对程序设计的陌生感和畏难情绪,调动他们学习和探究的主动性、积极性,显得尤为重要。学生一节课的时间对编程掌握不了多少,但让他们在体验中理解编程加工的主要过程,了解其内在机制,并通过简单的修改实现小小的目标,有成功的体验和收获是完全能够达到的。
【教学目标】
知识与技能:对比人类是如何分析问题、解决问题,了解计算机求解问题的过程;掌握算法的基本含义及设计思想,从而了解计算机信息编程加工的内在机制;理解并能够用VB语言实现算法,尝试简单代码的书写。
过程与方法:通过教师的实例讲解和学生的亲身实践,让学生理解计算机解决问题的一般过程与方法;感悟信息编程加工的基本思想和基本流程。
情感、态度与价值观:消除程序设计的神秘感,产生对程序设计的求知欲,形成积极主动地学习算法与程序设计的态度;逐步养成严谨、科学的程序设计思想;通过小组协作,培养学生的探索精神与合作精神。
【教学重、难点】
重点:体验了解计算机解决问题的主要过程,了解其内在机制;简单算法的设计。
难点:算法的理解及其设计;认识、书写简单代码。
【教学方法】
讲解演示法、讨论法、任务驱动法。
【教学环境】
硬件:多媒体网络教室;软件:极域电子教室、Visual Basic 6.0。
【教学过程】
一、创设情境问题,引入课题
问题:祖冲之如何计算圆周率?
分析:人的特点是有分析、思考能力,但计算能力有限;计算机的特点就是算得快、准确,但需要依靠人为它设计程序。计算机的灵魂是程序,没有程序,计算机是无法运行的。
二、讲授新课:以求解“水仙花数”为例讲解信息编程加工的一般过程
问题:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。同学们能找出所有的水仙花数吗?
学生两人一组,各尽所能,找出100-999之间的水仙花数,看哪一组找的最多?
(1)分析信息。确定要解决的问题,即要求计算机“做什么”。
让计算机找出100~999之间各位数字的立方和就是这个数本身的数,并显示出来(如图1)。
(2)设计算法。对某一特定的问题设计的一组(有限个)求解步骤和方法(如图2)。
学生体验小游戏,青蛙过河,找出过河的方法。
分析完成的步骤:公1母1向前一步,母2向前一步?熏公1公2公3向前一步,母的均向前一步,公的均向前一步,接下来很简单。
(3)编写代码。把人们设计的算法转换成计算机能够识别的代码。
程序设计语言有很多,已经从最初的机器语言发展到现在的比较接近自然语言的高级语言,例如:C、Pascal、VB、C#、Java等都是高级语言。
我们使用VB来实现。VB基于事件驱动编程方法。
学生实践:根据流程图(如图3)完善程序代码(算法一的代码实现)。
(4)调试运行。刚编写的程序不一定完善,必须在计算机上实际运行,排除程序中的错误,测试其能否达到预期的结果。
小结:计算机运行的程序就是人思维的延伸。
信息编程加工的一般过程:分析问题设计算法编写代码调试运行。其中,设计算法是最核心的部分。
三、轻松一下:加深算法的印象?熏编程算法是核心
(3)小结:只要能设计出算法,程序设计就不神秘了。
四、总结提升
关键词 低级语言;高级语言;输入/输出设备
中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)041-133-01
1 计算机的编程语言的发展
1.1 计算机编程语言的概念
计算机编程语言的诞生是为方便人与计算机的沟通交流,为了让计算机更好的服务于人类,计算机所能识别的语言就只有“0”和“1”,该语言人类记忆非常麻烦,因为表达一句简单的话,机器语言却非常复杂、非常长,所以人们就开始研究一种简单的语言,然后编译器诞生了,人们至于要记住简单的语法,编写想要计算机完成的程序代码,至于翻译成机器语言就交给编译器来完成。就这样随着计算机业发展,计算机编程语言从机器语言到汇编语言再到高级语言,也有很多语言从鼎盛到消亡,这也是发展趋势。
1.2 计算机输入/输出设备的发展
首先我们要知道输入输出设备的分类,字符输入设备:键盘;光学阅读设备:光学标记阅读机,光学字符阅读机;图形输入设备:鼠标器、操纵杆、光笔;图像输入设备:摄像机、扫描仪、传真机;模拟输入设备:语言模数转换识别系统。输出设备:显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等,这些输入输出设备存在很多优势,第一物理键盘比虚拟键盘更方便输入,更有存在感,另外鼠标的存在,对于精确地操作也比触摸板更准确,另外还有光笔,操纵杆,摄像仪等等这些设备都给办公带来了极大的方便,虽然苹果公司开创了一个触摸的时代,平板电脑开始流行,人们都开始喜欢用手指触摸,但那只是娱乐方面更方便,但是真正用到专业性的工作,是离不开物理的输入输出设备的,像制图,像会议速记等等,这些工作不可能脱离物理键盘,而使用虚拟键盘的,因为这样影响效率和工作的质量,所以即使计算机技术发展如此迅速,虚拟的输入输出设备,也无法替代物理的输入输出设备,就计算机诞生而言,当时的计算机是巨型计算机,和现今的个人PC不一样,当时的计算机有一个房间那么大,但是当时人们也意识到了输入输出设备的重要性,也就发明了相应的输入输出设备,当时要想输入一段指令要让工作人员用纸带,通过纸在纸带上打孔,来代表的“0”和“1”。因为当时还没有计算机的编译器,可以说机器只认识机器语言,还不懂java、donet、c、c#、c++等等这类语言,所以那个时候的编程人员是工作量非常大的,因为往往让计算机实现一个算法,要需要好多卷纸带记录人类所要表达逻辑命令。随着时代的发展,计算机也逐渐开始小型化,从房间式巨型机到现在的便携笔记本电脑,在计算机发展的同时,输入输出设备也随着发展,从纸带到键盘,从打印机到扫描仪,手写板等等,另外计算机再为人类提供工作上的方便的同时,也逐渐要满足人类的娱乐要求,这就要求输入输出设备要有显示器,要有音响,综合说起来,计算机的发展,带动了输入输出设备的发展。计算机的发展,人们发现工作中如果有计算机的参与,会使工作效率突飞猛进的提高所以各种的管理系统也如雨后春笋般应运而生。这些系统就得通过程序编写者通过输入输出设备进行编写,然后通过IDE环境的编译器翻译成机器语言转达给计算机来完成人们想要计算机完成的工作。
2 根据编程语言不同种类阐述输入输出设备
2.1 编程语言的分类对输入输出设备的要求
计算机语言可以分成机器语言和高级语言两种,而机器语言顾名思义就是计算机可以直接理解的一种语言,其语言形式是“0”和“1”这种二进制码,这种语言不需要编译的帮助,计算机可以直接读懂,所以这种语言执行起来会非常迅速,例如汇编语言。另外还有一种语言被称为高级语言,高级语言还可以简单的分为两种,一种是面向过程的语言,一种是面向对象的语言,面向过程语言就是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。例如:c语言、C++等等,面向对象语言是指一切操作都以对象为基础,它是由面向过程语言发展而来的,但正是它的这个特性使得面向对象语言对底层的操作不是很方便。例如:java语言、C#语言等等,这类语言的诞生,使程序编写人员从枯燥乏味,冗长的机器语言得到解放,是编程更容易,不再那么神秘和抽象,高级语言的诞生促进了应用软件的发展,因为更容易编程,很多软件也如雨后春笋般的诞生了,这样方便了人们的工作和娱乐生活。
2.2 不同编程语言输入/输出设备的使用
每个输入、输出设备的连接口控制器中都有用于存储设备运行状态、控制设备运行模式以及具体存储读或写数据的存储器,每个存储器都有一个独立的地址编码。通过定义文件数据类型的结构体,创建输入、输出设备在环境中的编程实体,并用逻辑设备名在编程实体与具体输入、输出设备之间建立联系。程序其实是通过计算机调取计算机上存储的数据,进行程序所命令好的操作方式。计算机按照程序开发者所规定好的逻辑来进行数据的操作。算机底层输入输出存贮方式在改变,随着技术的进步,而物理硬件的变化也随之发展。
3 结论
综上所述,现在的编程语言已经越来越接近用户,反之离机器越来越远,随着科技的进步,计算机不断发展,编程方式也会逐渐改变,随之而来的输入输出的设备也将越来越人性化,简单化,人们与计算机联系也越来越紧密,相信未来输入输出设备的进步,计算机的发展,编程不再是程序工作人员的技能,而是只要会使用计算机的人,就会编程、就实现会与计算机“交流”!
参考文献
[1]陈火旺.程序设计语言编译原理[M].北京:国防工业出版社,2003.
[2]Karen L.Design of Compilers-Techniques of Programming Language Translation[M].CRC Presss,1992.
[3]谭浩强.C语言程序设计[M].北京:清华大学出版社,1999.
【关键词】 计算机程序 课程群 方法
计算机技术的不断发展下,在教学领域的教学也有着更高的要求,注重教学模式的创新应用是促进计算机专业教学质量提高的基础。在计算机程序设计课程教学中,对课程群的建设工作得以优化对实际的教学发展就比较有利。通过从理论上加强计算机程序设计的研究,就能有助于计算机程序设计课程群建设的良好发展。
一、计算机程序设计课程群建设研究内容及建设遵循的原则
1.1计算机程序设计课程群建设研究内容分析
计算机程序设计课程群建设研究的内容方面比较多样化,其中对各门课程科学设置和其内涵外延的研究内容是比较重要的。还有就是对教和学的视角对C语言结构化程序设计到VC++面向对象程序设计思想方法的转化衔接[1]。以及在转换衔接中的难度措施方法的研究。再有就是从教和学的角度对计算机程序设计课程群当中各门课程教学的方法的研究,以及对实践和理论相结合的方法研究,在考试的内容方法层面的研究,对教师队伍建设层面的内容研究,以及在软件产业和人才市场需求间的关系方面的研究。
1.2计算机程序设计课程群建设遵循的原则
对计算机程序设计课程群建设过程中,要遵循相应的原则,只有如此才能保障计算机程序设计课程群的建设优化。课程群的建设作为专业建设当中比较重要的部分,就要能在知识点方面得以明确化。具体建设中对应用型人才的培养目标要能有针对性,将程序设计作为建设的核心,以及对实践方法方面得以重视,对客观学习的这一规律要能尊重,以及对学生的兴趣培养也要能得以充分重视[2]。对教学内容的设置注重验证以及模仿内容的核心地位,在实践后对程序设计的方法得以掌握。在实际教学过程中的程序设计语言种类比较多,并且也有着不同的层次,所以这就需要在实际的建设过程中,在内容上要连贯性的呈现,将课程群间的内容能够和谐的融合以及深化等,在技术层面要能进行相互的参照。计算机程序课程群的教学主要是让学生能熟练编程语言,以及对程序的开发方法和工具能熟练的掌握,所以在实际的课程群建设过程中,就要能够注重建设的科学合理性。
二、计算机程序设计课程群建设研究的主要方法探究
加强计算机程序设计课程群建设研究,在方法上要能科学重视,在四阶段的课程体系方面能科学的构建。将C语言程序设计和课程设计作为基础,并注重数据结构核心的程序设计方法的培养,然后把C++程序设计在程序实际理念当中加以贯穿,对学生数据库程序设计能力的培养得以重视[3]。还要在这些基础上对Widows程序设计、 Java程序设计、net程序设计等作为选修课程,通过这一教学课程体系的完善构建,对学生的专业知识技能的提高就比较有利。对计算机程序设计课程群建设研究的目标方面要明确化,以及对课程间的关系能得以理清。在这一专业的教学中,主要就是让学生对计算机的软硬件理论以及技能和应用方法的熟练掌握,让学生在工程实践能力上能不断加强。老师要能对课程间的关系有充分的认识,并要能够进行合理科学的规划,在这些方面得到了加强,才能有助于课程群的良好建设。计算机程序设计课程群建设研究中,要充分注重教师队伍的科学建设。由于教师是课程群的主要实施者,所以其自身的专业水平以及素养,对课程群的实施质量效果就有着直接的影响。在具体的措施实施上,教师队伍就要在教学研讨以及集体备课等环节得以重视,对课程群中的各门课程内在联系能够得以熟练的掌握,以及注重理论知识的学习,和教学实践进行紧密的结合[4]。然后将教学实践和教研的专题进行紧密结合,在学科课程建设工作上加以充分重视。最后,就要能对计算机程序设计课程群的平台进行构建。在课程资源以及实验平台、评价反馈等模块方面加以完善化。这些都比较有助于实际的课程群建设的作用充分发挥。如在实验平台区的模块应用上,能对每门课和同一门课程实施不同实验,这就能够提供相应的软件支持,在课堂的讲解以及具体的实验指导等方面的实施,对学生的实践能力培养就比较有利。
结语:通过对计算机程序设计课程群建设研究的加强,对实际的发展就比较有利。在改革教学发展的环境下,在对计算机程序设计课程教学的模式上加以优化,对解决实际专业课程间的不足,以及加强课程间的联系性就比较有利。通过此次的理论研究,希望能促进实际的课程群良好建立。
参 考 文 献
[1]张晓.计算机程序设计的应用开发[J]. 信息与电脑(理论版). 2015(09)
[2]柳泉.微课引入计算机程序设计课程教学的探索[J]. 物联网技术. 2016(08)
关键词:计算机;程序设计;快速排序
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)27-0202-02
计算机程序设计是计算机软件开发的核心部分,其质量的高低影响着软件投产运用。而计算机程序设计时,有关排序问题的处理是计算机软件开发的重要部分,其处理方法又很繁琐。所以排序问题能否优化处理,直接影响软件的开发质量。因此,在做计算机程序设计时,必须加强软件排序问题综合考虑,而且要做到计算机程序设计时涉及的排序情况心中有数,并选用最优化的排序方法,最终完美解决计算机程序设计时的排序问题。为提高软件开发质量,并为全面提升软件的功能打下坚实的基础。从而加快计算机程序开发行业的发展。
1 计算机程序设计中排序问题的概述
计算机程序设计的目的是为了给有关的计算机软件正常执行提供保障。然而,排序问题已对计算机程序设计的质量产生了较大的影响,这个问题也是因绕着软件开发人员的大事。因此,加强计算机程序设计时有关排序问题的分析及妥善处理是很重要的事情。针对计算机程序设计时有关排序问题研究发现,其有如下特征。
(1)复杂性。计算机软件开发是为了实现某些功能,这就决定了计算机程序设计需要涉及很多方面,因此其排序的操作过程时的有关数据也很多很杂,这就直接导致了计算机程序设计时排序问题复杂性。虽然我们可以选用最佳的程序设计方案,但是因为软件本身的强大功能的要求决定了计算机程序设计时排序问题依然是复杂的。
(2)不确定性。在具体的计算机程序设计过程,程序运行时有时需要对有关数据或记录进行修改等各种的情况的发生,这些操作有时会引起程序的排序问题发生改变,这样的情况时有发生,因而也就加大计算机程序设计时排序问题的不确定性。
(3)多约束性。排序问题对计算机程序设计的功能影响是很明显的。在实际的软件开发时,各种数据资源是相互约束及制约的,数据之间的这些约束及制约关系对程序设计时排序也会产生相应的影响。因此,多约束性也是计算机程序设计时排序问题的一个特点。
(4)多目标性。程序设计时有些数据资源是随机存放的,然而这样的数据资源又很重要,可以同时被不同的目标选用。所以在程序设计时,处理排序问题还要参照有关数据的选用目标及其有关标准,优化数据排序问题,以免发生数据资源引用混乱。所以,多目标性也是计算机程序设计时排序问题的一个特点。
2 计算机程序设计中的排序方法分析
根据计算机程序设计的具体功能要求,研究计算机程序设计时的各种不同排序方法的优缺点,选出适合程序设计要求的排序方法,优化排序问题,从而提高计算机程序设计的质量及增强软件功能,最大限度的发挥程序功能的实际作用,促进计算机软件开发行业的快速发展,提高生产力。
计算机程序设计时的排序方法主要有以下几种。
2.1 冒泡排序
冒泡排序是计算机程序设计时最基本的排序方法,其核心思想对紧邻的两个数据进行两两比较,根据比较结果调整两个数据的位置。如在比较的时,将两两比较时较小的数据调整到前面,较大数调整到后面,然后再将较大的数与后面紧临的数进行比较,直到所有数据都比较完成,并将数据按从小到大的顺序排放。冒泡排序最主要的是一次只对两个数据比较,并根据结果不断调整数据位置,直至数据比对完。一般情况下,冒泡排序只用一个辅助单元,并利用该辅助单元的基本功能,完成数据的重新排放。冒泡排序的空间复杂程度为 O(1),选用冒泡排序方法特别要注意的是需要排序的数据以及完成这些数据的排序所需要的时间。根据程序设计功能的实际要求以及冒泡排序的特点,确定冒泡排序的平均时间复杂度为 O(n^2)。是部分数据的冒泡排序图。
2.2 选择法排序
选择法排序也是解决计算机程序设计时有关排序问题的常用方法。选择法排序能够较大的提升计算机程序设计的质量。选择法排序的基本思想是,先对一组数据进行分析比较,每次选出其中最小或最大的数据放在数列的开始位置,直至所有的数据排列完成。选择排序法是一种不稳定的排序方法。如每次比较时选出最小的数据放在数列的开始位置,则需要对数列中所有数据进行比较与改变存放位置,为断的进行这个比较和位置交换操作,以达到数据排序的需要。实现计算机程序设计质理的提高。这种选择排序法的空间复杂度也是 O(1),而且其的时间效率一样与数据的多少有关,其平均时间复杂度为 O(n^2)。
2.3 快速排序法
快速排序法是计算机程序设计时一种较常用的数据排序方法,选用这种排序方法也可以极大的提高计算机程序设计的质量,增强其功能,降低程序的误差。快速排序法与冒泡排序法及选择排序法不同,它核心思想是每次将原始数据分为两部分,并且保证一部分的数据比另一部分的数据都小(或都大),也就是说每次都将小数(或大数)放在一起。因此选用这种排序方法需要设计两个指针,分别指定小数及大数的初始值,然后根据快速排序法的思想,分别大数部分及小数部分进行排序,最后将两部分数据合并。根据每次替换扫描的结果,比较两个指针数据的大小,两个指针数值相同,则完成数据排序工作。快速排序方法较好,且符合计算机程序设计的具体要求。在快速排序法中,如果将数据进行n 次划分,所选择的基值依然是未排序中的最大值(或最小值),那么将得到总的比较次数也达到一个最大值,而且这个最大值是 O(2^n)。结合快速排序法的具体操作,能够算出其平均时间复杂度为 O(log2n)。
2.4 合并排序
合并排序即归并排序,其基本思想是分法。即将待排序数据分为多个小序列,然后将每个序列分别排序,最后将排序好序列合并在一起,成为一个有序的排序数列。将每个未排序数据进行排序,选用双子集合的方式进行排序,最终得到各个排序好的集合,并合并起来,很到较好的排序结果。在最差的情况下,其时间复杂度如下式(1)计算:合并排序与快速排序相似,但其稳定性高于快速排序。合并排序已是计算机程序设计中最常用的效果较好且较稳定的数据排序方式。
2.5 具有多目标性
程序设计人员在执行数据排序时,还要考虑同组数据资源信息或记录被多个目标选用的情况。这就需要设计人员在程序设计开发时一定要严格要求自己,执行程序开发的有关标准,提高程序设计的适用性。
综上所述,计算机程序排序问题是一个复杂问题,影响着计算机程序的质量与功能,所以计算机程序设计者要持续提升自己的专业水平,跟上计算机技术发展的趋势,在计算机程序设计开发时根据软件功能要求尽可能的选用最佳的排序方法。
3 计算机程序设计中排序方法的选择
在进行的计算机程序设计开发时,通常要选用的计算机排序方法,要能满足软件功能的要求,并提高软件功能的质量,这就要求计算机程序设计人员要用合理的方法选用计算机程序设计的排序方法,以满足软件开发的要求,并保证软件正常使用。
3.1 排序方法的优化
在计算机程序设计的排序方法选择时,通常要考虑数据的实际情况,选用合适的最优的排序方法,以保证程序的功能要求。如在程序设计时选用冒泡排序方法,则可选择标志设置的方法,并将其写到数据交换代码程序中,这样可以很大的提高冒泡排序法的质量,从而提高计算机程序设计的质量和功能。如果采用排序法来处理计算机程序的排序问题,那么可以通过去掉不必要的操作,并记录每个数据的存放位置,然后根据指定的规则查找对比数据,实现数据比对,位置交换的操作,从而达到优化排序功能。对计算机程序设计时数据排序问题的优化操作,其核心是要注意枢纽的选用,保证枢纽的功能要求,这样才能提高快速排序效果。
3.2 排序方法的比较与总结
计算机程序设计开发时有较多的数据排序处理方法,具体程序开发选用哪种,则要综合考虑各种排序方法的所需平均时间及最坏情况时的时间以及存储空间等几个方面的差异,选出最适合程序需求的排序方法。通过上面的分析可以看出,平均时间为O(n^2),最坏情况下的时间为O(n^2),辅助存储空间为 O(1),数据的变化情况对排序的最终处理结果的影响很大。所以,在计算机程序设计时有关排序问题选择,需要综合考虑各种因素对排序结果的影响,既要考虑排序时所需要的时间,要考虑排序时所需要的内存,平衡多方因素,合理选择排序方法,以提高程序的性能。
在计算机程序设计时,要尽可能的选用最优的选择排序方法,以增强计算机程序设计的性能。由于选用不同的排序方法对程序设计的性能影响是不一样的。计算机程序设计时,各种排序方法所耗费的时间不尽相同,所需时间与 n 有很大关系。假如n 值不大,则一般选择直接插入法、选择排序法等,这样可以记录信息数据量相比较多的内容,选择排序法是较适合程序的需求。假如n 值相比很大,则一般选用复杂度相比较小的排序方法,如快速排序法等。另外快速排序法所耗费的时间也相比不多,一般常用。还有,在选用排序方法时,程序人员有时还可参考数值文件的初始状态。假如关键字初始状态是正序排列,那么此时可选用冒泡排序方法。假如程序设计时,要求对两种或多种的关键字进行对比时,则选用二叉树的排序方法较合适等等,这样根据程序设计的具体要求,综合考虑选用哪种排序方法以提高程序的性能。
4 结束语
讨论计算机程序设计时排序问题的特征,根据计算机程序设计时常用的排序方法,合理的选用排序方法,以满足计算机程序设计时数据排序的需求,从而保证计算机程序设计软件的功能性。在计算机程序设计时,要重视排序问题的处理。优化程序的排序方法,加强程序设计性能,是拓展计算机技术应用领域的重要手段。选用不同排序方法,实现计算机程序功能的不同点,以符合各种应用需求。因此,在计算机程序设计时,程序设计人员要选用适当的排序方法以满足程序开发的需求,并尽可能的优化计算机程序功能。这样可以减少提高程序设计的流程,调整程序设计的难度,而且还能提高软件的性能。
参考文献:
[1] 薛辉.冒泡排序的口诀教学法[J].陕西教育(高教版),2012(5):103-104.
关键词:认知教学;组织;粒化;因果;计算机程序设计
作者简介:彭珍(1981-),女,山东东明人,华北科技学院计算机学院,讲师。(北京 101601)吴立锋(1978-),男,河北隆尧人,首都师范大学信息工程学院,讲师。(北京100048)
基金项目:本文系华北科技学院教育科学研究2011年指导类课题“计算机程序设计课程教学方法的研究”、华北科技学院试题库项目“《C++与面向对象程序设计》试题库建设”、首都师范大学青年教师教学研究项目“以培养能力为核心的《ACCESS 数据库》课程教学方法的研究与探索”的研究成果。
中图分类号:G642 文献标识码:A 文章编号:1007-0079(2012)11-0059-02
目前已有的问题教学、[1]任务驱动教学、[2]案例教学、[3]引导教学等都侧重于教学形式与手段的变新与改革,[4]很少从教授内容的本质出发,研究教学内容的认知规律。为此,本文基于教学赖以存在和发展的认知机理,提出一种新的认知教学方法,条理地、逻辑地、系统地组织教学内容,符合学生学习思维的逻辑认知过程。
“程序设计”是计算机领域中一门重要的软件技术,是其他软件技术的基础。“程序设计”课程是伴随着计算机应用和程序设计语言的发展而发展起来的一门重要学科,已发展成为计算机专业中重要的专业必修课程,在高等教育中确立了不可缺少的公共基础课的地位。作为使用和开发计算机的重要工具,程序设计课程具备统一的抽象与规律。
本文将这种认知教学应用于“计算机程序设计”课程的教学过程中,有组织、有规律地将该课程的教学内容贯穿始终,为学生掌握程序设计方法、提高学生程序设计能力与逻辑思维能力打下坚实基础。
一、认知教学的概述
本文提出的认知教学是基于Zadeh的认知原理,Zadeh将人类的认知概括为:[5]组织(organization)、粒化(granulation)和因果(causation)。“组织”指从部分合并为整体,“粒化”指将整体分解为部分,“因果”指原因和结果的关联。前两者可看作互拟的过程,因果结构是一切知识的共性,它是对知识的一种本质抽象,因果有直接因果关系和间接因果关系,也有潜在因果关系和真实因果关系。所谓潜在因果关系是指一个具有普遍适应范围的概括性的因果规律,表示给定一定的条件,原因X的满足将引起结果Y的满足;而真实的因果关系则是在一个特定情形下实际发生的事实,即X和Y事实上发生了,而且是因果相关的。在知识表示的层次上,教师所研究的是潜在因果关系,真实因果关系可以看作是潜在因果关系在某一特定情形下的一个实例。人类认知事物是从事物的不同侧面、不同层次上认知事物的本质,将复杂的信息结构化(粒化),然后研究在不同结构层次上新事物具有的特性和不同侧面或层次上新事物特征之间的关系,进而从本质上全面认知事物。
认知教学,就是按照人类认知事物的规律进行教授知识,即将教学知识组织、粒化、因果化,从而使得学生抓住知识的本质、全面地掌握知识。这里,组织可以理解为对知识宏观的掌控,粒化是对知识微观的演化,因果则是知识之间的关联。因此,认知教学能够条理地、逻辑地、系统地组织教学内容,是一种符合学生学习逻辑认知过程的科学方法。
二、计算机程序设计课程
几乎所有高等学校的每个专业的学生都要学习诸如C、VB或VF语言这样的程序设计课程(必修课程),而且随着各具特色的高级程序设计语言(C++、Java等)及网页程序设计语言(JSP、等)的不断涌现,程序设计课程是高等教育中不可缺少的公共基础课,而且已成为计算机专业的一门独立必修专业课程。程序设计是大学生必备的一种计算机技能,更重要的是对其思维的特殊训练和对其智慧的重大挑战。
“计算机程序设计”课程主要是学习如何用某种计算机语言编写程序来解决问题。程序=数据结构+算法,所以程序设计的本质就是设计出合理的数据结构与算法。
根据软件工程理论,[6]程序设计大致可以分为结构化程序设计(Structured Programming,SP)、面向对象程序设计(Object-Oriented Programming,OOP)、面向数据结构的程序设计(Jackson System Development,JSP),国内主要用的是前两种程序设计方法。
同一类型的计算机程序设计有若干不同程序设计语言,同一类型的语言采用的数据结构大致相同,比如结构化程序设计语言采用的数据结构绝大多数是基本数据类型,还有其他构造类型如结构体等;面向对象程序设计语言主要采用的数据结构则是类,其中还涉及继承机制等。因此,程序设计课程首先介绍的都是数据结构,在程序中体现在数据的定义上。
算法的设计与具体问题有着密切的关系,但无外乎是对数据结构的操作,比如输入、计算与输出。其中计算最为复杂,可能是函数,或标准的表达式语句,或带有顺序、选择、循环结构的混合。因此,程序设计课程中的重点和难点都在算法部分。
三、认知教学在计算机程序设计课程中的应用
根据计算机程序设计课程的抽象特征,拟从以下几个方面将认知教学应用于计算机程序设计课程中。
按照数据结构+算法的思路将计算机程序设计教学知识合理组织在一起,形成程序设计知识的宏观体系结构;对宏观架构中的每一个知识点进行细化,即构建出每一知识点的微观结构;搭建宏观知识点之间、微观知识点之间以及相互的关联。
以“C程序设计”课程为例,[7]图1概括了C程序设计的所有知识点,形成了一个多层次、逐层深入的组织结构。每一层次可以看作其上层的粒化,每一层次与其上层和下层都有直接或间接的因果关系,同层次知识点之间也存在因果关系。比如定义数据、输入数据、计算数据和输出数据构成了程序的基本步骤,前一步是后一步的基础和条件;比如定义数据中的基本数组类型是所有定义的基础,为了存储多个有序数据(同一类型)形成了构造性数据即数组;为了存储不同类型的数据才有了构造型数据即结构体和共用体;为了便于表达更为复杂的数据结构及方便有效地使用数据提出了指针,所以在定义数据中各部分之间存在着关联。
最底层中的知识点还可以进一步深入细化。“C程序设计”课程中,有关数组的认知体系以包含10个整型数据的一维(10*10二维)数组、字符数组为例,如图2所示。数组认知按照数组的组成和编程的思路分别从纵向和横向展开。纵向坐标:一维数组、二维数组和字符数组,一维数组是二维与字符数组的基础,二维数组又是二维字符数组的基础;横向坐标:定义、输入、计算和输出数组。特别地,(一维)字符数组的输入/输出的因果关系来看,它采用类似于一维数组的输入/输出方法,将输入/输出格式中的%d改为%c,进一步可以简单地采用%s格式输入/输出(去除了循环结构),更进一步采用函数gets/puts调用来完成。
四、结束语
科学的教学方法应该遵循教学赖以存在和发展的认知机理和学生学习思维的逻辑认知过程,认知教学即从牢牢抓住教学本质出发,深化知识的组织、粒化与因果关系,将所有知识融为一体,尤其对于程序设计,这类逻辑性强的课程,该方法更适合。本文以“C程序设计”课程为例,阐述了认知的应用,并通过实际教学,验证了该方法的有效性。
参考文献:
[1]罗祖兵.教育学问题教学:涵义、价值与操作[J].高等教育研究,2010,31(3):71-75.
[2]王春婷.浅谈任务驱动教学法在计算机教学中的应用[J].太原大学教育学院学报,2011,(2):103-105.
[3]赵月坤,高常.案例教学法在数学教学实践中的应用[J].中国成人教育,2011,(15):162-163.
[4]陈越,何钦铭.计算机专业研究型课程教学模式与创新能力培养的探索[J].计算机教育,2009,(24):99-101.
[5]Zadeh L.Some reflections on soft computing,granular computing and their roles in the conception,design and utilization of information/intelligent systems[J].Soft Computing,1998,(2):23-25.
[关键词]培养方案 Visual Basic 教学改革 教学质量
[中图分类号] G642.0 [文献标识码] A [文章编号] 2095-3437(2015)11-0141-03
为了适应社会经济发展对高等教育人才培养的需求,各个专业的培养方案往往隔几年就要修订一次。
在山东科技大学2008版的培养方案中,通识教育课程包括人文社会科学、自然科学基础、体育、外语、计算机基础和公共选修课。其中,非计算机专业的计算机教学分为“计算机文化基础”(60学时),“计算机技术基础”(共60学时,其中理论授课30学时,上机实践30学时),“计算机应用基础”(共60学时,其中理论授课30学时,上机实践30学时)三个层次组织教学。地球科学与工程学院的“计算机技术基础(VB)”安排在大学一年级的第二学期,“计算机应用基础(VB)”安排在大学二年级的第一学期。
2013年,我校进行了新一轮的培养方案修订工作。在2013版的培养方案中,公共基础课程包括人文社会科学、自然科学基础、体育、外语、计算机基础和公共选修课。对计算机基础课程,要求非计算机专业的计算机教学实行分层、分类教学,开设“计算机文化基础”和“计算机程序设计”两门课程。最终,地球科学与工程学院确定“计算机程序设计(VB)”课程共60学时,其中理论授课40学时,上机实践20学时,安排在大学二年级的第一学期。
转眼2014级的“计算机程序设计(VB)”就要开课,如何应对教学学时的巨大变化,又保证教学质量,是目前必须要思考的问题。
一、课程的性质与教学基本要求
(一)课程的性质
“计算机程序设计(VB)”是为地质类专业开设的一门公共基础课。通过本课程的教学,使学生掌握面向对象程序设计的基本概念,了解程序设计的基本原理、技巧和方法,并且能够利用VB语言编写相应的程序,具有一定的程序调试能力,为以后进一步自习其他程序语言和提高程序设计能力打下坚实的基础。
(二)教学基本要求
本课程以“计算机文化基础(VB)”为先修课程,通过学习应达到以下基本要求:
1.掌握VB的基本内容和一般规定;
2.能够独立上机编辑、调试、运行程序,并能得到正确结果;
3.能够阅读和分析VB语言源程序;
4.能够使用VB语言编写简单的应用程序,解决实际问题。
二、教学基本内容及学时分配
根据地质类专业对“计算机程序设计(VB)”的基本要求,结合学时及学生的接受能力和水平,教学基本内容及学时分配如表1。
表1 教学基本内容及学时分配表
三、教材选择
当前,Visual Basic程序设计方面的教材主要有:英文影印版,主要用于高校双语教学试点、教学参考和图书馆馆藏;编译版,主要用作教学参考和图书馆馆藏,较少用作教材;中文编著版,多数配有习题解答、实验指导和课件等配套教材,主要用作教材、图书馆馆藏和教学参考。[1]
虽然市场上现有的Visual Basic教材种类繁多,缺乏针对性的教材是目前教学上最突出的问题[2],真正切合高校地质类学生实际情况的教材很少。
由同济大学龚沛曾等人编写的《Visual Basic程序设计教程(第4版)》[3]是在第三版的基础上实施“问题驱动”教学法修订而成的,教学目标明确,易于学生了解和掌握知识点。该教材不再集中介绍常用控件,而是将常用控件分散在程序设计语言的相应知识点中介绍,解决了教学学时少的矛盾;每章末配备了“自主学习”内容,以满足不同学习对象和教学学时的要求。因此,该教材是一个比较合适的选择。
四、教学方法改革
面对教学学时压缩的压力,如果仍然沿用以往“以老师为中心”的教学方法显然是行不通的,必须实行教学方法的改革。因材施教,灵活运用各种恰当的教学方法,以学生自主学习为中心,以问题为中心,才能有效地调动学生的学习兴趣,促进学生积极思考与实践,提高教学质量。[2]
(一)课堂理论教学
实践证明,适用于Visual Basic程序设计的方法很多,下面结合具体内容,以《Visual Basic程序设计教程(第4版)》(龚沛曾,等编)为例作简要说明。
1.兴趣教学法
“兴趣是最好的老师”。现在的大学生对计算机已经非常熟悉,但对计算机语言了解不深。要从第一章授课开始(包括每一章开始)就激发学生的兴趣,让学生接受它,喜欢它。比如,“字幕动画”这个例子一定要讲好,从一开始就吸引学生的注意力,对VB的学习产生兴趣。[4] [5] [6]
2.案例教学法
案例教学法生动、简洁,具有启发和创造性,在促进学生对知识点的理解、提高学生的创新能力等方面比传统教学方法具有优势。实例教学法要求教师对VB语言及要讲解的内容非常熟悉,课前要认真动脑,准备与知识点相关的典型例题,这是前提和必要条件。[7] [8] [9] [10]
3.任务驱动教学法
“计算机程序设计(VB)”是一门理论与实践并重的课程,教授根据理论教学的进度和内容,向学生提出由易到难、循序渐进的一系列“任务”,使学生在完成“任务”的过程中获得知识,培养分析问题、解决问题的能力。[4] [6] [11] [12]
4.项目教学法
项目教学法是一种以项目为驱动的教学形式,让学生全面参与到教学中去,在项目中引入新的知识激发学生的积极性,加深所学知识的印象,提高学生综合运用所学知识的能力。[13] [14] [15]
5.CDIO工程教育理念
CDIO是当前高等工程教育的一种人才培养理念,以构思、设计、实施及运作全过程为载体来培养学生的工程能力,以学生为中心,通过项目实践,边做边学,激发学生的学习兴趣,引导学生主动学习。[16] [17] [18]
表2 部分知识点教学方法设计表
■
此外,在教学过程中,要时刻注意深入浅出、举一反三、归纳总结[19],引导学生熟练掌握并运用所学知识,解决相关问题。
(二)上机实践教学
上机实践是“计算机程序设计(VB)”教学的关键环节,对提高VB教学质量至关重要。[20]只有经过上机实践操作,学生才能真正地领会和应用相关知识点。
课堂理论授课结束后,要给学生布置适量的上机实践内容,让学生充分准备好。上机实践课上,学生的主要任务是调试程序,在此过程中遇到的问题,教师应尽量启发学生自己解决。对共性的问题,可以采用集中讲解的方式。[21]在上机实践课结束之前,教师要针对本次课的总体情况加以点评,以利于学生的课后自学和总结。
五、结语
Visual Basic程序设计是一门重要的基础性编程语言,虽然相对于有些计算机语言而言简单易学,但仍需在教学中综合运用多种方法,善于探索,敢于改革,增强学生的学习兴趣,培养学生运用所需知识解决实际问题的能力。
[ 注 释 ]
[1] 艾菊梅,王晓燕,宋文琳.基于案例的VB立体化教材建设研究[J].大学教育,2012(11):21-22.
[2] 张荣华,殷士勇.以教材建设为中心的VB课程改革与实践[J].吉林农业科技学院学报,2009(1):83-84.
[3] 龚沛曾,杨志强,陆慰民,等编.Visual Basic程序设计教程(第4版)[M].北京:高等教育出版社,2013.
[4] 王鹏宇.VB教学改革的几点认识[J].科技信息,2007(5):33.
[5] 李林,刘毅,秦洪英.“VB程序设计”教学模式改革[J].现代计算机,2009(10):97-98,106.
[6] 朱智谋,陈建军.就“应用型”人才培养下的《VB语言程序设计》课程教学改革探讨[J].软件,2013(11):166-167.
[7] 何小年.VB程序设计教学的改革与实践[J].湖南第一师范学报,2006(1):55-57.
[8] 杨潞霞.“VB程序设计”教学的改革与实践[J].计算机教育,2007(8):24-26.
[9] 刘洪坡,石磊.Visual Basic程序设计课程教学改革的探索与实践[J].广州番禺职业技术学院学报,2010(3):32-35.
[10] 史媛.案例驱动法对VB程序设计课程的改革[J].宜春学院学报,2011(4):168,185.
[11] 王洪艳.高校“VB程序设计语言”课程教学改革探索与实践[J].鞍山师范学院学报,2013(6):56-59.
[12] 钟玉峰,运海红,葛冬梅.高校VB程序设计课程教学改革研究[J].黑龙江教育(高教研究与评估),2013(5):26-27.
[13] 金林樵.基于项目教学法的VB课程教学改革与实践[J].浙江树人大学学报,2012(1):61-65.
[14] 张小卫,谢巧玲.VB课程项目化教学改革的探索与实践[J].河南科技,2013(9):274-275.
[15] 程鹏.VB课程项目化教学改革的探索[J].延安职业技术学院学报,2014(6):84-85.
[16] 廖丽嵘.CDIO工程教育理念下《VB程序设计》课程教学改革研究[J].韶关学院学报(自然科学),2011(8):96-98.
[17] 李艳梅,张亚峰,燕振刚.面向CDIO理念的VB程序设计应用型本科教学改革初探[J].农业网络信息,2012(1):112-114.
[18] 周蚌艳,钦明皖.基于CDIO理念的VB程序设计基础课程教学改革初探[J].中国电力教育,2014(35):123-124.
[19] 文静.浅议VB教学方法改革的探讨和实践[J].吉林省教育学院学报,2012(2):17-18.
关键词:独立学院;课程改革;人才培养;程序设计
随着计算机软件行业的发展与普及,十几年来计算机软件技术发生了翻天覆地的变化,而高等学校的教学内容、教学模式与教学方法却没有多大的改变,课程教学理念严重滞后于实际需要,教学效果存在相当大的问题。现在的计算机软件专业学生拥有的优势越来越少,就业压力也越来越大。对独立学院的计算机软件专业学生而言,更是如此。比专业理论知识,他们没有一本、二本的学生全面扎实,比实践操作能力,他们又远不及高职学生。那么独立学院应该培养怎样的计算机软件人才呢?学生将来毕业以后,凭借什么在社会上立足呢?这是我们老师一直在思考和探索的问题。
为适应新的形势,我院明确了计算机软件人才的定位:培养应用型软件人才。这个培养目标既是从独立学院学生的自身条件出发,又符合当前社会对计算机软件人才的需求。在这个培养目标的指导下,我们在计算机程序设计课程教学上进行了大胆尝试,修订了教学大纲,增加、删除了部分教学内容,并将新的教学模式与教学方法引入计算机基础教学中,取得了较好的效果。
1存在的问题
已往的教学经验表明,学生在学习程序设计类课程时最难的地方不是掌握某种程序设计语言的语法规范,而是掌握程序设计的基本方法。
程序设计语言的语法规范是死的,并且与任何一种自然语言相比,程序设计语言的语法规范更简单规则。因此,只要学生掌握好了程序设计的基本方法,再花费一定的时间掌握某一种程序设计语言的语法规范,就能用该程序设计语言设计程序,甚至达到精通水平。
具体而言,目前教学中存在的主要问题有:教学内容与教材组织过于陈旧;教学目标没有反映新形势的需要。其典型表现在:程序设计方法强调不够,抽象思维能力培养不足;某些程序设计中重要的概念讲授力度不足,如库与接口、UML建模以及目前流行的软件开发方法等,学生在实际的软件开发中无法满足企业的需要。
2构建程序设计基础培养四阶段课程体系
大多数独立学院的本科计算机软件专业现行的课程设计,与普通的一本、二本院校相比相差无几,没有突出独立学院的特点,也没有明确独立学院的培养目标。因此,对独立学院计算机软件专业课程体系进行改革迫在眉睫。我院以“计算机导论与C语言程序设计”为公共基础的程序逻辑训练、以“高级程序设计技术”为核心的程序设计方法培养、以“数据结构”为支持的数据与程序抽象能力培养、以“C++程序设计”贯穿面向对象程序设计新理念,并在大三大四高年级开设了Java、Linux、UML建模等程序设计类选修课程,形成了“基础训练+方法培养+提高能力+拓展层面+实践应用”的程序设计教学新模式[1],在强化程序设计能力培养过程中发挥了重要的作用。
3提出并实施四层次软件人才培养新模式
我院以课程体系为基础,提出并实施了“基础训练+提高能力+拓展层面+实践运用”的四层次软件人才培养模式。
3.1基础训练
程序设计基础训练课程开设在大学一年级,是大学阶段系统认识计算机、应用计算机的入门课程,通过程序设计的词法、语法及使用方法的学习,要求学生掌握、体会计算机解决问题的基本技能。在基础训练中,通过对计算机导论课程的学习,让学生认识并能熟练运用计算机编写程序;通过对C语言程序设计课程的学习,让学生初步掌握程序设计的方法,训练程序设计中的逻辑思维。
3.2能力提高
程序设计能力提高课程开设在二年级,主要从两个方面提高学生的程序设计能力:一是高级程序设计技术课程,重点学习典型的程序设计方法技术,便于学生系统地学习并掌握程序设计方法技术。二是数据结构课程,通过构造性思维的训练,重点突出数据抽象与程序抽象能力的培养,让学生在基础训练阶段之后能更深入地理解程序设计的概念。
3.3层面拓展
主要以市场需求为基础,包括工具类别与应用环境的拓展,以选修课形式开设在三、四年级。在具有良好C程序设计能力基础上,展开其他程序设计工具层面,如开设Java、VC++、VB等程序设计类选修课程,增强学生掌握新工具,举一反三的能力。随着我国经济发展,国外市场份额不断增加,熟悉和使用Unix环境已成为计算机软件专业应当掌握的重要技术,开设Unix环境编程和Linux程序设计等课程,将拓展应用环境,提高学生适应新环境的程序设计能力。
3.4实践应用
自2006年以来,我院就加大了程序设计课程中的实践课时比例,实践课时占到总学时的1/2或1/3,每门实践课都单独安排了实践课老师,指导学生更好地进行实践。在实践课设计中,我们既重视学生理论知识的巩固,又注重其解决实际问题能力的培养,因此,我们把实验自下而上分为知识层、应用层和综合层3个层次。
知识层注重对知识的理解和掌握,数据结构、数据库原理和Java程序设计等理论课增设了相应的课程设计,课程设计的主要内容是:按软件企业先进的项目管理和开发模式,以“项目驱动”进行软件系统开发的实训。应用层重点在于巩固与应用,学生在校期间参加课外兴趣小组或在毕业论文设计中,大部分学生都能使用VC++做系统级深层次应用。综合层则关注综合与创新,学校鼓励学生参加大型的综合性IT比赛,如ITAT、大学生挑战者杯创业大赛等。
3.5创造性思维能力的强化
计算机程序设计能力,对计算机专业学生的知识结构、技能的提高和智力的开发变得越来越重要,技能培养的重要程度决不亚于知识传授。对程序设计能力的提高来讲,编程序不难,编好程序不易。质的飞跃来自量的积累、艰苦的磨炼,所以良好的专业技能和创造性思维培养的关键在于实践。程序设计是高强度的脑力劳动,是创造性的艺术,只有提高了科学思维,学会了程序设计的真本领,才会将知识与技术变成能力,应用自如。
3.5.1案例驱动教学:兴趣引导
针对独立学院学生思维灵活但学习自觉性较差的特点,我们采用案例教学法,避免了传统填鸭式教学方法的呆板,通过实例演示,让学生对所学知识产生兴趣,有了一定的感性认识之后,再提升到理论高度,循序渐进地掌握知识。经过多次教学的探索,总结出重点讲授解题思路、算法设计及编程构思,突出上机训练,在编写程序过程中让学生自己进行探索性的学习,程序设计中的成果能极大地增加学生的成就感、培养学生程序设计的兴趣,并达到更加牢靠地巩固理论知识的目的。好的程序设计案例所采用的程序设计方法教会学生用适当的语言清晰地表达其思考过程。
3.5.2指导―大运动量实践―反馈训练:加强创造性思维培养
数据结构[2]的学习过程,是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授。难点在于让学生理解,习惯算法构造思维方法。针对数据结构技术性与综合性较突出的特点,我们提出并实施了“指导―大运动量实践―反馈训练”教学法。通过作业练习、课程实习、课程设计3个环节实现实践过程,前者偏重于对课程内容的理解,后者侧重于软件设计综合训练,促进了专业学生逻辑抽象能力和创新能力的培养。
3.5.3项目训练:提高应用能力
通过“项目训练”[3]方法,我们提出课程设计规范要求,突出关键技术要点,贯穿基本技能训练主线,精心设计综合性实验,体现加强实践能力培养的重要思路。数据结构课程设计时进行软件开发综合训练的第一门课,通过选用具有一定实用性的综合题目,采用学生个人进行和小组合作的方式,通过问题分析、总体结构设计、用户界面设计、程序设计基本技能和技术的一系列过程,培养学生动手实践、合作研究、协作开发大型软件项目的能力,培养学生采用软件工程正规方法进行设计与实现,为专业技能训练奠定了基础。“项目训练”方式将学生引入具体的项目研发,使学生有更多的主动学习机会,培养了科研能力。
3.5.4提高学生的兴趣与创新能力
竞赛等多种活动为学生提供了展现程序设计能力的舞台,激发了学生学习的主动性。我们已连续3年开展全校“电脑文化节”、“网页设计大赛”、“Flash竞赛”、“计算机知识竞赛”;学生参加省级、国家级数学建模比赛,6人次获国家级奖励,20人次获得省级奖励;学生在程序设计大赛中取得优异成绩,获得多项奖励,3人次获ITAT国家级奖,多人次获省大学生挑战杯一等奖。
4结语
计算机课程改革势在必行,特别是对于独立学院来说,更是迫在眉睫。改革的成功与否将直接关系到学生以后的就业。在进行计算机课程改革的基础上,我们针对软件人才的培养,提出程序设计教学的新模式和以设计为中心的能力培养新方法。作为一种有益的尝试,新的课程体系通过一种有趣的、面目可亲的方式向学生说明了创造性思维能力在程序设计中起到的重要作用。
参考文献:
[1] 翟玉庆,邓建明. 计算机科学研究型人才培养模式的探讨与实践[J]. 计算机教育,2005(1):31-33.
[2] 耿国华. 数据结构[M]. 北京:高等教育出版社,2007.
[3] 王志英,宁洪,戴葵. 强化计算机专业实践教学[C]//第七届全国计算机系系主任论坛论文集. 北京:高等教育出版社, 2004:37.
Reform of Computer Courses and Training of Software Personnel in Independent Colleges
LIU Ya, TAN Qian-mao, ZHOU Li
(Computer Science and Engineering Department, Jinjiang College, Sichuan University, Pengshan 620860, China)
>> 技工学校计算机程序设计课程教学的研究 技工学校计算机程序设计课程教学的思考 技工学校VB程序设计课程教学方法浅析 技工学校计算机基础教学探讨 谈技工学校计算机教学 技工学校工程制图与计算机辅助设计课程教学构想与设计 技工学校《计算机应用》课程教学的探索 技工学校计算机应用基础课程教学浅议 浅析技工学校计算机应用课程教学改革 略谈技工学校计算机应用基础课程教学 技工学校《计算机应用基础》课程教学特点及讲授策略 民办技工学校《计算机应用基础》课程教学的研究与探索 浅议技工学校计算机基础课程教学质量的提高 浅谈机械类技工学校的《计算机基础》课程教学 浅议技工学校计算机应用基础课程的教学 技工学校计算机课程的创新教学浅析 浅谈高级技工学校计算机教学课程的设置 新时期技工学校计算机高效课堂的构建思路分析 浅谈技工学校计算机应用课程考试试卷设计的基本原则 技工学校计算机专业一体化课程的开发与设计 常见问题解答 当前所在位置:内容如下:
1
2
3
4
5 function information(name,sex,height,weight,score)
6 {
7 this.name=name;
8 this.sex=sex;
9 this.height=height;
10 this.weight=weight;
11 this.score=score;
12 this.way1=function outprint1()
13 {
14 alert("姓名:"+this.name+",性别:"+this.sex+",身高:"+this.height+",体重:"+this.weight+",成绩:"+this.score);
15 }
16 this.way2=function outprint2()
17 {
18 document.write("
"+this.name+"
"+this.sex+"
"+this.height+"
"+this.weight+"
"+this.score);
19 }
20 }
21 var Information=new information("陈普光","男","170cm","60kg","90分");
22 Information.way1();
23 Information.way2();
24 //-->
25
26
27
程序第5行至第20行是一个对象的构造部分,其中第7行至第11行是对象属性部分,绝大多数学生对“对象属性是对象所具有的性质”经过老师的对上例的讲解能很快掌握,但对从第12行至19行的对象方法部分即“对象方法是对象可执行的操作”绝大多数学生无法理解。面对这种局面,结合大多数学生对“函数”的理解比较好,接着深入下一层:
3.2 拿学生已经掌握的知识和新知识进行比照教学
根据大多数学生对“函数”的理解比较好,我将上述程序变形为程序ch_y.htm内容如下:
1
2
3
4
5 function information(name,sex,height,weight,score)
6 {
7 this.name=name;
8 this.sex=sex;
9 this.height=height;
10 this.weight=weight;
11 this.score=score;
12 }
13 function outprint1()
14 {
15 alert("姓名:"+Information.name+",性别:"+Information.sex+",身高:"+Information.height+",体重:"+Information.weight+",成绩:"+Information.score);
16 }
17 function outprint2()
18 {
19 document.write("
"+Information.name+"
"+Information.sex+"
"+Information.height+"
"+Information.weight+"
"+Information.score);
20 }
21 var Information=new information("陈普光","男","170cm","60kg","90分");
22 outprint1();
23 outprint2();
24 //-->
25
26
27
我将程序ch_x.htm中封装在对象第12行至第19行的方法,在程序ch_y.htm变形为第13行至第20行的函数,由于大多数学生对“函数”理解比较好,通过对这两个程序的对照讲解,特别对两者不同用“加粗”重点讲解,使绝大部分学生最终理解了“对象方法”。
为了巩固教学效果,进入最后一个环节:
3.3 布置课堂实操作业,让学生自己动手举一反三
著名的美国新行为主义心理学家斯金纳提出“强化理论”,指出人类学习必须经历强化,特别要遵循“及时强化原则”,因此布置课堂实操作业如下:①根据自己的个人信息用“函数”设计一个类似ch_y.htm的程序②根据自己的个人信息用“对象”设计一个类似ch_x.htm的程序
通过以上分三层次剖析教学,全班25名学生有20名顺利完成了课堂作业,达到了较理想的教学效果。
4 结束语
从事技工教育多年,总结技工学校计算机程序设计课程教学思路如下:一是素材要贴近学生的日常生活,二是讲解要拿学生已经掌握的知识和新知识进行比照教学,三是让学生自己动手举一反三,达到巩固教学成果的目标。
参考文献:
[1]吴以欣,陈小宁.动态网页设计与制作:CSS+JavaScript[M].人民邮电出版社,2009,8.
[2]段智毅.Visual C++程序设计教程[M].人民邮电出版社,2009,5.