前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机编程入门指导主题范文,仅供参考,欢迎阅读并收藏。
论文关键词:中职学生;C语言;教学目标
为拓展中职学生的就业渠道,C语言课程的学习必不可少。C程序设计是计算机应用人员应掌握的基本功,是计算机软件开发的入门语言,主要培养学生算法设计的基本思想和程序设计的基本技能。下面我就谈一下几年来C语言教学的一些体会。
一、培养学习兴趣
兴趣是入门教育的关键.培养学习兴趣很重要。由于多数中职学生没有接触过计算机语言.因此需要培养他们的学习兴趣。针对中职学生基础不扎实及本课程枯燥深奥的特点。教师应采取多媒体教学,向学生展示一些趣味性的问题并演示实用性的程序,想方设法吸引学生。如给学生讲解“水仙花数、猴子吃桃、翻译密码、判断素数”等问题,并让学生用编程软件解决这些问题,同时运行C程序,使学生在亲身实践中体会到乐趣;另外,可以通过一些影片向学生介绍一些lT人士的经历和成功经验,增强学生学习C语言的信心和动力。
二、选择适合中职教育的教材与教学方式。合理设置教学目标
中职学生普遍基础知识不扎实。所以教材内容要强调基础性,语言表达力求通俗浅显易懂,以程序设计为主线,以编程应用为驱动,通过案例和问题引出知识重点,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识,使教学效果既有深度又有广度,选择的教材尽量符合初学者的要求。
C语言最主要的教学方式除了教师上课就是让学生上机实践。这是很重要的一个环节。教师讲得再好。学生感觉“能看懂”“能听懂”。却不动手实践,仍然掌握不了知识,更谈不上运用。在上机过程中,学生可以进一步理解和掌握课堂所讲知识,许多不清楚或不理解的问题通过上机操作可迎刃而解。在组织学生上机实践过程中。教师要适当地设计一些难度适中的作业,激发学生开动脑筋,让学生自己在有目的的情况下,去寻找解决的方法,让其真正当学习的主人,最大限度地激励学生的学习积极主动性。总之。我们应当十分重视动手编写程序和上机运行程序。
教学目标是学生学习的目的。教学目标的定位,要根据教学对象的特点而定。就中职学生而言,教学目标是提高分析问题、解决问题的能力。重点分析程序设计过程,形成程序设计过程理念。能够读程序。编写一些简单程序,培养学生良好的编程习惯,逐步提高学生编程能力。C语言的学习只是程序设计的开端,所以我们教师不要设置好高鹜远的教学目标。 转贴于
三、分组教学,培养自学能力。注重培养团队合作精神
由于中职学生自主学习能力、自控能力没有大学生强,所以中职学生很容易失去上机兴趣,也就达不到上机实践的目的。为此,教师可适当转变上机实践的形式:以小组形式上机实践。上机前分配给每个学习小组不同的学习任务。组长负责分工.让本组学生利用课余时间去思考、查询收集资料,上机时各组分别完成相应任务。然后相互演示成果,分析优劣利弊,再互换任务,最后讨论编程体会,取长补短。在此过程中教师适当指导,主要过程可由学生自行解决,让学生在切磋的过程中自主学习并且培养团结合作的精神。
四、激励式教学。适当引入考核机制,启发学生求知欲
在教学中培养学生创造力需要用考核这个手段来激励、鼓舞学生,考核应从两个方面入手,可采用“问题式”“阶段式的办法。“问题式”就是根据学生课堂所学知识,在上机实践课时,让学生独立解决一个实际应用题、完成一个小游戏等。“阶段式”就是把一个阶段所学知识进行一次考核,但知识点不宜过多。有了考核机制.就能最大限度地激励学生的学习潜能。
五、课后及时反馈,逐步改进教学方案和方法
关键词:Java;MOOC;Alice
中图分类号:TP311 文献标志码:A 文章编号:1673-8454(2017)10-0021-03
近年来,教育信息化领域发生了革命性的变化。基于游戏学习[1],手机练习[2]和MOOC教学等新型教学模式及方法,不仅可以解决教育研究与教学实践中的一些问题,而且还可以帮助教师改进课程以及提高学生的学习效率。本文的贡献是尝试把可视化编程教学引入到编程教学过程中来,在教学方法和手段上进行研究,努力提高学生对编程课程的学习兴趣。在当前MOOC的大环境下,此项研究有利于充分发挥教师和学生的主观能动性;也可以为在移动互联开放环境下的教学提供辅助支撑和基础研究数据。本文首先介绍编程教学相关研究成果以及目前所面对的一些问题;然后介绍一种专为大学生学习Java编程入门而设计的教学方法;最后对比分析两个学期两个班的学习情况,总结新方法对学生掌握编程技术积极的影响。
一、编程教学现状及问题
程序设计是高等院校非计算机专业学生的基础课程。目前,程序设计语言有很多种,而且更新很快。初学者难以理解其中抽象的概念,难以掌握复杂的语法,无法下手检查程序的语法错误,编写程序成为一项枯燥而又艰苦的工作,让不少初学者生畏,从而失去编程的兴趣 [3]。
在传统的计算机语言教学过程中,教师们主要的教学方法是通过在课堂上以教学为主、课后线下或QQ答疑为辅来实行。在这个过程中,我们强调了学生的课堂学习,却忽视了激发学生兴趣导向的自主学习能力的培养。由于内容抽象难懂,无法引起非计算机专业的本科生学习兴趣。在计算机工科领域,男女比例严重失衡,这对学科长期发展很不利。
二、教学方法设计与实现
本研究项目针对当前武汉市高等教育教学改革和建设中的突出问题,从理论和实践两个方面进行研究和探索,寻求解决问题的方法和途径,主要从以下4个方面的改革入手:教W手段,教学方法,实验内容和评价体系。该项目是以超星-泛雅平台为载体,借助于江汉大学计算中心的自主学习平台教育资源的支持而实现的。在线课程演示图如图1所示。
1.教学手段
数据可视化编程是指通过对可视化元素的相关操作进行程序编写。数据可视化编程就像是拼积木。逻辑积木的组合方式比较灵活,可以尝试很多解决问题的思路。零基础的初学者在完全不懂语法和算法的情况下可以快速实现自己的程序设计。
在学习编程的过程中,首先是学生自己用最简单的方式尽快实现程序的主要功能,这样有助于增强初学者信心和进一步明确学习需求;然后在进一步的学习中,学生会很快发现不是所有需求都能用可视化编程实现,为了实现某些特定需求自己必须编写代码;接下来学生可以带着问题,一边阅读相关书籍,一边不断修改调整已有代码;最后经过学习再使用程序设计的架构来组织代码。这样学生既能最快地完成工作,又能逐渐养成较好的编程习惯和深入理解程序设计思想。
针对在Java编程课教学中遇到的一些实际问题,本项目通过使用Alice 3[4];该系统是一种面向三维模型的编程工具,学生可以使用系统来创作出三维动画游戏,或导演一部动画故事。在该系统中,抽象的类、对象已经换成可视的三维模型,系统中建造好的模型库,包含各类动物、人、建筑物以及场地等,而且可以不断地从网上补充新的三维模型到库中。因为该系统是Java语言写成,学生能将所编的游戏或者动画程序通过Netbeans开发环境转换成对应Java源程序[5]。
2.教学方法
采用游戏教学法[1],激励学生编程的兴趣和欲望,培养计算思维能力,逻辑分析能力和发展创新能力。打破传统按章节知识点授课的方式,从实际游戏项目出发,在游戏设计开发的过程中,学生很容易初步掌握编程的基本概念及基本技能,从实战中找到自信,再通过充分调动其自主学习能力,充分利用网上丰富学习资源,自行深入继续学习。让学生从亲身经历的案例中分析原理,从实际现象中看出本质,最后将自己抽象领悟出来的概念同书本上的理论知识相对应。例如:Java程序设计课程重难点一般包括:常用系统类的使用,数组的运用,OOP设计及实现。通过让学生导演自己的电影或者创作游戏将知识点隐形的传达给学生。本课程包括8个主要章节,21个课程知识点,以及32个学习任务。首先,学生通过学习一个个的教学小短片了解主要知识点;然后,完成课后小测验,检查自己的学习情况;接下来,到课堂实验时,可以有的放矢的提出问题;最后,通过完成一个完整的实验项目,掌握所学知识。这种教学方法相对于传统教学来说有其复杂性,大大增加了教师的工作量;需要教师投入更大的精力和时间,更加全面的,合理的制定教学策略。具体课程模块设计图如图2所示。
3.实验内容
根据学生的不同专业背景,设计不同的类型题材的实验。对于非计算机专业的学生,程序设计是一个全新的领域,计算思维是一种新的思维方式;当人初次接触一个新事物时,抵触和恐惧往往大于好奇和兴奋。对这类学生,需要采用投其所好的教学策略。首先从他们熟悉的方向着手,再慢慢的使其解除抵触心理,最后引导学习掌握新知识。学生专业与游戏类型的例子如表1所示:
4.评价体系
平时和期末成绩各自占比为40% 和60%。平时成绩主要考察学生动手能力,团队协作能力,以及表达能力。采用Quizzes + Project + Presentation形式作为平时成绩考核。其中Presentation是由学生讲解自己完成的作品,其余同学根据其讲解给其作品评分。期末采用统一集中上机考试方式进行考核。
三、教学效果对比分析
本文介绍的新教学方法已经应用到2015-2016学期的Java教学中,对学生掌握编程技术有积极的影响。如图3所示:左图为2014-2015学期Java程序设计课程A班学生成绩,右图为2015-2016学期Java程序O计课程B班学生成绩。A班一共有54名学生;采用传统教学方式授课。B班一共有56名学生;采用本文介绍的新教学方式授课。两个班都是由非计算机专业学生(商科)组成,没有编程基础。通过一学期的学习,A班平均分为51.68/100;B班平均分为54.23/100。B班高分段有6人,但是A班在高分段为1人。B班不及格人数比A班不及格人数少6人。A班最高分为82分,但是B班最高分为90分。
四、结语
本文所介绍的新教学方法,将传统的“课堂 + 多媒体”教学模式,过渡到“移动互联 + 学生自主学习 + 开放式自学方式”的模式。强化实践教学,提高教学效率和质量,增加基于移动互联网络的自主学习,建立MOOC课程,学生可以随时随地在网上完整地学习到一门课程,通过在线测评,检查学习情况。借助Alice3D可视化编程技术手段,带动学生的学习积极性,优化教学效率。下一步研究主要是在挖掘学生相关数据的同时注重学生隐私保护,体现学生为教学中心的指导思想。
参考文献:
[1]张思,向华. 基于游戏驱动的Java程序设计课程教学改革研究[J]. 计算机时代,2015(1):72-74.
[2]张思,吴开诚,廖恩阳. 基于Android的在线考试练习系统设计与实现[J]. 计算机时代, 2015(3):27-29.
[3]Lahtinen, E., Ala-Mutka, K., &J?]rvinen, H. M. (2005, June). A study of the difficulties of novice programmers.In ACM SIGCSE Bulletin (Vol. 37, No. 3, pp. 14-18).ACM.
【关键词】软件专业 教学 竞赛平台
【中图分类号】 G 【文献标识码】 A
【文章编号】0450-9889(2015)09C-0033-03
全国软件专业人才设计与开发大赛作为一项全国性的竞赛活动,目的是为推动软件开发技术的发展,促进软件专业技术人才培养,向软件行业输送具有创新能力和实践能力的高端人才,提升高校毕业生的就业竞争力。因此,探讨这一竞赛平台究竟给软件专业教学带来了哪些积极的作用、如何促进专业教学等问题,对专业教学的改革有非常重要的意义。
一、计算机软件专业教学中存在的问题
(一)课程安排模块化,连贯性不强
表1是计算机软件专业主干课程的安排情况表,表中看不出专业课程的教学主线,更看不出学生应该学习的主要专业知识和专业技能。第一方面,第一个学期程序设计基础,第二个学期C语言程序设计,第三学期C#程序设计基础,程序设计基础课程占了三个学期,且还开设了不同的语言,导致学生在编程入门基础学习无所适从。第二方面,第二个学期的课程共有4门,学时都差不多,第三个学期除网页动画设计外,其余4门课程学时也差不多,课程杂,体现不出技术主线和学生软件编程知识能力的逐步培养和形成。第三方面,课程模块化,连贯性不强。看不出第二个学期的所学对第三个学期的课程学习有什么帮助和知识技能的积累。这样的课程安排违反了学生学习软件编程开发技术的认知规律,导致学生学习不系统,在实践操作时无从下手,最简单的程序都写不出来。同时也对学生的自信心造成打击,觉得自己很差,失去学习兴趣,以后上课就开始不听,接着就是听不懂,最后干脆旷课在宿舍玩游戏的恶性循环局面。
表1 软件专业主干课程安排表
(二)缺少让学生自我展示的平台,学生找不到学习的成就感
首先,计算机类专业不像艺术类等其它专业那样具有很强的现场观赏性,没有很多竞赛平台让学生展示自己的专业技能。针对软件专业学生举办的竞赛仅有ACM国际大学生程序设计竞赛,作为国际性大赛,ACM不分本科组和高职高专组,难度比较大,不适合高职高专学生参加。因此,行业社会就缺少让高职高专计算机软件专业的学生自我展示专业技能水平的舞台。其次,计算机软件专业课程多,衔接性强,难度大,很难像艺术类等其它专业那样,单独学习完一门课程就可以设计出精美的作品。软件专业的学生需要学完很多门课程后,经过不断的动手编程实践,积累一定经验才可能设计开发出相应的程序作品。所以,在专业教学上没有举办过学生作品展,更不用说举办学校层面的作品展。缺少了行业社会和学校两大重要展示平台,学生在学习上很难找到学习成就感。
(三)为了照顾大多数学生,缺少对拔尖学生的培养
由于招生政策的问题,高职学生之间的差距比较明显。特别是补录的学生,在基础和学习能力上与正常录取的学生又有一段差距。而在正常的专业课堂教学活动中,面向的是大部分学生,因此,在制定课程教学目标和确定教学内容时,要兼顾大部分学生的学习能力和接受能力。这样,无形中就降低了专业课程教学内容的深度和教学目标的高度。而后果就是导致少部分拔尖学生在课堂上“吃不饱”,不能学到自己想学的知识内容,不能提高并达到自己应有的专业技能水平。
二、利用全国软件大赛竞赛平台促进计算机软件专业教学的优势
参加竞赛实践证明,通过引导学生参加全国软件专业人才设计与开发大赛,能促进学生对专业知识和技能的学习,能较好的解决上述专业教学过程中存在的问题,具体表现在:
(一)通过竞赛培训引导,增加学生自主学习能力
为兼顾大多数学生学习制定的人才培养方案,在课程安排上就多开设些相对容易掌握的技能课程,让在编程方面可塑性不强的学生能掌握一些其他专业技能,增强这些学生的就业竞争力。为了解决这个问题,让学生参加全国软件专业人才设计与开发大赛是一个有效的解决途径。在准备竞赛的过程中,按竞赛考纲的要求安排专业教师对学生进行全程辅导,对学生难以掌握的知识点进行详细的讲解。在专业教师的辅导下,学生可按竞赛知识技术路线进行系统有效的学习。经过一段时间的学习,学生便可以入门编程,找到编程应用于实际的快乐。有了兴趣,学生就会根据自己的兴趣点,制定自己的学习目标,根据目标,制定学习计划和多方获取学习资料,利用课余时间刻苦钻研,多做多练,积极促进了教学的教学工作,很好的弥补了课程安排和课堂教学上的不足。
(二)搭建让学生展示自我技能水平的舞台
以参加全国软件专业人才设计与开发大赛为契机,首先,在选拔参赛选手时,就建立了一次学校范围内的、让学生自我展示专业技能水平的机会。在校内设置选拔赛,只有在选拔赛中取得优秀成绩的选手才有资格报名参加全国比赛。其次,全国软件专业人才设计与开发大赛再次搭建了一个全国性的大舞台,让高职软件专业学生能有机会与来自全国各地的同行同台竞技,真正检验自己的专业技能在全国同行中处于什么样的水平,看清自我,找出差距。同时也给他们指明了今后应该努力的方向,激起学习的热情。看到这个大赛平台给学生所带来的积极影响,也促使了教师积极地在教学过程中搭建学生专业课程作品展。在学生学完相关课程后,给他们布置相应的工程应用项目,然后将作品以多媒体展厅的形式尽可能更开放地展出。以此激励学生努力学习,并从中找到学习的成就感。
(三)推动精英学生的培养
培养高水平的毕业生是打造一流高职院校的前提,兼顾大部分学生的传统课堂教学,很难满足精英学生的学习培养需要,无法实施因材施教的适合高职学生培养的教学方式。全国软件专业人才设计与开发大赛恰好给精英学生的培养搭建了一个很好的平台。学生通过参加此项竞赛,能额外得到老师的培训指导,进行更多专业的技能训练,同时他们能与来自全国的选手比赛交流,一是方便老师发现自己学校的精英,二是方便学生找到自己与其他选手之间的不足。此外,本大赛有很多知名企业参与,获得大赛全国一等奖的选手会直接被这些知名企业录用,在企业资深工程师的指导下快速成长,成为学校的“品牌”毕业生。
三、利用全国软件大赛竞赛平台促进计算机软件专业教学的具体措施
(一)提高学生创新能力
1.积极探索学科竞赛模式的创新。以全国软件大赛竞赛组织为切入点,引入更多的学科竞赛,组织更多形式的学科竞赛方式。据调查,扩大招生规模后的高职高专学生普遍喜欢娱乐性强的学科竞赛,不喜欢传统方式的学科竞赛。因此,需要在竞赛形式上下功夫,创新竞赛组织方式,找准学生的参赛兴趣点,提高学生的参赛热情。如各学校可根据自身的专业办学特色,举办形式多样、层次不同的竞赛,如网页设计大赛、创意创业竞赛、演讲比赛、辩论赛、动画制作大赛、计算机组装大赛等活动,积极组织和鼓励学生参加各种比赛,从多方面来培养学生的自主学习、自主创新和创造能力。
2.建立学科竞赛的保障机制。完善的竞赛保障机制,是学生得以安心参加各类学科竞赛的前提,是老师安心指导创造佳绩的保障,良好的竞赛保障机制是鼓励学生参加种学科竞赛并取得成绩的重要前提。首先要有良好的赛项宣传机制,让每位同学务必知晓比赛通知。同时深入学生宿舍宣传,并通过赛前动员会等手段鼓励学生参赛,扩大比赛的参赛人数。其次,在整个竞赛过程中,学校提供专门的比赛训练场地和训练设备,相关经费和政策支持,使参赛学生和指导教师无后顾之忧。最后,对每次参赛进行经验总结,提高各种比赛的竞争力。
(二)提高学生实践能力
1.改变原来的教学方式,理论与实践相结合。高职学生不喜欢照本宣科的纯理论知识灌输的教学方式,喜欢通过实践的方式去理解和掌握理论知识。因此,在教学上应采用案例教学法,将理论知识传授通过案例去讲解,提高学生的学习兴趣。平时布置相应的作业,让学生多动手,多实践,积极提高自身的实践能力。
2.将竞赛转化为教学内容。在程序设计等相关的课程里,将竞赛的内容融入到教学内容,在讲解理论知识的同时,让学生明白这些知识的应用,有助于学生消化理论知识,促进实践能力的培养。
3.建立学科竞赛实践训练场所。建立如实践教学创新实训基地,大学生创客空间等实践教学场所,开放实训室和实训设备,为学生提供自己动手,自主创新的发展空间,激发学生的学习热情。
在职业教育中,如何提高学生的实践创新能力是一项重要的课题,也是职业教育者的教学目标。随着各种竞赛体制的完善,以学科竞赛为载体,积极鼓励学生参加各种(下转第160页)(上接第34页)学科竞赛,通过竞赛对大学生创新实践能力培养的作用将会越来越显著。高职教育必须以市场为导向,培养出更多适合社会需要的人才。
全国软件专业人才设计与开发大赛平台,为专业的教学改革指明了方向。从专业建设角度来说,应该参考大赛平台的要求,对课程体系进行重新整合,以适应社会对软件人才的需求;同时通过大赛平台丰富教学资源,促进专业的对外交流,加强培养学生的自学能力、分析和解决问题的能力,提高学生的创新能力和就业竞争力。
【参考文献】
[1] 赵娟. 关于提高应用技术大学学生实践能力的思考――以南宁学院为例[J].广西教育,2015(19)
[2] 周荣辉,郝晓枫,赵宏宇. 学生程序设计能力培养的思考[J].吉林大学学报:信息科学版,2005(23)
[3] 何迎生,鲁荣波. ACM 竞赛平台在计算机专业教学中的应用研究[J].计算机教育,2009(12)
[4] 李绍中. 开展职业技能竞赛提升高职人才培养质量[J].职教通讯 ,2012(12)
【关键词】计算思维 Visual Basic 能力培养 教学研究
0 绪论
在信息时代的今天,掌握和应用好计算机知识无疑是当代大学生都必须具备的基本条件。因此,教育部要求所有文科专业学生也都要开设计算机基础课程,目的就在于要培养学生的计算思维能力。如今,很多高校把Visual Basic程序设计语言当作非计算机专业的首选编程语言,Visual Basic程序设计语言具有易学易用,可视化编程,面向对象编程思想等特点,特别适合非计算机专业学生作为入门编程语言学习。很多非计算机专业学生认为:Visual Basic程序设计语言不是自己的专业课,和自己专业又没有很大关系,因此,出现了厌学或者不学的态度。甚至有少数教师都没有给予计算机程序设计课程足够的重视,认为只要把专业课学好就可以了。老师和学生的这种态度极大的影响了Visual Basic的教学效果。计算思维概念的引入能够让人们更好地认识到非计算机专业学生学习计算机程序设计的重要性。
1 计算思维
计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。计算思维的本质是抽象和自动化。如同所有人都具备“读、写、算”(简称3R)能力一样,计算思维是必须具备的思维能力。为便于理解,在给出计算思维清晰定义的同时,周以真教授还对计算思维进行了更细致的阐述:计算思维是通过约简、嵌入、转化和仿真等方法,把一个困难的问题阐释为如何求解它的思维方法。
计算思维是一种根本技能,是每一个人为了在现代社会中发挥职能所必须掌握的。计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考。计算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情,反过来,是计算机给了人类强大的计算能力,人类应该好好利用这种力量去解决各种需要大量计算的问题。计算思维是思想,不是人造品。计算机科学不只是将软硬件等人造物呈现给我们的生活,更重要的是计算的概念,它被人们用来求解问题、管理日常生活以及与他人进行交流和互动。计算机科学在本质上源自数学思维,它的形式化基础建筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与现实世界互动的系统。
中国科学院计算技术研究所研究员徐志伟总工认为:计算思维是一种本质的、所有人都必须具备的思维方式,就像识字、做算术一样;在2050 年以前,让地球上每一个公民都应具备计算思维的能力。
2 计算思维教学现状
教育部高等学校计算机基础课程教学指导委员会颁布的《关于进一步加强高等学校计算机基础教学的意见》、《计算机基础课程教学基本要求》等有关文件虽然没有明确提出计算思维,但是贯穿了计算思维思想。《关于进一步加强高等学校计算机基础教学的意见》提出:计算机基础教学的目标是培养学生掌握一定的计算机基础知识、技术与方法,以及利用计算机解决本专业领域中问题的能力。大学计算机基础的课程目标是“使他们在各自的专业中能够有意识地借鉴、引入计算机科学中的一些理念、技术和方法利用计算机、认识并处理计算机应用中可能出现的问题”。简单地说,是使用计算机科学技术和方法处理问题,这是计算思维的目标。
“Visual Basic程序设计”是一门关于计算思维方法的课程,是典型的计算思维课程。它涉及大量的算法,像枚举、递归、回溯等都是毫无争议的典型的计算思维典型案例;面向过程和面向对象程序设计也都是计算思维。目前Visual Basic程序设计中关于计算思维培养的教学存在以下几个问题:
(1)基本上都是潜意识的培养,没有明确提出或者重视计算思维的培养;
(2)对计算思维的概念还没有彻底理解,计算思维的培养的重视程度不够;
(3)教学中注重技能和知识的培养,缺乏对编程思想的培养。
3 Visual Basic教学中计算思维的培养方法及实施
VB程序设计教学过程中要求学生结合经典算法、图形技术、生活趣味问题或专业问题设计应用程序。目标都是引导学生探究问题求解的思路和方法,提高计算机素质。VB程序设计基本包括语言基础、代码编写和算法设计,其中算法设计是计算思维培养的重点部分,但是由于这部分教学课时比较少,老师上课讲授完毕,学生只是理解了某种算法,而没能认真思考这个算法中的思想和方法论,没能上升到思想层面上。
(1)理论课程改革
理论课程讲授中,教师要有意识的,讲完某种算法的理论之后,要能够结合学生能够理解的案例,将算法与实际解决问题的方法和思想相结合。要注重体现计算思维和一般思维解决同一个问题的不同和优点。例如:在讲解某一个算法时,要注意算法的优化,以达到锻炼计算思维的目的。
(2)实验课改革
实验课程中要尊重每一位学生不同的认知方式,鼓励学生设计不同的算法去解决同一个问题。实验内容要把设计性实验的比重提升,并且尽量选取与本专业或生活贴近的问题作为实验内容,这样学生可以发挥主动性和积极性,有意识的锻炼了自己的思维能力。
(3)课程考核方式改革
改变以往的笔试考试方式,选用更加灵活多样的考核方式。比如:课程设计、综合实验+笔试、课程总结论文等多种考核方式。可以选取一个或几个与授课对象联系紧密的实际问题作为课程设计题目,在学期中间就布置下去,让学生们自由结组进行课程设计的制作,最后让学生们进行课程设计作品上交并且答辩,这样避免了以往学生只是在期末进行死记硬背,应付考试,而真正让学生能够有时间去总结本学期本门课到底学了什么,怎么用,能够真正的对学生以后的生活和工作有帮助,学有所用。
关键词:VB教学;分步式教学;程序设计
Visual Basic是目前众多软件开发工具中效率最高的一个,所以在计算机业界得到广泛的应用。自然VB程序设计也就成为非计算机专业学生的重要课程之一,非计算机专业的学生学会运用VB进行程序设计也为他们以后能熟练学习计算机相关知识做准备。多数非计算机专业的学生,自身计算机基础较弱,同时因为VB程序设计课程的开发方法和概念又都是全新的,部分章节内容枯燥抽象,学习起来感觉相当困难,甚至望而却步。怎样才能激发非计算机专业的学生学习VB的热情和提高非计算机专业的学生程序设计的能力?本文将总结出“VB教学分步式教学法”,现与大家共同探讨。
VB的分步式教学法,就是把学生学习VB课程的过程分为“入门--基础--提高”这三个小同的阶段。根据每一阶段学生的学习特点和心理特点,设置小同的目标,采取小同侧重点,施以适当的教学方法,这样就可以有的放矢,充分调动学生学习的主动性和创造性,达到事半功倍的效果。
1 入门阶段:以消除学习恐惧心理,培养学习兴趣为目的
VB程序设计对于非计算机专业的学生来讲,一般都是从零学起,要想让学生学好这门课程,前面基础知识很重要。俗话说,好的开始是成功的一半。要培养学生的学习兴趣,消除他们对程序设计的恐惧心理,在第一章初学时,可以从学生的兴趣入手,利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。例如:第一次实验课时,布置一个简单代码编写的应用程序,用控件设置一个山寨版的QQ(图1),在“登录”按钮中写上一个msgbox”上课时间请勿用QQ聊天”,1的有趣提示对话框(图2),帮助学生了解如何用VB开发应用程序,了解到控件如何使用,相关属性的作用是什么。
这样的介绍会让学生觉得VB并不抽象,而很具体,就像身边的朋友,只是需要慢慢去了解它。首先,把VB程序设计的功能直观化,让学生感受到VB程序设计的魅力。先在大屏幕上演示用VB程序设计几个大型系统软件如:超市管理系统、图书馆管理系统、网络版五子棋等,接下来再把往届学生做的优秀程序演示给学生们看,如: “奥运会倒计时牌”、“俄罗斯方块游戏”、“计算器”、“电脑福利彩票开奖”等等。学生在感受到VB价值和实用性的同时,会对这门课程产生浓厚的兴趣,从心里愿意去学,并期待在以后的学习中有所作为。这正是学好这门课程良好的开端。其次,现场演示消除心理顾虑。老师可以在课堂上现场制作了一个QQ界面的程序并演示给学生看。这让学生觉得才花几分钟的时问,就能编出一个漂亮有趣的程序,这么简单,我也能行。没有任何心里负担,从心底里愿意去学习,这正是我们期望达到的教学目标。
2 基础阶段:让学生对VB语言基础知识全面掌握,牢记编程步骤
本阶段也是一个核心阶段,要学生全面掌握了工具箱中大部分控件的三要素(属性、事件、方法),并在老师的指导下完成一些小程序实例。为了让学生能够独立编程,很多教师都颇费脑筋,甚至部分学生却感觉压力重重、喘不过气来。所以在这一阶段要有步骤的实施教学计划,切不可一味求快。
首先,要让学生根深蒂固的理解掌握VB编程的四个步骤:1、设计应用程序界面;2、完成对象的属性设置;3、编写代码;4、调试运行。其中最让学生头痛的就是第三步编写代码。在教学过程中,教师应帮助学生理清编写代码的思路,让学生有法可寻。如:我们要对哪个控件编程?这个控件上发生了什么事件?事件过程要求哪几个控件发生了什么变化?总的思路也就是,“谁的什么事件导致了谁变成了什么样子”。在每次实验过程中都要让学生不断重复,这会为以后独立编程打下坚实的基础。
其次,当学生具备编程思路后,可训练他们为不完整的程序填充代码和对已有的程序进行改造。此时要注意给出的题目应由易到难,从简单的属性设置逐渐过渡到函数的使用、语法结构等内容上来。在实验题目中利用知识迁移适当扩充学习内容。
对于这段程序的完成并不困难,在做完For…Next循环之后,为了提高他们对知识的综合运用能力,开动学生的头脑,可以根据原题编写几个扩展练习题:(1)求1到100之间所有奇/偶数的和;(2)求1到100之间所有素数的和;(3)求1到1000之间能被7整除的素数的个数。
在讲授VB程序设计语言时,可以写一些错误的程序,让学生去思考,错在哪里,这样可以充分让学生了解自己的基础知识到底扎不扎实。如:在讲授数据类型时,先直接写一个简单的程序:
然后提问:“此程序运行后输出的结果是什么?”
绝大多数学生会回答:"40000"!但其运行结果却是“溢出”,学生会感到困惑。此时先不要进行解释,再问:“如果把400改成40000又如何,学生会说“还是溢出”。当看到演示后的结果却是4000000时,学生肯定会更加迷惑!此时再道出原因:100和400都是Integer类型,运算的结果也必须是Integer,但实际结果40000超出了Integer的范围,所以出现“溢出”现象;而100和40000分别是Integer和Long,运算结果应该是Long,但4000000没有超出Long的范围,所以正常输出。为了能正确输出类似100*400这类表达式的运算结果,有必要将其中一个或两个数定义成Long类型,这样就很自然地引出单精度、双精度及字符型等数据类型说明符,效果好而且印象深刻。所以有些小程序更能让学生掌握好基础知识。
3 提高阶段:让学生逐渐形成自己的编程思想,加强创新能力的培养
此阶段,老师在平时教学中应多鼓励学生发问,引发学生发散性和深入性思考,培养学生的创新思维。课堂里,教师既要让学生认真学习和掌握书本上的知识,又使他们的思维不要束缚在条条框框中。应鼓励学生提出新的设想,探索解决问题的新途径,从而培养他们的创新思维能力。例如,讲授多重循环时,像(图3)、(图4)这两题的编程方法总结就四个字“外行内列”,就是用两个For…Next循环做到的,外部循环控制打印的行数和每一行打印的起始位置,而内部循环是控制每一列打印元素的个数和元素的内容;这类程序掌握好这个
原则那么编程起来就得心应手。在教学时可以先跟学生讲解(图3)程序的编写过程,接下来让学生自己去思考(图4)程序的代码。让学生自己观察这两个程序的效果不同之处,(图4)每行元素是递减,(图3)中的是递增;(图3)元素是“*”不变,而(图4)每行的元素都是不同数字,而且呈递减趋势等。让学生学会独立思考,具备提出问题、解决问题的能力,在思考过程中提高了认识,拓展了创新思维,这也是教师所期待的教学效果。在课后学生要及时归纳、做好小结,最好准备一个笔记本专门记载下来。归纳可以是一个控件多方面(如事件、属性设置等)的归纳,也可以是对一种结构的归纳(如分支结构的归纳)。总结可以是对一类程序的总结,也可以是几类程序的总结。归纳总结的形式也可以多种多样,可以使用文字概括,也可以使用图示总结,重难点要着重强调。
实践教学表明,“分步式教学法”不但解决了VB程序设计知识点多、实效性差、与应用脱钩等问题,而且还充分调动了学生学习的积极性、提高了学生学习计算机应用的能力,最终让学生对学习VB程序设计产生了浓厚的兴趣。不少学生通过该课程的学习后,结合个人兴趣与实际需要,开发了各种实用性的软件。
参考文献
关键词:卓越课程;计算机系统;计算思维
0 引言
“卓越工程师培养计划”是贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和《国家中长期人才发展规划纲要(2010-2020年)》的重大改革项目,也是适应我国工业化发展进程,培养和造就一大批创新能力强、适应我国经济社会发展需要的工程技术人才的重要举措,是增强我国核心竞争力、建设创新型国家、走新型工业化道路的必然选择。同济大学作为首批实施“卓越计划”的高校,于2010年启动“卓越课程行动计划”,加强课程的内涵建设,推动教学改革以取得突破性进展。
另一方面,计算思维(ComputationalThinking)作为一种教学理念,近年来在计算机基础教育中受到关注。计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。当今社会已进入信息化时代,具备计算思维,能够运用计算机技术和手段进行学习和工作、解决专业问题是高级人才必备的素质。计算思维能力是与读写能力一样的人类基本思维方式。
为了配合同济大学实施“卓越工程师培养计划”试点方案,提高骨干教师的业务素质和教学水平,同济大学于2011年开展计算机科学与技术卓越课程行动计划,将计算思维融入“计算机系统级课程”的教学改革中,取得了良好的教学效果。
1 “计算机系统级课程”教学改革内容
本次课程改革试点的核心内容主要包括3个方面:一是课程授课方式改革;二是训练(指各种类型的作业、结合课程的创新性实验项目、综合性和设计性实验等)方式改革;三是考试方法改革。
课程授课方式改革要大力推行启发式、探究式、讨论式、参与式、小班制等教学方式。训练方式改革除了传授知识外,还要通过设计综合性作业、结合课程的创新性项目以及其他形式多样的综合性训练,将学生的综合能力和人格培养落实到具体课程教学中。考试方法改革要消除应试教育产生的不利影响,以学生综合能力评价和人格养成作为核心,努力实现学生学习成绩评价方式的多元化。同时,建立计算机系统级教学团队,以团队形式对课程进行设计,积极建设和落实包含课程授课方式、训练方式、考试方法3大环节改革的具体方案。
“计算机系统级课程”教学改革项目在同济大学软件学院和电子与信息工程学院共建的“计算机系统结构”国家级精品课程建设的基础之上,结合电子与信息工程学院在学科方向上的特色和优势,采取“两级基础深化、知识体系构建、实践能力培养、前沿技术追踪”4项措施,建立面向“卓越工程师”培养的计算机系统级课程教学体系。
1)两级基础深化。教师通过“计算机与信息安全导论”“计算机导论”和“计算机系统结构”课程,分别从广度与深度两个方面对学生进行全面的计算机学科基础教学。“计算机与信息安全导论”和“计算机导论”旨在帮助初学者认清学科的轮廓,而“计算机系统结构”则为计算机学科高年级本科生提供完整的学科核心知识。
2)知识体系构建。教师以“虚拟化与云计算”“Web编程”和“计算机前沿技术概论”等课程为基础,建立计算系统和网络的知识体系框架,为强化计算机科学与技术学科的特色和建立完整的计算机系统学科知识体系规范打下基础;同时还注重相关课程的交叉,如“计算机系统结构”与“操作系统原理”“编译原理”在虚拟操作系统、编译优化等方面的结合,“计算机系统结构”与“虚拟化与云计算”在大规模并行处理系统下的融合等。
3)实践能力培养。教师通过“计算机系统实验”课程,将“计算机系统结构”“操作系统原理”与“编译原理”等课程中关系极为密切的核心内容以综合实验形式进行集成,如存储结构及其管理、目标代码生成及优化、线程调度等。这样既有利于消除孤立知识点,又加强了学生的综合实践能力训练,为他们将来从事计算机系统开发工作打下坚实基础。
4)前沿技术追踪。教师通过“计算机前沿技术概论”课程追踪国际计算机系统结构领域中的前沿问题与技术。
笔者提出的面向卓越工程师的计算机系统结构系列课程体系框架如图1所示。该教改项目的实施将提高计算机系的办学水平,加强对青年教师的培养力度,同时也有助于本科教学中多出科研成果。
该教改项目从理论与实践2个方面展开,围绕计算机系统主题,在课程体系建设上注重基础、突出重点。特别是在实践教学方面,除了在相应课程的实验环节对学生进行训练外,还将在专门的“计算机系统实验”课程中进行有关计算机系统硬件和软件2个方面的完整的集成实验,通过数据采集和建模分析等手段验证实验结果的正确性和有效性。通过发现并解决实验过程中遇到的各种问题,学生更加深刻地理解并扎实地掌握计算机学科的核心理论,同时提高了从理论到实践的知识贯通能力和创新能力。
各门课程的教改内容简述如下。
1)计算机与信息安全导论。作为该教学体系的基础课程,将突出建设计算机系统知识体系方面的基础知识。主要教改内容如下:
①选用《Computer Science:An Overview》作为该课程的双语教材:
②每章核心内容突出计算机系统方面的基础知识;
③将计算机系统方面的基本知识从传统计
算机导论内容中自然引出;
④展开双语教学,并建设精品课程。
2)计算机导论。作为该教学体系的基础课程,将突出建设计算机系统知识体系方面的基础知识。主要教改内容如下:
①选用《Computer Science:An Overview》作为该课程的全英文教材;
②每章核心内容突出计算机系统方面的基础知识;
③加强计算思维方面的教学和实践,将Python作为入门编程工具培养学生的实践动手能力;
④展开全英文教学,并建设精品课程。
3)计算机前沿技术概论。作为全校的通识课程,适合各个年级的本科生,侧重信息安全前沿,同时带动整个教学体系前沿知识的探索。主要教改内容如下:
①汇集计算机系统结构课程体系中各个分支领域的前沿思想与技术;
②为“计算机系统实验”课程提供前沿的实验内容建议和素材;
③自行编写课程讲义与教材。
4)计算机系统实验。该教学体系中的实验课程建立在“计算机系统结构”“操作系统原理”“编译原理”等课程的基础之上,是整个教学体系中学生实践能力培养的核心课程。主要教改内容如下:
①建立计算机系统课程知识体系;
②建立实验环境,设计丰富多样的综合实验项目和开放性实验项目;
③编写实验指导书。
5)虚拟化与云计算。该教学体系中的专业课程之一,介绍可信与安全系统体系结构的基本概念、基本原理和基本结构。主要教改内容如下:
①建立课程知识体系;
②编写教材。
6)Web编程。该教学体系中的专业课程之一。主要教改内容如下:
①完善课程知识体系;
②建立实验环境,设计实验项目;
③编写教材和实验指导书。
2 教改特点
基于“计算机系统级课程”的计算机科学与技术卓越课程行动计划具有如下特点和创新性。
1)将本系计算机学科优势、优质课程与“卓越工程师培养计划”的实施相结合是本系统级课程教改项目的特点之一;
2)开设“计算机系统实验”课程作为计算机系统级课程教学体系的核心实验平台,加强学生的实践能力培养是本系统级课程教改项目的特点之二;
3)本教改项目结合计算机新教学法,将计算思维教学方式在计算机系统级课程中进行实践(“计算机系统实验”和“计算机导论”课程中实施),加强学生的实践创新能力是本系统级课程教改项目的特点之三;
4)本项目将工业界的最新技术介绍给本科生,为其提供毕业设计选题和到著名企业实习的机会是本系统级课程教改项目的特点之四;
5)本项目将可信与安全计算系列课程作为建设对象,点面结合带动一批课程、实验基础设施和教师队伍的建设是本系统级课程教改项目的特点之五。
3 教改成果
经过两个学期的建设,计算机系统级课程的教学改革取得如下成果。
3.1 教改立项方面
1)2012-2013年,教育部-IBM专业综合改革项目建设课程“虚拟计算与云计算”;
2)2011-2012年,谷歌校企共建实用精品课程项目“Web编程技术”;
3)2011-2013年,同济大学全英文课程建设项目“计算机导论”:
4)2011-2013年,同济大学双语课程建设项目“计算机与信息安全导论”;
5)2011-2012年,同济大学电子与信息工程学院教学改革研究与建设项目“面向‘卓越工程师’培养的可信与安全计算课程教学体系建设”。
3.2课程建设方面
1)计算机系统结构。
该课程于2011年上半年被批准为同济大学本科卓越课程(计算机科学与技术专业),同时作为计算机科学与技术系一软件学院共建国家级精品课程。
2)计算机系统实验。
计算机系和学院实验中心已经购买相关的实验设备并完成实验室建设;已经开始组织2010级3位硕士研究生完成课程所涉及的5个实验设计。
3)计算机与信息安全导论。
该课程成功申报同济大学双语建设课程,并于2011年9月开始实行双语授课,同时完成了课程网站的建设。
4)计算机导论。
该课程成功申报同济大学全英文建设课程,并于2011年9月开始实行双语授课,同时完成了课程网站的建设。
5)计算机科学前沿技术导论。
该课程于2010年开设,目前已完成课程网站建设和《计算机科学前沿技术》教材的写作。该教材获得IBM大学合作项目书籍出版资助和同济大学“十二五”规划教材建设项目的资助。
6)Web编程技术。
该课程成功申报谷歌校企共建实用精品课程,并于2011年开设,同时完成了课程网站的建设。
7)虚拟计算与云计算。
该课程成功申报谷歌校企共建实用精品课程,并于2010年开设,同时完成了课程网站的建设。
3.3教材建设方面
1)《计算机科学前沿技术》教材已经编写完成,于2012年7月正式出版,并被列为同济大学“十二五”规划教材。
该教材是一本计算机科学的入门与提高教材,在力求保证学科广度的同时,还兼顾主题的深度,同时特别强凋计算机科学的前沿性,既介绍计算机学科相关主题的来龙去脉,又引入国内外最新和最热门的前沿课题。该教材既涉及计算机传统研究领域,如计算机网络、操作系统、人工智能等又涉及云计算、物联网、智慧地球等新兴热门研究领域,重点讲解这些最新计算技术在各个学科中的应用,既让读者对计算机新兴技术有一个宏观的把握,又通过各种案例分析指导读者将计算机最新技术应用到相关专业和学科中。
2)同济大学已与清华大学出版社签约出版《虚拟化与云计算》教材,目前已完成部分书稿,预计2013年初出版。
关键词:C++;面向对象;教学方法
中图分类号:TP434文献标识码:A文章编号:1672-7800(2013)006-0162-02
基金项目:许昌学院计算机软件技术主干课程教学团队资助项目(2012)
作者简介:李梅莲(1971-),女,许昌学院计算机科学与技术学院副教授,研究方向为智能计算。
0引言
面向对象C++程序设计课程是计算机科学专业中一门重要的专业基础课,这门课程在大学低年级开设,是进行面向对象程序设计的入门课程,目标是培养学生使用C++进行面向对象的程序设计能力,注重应用,突出实际动手能力。
面向对象软件开发方法是吸收了软件工程领域有益概念和有效方法而发展起来的一种主流软件开发方法[1]。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高、体现信息隐蔽、可复用、易修改、易扩大等特性的程序。为顺应市场需求,国内各个高校的计算机专业及其相关专业都开设了该课程。在课程的教学过程中,如何让学生在学习完该课程后能充分掌握这种程序设计思想与方法,并根据实际要求进行软件设计变得尤为重要。
1C++课程教学现状分析
笔者在多年的“面向对象C++程序设计”课程教学过程中,发现常常存在如下问题:
(1)课程理论部分内容繁杂,教师教的累,学生学习效果不好。课程包含了面向对象知识和C++语法知识[2],经常由于课时有限,很难面面俱到。传统的以教师为主体的填鸭式、满堂灌的教学只会让学生感觉学习枯燥,无法很好地理论结合实际。同时,学生主动学习的意识淡薄,过分依赖教师的课堂教学,形成“等着学”的惯性,不会自己主动从解决问题的角度去探索学习,没有主动向教师提问的意识。
(2)课程实践部分缺少层次、关联性欠缺。在实践过程中,可供学生实践的有一定实用性的项目不多,教师只是讲解隶属于不同知识点的独立程序,同时让学生上机编程验证。各实践项目间的关联性无法体现,学生没有系统解决完整实际工程问题的概念,实践能力无法得到提高。
(3)单一的考评机制容易挫败学生学习的动力[3]。只将期末考试成绩作为评定学生成绩的依据,不注重平时学习的监督和反馈,容易导致学生学习松懈,积极性不高。学生的职业技能、团队协作与沟通能力也不能在平时的学习过程中得到提高。
2提高C++课程教学质量对策
为了提高学生学习的积极性和主动性,培养学生的创新型思维和工程实践能力,笔者和所在的教学团队一起以工程教育理念为指导,对提高课程教学质量的对策进行了研究与实践。
2.1培养学生良好的编程习惯
很多学生学习完C++课程后,能够掌握基本语法和面向对象设计思想,但往往编写出来的程序代码质量较低,程序可读性、稳定性和可重用性差,离实际软件开发要求相差很远,原因是学生没有好的编程习惯。作为面向对象入门语言,一开始就要按工程的理念培养学生良好的编程习惯,这样他们才有可能写出优良的代码。比如C++中标示符命名、注释、缩进和空格,常量和宏、类的定义、函数、内存分配等都要学生按一定规则来写代码。
培养学生良好的编程习惯,首先要从思想上引起学生的重视,可从历年毕业生参加IT企业招聘笔试试题或企业实际开发程序中抽取部分代表性代码展示给学生,让学生知道企业对编程的要求,如果不遵守编程规则是写不出好的程序的,不利于将来就业;其次是教师在教学过程中要做好榜样,课件、讲义等教学材料中的程序都要符合C++编程规范,对学生提交的实验、作业一开始就要严格要求学生按规范来写,这一过程可能需要老师花费一定的精力和时间,但学生的编程质量会大大提高,为后续C#等课程的学习打下良好的基础,同时也可以缩小校内课堂教学与企业实际需要间的差距,提高学生毕业后的就业能力。
2.2采取案例驱动教学
对于传统的只注重知识点讲解的教学方式,学生普遍感觉理论性太强、知识枯燥,没有兴趣。从与实际生活相关联的实际问题和实例出发,运用启发式、案例式、任务驱动等多种教学方式可激发学生学习兴趣,引发学生内在的学习本能和创造欲,增强学生主动学习的行为,以达到增强教学效果的目的。如由教师提出开发企业人力资源工资管理系统,分成员工基本信息类的设计与实现、员工信息的输入输出、不同员工类的设计与实现、员工工资信息管理实现、员工信息存取5个模块,贯穿整个课程,每个模块对应相关知识点并提出每个模块的具体任务,循序渐进,直至完成综合案例。
2.3丰富的网络课程资源
除课堂教学外,教师还应建设丰富的网络课程资源,用于辅助学生学习,如教学课件、教学视频、习题解答、VC++编译环境使用详解、实验指导书、自测试题库、电子参考书、C++编码规范、C++函数库、常见编程错误分析、经典C++程序案例、实训项目案例、参考学习网址等,这些资源有助于学生全方位学习C++,提高学习效果。
2.4多维度的实践教学体系
面向对象C++程序设计是一门实践性很强的课程,为此,教师要编写合适的实验指导书,实验的题目应该由简单到复杂,有很强的指导性和可操作性,实验类型应以验证性、设计性、综合性3种实验相结合,实验内容的形式多样化,如程序填空、程序改错、书写函数功能、设计类成员及定义方法等。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验室输入程序、调试程序,直至运行结果正确为止。学生实验后应按时完成实验报告,实验报告应包括以下内容:实验目的、实验要求、实验题目、程序清单、运行结果、实验小结等。
在课程快要结束的前两周,选用典型富有挑战性项目实训,突出面向对象编程能力及学生编程风格和程序调试能力的培养。这样多维度的实践教学体系[4]能引导学生由浅到深、由简单到复杂地完成实验内容,激发学生对实验教学的兴趣,培养学生实际动手能力、独立思考能力、综合应用能力和发明创新能力。
2.5多种考核方式相结合
单纯的以闭卷笔试成绩评定学生成绩,会忽视学生实践动手能力,学生参与教学的积极性不高。应以多种考核来评定学生课程成绩,考核中一般应包括:考勤、作业、实验报告、期末项目实训(或综合大作业)、期末考试等。全方位的考核方式可从整体上对学生的能力做出综合考评,可有效促进学生学习的主动性、积极性。
3结语
鉴于面向对象C++课程在计算机专业中的重要地位,笔者所在的教学团队为提高此课程的教学质量不断研究对策并付诸于实践。文中提到的若干教学对策已经用于笔者所在学校的教学,取得了良好的教学效果,教学质量明显得以提高。
参考文献:
[1]BARBARA JOHNSTON.C++programming today:second Eeition[M].China Machine Press,2008.
[2]ANDREW KOENING BARBARA MOO.Rumination on C++[J].Beijing:Posts&Telecom Press,2008.
本文结合本校情况,分析了目前高职电子信息类专业学生在C语言程序设计教学上存在的主要问题,提出采用点面结合,分级教学目标,精选程序案例,突出高职认知规律,以提高学生的学习兴趣为基础,强化学生上机练习及指导为突破口,最终实现高职计算机专业C语言程序设计的教学目标。
关键词:
高职院校;C程序设计;分级教学目标
一、引言
现在,我们学校和许多高校一样,选择C语言作为电子信息类专业的高级语言程序设计的入门教学课程,C#语言和Java语言程序设计与开发作为计算机专业后续岗位能力延展课程。C语言程序设计是一门专业基础课,强调语法和基础,而C#语言和Java语言程序设计则着重于岗位应用能力。本人多年从事《C/C++语言程序设计》、《C#语言程序设计》、《数据库编程技术》和《ASP.NET》课程教学,发现我校高职电子信息类专业相当一部分学生语言不过关,给后续课程带来很大麻烦,造成教学被动。为此,很有必要对高职电子信息类专业C语言程序设计教学进行反思,提出相应对策。本文以C程序设计课程为例,分析目前高职电子信息类专业学生C语言教学上存在的主要问题,就如何确定并有效实现教学目标做一个切实的探讨。
二、高职电子信息类专业C语言教学的特点
1C语言的教学特点:具有逻辑性、理论性、创构性和理论性是计算机程序设计课程的四大主要特征。想要掌握计算机语言,需要学生有一定的主动创造力和罗辑思维力。而C语言更是计算机程序设计课程之中的难点,很多首次接触到C语言的同学很难入门。根据这一特性,对高职院校在C语言的教材编写上和教学上带来了很大的困难。计算机语言的学习不仅仅是看教材,听课更重要的是在于应用。学会使用C语言编写程序,最重要的环节是做习题和上机实训。如果学得不扎实,对后续专业课程影响很大。所以一定要强化实训教学。高职院校的学生普遍存在着文化水平较低,认知度不足,综合素质不高等特点。很多学生对学习没有热情,思维理解能力也较差。有的学生上课,仅仅是为了应付家长和学校,自己没有主动学习的欲望导致学习没有纪律。因此,高职院校的学生上课处于一个积极性不足,学习习惯不好,没有学习计划规划,不主动思考这一环境之中。他们往往是被动的接受学校的教育,仅仅是为了完成目标而学习,一版不会主动进行相关课程的深入思考和练习。由于这些不好的学习因素吗,导致相关的学习课程学习起来更加困难,也不知道如何求助如何进行解决。目前,相当大一部分学生对学习计算机课程存在两个误区:一方面是在现在软件领域这个大环境下,C语言基本无用,另一方面是学习这门课程如果今后不从事相关工作也无用武之地。还有相当一部分学生学习中产生畏难情绪,严重挫伤他们学习计算机语言的积极性,甚至影响他们学习本专业的信心。但同时也要看到,有一部分高职生来自于高职院校的学生,他们在学习C语言的过程中实践和动手能力都得到了很大的加强,逻辑思维能力和创新能力也有明显提升,还有一部分有自己兴趣十足的爱好。这应当充分肯定并予以高度重视,并加以正确的引导。在教学中注意扬长避短,充分发挥他们的优势。
三、高职C语言教学的思考与对策
(一)要遵循计算机语言学习的认知与教学规律计算机语言程序设计学习都有自身的认知与教学规律。计算机程序就是用某种计算机语言把计算机的执行过程描述出来。学习计算机语言,就是学习语法规则以及掌握这些语法规则的应用。众所周知,要学好一门语言,关键是不停地进行读写训练,活学活用。多看、多读、多写、多模仿练习是学好任何一门语言的诀窍,那么学习计算机语言也是如此。所以,C语言程序设计教学首先是引导学生多阅读C语言程序,然后是学会调试C语言程序,接着是模仿编写C语言程序,最后才是设计C语言程序。
(二)分级制定教学目标我们的教学对象是这样现状的高职学生,还存在计算机水平差异、思维发展差异。这就要求我们根据高职教育的根本要求和专业人才培养方案,结合本课程的内容特点,在教学大纲中应制定多级教学目标。多角度分层次分阶段从低到高设计的教学目标如下:1、掌握C语言程序设计的基本知识、基本方法和技巧2、具有程序设计初步应用能力3、理解结构化程序设计的基本思想4、培养程序设计逻辑思维方式,提高学生自主探索学习和分析解决实际问题的意识在教学实施过程中,要根据学生所表现出来的差异进行分层,设计不同层次的学生模型,分层次制定教学内容和教学目标。有条件分班教学的,可按不同层次的学生在教学活动中要达到不同的学习目标,分班级安排不同的学习内容。比如:把C语言程序设计课分为两个层次,一个基础层次,一个提高层次。
(三)选择或自编适合高职学生的C语言实训教材高职的培养目标,教学模式、教学内容有其鲜明特色,这就要求高职《C语言程序设计》教材也应当独具特点,不能照搬普通高校教材,更不能借用中职教材。但现有教材很多是介绍语句的格式和功能,不适合高职学生,因此必须调整教材结构和内容来应对现在高职教育。2008年我们曾编写《C++程序设计实训指导书》,可满足6个专业方向的学生使用。本书是在编写组各老师多年从事C++语言程序设计教学的基础上编写的,书中根据多年的教学经验,针对海南高职学生实训中遇到的问题,精心挑选训练题目,进行强化训练,以提高学生分析问题和解决问题的能力。力求将复杂的问题和概念用简洁的语言描述出来,力争让学生当时看得懂、学后用得上。
(四)围绕最大限度提高与保护学生对C语言的学习兴趣,优化教学方法,以求全面教学实效大量的调研证明,学生在如下情况下其学习效果才会是非常有效的:感觉到自己备受别人的关注;对他们现在学习的知识充满兴趣;自己是学习的主导和参与者;在任务完成后得到适当的反馈;看到了成功的机会;对正在学习的东西感兴趣并觉得富有挑战性;感觉到他们正在做有意义的事情。要促进学生的自主发展,就必须最大可能地创设让学生参与到自主学习中来的情境与氛围。因此,教师要因势利导,采取多种教学方法,最大限度提高与保护学生对C语言的学习兴趣,以求取得真正教学实效。1.做到每一堂上机课都能让学生通过自己上机程序练习获得成就感。2.提倡学生朗读程序。比如,语句intx;x=5;,可读成“声明一个整型变量x,然后将整型常量5赋值给整型变量x”。通过朗读程序,能够使一些原本很模糊的概念得到不断地巩固,逐渐地变得清晰。3.养成良好的编程习惯,将枯燥难记的语法融入范例程序的上机调试过程中。在整合课程内容的基础上,改变过去先给出定义和规则的讲授办法,而是从具体问题入手,精选范例,努力把枯燥的“语言”讲得生动、活泼。在程序范例中,将语法知识点同实际编程结合。讲授时避免纠缠于语法细节,应始终明确一点:计算机语言是用来描述需要解决的问题和问题的解决方法的,任何语法规定都是为这个目的服务的。4.点面结合,少讲多练,确保创造自主学习的情境与氛围学习计算机语言主要在于应用,仅仅通过听课和阅读教材是不可能掌握的。学会使用C语言编写程序,最重要的环节是做习题和上机实训。要区分学生层次,精选上机练习题,既要满足少数提高训练,又要满足大多数基础练习,做到点面结合,符合学生实际。5.及时帮助学生化解难点,共克难关应事先分析C语言学习的难点,做到胸中有数。在C中,变量与数据类型概念是第一个难点,它与内存概念紧密相关。这个难点,将影响全局。循环控制语句是第二个难点,它改变程序执行流程,难在如何构造,关键是抓住循环初值、终值和增值三要素。教学中要及时发现学生在学习C时的难点,厘清难点的根源,逐个击破,不留隐患。6.结合专业,学以致用根据教学不同阶段,教师应适时收集一些与其授课学生专业方向结合的程序案例,让学生能够切实体会到C程序设计在解决本专业中的问题中所发挥的作用。7.发挥计算机网络与多媒体的优势,增加教学互动及时开发C课程网站,提供学生在线多媒体学习与答疑平台。在C语言程序设计学习上,把复杂的计算机语言、专业化的技术变成了轻松自如、随心所欲的人机对话。因此,使学生不至于掉入C语言知识的细节里,避免出现既费时、又费力,而学习收效不理想现象,使枯燥无味的内容变得简单,从而有趣,激发了学生浓厚的学习兴趣。学生在课堂内外的学习中,遇到不能解决的问题时,既及时可上Internet网查询,又可与同学老师交流。这样,既增进了师生之间交流的机会,又达到共同提高的目的。
四、结束语
总之,对于高职电子信息类专业学生来说,学好C语言既是专业素质的需要,也是未来岗位能力的要求。对于教师来说,如何因材施教,因人而异,充分激发学生的内在积极性与潜能教学模式也成为迫在眉睫的重任。针对目前高职电子信息类专业学生在C语言程序设计教学上存在的主要问题,我们提出采用点面结合,分级教学目标,精选程序案例,突出高职认知规律,以提高学生的学习兴趣为基础,强化学生上机练习及指导为突破口,最终实现高职C语言程序设计的教学目标。
参考文献:
[1]全国高等院校计算机基础教育研究会高职院校计算机教育经验汇编第二集[M].中国铁道出版社,2008.
关键词:VB;程序设计;兴趣;主动性;教学方法
当代大学生进入社会,除了要求熟悉计算机的基本操作外,更应掌握程序设计语言这个现代化工具,只有这样才能处理今后工作中面临的各种问题。由于VB是一种可视化、面向对象和事件驱动编程机制的计算机语言,相对简单易学、功能较强、所以已被许多高校选作非计算机专业学生的公共必修课。然而VB语言也存在抽象、枯燥、知识点多等缺点,加之绝大部分学生都是初次接触程序设计,缺乏相应的知识背景,不少人学习目的又不明确,所以往往在开始阶段会感到很茫然,甚至对这门课产生恐惧心理,缺乏兴趣,以至影响整个教学效果。因此作为教师,怎样吸引学生去主动学好该课程是一个关键问题。经过我们多年的教学实践,认为只有通过改进教学方法、调整教学手段,不断激发学生的学习兴趣,调动学生的求知欲望,才能发挥他们的主动性,最终达到良好的教学效果。
1好奇转为兴趣,被动变成主动
爱因斯坦有句名言:“兴趣是最好的老师。”孔子也说过:“知之者不如好之者,好之者不如乐之者”(《论语•雍也》)。只有“好之”、“乐之”才能建立起高涨的学习热情与求知欲望,方能以学为乐,欲罢不能。由此可见,兴趣能诱发学生的学习动机,是调动学生学习积极性的重要因素。然而不少刚接触计算机编程学习的学生,他们对编程所感到的新奇、好玩,决不能算是兴趣,而只是一种好奇。因为随着课程中大量的语法规则、概念的不断引入,极易使一部分甚至是大部分学生产生枯燥无味的感觉。为了能使学生的好奇转化为学习兴趣,抓好入门教学十分关键。所以在讲授第一次课程时,我们不急于去阐述VB的一些难懂、抽象的概念等相关内容,而从学生的认知规律考虑,先给学生演示一些用VB语言编好的具体实例,如计算器、锤打红心等。通过这些趣味程序的演示,既能使学生了解VB语言的强大功能,也会让学生产生极大的好奇心,如:这些功能是如何实现的?其中的奥秘是什么?一旦学生的积极性被激发,他们就会主动去探索,想知道其中的答案, 并渴望马上去学习与掌握这些技能。
作为教学组织与实施者的教师,应该引导学生自主的学习,成为课堂的主角――学习的主体,充分调动学习的内部动力,使被动学习变成主动学习。具体方法是提出一些自主开发性的问题或作业,让学生多思考、多练习,不断巩固知识。对于学习不够主动的学生,应正确引导他们,刻意的让他们去完成一些作业,通过问题的解决而产生学习的兴趣,变成主动的要学习。只有这样,学生才能积极展开思维去主动学习新知识,并利用所学知识将新思路在自己的实践中得以实现,才能真正成为真正学会解决问题的步骤和技巧[1-2]。
2精编教学实例,注重师生互动
实践证明,实例教学不仅是打开兴趣的钥匙, 还是连接知识的纽带,好的实例可以起到事半功倍的效果。但是,靠一两个实例所激发学生的兴趣和积极性往往是短暂的,当他们碰到诸多抽象的理性知识和枯燥的重复练习时,很容易慢慢又失去原有的兴趣。所以在以后的课堂教学中,作为教师首先要借助于网络的方便性,多查找相关的资料及同行成功的教学经验, 深化教学内容,精心编选一些实用性、趣味性强的相关案例,以此为切入点,使一些抽象的、难以理解的相关概念和知识变得生动有趣,把复杂的事物简单化,使那些原本需要许多课时仍讲不清楚的知识变得一目了然。实践证明这样的教学方法学生比较容易接受,也能激发兴趣。只有使学生学习兴趣充满整个学习过程,方能使他们积极展开思维去学习新知识,再利用所学知识将新思路在自己的程序设计实践中得以实现,使学习和教学都得以良性循环[3]。
如VB的控制结构是编程的关键部分,也是学生感到比较难接受的地方。对于这方面的教学,如果我们一开始就直接讲解3种结构的含义,学生听起来肯定会觉得比较枯燥乏味,也难以理解。因此,我们通过演示求圆的面积来讲解这3种结构的含义。先是知道半径,就直接求面积(顺序结构);接着根据给出的半径,判断是否符合条件,如果符合条件的求面积,如果不符合条件则给出错误信息(选择结构);最后是进行一次运算,能同时求出多个圆的面积(循环结构)。通过这样的演示,学生对3种结构的含义会有一个感性的认识,觉得这些知识非常有用,并且产生强烈的好奇心和学习的欲望,思维就会变得非常活跃,想知道如何利用3种控制结构开发设计出其他更多的实用案例。此时再开始讲解3种结构的相关知识,学生就会带着强烈的求知欲去学习,其学习的积极性也能得到充分的调动。
师生互动的交流形式可以是多样化的,课堂教学中可以利用设置巧妙的提问与学生共同讨论,或是留一些问题让同学分组讨论相互交流,教师再予以评价,实验课上的亲切指导更能引导学生专心上机完成作业。也可将自己的电子信箱公布给学生,学生可以通过电子邮件随时与教师进行联系,针对学生在课堂教学中存在的个别疑难问题进行逐一解答,对于一些普遍性问题则可以通过课堂统一予以详解。也可以通过随意的聊天、谈心来增进师生间的情感交流。通过师生交流,可以消除师生之间的距离感,增加感情,使学生更愿意去学习你所讲授的课程。对于教师而言也方便了解学生的学习情况,既可以根据学生的具体情况调整授课内容和难度,也可以对不同的学生实施因材施教[4]。
此外,增加教学互动还有很多方法,比如说教师在上课写程序代码时故意把一些关键地方写错,让学生去发现错误之处并指出如何纠正,这样既能活跃课堂气氛,也能使学生对这些容易出错的地方记忆更为深刻,在今后自己的编程过程中避免相似问题的出现。
3重视能力培养,强化实验环节
“VB程序设计”是一门实用性极强的课目,为此从第一次课到最后一次课,教师始终应向学生灌输程序设计不是看懂、听懂的,而是做会的思想,要重视能力的培养。VB程序设计包括界面设计和程序代码设计两部分。对于学生来说,设计可视化的界面相对容易些,难点在程序代码设计,也就是我们所说的编程部分。为了能使学生掌握编程的方法,在教学过程中不能急于求成,应该循序渐进,正确引导学生。
首先,要求学生熟练掌握基本语法和结构。有了扎实的基础知识,学生就会具有最基本的编程能力和阅读程序能力。这一步骤是编程的最基本,也为以后的学习起到铺垫作用。
其次,课堂上应挑选具有代表性的实例,给学生分析编程的思路,关键部分的含义以及编程的技巧,这样的话,学生就能在自己操作时举一反三,同类型的问题很容易的就能得到解决[5]。
比如讲解循环结构时,挑选经典实例:求1+2+3+4+……+100的和。通过例题的讲解,要让学生首先明白循环的结构,再让学生理解此题的编程思路和方法。只有这样,学生再碰到类似的问题,如求1*2*3……*100、2+4+6+……+100、1++3+5+……+99等就能迎刃而解。
再次,加强学生阅读程序能力的培养。学生要想编好程序,除了要掌握基础知识,另外一个方面就是要学会阅读程序。阅读能力的培养包括读程序、写运行结果、指出程序功能等方面的训练。多进行这方面能力的训练,有助于学生体会各种语句的使用,积累编程的技巧。特别是控制结构部分,养成多读程序的习惯能培养良好的逻辑思维和抽象思维能力,对将来自己独立编程会起到很好的作用。
最后,编程进入独立编写的阶段。通过一系列的学习和训练,学生的编程应该从半模仿阶段到独立完成阶段。通过前面的积累,学生可以开始自主的去完成编程。这个过程其实就是对以前的改进和自我的创新,教师要多鼓励学生进行创造性练习,去独立编写综合的程序,让学生在大量的编程练习中不断提高自己的编程能力。
要想提高编程能力,实验是重要一环,一旦忽视了实验环节,那讲课的效果将会事倍功半。为了避免上机实验时一些不自觉的学生玩游戏、上网等,我们均要求学生带着问题上机,使每个学生清楚每次实验需完成哪些任务,达到什么目标。在布置练习时,要注意作业的难度,千万不要因难度高而使学生望而生畏,失去学习的积极性,太简单而不予重视。学生在上机过程中,对出现的各种情况进行分析,做好记录;采取单独辅导或统一讲评、集体答疑,对一些共性问题,有时间可在组织学生相互讨论,加深学生对知识的理解与记忆。只有这样。学生的实验动手能力才会不断提高,分析与创新的能力得以培养,对实验课学习的兴趣更浓,劲头更足。
实验操作阶段可使学生对所学知识经历一个由不会到会,有初识到亲自动手去掌握的过程。实验教学对于教师,也是一个必不可少的环节,在学生操作中能发现学生存在的问题,即教学中的一些薄弱环节,在以后的教学中给予及时改进。
4结语
总之,在教学实践过程中,我们只要做到结合学生实际情况不断探索新的教学方法和手段。选择能激发学生兴趣的实例, 采用启发、引导的教学措施,定能使学生学习的积极性和主动性充分得以调动,不断激发其自主学习的兴趣,提高学生程序设计的实际应用能力和创新能力。此外,再加上轻松的课堂气氛,良好的师生交流,以及耐心细致的实验辅导、课下作业批改等手段,学生的综合素质必将得到不断提高,以致更好适应今后社会的需求。
参考文献:
[1] 沈国珍.“VB 程序设计”课堂教学的探索与实践[J]. 福建电脑.2007(4):208,215.
[2] 何岸. 论“C 语言程序设计”课程的趣味教学[J]. 高等函授学报:自然科学版,2008,21(5):24-25,28.
[3] 刘洋. 计算机语言案例教学中的教学策略[J]. 中国科技信息,2006(18):280-281.
[4] 郭超峰. 在计算机高级语言授课过程中加强案例教学[J]. 福建电脑,2006(7):204.
[5] 李可欣. 案例教学法在VB教学中的应用[J]. 中国科技信息.2008(5):224-226.
Analysis of Teaching Methods in VB Program Design
ZHANG Ying, WAN-Min
( Computer center, Henan University, Kaifeng 475001, China)