计算机编程入门指导范文
时间:2023-10-19 16:07:25
导语:如何才能写好一篇计算机编程入门指导,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
C语言程序设计 ACM竞赛平台 教学效果
一、引言
在信息技术飞速发展的今天,如何改革传统的教育教学理念与方法,将理论与实践有机结合,有效推进素质教育和高水平人才培养,是新时期IT人才培养面临的新课题。程序设计能力是计算机专业学生的基本技能之一,也是检验毕业生是否合格的重要标准。
ACM/ICPC国际大学生程序设计竞赛作为一项世界性的竞赛活动,正好迎合了当今社会对创新性IT人才的需求,竞赛较全面地考验学生对知识的综合运用能力、创造性地分析解决问题的能力,所以在IT界具有超凡的影响力。该项赛事极大地提高了参赛同学的学习热情、实践动手能力、团队合作能力和创造创新能力。
本人自2009年开始致力于C语言教学改革,将ACM/ICPC竞赛平台用于程序设计课程的实践教学中,极大地提高了学生的编程积极性,提高了学生的实践能力、自学能力和分析解决问题的能力,为后继专业课程的学习打下来良好的基础。
二、C语言程序设计课程的特点
1.C语言程序设计是计算机相关专业的入门第一课
程序设计能力是计算机专业学生的基本技能之一,从课程学习的角度看,它是很多课程的基础,没有较强的程序设计能力将导致许多后续课程难以学好。从计算机专业课程体系来看,国内外大多数高校都把C语言程序设计作为计算机专业学生的第一门专业基础课,重在培养学生理解计算机解题过程,培养学生用计算机解题的思维方式,破除学生对计算机的神秘感,激发学生的学习兴趣,为后继专业课程打下良好基础,帮学生打开计算机世界的大门。所以,如何教好这入门第一课对学生今后其它专业课程的学习至关重要。
2.C语言是一门实践性很强的课程
C语言程序设计的重点是“程序设计”,C语言的教学不能只停留在对语法的研究上,而是教学生用C语言的语法表达自己的算法思想。目前很多C语言教材过于详尽的语法解释是对老师和学生的一大误导。老师在课堂上用大量篇幅强调语法,再加上大部分高校C语言考试采用笔试,引导着学生的学习方式也是以语法为中心,导致会做选择题、填空题、读程序题,但就是不会自己写程序。
三、ACM竞赛平台在C语言实践教学中的作用
C语言的教学重在编程能力的培养。如何培养编程能力,清华大学吴文虎教授经常对学生说:“你不是看会的也不是听会的,而是动手动脑练会的”。要想教好C语言这门课,用一句话可以概括为:千方百计提高学生对编程的兴趣。ACM竞赛平台正是起到了激发学生编程热情的作用。
1.为学生搭建了一个学习交流的平台
传统的实验教学模式下,很多学生只是照着详细的实验指导书或课本,输入一些代码,进行一些验证性实验,起不到对学生创新能力的培养。即使学生独立完成了编程任务,传统模式下缺少严格的评判,只是学生自己运行评判自己的程序,而这样的测试是远远不够的,一种输入正确,不等于所有的输入都正确;一次运行正确,不等于次次运行都正确。因此传统模式下实验效果根本就无法保证。
而借助竞赛平台后情况就完全不同了。学生需要提交源程序,由机器使用大量的测试数据评判学生的程序是否正确,然后返回相应的信息:成功通过、语法错误、答案错误、超时或内存溢出等等。学生可以根据系统返回的信息继续修改程序,然后再提交,直到评判成功为止。编程中遇到问题了,苦思敏想、单步调试找出bug了、或者求助老师、学长解决了,就真正掌握了一个重要知识点、或积累了一个重要编程经验,程序员就是这样成长的。
通过这一平台,教师可以随时了解每个学生的完成情况,分析学生的代码,及时解决学生的问题。学生每做出一道题,系统都有记录和排名,同时学生也能查看其他同学做了多少题、做了那些题,无形中在他们间形成一种互相竞争的状态,激起继续努力的劲头,形成良好的学习氛围。
2.培养了学生自主学习能力
C语言程序设计是一个实践性很强的学科,仅靠理论课和实验课上有限的时间是远远不够的,学生需要在课下进行大量的编程练习,在编程、调试的过程中才能深入掌握理解C语言的语法,并培养程序设计思想。而ACM竞赛平台正好提供了这样一个程序在线测试平台。为了能够在下次实验或竞赛中取得良好的成绩,他们会充分的利用课余时间,在竞赛平台下大量的做题,虽然有些知识的学习很枯燥,但是由于在攻克题目中行之有效,又是学以致用,他们常常会乐此不疲,直到把每一个知识点都理解透彻,这在无形中正好弥补了我们教学中的不足,对我们的教学工作起到了良好的促进作用。
3.引导着C语言教学理念的改变
C语言被国内大部分高校列为计算机相关专业的入门第一课。但国内高校C语言的教学效果普遍不理想,成了打击计算机专业学生成长的绊脚石。早期的C语言程序设计教材大都以讲解语法为中心,钻语法的牛角尖。教学生写程序,好比教小学生写作文,只讲语法是教不会写作的。而ACM竞赛平台的引入,把以语法为中心的教学模式引导到案例驱动的教学模式中来。C语言的学习,不再以语法为中心,而是以培养编程能力为中心。C语言的教学重点得到了拨乱反正,教学效果得到了显著提高。
四、结语
新的教学模式对专业教师提出了更高的要求。第一,要求教师要热爱编程,能带学生领略编程之美,激发学生的编程热情;第二,要求教师要有很强的责任感,及时解决学生编程中遇到的问题,保护学生的编程积极性。本人自09年开始尝试借助ACM竞赛平台进行C语言教学改革,教学效果提高显著。进行教学改革的两个班级中的学生进入高年级以后,有的在ACM-ICPC国家大学生程序设计竞赛中获得大奖,有的成了学生科研团队的主力军,毕业生的就业质量也有明显提高。这一教学改革成果于2012年开始在全院推广,使得2012级新生整体编程能力有很大提高。这一教学改革成果的推广必将极大地提高学生的实践动手能力、自主学习能力和创新能力,为社会输送更多的高质量的IT人才。
参考文献:
[1]何莉辉,梁沧.基于ACM国际大学生程序设计竞赛的学习模式[J].经济与文化,2008,(6):95-96.
篇2
记得在我刚上小学那年,第一次随爸爸去计算机房,看着爸爸熟练地操作着计算机。在他的敲击下,荧屏中不断地闪烁着各种的信息,当时我就着了迷。在我的央求下,爸爸同意从最基本的操作开始教我。
在爸爸的指导下,我很快学会了使用键盘,然后爸爸教我在windows操作系统下使用鼠标。这鼠标,真像一只活生生的小白鼠,可爱极了,上面还有三个扁平的按钮呢!移动、左单击、右单击,我不过“眨几下眼睛”的功夫就学会了。但是左、右双击却难住了我,由于没掌握好要领,计算机总是认为我在单击。我让爸爸给我做示范,看着爸爸快速地双击,我想:爸爸的手真神奇,我要有那双神奇的手该多好呀!从那以后,我便对计算机更加着迷了。
三年级时,我参加了学校计算机兴趣小组。在那里,我接触到了一个全新的领域——basic语言编程。记得第一次上计算机课时,老师讲解着一个现在看来非常简单的程序,当时我望着那一条条的语句就像看“天书”似的。老师循循善诱,我逐渐“入门”了。在这之后,我对计算机的兴趣更浓了,晚上睡着后也常常说着与计算机有关的梦话。第二天早上妈妈告诉我昨晚说梦话的内容,逗得我都直笑。
篇3
关键词:编程语言;课程群;编程能力;过程化教学管理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0140-02
Abstract: The curriculum group of programming language has basic function in developing students' programming ability. The main problems existing in the programming language curriculum group teaching are analyzed, and some concrete measures for the reform of programming language course group teaching are posted. these measures are important to improve the students' ability of programming.
Key words: Programming Language; Curriculum Group; Programming Ability; Teaching Process Management
1 引言
编程能力是软件工程专业学生应具备的核心能力之一,它的培养是通过一系列课程来实现的。编程语言如C语言、Java、Web程序设计、Java Web等组成了编程语言课程群,这个课程群在培养学生编程能力中具有基础性作用。编程语言课程群在编程能力培养的重要性已受到广泛认同,在我校新修订的软件工程人才培养方案中,为了适应应用型技术大学转型发展需要,编程语言课程群地位更加突出,特别是作为基础的第一门编程语言教学时数大大增加,同时调整了实验学时数,基本上理论与实验学时数各占一半,而且鼓励教师在实验室上理论课,加大了学生动手实践要求和机会。
近年来,我校在编程语言群教学工作取得了一些成绩,如:公开发表了十余篇编程语言教学改革论文,多个编程语言课程改革项目获得省级、校级立项建设,出版了几部编程语言自编教材或教学辅导书等。尽管如此,目前编程语言课程群教学还存在不少问题,不适应学校向应用技术大学转型发展的需要,不适应编程能力培养的需要。在教学中我们发现至少下面五个问题比较突出。
(1) 编程语言课程群的教学缺乏统一管理,部分教学内容重叠
编程语言课程群的教学工作缺乏统一管理,各门课程教学各行其是,课程之间部分教学内容重叠,课程之间的衔接不够。从总体上看,编程语言群中各编程语言的语法基础具有一定的相似性,如C语言与Java(或C++)。Java是在C语言的基础上发展起来的,语法基础与C语言相近。若在上Java课程时,对其前面的语法基础介绍与训练太多,将无法用更多的时间来介绍面向对象设计、GUI、异常处理、多线程、网络等高级主题;同时,对学生已经有一定基础的语言基础进行过多的重复,会降低学生的学习积极性和学习兴趣,甚至产生厌学情绪。
(2) 第一门编程语言的基础不牢固
学好第一门编程语言相当重要,但是万事开头难。若第一门编程语言学得好,将对后继编程语言及其他课程的学习奠定基础,就可以“举一反三,触类旁通”;反之,就可能是“基础不牢,地动山摇”。目前通常选用C语言作为第一编程语言,C语言对初学者来说是一门较难的课程,学好它并不容易,需要学生用心学习才行。在教学过程中我们发现,一些学生一开始学习不上心,日积月累,问题越来越多,就容易产生厌学情绪。更重要的是,C语言的语法严谨,不能随意编写程序,少数学生从课程开始到课程结束仍然写不出几个正确的程序,总是包含语法错误或逻辑错误。有的学生阅读、编写、调试程序的时间与精力不够,软件开发平台(如:Eclipse)使用不熟练,软件工程基本素养的训练和培养不够。
(3) 教学过程化管理不够
不注重学习过程的考核,期末笔试所占学期总成绩的比例大(占60%),而实验成绩占的比例小(占20%)。而且实验考试在实验成绩中的比例没有具体规定,没有明确规定:实验考试不及格,则课程总成绩不及格。实验考试过程没有期末笔试那么正规、正式,考试时间通常只有笔试的一半,试卷的批阅也没有规定。这不利于调动学生平时的学习积极性,平时的教学秩序、教学效果很难保证。实际上,学生阅读、编写、调试程序的能力主要是在平时的教学过程中培养出来的,期末笔试时间短、内容不全面,不能全面考核编程能力。
(4) 课外实验、课程设计、课程实训管理不够
目前编程语言的实验主要是在老师指导下的课内实验,而缺少课程规定的课外实验。尽管现在多数学生都有自己的计算机,但是缺乏在计算机实验室的集体学习环境。编程语言课程没有统一要求学生完成课程设计,学生学习一门编程语言编码量不够。课程实训往往规定在一两周内完成,通常3-5人为小组完成项目,但少数学生没有自己写代码,学生动手独立编程训练不够。不少学生没有认真训练如何编写好的程序和较大规模的程序,软件开发平台使用技巧掌握不够。
(5) 非编程语言课程的编程能力训练不够
非编程语言课程,特别是数据结构、操作系统、计算机组成原理、计算机网络、编译原理、软件工程等课程,程序设计的训练也非常重要,学习这些课程也是提高编程能力和水平的重要手段。但是,在这些课程的学习过程中,不少学生不愿自己编写程序,而只是调试老师指定的代码、粘贴来自网上的代码,这样既无法提高编程能力,也无法学好、学活相应的课程。
2 优化编程语言课程群的具体措施
2.1 加强编程语言课程群的教学管理
建立编程语言课程群教学指导小组,加强编程语言课程群的教学管理,改革课程考核体系,提高实验教学与实验成绩的比重。深入研究编程语言课程群(C语言、Java、Web程序设计、Java EE、C#等)教学内容的交叉、关联与继承关系,分析它们在培养编程能力过程中的角色和任务,对编程语言课程群的教学进行整体规划与优化[1]。必须让学生牢记:单凭阅读和学习语法结构并不能真正掌握一门程序设计语言,必须进行编程实践――亲自编写程序并研究别人写的程序。学习一门新程序设计语言的唯一途径就是使用它编写程序[2]。
精心设计各课程的教学内容、典型案例、编程项目与实训项目等,从简单的顺序结构(Input、Process、Output,简称IPO)编程,到模块化、结构化编程,再面向对象编程,再到Java Web开发、Java EE流行框架技术开发应用等。避免课程之间不必要的重复,提高教学效率。注重典型案例的基础作用,循序渐进地进行开展编程能力训练。任课教师要在教学指导小组的指导下工作,深入研究教学内容,讲究教学方法,加强教学互动,注意课程之间的教学内容衔接。
加强学生调试程序能力的培养,从第一门语言课程开始,学生就要练习编程语言和开发工具的基本调试技巧[3]。不断学习流行软件开发平台(如Visual Studio、Eclipse、MyEclipse等),最终熟练掌握开发平台的使用技巧,提高编写程序、调试程序、分析程序的能力。
2.2 突出第一门编程语言的基础地位
通常C语言作为入门语言教学,C语言对初学者来说是一门较难的课程。在教学过程中,我们实施“教、学、做”合一、“课堂与实验室合一”的教学模式,通过各种教学手段提高学生阅读、编写、调试程序的积极性和主动性,尽力使他们感受到编程的快乐和成就感[4]。另外,让学生学习并掌握流行软件开发平台(如Visual Studio、Eclipse等)的使用方法,从最基本的命名规范、注释、缩进的细微入手训练软件工程素养[5]。为加强C语言的编程能力,我们在大一的下学期开设“C实例分析与应用”课程,同时为后继课程(如:数据结构与算法等)打好基础。
此外,C语言作为第一门编程语言对初学者来说有一定困难,也可以选择其他语言(如:Python)作为第一语言。Python语言的设计哲学是“优雅”、“明确”、“简单”。国际上用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程[6,7,8]。
2.3 加强教学过程管理,严格实验考核
严师出高徒,第一堂课应让学生明确教学目标要求,约法三章,严格课程管理。注重教学过程化管理,根据编程语言课程实践性强的特点,要加强实验教学的过程化管理[9,10]。不仅要提高实验学时数占总学时数的比例,还要提高实验成绩在学期总成绩中的比重(如:40%以上)。加强平时的实验项目考核,学生编程能力的提高主要是在平时的实验项目中实现的。鼓励学生使用开发平台进行大量调试、修改程序训练,从中感受编程中失败的痛苦、成功的喜悦和成就感。通过在线考试系统或在线测评系统平成实验项目成绩的统计与管理。
实验考试过程应该正规、正式,考试时间不少于笔试。严格实验考试,若实验不及格,课程总成绩不及格。实验考试采用在线考试系统或在线测评系统方式,随机抽题,自动阅卷。为了提高学生的应试能力,以及阅读、分析、编写、调试程序的能力,鼓励学生平时在实验过程中(如:规定的实验项目完成之后)通过考试系统进行积极训练。
2.4 加强课外实验、实训教学管理
课内实验是在老师的指导下进行了,有的学生一离开老师的指导就无能为力了。课外实验正好可以培养学生的自主学习能力,促进同学之间的相互讨论,实在不能解决的问题也可以找机会问老师,课外实验的学时数应不少于课内实验。
大量项目实践是提高编程能力的根本保证。课内的课程设计、单独的课程实训以及企业实训是主要的项目实践活动。通过这些项目实践活动,逐渐掌握如何编写好的程序和较大规模的程序,掌握软件开发平台的使用技巧与程序调试能力,理解软件工程的基本方法,熟悉软件工程过程(问题定义、需求分析、系统设计、算法设计、模块测试和调试、集成测试等)。还可以不断提高学生问题分析能力、规划设计能力和团队合作精神等综合能力。通过完成各种实验项目可以不断赢得自信。
上述实践活动只有通过认真、踏实的态度,不断坚持下才能够达到好的效果,因此关键是要严格管理,绝对不能流于形式、走过场,应规定实训项目成绩等级的具体标准。
2.5 编程能力培养应贯穿所有专业课程
不断提高学生的编程能力,仅靠编程语言课程群是不够的,要加强非编程语言课程(如:数据结构、操作系统、计算机组成原理、编译原理、数据库原理、计算机网络等)的编程能力与编程能力训练,应提高非编程语言课程实验学时占整个课程学时的比例,以及实验成绩占学期总成绩的比例,使学生通过自己的编程实践与软件工程训练,提高对课程内容的理解和掌握。把这些课程的内容当做应用开发的工具、技术、系统、项目的成功案例,加以学习研究,特别是掌握其相关的设计与实现的基本思想和方法[11]。
此外,应鼓励学生参加各种程序设计竞赛,如:ACM程序设计大赛、中国大学生计算机设计大赛、全国大学生计算机博弈大赛等等,通过比赛展示自己计算机应用与创作才智,进一步提高自己解决实际问题的综合实践能力、创新创业能力和团队合作精神。
3 结语
加强编程语言课程群的管理,对课程群中各门课程教学内容进行总体规划和优化,精选编程案例、编程项目与实训项目,由浅入深、循序渐进地提高学生的编程能力。对于每一门编程语言课程,要加强教学的过程化管理,特别是实验教学的管理与考核。编程能力的培养应贯穿所有专业课程和专业活动,使学生在潜移默化中提高编程能力与软件工程素养。在第一门编程语言课程教学实践中,我们积极进行教学改革实践,表1是三学期“C语言程序设计”课程的成绩统计分析表,尽管这三个学期试题难度不全相同,对教师的评价指标也不完全一致,但从总的情况看,教学改革实践还是受到学生的欢迎和好评。
表1是第一门编程语言教学改革实践过程的情况分析,随着改革的进行,学生的满意度不断提高,采取了多种措施提高了学生的编程能力和软件工程素养。但全面提高编程能力,还需不断探索,采取改革编程语言课程群教学的综合措施。
参考文献:
[1] 张基温.计算机课程体系整合畅想[J].计算机教育,2014(8):59.
[2] Brian W. Kernighan, Dennis M. Ritchie. C程序设计语言(第2版・新版)[M].徐宝文, 等译.北京:机械工业出版社,2004.
[3] 罗先录,罗显松,胡韶峰,等.应用型本科计算机类专业程序设计课程体系建设研究[J], 工业和信息化教育. 2016(3):38-41.
[4] 吴元斌. 提高C语言初学者编程能力的几点措施[J]. 现代计算机,2015(1):13-15.
[5] B. A. Forouzan, R. F. Gilberg. C程序设计-软件工程环境(原书第3版)[M].黄林鹏 等, 译. 北京:机械工业出版社,2008.
[6] 梁勇(Liang Y. D.). Python语言程序设计[M]. 李娜 译.北京:机械工业出版社,2015.
[7] 沙行勉. 计算机科学导论: 以Python为舟[M]. 北京:清华大学出版社,2014.
[8] 嵩天,黄天羽,礼欣. Python 语言:程序设计课程教学改革的理想选择[J].《中国大学教学》, 2016(2):42-47.
[9] 郭小清,谢忠红.计算机专业程序设计类实验课程教学方法与考核方式探讨[J].高校实验室工作研究,2015(1):11-12.
篇4
摘要:针对Java语言实验课程的教学现状,本文探讨了该课程实验教学方面的改革。通过在课程中引入敏捷方法和自动单元测试,来激发学生的学习兴趣,提高学生的编程能力、沟通能力和团队合作能力,改善学生编写程序的质量。
关键词:Java;敏捷方法;结对编程
中图分类号:G642
文献标识码:A
1引言
Java自1995年由Sun公司正式推出,就迅速成为全球主流与应用广泛的开发语言,其跨平台的技术优势为网络计算带来了划时代的变革,从一种编程语言发展成为全球第一大领先开发平台。为了适用人才培养的需要,各高校纷纷开设了Java程序设计语言的课程,该语言也逐渐成为计算机科学与技术专业和软件工程专业学生需掌握的一门面向对象程序设计语言。我校软件工程专业培养方案中将该课程安排在“面向对象程序设计(C++)”之后开设,即二年级上学期。在实际的教学过程中,该课程教学大多仍沿用传统的教学模式,主要强调个体的动手实践,而忽视了沟通与交互,导致学生学习兴趣不高、理解不够深入、开发效率较低。且大多数同学习惯于编写“基本正确的程序”,而不是致力于编写“尽量正确的程序”,结果所编程序的质量不高。
敏捷方法首次提出来是在上世纪90年代后期,其目的是为了在需求和技术不断变化的过程中实现快速的软件开发。敏捷的价值观是:个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。敏捷方法强调应加强开发人员之间的交互,加强与客户的交互,注重有可工作的软件和完善、不过分的文档,积极、快速应对客户的需求变化,而不是回避。近年来,敏捷方法已经受到工业界和学术界的越来越多的关注。其中一些方法,如结对编程等已经被实践证明能有效提高软件设计质量,并应用于程序设计和软件开发等课程的教学过程中,取得良好的教学效果。
在分析Java语言课程的特点和学生的实践背景的基础上,针对该课程传统实验教学过程中的一些局限性,通
过引入敏捷方法和自动单元测试,来提高学生动手实践能力,取得了较好的教学效果。
2本课程特点
“Java语言程序设计”是软件工程专业的一门非常重要的专业选修课,主要讲授面向对象的Java语言程序设计及应用。在选修本课程之前,学生已经修过“面向对象程序设计(C++)”,具有C++的基本知识,并对面向对象思想有一定的了解。通过本课程的学习,学生能够在一定程度上掌握面向对象的思维方式,理解Java语言特有的一些属性,能够明白Java语言与其他面向对象编程语言的区别,使用Java语言有能力编写有实际意义的应用程序。但是在实际的教学过程中,学生学习兴趣不大,编程的质量不高。其主要原因有:
(1) 学生虽然已经学过C++,但是不够熟练,且对面向对象思想理解不深,在学习Java语言的初期有不少疑惑。如经常有同学提出“Java 到底有什么用?”,“我已经学了C++,为什么还要学Java?”以及“Java怎么感觉与C++有很大的不同?”等问题。如果不能及时解决学生的疑惑,将导致学生在随后的学习过程中缺乏兴趣,散失信心。因此在这个阶段,教师在实验教学中应通过比较Java与C++的异同来展示Java的基本语法和一些特性,使学生充分了解学习Java的必要性,从而激发学习兴趣。
(2) 在教学过程中,主要强调通过实例来展示Java的特性,并要求学生模仿实例来使用这些特性编写应用程序,但是忽略了程序的质量,甚至有些实例代码本身就不够严谨。因此学生所编写程序的质量很难得到保证。
(3) 学生独立性较强,不善于团队合作和沟通。在之前的程序设计等先修课程中主要是培养学生独立的逻辑思考和编程能力,而忽视了沟通、交互与团队合作。
从以往选修该课程的学生反馈来看,不少同学反映对Java语言掌握得不好,并且在今后两年的学习和实践过程中很少采用Java技术。然而这将导致学生在今后就业时失去不少机会。因此,在Java语言实验教学中,应该对教学内容和教学手段进行适当调整。通过引入结对编程这一敏捷方法和自动单元测试,来培养学生实际编程能力和沟通能力。
3实验教学改革及实施过程
通过分析Java语言课程的特点和敏捷方法的主要特征,在实验教学环节中引入敏捷方法有助于综合培养学生的编程能力、沟通能力和团队合作能力,改善学生所编写程序的质量。因此,首先,教师通过比较Java与C++的异同来展示Java的基本语法和一些特性,使学生充分了解学习Java的必要性,从而激发学习兴趣,加快入门过程。从中期开始,在实验教学中,教师要求学生以结对编程的形式完成实验,并全程指导如何有效地应用结对编程。在后期,教师介绍JUnit测试框架,并要求在实验中编写测试代码,从而进行自动单元测试。
具体实施包括以下三个环节:利用对比加快入门、引入结对编程和自动单元测试。
3.1利用对比加快入门
对比的目的是理解隐藏在程序语言背后的设计哲理,使我们知道对于一个问题的解决,为什么在此语言中是这样一种解决方案,而在彼语言中又是那样一种解决方案?这样思考会让我们更好地掌握编程语言的精髓。
通过与C++的对比,学生可以更好地理解Java的语法特点和设计原理,明白Java是如何做的,并进一步知道Java“为什么”这么做。通过对比性实验来学习,不仅效率很高,而且充满乐趣,加深学生对Java的理解。
在初期,教师并未引入结对编程,因为学生刚开始接触Java,对语言不熟悉,而且在此期间布置的实验题目较简单。如果匆忙要求学生采用结对编程,可能操之过急,无法体现其优越性。所以,在实验教学初期,要求学生独立完成实验,而且教师在实验过程中全程指导,纠正学生在使用Java编程时的一些不良习惯,帮助他们形成较好的编程风格。
3.2引入结对编程
结对编程是敏捷方法中最重要的实践之一。结对编程的通俗含义指的是两个程序员在同一台计算机上进行编程活动,一个同伴使用鼠标和键盘来编码,另一个同伴关注整体。基本上,所有的开发环节都一齐肩并肩地、平等地、互补地进行,它的核心在于两名成员紧密合作,时刻交流。采用结对编程进行合作的学生能更有效地交流,相互学习和传递经验;能提供更好的设计质量和代码质量;能训练更强的问题解决能力。同时,采取结对编程的学生更容易树立信心,从工作中获取更多的满足感。
从中期开始,教师在实验课上要求学生自由组成结对来完成实验内容。学生刚开始感到很新奇,并乐意组成结对来完成实验,但是在随后的实践过程中,教师发现了一些问题,并进行针对性的指导。
(1) 有些结对中一直固定由某个学生编码,而在旁的另一个学生虽然仍在关注,但注意力有些不集中。教师立即要求学生们根据实验中上机题来轮换角色,这样不至于使某个学生因长时间担任某一角色而出现疲惫状况或产生厌倦情绪,且使得学生们能得到全面锻炼的机会。
(2) 也有些结对中出现了一些指责和埋怨。教师应及时指出,在结对中,尽量不要用“你的设计有问题”或“这个错误是你引起的”之类的话语。结对成员应共同承担责任,不能相互指责,两人意见不同时,可以协商解决,双方应互相关心和体谅。
(3) 在个别结对中,某位同学总是处于强势,而他的搭档没有机会发表自己的意见。在这种情况下,教师应强调公平结对。即使一方比另一方更有经验,也不要让另一方感觉自己不重要。在结对中,每一方都有平等的机会,表达自己的观点,双方对代码的控制权是平等的。
此外,在刚开始引入结对编程的几周内,鼓励轮换结对。这样可以使学生有机会考虑性格融合和技术互补等因素来调整结对。
在实践过程中,有不少学生反映在实验室进行结对编程时效果较好,而课后缺乏合适的环境。针对这种情况,教师建议可以首先在同宿舍的同学中找到合适的搭档。另外,可以在学生的个人计算机中安装支持分布式协作开发的软件来支持分布式结对编程。比如,Eclipse通讯框架(Eclipse Communication Framework――ECF)可以作为Eclipse IDE的插件,给使用Eclipse的团队提供了实时通讯和协作特性。比如P2P(peer-to-peer)文件共享、远程打开Eclipse视图、屏幕截图共享、以及实时共享编辑。该框架还提供一套通讯API和框架,建立在已有协议(如Google Talk、XMPP、SSH、HTTP/HTTPS、Rendevous、IRC及其他协议)之上,使得开发者可以给自己的基于Equinox的插件增加通讯和消息传递功能,或者自定义及扩展ECF应用。组成结对的学生使用Eclipse IDE作为Java开发工具,且安装了ECF插件后,再配上Google Talk或Skype等即时通讯工具,就可以进行文字、语音以及视频通讯、屏幕截图共享、视图共享,更重要的是可以实时共享编辑,可以相互实时关注对方编程,并发表观点。
引入结对编程是为了培养学生的沟通能力和团队合作能力,让学生在沟通与合作中相互学习,共同进步,从而提高开发效率。从实验结果的质量和学生的反馈来看,结对编程的引入有利于编程效率的提高、代码质量的明显改进和培养学生的团队合作精神。
3.3引入自动单元测试
在Java语言实验教学实践中,许多学生在程序开发过程中忽视了程序质量。随着学习的深入,实验布置的编程题目越来越复杂,学生们所编写的程序中所暴露出来的质量问题也越来越严重。主要是由于他们对软件测试不够重视,没有针对实际问题设计出足够全面的测试用例,此外对软件测试的手段和技术了解很少,无法为有些代码设计相应的测试用例。
针对这一现象,可以通过让学生掌握基本的自动单元测试技术来改善程序质量。回归测试框架JUnit提供了基于API的自动测试方法,可以在测试代码中调用这个框架来进行断言检查,检查条件是否满足,并报告错误的数量和类型。在后期,教师在实验教学环节中介绍如何使用JUnit编写自动测试代码来进行自动单元测试。
通过引入自动单元测试,学生们在随后的实验中大多采用JUnit框架进行单元测试,代码质量较之前有了明显的提高。
4结束语
目前,在软件工程专业的“Java语言程序设计”课程实验教学中已经进行了上述的改革实践。通过利用对比学习Java,学生能较快地从C++编程过渡到Java编程,并逐渐对Java语言感兴趣。当引入结对编程之一敏捷方法后,学生普遍反映结对编程这一方式促进了同学之间的沟通与学习,激发了学习兴趣,提高了编程和团队合作能力。后期的实验教学中所引入的自动单元测试增强了学生们的程序质量意识,大大改善了代码的质量。
在实践过程也出现了一些个别现象,比如有极少数编程能力较强且个性较孤僻的同学不愿参与结对,而且认为自己独立开发效率应该更高。在今后的实验教学实践中,针对这些现象,将思考解决办法,进一步完善该改革方案。
参考文献:
[1] 邵奇峰,车战斌. Java课程教学方法探讨[J]. 计算机教育,2008(12):50-52.
[2]Robert C. Martin. Agile Software Development: Principles, Patterns, and Practices[M]. Pearson Education, Inc., 2003.
[3]Armour P. Agile and Offshore[J]. Communications of the ACM, 2007,50(1):13-16.
[4]Kim Man Lui, Keith C.C. Chan, John Teofil Nosek. The Effect of Pairs in Program Design Tasks[J]. IEEE Transactions on Software Engineering,2008,34(2):197-211.
[5]Jeffrey C. Carver, Lisa Henderson, Lulu He, et al. Increased Retention of Early Computer Science and Software Engineering Students using Pair Programming[C]//In Proceedings of 20th Conference on Software Engineering Education & Training (CSEET'07). Washington,DC,USA:IEEE Computer Society. 2007:115-122.
[6]Richard G. Epstein. Getting Students to Think About How Agile Processes can be Made More Secure[C]//In Proceedings of 21st Conference on Software Engineering Education & Training (CSEET'08). Washington,DC,USA:IEEE Computer Society. 2008:51-58.
[7] 俞辉. 计算机专业提高Java语言教学效果的探索与实践[J]. 计算机教育,2008(14):48-49.
[8] 刘竹松,李振坤,王文彦. 极限编程在计算机本科毕业设计中的应用[J]. 计算机教育,2007(7):25-27.
[9] 钟扬,刘业政,马向辉. 小团队结对编程实践研究和重构[J]. 计算机技术与发展,2007,17(11):160-163.
Exploration on the Experimental Teaching of Java Programming Course
CHEN Hao, MING Zhong
(College of Computer Science and Software Engineering, Shenzhen University, 518060 Shenzhen, China)
篇5
随着中国科技的发展,基于计算思维的C语言受到人们的广泛关注。C语言课程具有较强的实践性和操作性。在C语言教学中,实验教学对其具有非常重要的意义,对学生学习C语言起到了非常关键的作用。本文首先介绍了计算思维在创新人才中的作用以及C语言实验教学目前的现状,其次分析了C语言实验教学中存在的问题,最后从C语言教学培养目标、方法、教学内容、指导方法以及考核方式等方面提出了一系列改革的措施。这些改革措施的目的是为了培养学生的计算思维能力以及编程能力,使学生在今后的学习中能够更好的分析问题和解决问题。
关键词:
计算思维;C语言;实验教学;教学改革
一、引言
近年来,新兴技术发展过程中最具有代表性的是计算机科学技术。新技术主要通过先进的技术、方法等来进行发展和创新。计算思维又常常穿插在不同的学科当中。目前,大多数高校对于C语言的教学仍是以计算机工具的应用教育为主,其教学内容却忽视了对于学生的思维和能力的培养。这种教学方式不符合计算机科学的发展。因此,对于学校的C语言教学而言,学校应将以计算机技术教学为主的教学模式改革为以培养学生的计算思维能力和编程能力为主的教学方式。这样能够在很大程度上培养学生的科学素质,提高学生学习的积极性和主动性。
二、计算思维在创新人才中的作用
计算思维不应当只是计算机方面的专家的技能,而应当是每个人都应当掌握的一种基本技能。计算思维主要通过启发的方法来推理出问题的答案,采用抽象法和分解法来将复杂的任务或者系统简单化。总而言之,计算思维是运用计算机科学理论来解决问题、设计系统、理解人类的一些行为等具有科学性的思维活动。计算思维这种思维方式不仅对计算机学科有着很大的作用,也能够影响到其他的学科领域。对于生物学领域而言,生物学家通过计算思维的作用研究出了计算生物学。在化学领域方面,化学家主要通过计算思维中的纳米计算来进行问题的思考。在经济学领域方面,经济学家在分析过程中主要应用的是计算博弈理论。在物理领域方面,物理学家通过计算思维中的量子计算构建了物理模型。计算思维能力的培养在创新人才培养过程中起到了非常重要的作用,目的是为了进行计算科学的教育。计算思维不仅能够帮助其他学科有效地解决问题,还能够为人们提供一种有效的思维方式。在教学过程中,有效地培养学生的计算思维能力能够使学生更好地学习和理解专业知识,使学生拥有一定的创新思维能力,对学生以后的工作和个人的发展都有着非常大的影响。C语言教学的目的是为了培养学生解决问题的能力,使其拥有计算机技术和方法,有效提高学生的思维能力和编程能力。因此,C语言教学对学生来说具有着非常重要的作用,也能够辅导学生进行专业知识的学习和使用。
三、C语言实验教学的现状
对于计算机专业的学生而言,C语言具有一定的灵活性和逻辑性。学生需要通过较多的实践教学来更好地掌握C语言这门编程课程。因此,C语言的实践教学对于学生的学习起到了非常重要的作用。但是C语言目前的实验教学现状却不容乐观,主要体现在三个方面。第一,在课程内容的设计上,实践内容的设计主要是通过课本的理论知识来进行的。例如:数组、结构体以及题的设计都是单独应用。并且在实践课程上,题目的难度并没有增加,处于比较平稳的趋势。因此,如果学生的编程基础较好,那么实践课程对于学生来说并没有一定的挑战性。第二,对于教学方法和学生学习的主动性而言,传统的实验教学方式是教师在上课之前首先分析题目,其次学生进行实践,教师查看学生学习的过程并对学生加以辅导。最后教师对学生的实验结果进行登记。这种教学模式具有一定的单一性。学生对于C语言课程的入门较困难,并且有一部分学生比较害怕编程类的课程。另外,实践课程比较普通且教学方式比较单一。这使得学生对于实践课程不会有足够的重视,以至于在遇到问题时不能及时地进行思考和提问。这也导致有的学生会通过抄袭来应付实验结果。第三,在考核方式上,学生在操作完实验内容之后,教师通过运行结果来进行成绩的登记。如果学生没有完成,那么教师将无法登记。这样会直接影响到学生的成绩。另外,教师主要通过手工的方法来进行登记,这样不仅浪费时间,还降低了课堂效率,使教师不能够很好的进行教学。因此,在教学过程中,教师主要通过取平均成绩来进行学生成绩的登记。
四、C语言教学中存在的问题
第一,C语言教学无法做到学习致用。C语言是一门比较抽象的课程,并且具有较强的逻辑性,需要通过一种全新的思维方式来解决问题。学生在学习过程中很难入门,认为这门课程比较的枯燥。这将会在很大程度上降低学生学习的兴趣。大多数时候学生虽然能够按照课本上的内容进行操作,但是学生不能够真正理解C语言课程教学的意义。这也无法培养学生的思维能力、编程能力以及分析和解决问题的能力。因此,当遇到一些新问题或者和实际内容相关的问题时,学生不能够通过计算思维来分析问题和解决问题,也不会将所学到的内容运用到自己的专业上。这导致教师和学生认为C语言课程没有存在的必要性,也无法达到学习这门课程的目的。[1]第二,忽视了计算思维和编程能力的教学。在实验课堂,教师更多注重的是语法和语句的教学,而忽视了计算思维和编程能力的培养。在学习过程中,学生也只是注重语法和语句的结构的练习。这样学生在实践中只了解了语法和语句的格式,而无法提高自身的编程思想以及编程能力,甚至一些学生认为编程课程就是打字,只是将课本上的程序照搬到电脑上。因此,学生在遇到问题时,不能够运用计算思维,也不能够通过C语言来描述解决问题的过程。另外,C语言的语法和语句的学习过程太过乏味和单调。这导致学生没有了学习的兴趣。[2]第三,教学内容的设置不合理。实验教学主要通过C语言的语法规则来设置教学内容。教师主要通过验证型实验和设计型实验来加强学生对于语法和语句的理解,缺少一定的开放性和综合性。另外,对于不同的专业而言,实验教学课程并没有采用统一的大纲和要求。这使得实验教学脱离了专业本身,并不能很好地反映出各个专业之间的差别,也不能表现出C语言在不同专业当中的作用。因此,学习较好的学生则不能够得到更进一步的学习,也阻碍了学生对于C语言以及C语言在自身专业当中的更深层次的研究。[3]第四,考核方式的单一性和不实用性。目前,中国主要通过书面考试成绩来了解学生的优异程度。这种方式具有一定的单一性和封闭性。其中,实验成绩只占了很少的比例。但是在国外的许多国家,实验成绩以及课堂作业等占到了总成绩的百分之七十,而书面考试成绩只占到了百分之三十。这表明了国外更注重的是教育的过程以及学生能力的培养。因此,国外的这种考试制度应值得学习。[4]
五、实现C语言实验教学改革的措施
第一,明确培养的核心目标。目前,国内外各大高校都将计算思维作为最主要的研究对象之一。研究的目的是为了培养学生通过计算思维来分析和解决问题的能力。计算思维主要是指利用计算机科学的概念来解决问题、设计系统的一种思维活动。大多数学者都认为计算思维不应当只是科学家具备的一种能力,应该成为人们的一项基本技能。C语言课程的目的是为了培养学生利用计算思维来解决问题的能力。因此,学习C语言是培养学生计算思维的最好方法。各大高校主要通过培养学生的计算思维能力来进行人才的创新。因此,对于各个专业而言,计算思维能力将成为新时期创新人才不可或缺的素质。第二,注重计算思维和编程能力的培养。如果学生要通过计算思维来解决生活中的问题,就应当将生活中的问题转换为计算机能够解决的问题。因此,教师需要在教学过程中告诉学生如何通过计算思维来解决生活中的问题。对于C语言课程而言,学生在有了一定的思路和解决方法之后,只要将思路转化为C代码。因此,教师不应当只把教学的重点放在语法和语句上,而更应当注重学生的计算思维和编程能力的培养。这样学生才能够在生活中应用计算机思维来分析和解决问题。第三,改进实验教学内容。教师可以制订一套比较详细且规范的实验教学计划。这样不仅能够更好地使学生学习到理论知识,也能够拓展学生的知识面,培养学生的计算思维能力,发挥学生的特长,使实验具有一定的开放性。学生在学习C语言课程时应和自身的专业紧密结合。在设置题目时,教师应当考虑不同专业的差别,使题目能够和专业相联系,并且应当具有不同类别和不同层次的题目。例如:对于医学、外语类等专业的学生来说,题目的难度应当相对较低。而对于理工科的学生来说,其课程的要求较高。因此,教师可以适当的增加题目的数量和难度。对于成绩较优异的学生来说,教师也可以设置具有开放性的实验。第四,改革实验指导方法。学校应摒弃传统的以教师为主导的教学理念,通过启发式的教学方式来指导学生进行实验教学。第一,在学生遇到问题时,教师应引导学生分析出现错误的原因,使学生能够自行思考并得到解决问题的办法。这样学生能够更加深刻的理解实验内容,并且可以更好地掌握学到的知识。第二,在学习新的内容时,教师可以让学生用学到的知识点来思考问题。当学生在思考的过程中遇到问题时,教师可以提出应用新知识解决的方法。这样可以通过不断引入新知识来使所有的知识点具有一定的连贯性,也有利于学生接受新的知识点。第五,改革考核方式。学校应改变以往书面考试的单一性和封闭性,通过形成性教学来提高实验考核在考试中的百分比,更加注重学生的考核过程以及对学生能力的考核。另外,制定一套能够反映学生各方面能力的综合评估方法。大量的实验表明,如果考核比较注重学生的实验成绩以及考核的过程,那么能够在很大程度上使学生真正的掌握C语言课程的思想以及设计的理念,使学生可以运用计算思维来解决问题,培养学生的思维能力以及编程能力。而传统的考核方式虽然能够使学生获得一个很好的考试成绩,但是无法真正地理解这门课程,不能够获得运用计算思维来解决问题的能力。
六、结束语
综上所述,目前,学校对于计算机专业的应用型大学生的计算思维的培养应该给予高度的重视。基于计算思维的C语言实验教学课程能够在一定程度上培养学生的计算和编程能力,也能够为学生开拓一个较好的发展方向。对于C语言教学而言,学习当前的教学课程无法使C语言教学做到学以致用,忽视了计算思维和编程能力的培养,并且教学内容的设置不合理,对于学生的考核方式过于单一和不实用。因此,学校应能够通过明确培养的核心目标,注重计算思维和编程能力的培养,改进实验教学内容,改革考核方式等措施来实现基于计算思维的C语言教学实验改革。这样能够在一定程度上激发学生的学习兴趣,提高学生学习的积极性和主动性,能够在一定程度上提高学生的计算思维和编程能力。但是对于不同层次的学生的培养,还需要在以后的教学过程中进一步的进行研究。
作者:于丽 单位:新疆警察学院
参考文献:
[1]秦芳,李倩,李娟.基于计算思维的大学计算机基础课程改革探索[J].电脑迷,2016(07).
[2]葛欣,席景科,李政伟,刘厚泉.基于计算思维的程序设计课程教学体系的探讨[J].信息系统工程,2015(01).
篇6
关键词:公共基础课;教学改革;实践
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)16-0040-03
1研究背景及目标
目前高等院校教育教学的趋势是进入高等教育大众化阶段,对于培养应用性人才为目标的高校,计算机基础教育如何进行创新和改革,注重质量、特色,形成应用型学院的办学特色,体现高等教育在多样性基础上的个性,是需要我们认真研究和探讨的。
20年来,通过参加全国高校计算机基础研究会组织的学术研究研讨会,我们对计算机基础教育的认识也在不断加深认识,使我们对计算机基础教育的目的,非计算机专业和计算机专业的教学区别,大学生的计算机基础教育和社会培训的区别,非计算机专业的计算机教育教学课程体系的设置等问题都有了一定的认识和提高。3年来,我们通过不断地学习“CFC2004”、“CFC2006”和教指委“白皮书”精神,明确了突出培养学生应用能力、自主学习能力是计算机公共课程体系建设的目标,面向应用、学以致用是课程的教学目标,从而构建了适应我学院特点的突出应用的计算机公共基础课程体系。
2构建面向应用的计算机公共基础课程体系
“CFC2004和CFC2006”中给出了各类专业的计算机基础教育课程体系,我们按照“面向应用需要,采用多种模式,启发自主学习,重视实践环节,培养创新意识,树立团队精神”的教育理念,构建了适应我学院的面向应用的计算机公共课程结构及建设目标。
2.1公共课程结构
北京联合大学应用文理学院是一所文、理专业综合的一所应用型学院,针对我学院学生的特点,以及学院规定的一学年的计算机基础教育课时,我们按照学院对课程目标的要求,了解了个专业的需求设置了1+2的计算机公共课程结构。1是指“大学计算机基础”:,2是指根据专业需要设置第二学期的程序设计课程,分别为“Access数据库技术应用”、“Visual Basic程序设计”2类课程。针对以上三门课程,我们对如何突出应用性进行了探讨和研究,在近3年的教育教学改革中,构建了面向应用的计算机公共课程。
面向应用的计算机课程是指我们在课程的教学模式、教学方法、教学内容、教学手段等方面突出应用性。在教学模式上我们采用边讲边练的教学形式,以示例驱动教学内容,讲练结合地组织课堂教学,建设了实验操作练习库,提供实验拓展内容,以巩固学生基本操作技能、提高、促进创新实践和动手能力。对每一门课程设置了学生自选综合实验项目,学生在课程学习中根据综合实验项目的基本要求,设计并完成综合实验项目。例如,Access数据库技术应用课程,学生自选综合项目是做一个小型的数据库应用系统,以进一步拓展设计思维,培养创新意识,提高应用能力。建立了多元立体化教学和学习资源,在课堂上或通过网站可以获取化教学和学习资源。教学和学习资源包括课件、教学大纲、教学进度、通过邮件与教师交流、在线自测、实验操作练习库、综合实验项目要求和样例等学习资源。例如,学生浏览课件、下载实践练习素材,浏览综合实验基本要求等
2.2公共课程
三门课程的总体目标是掌握了解课程相关的理论知识,具有计算机基本操作能力,具有程序设计及基本应用的能力,具有编制一个小型的应用系统的能力,突出应用技能的培养。
1)“大学计算机基础”课程
(1) “大学计算机基础”课程基础理论教学由7个部分组成。
计算机基础知识操作系统的使用 Office办公应用软件的应用计算机网络应用及多媒体应用算法与数据结构基础程序设计与软件工程基础数据库设计基础。
(2)“大学计算机基础”课程基础实践教学由4个部分组成。
计算机基础知识(通过了解计算机系统的组成及功能,完成配置一台电脑的设计。)Windows XP基本操作能力 Office 应用网络应用。
2)“Access数据库应用”课程
(1) “Access数据库应用”课程基础理论教学由7个部分组成。
数据库基础知识数据库及表的基本操作创建和使用查询主要介绍查询的功能和用途,创建和使用查询的操作方法文创建和使用窗体创建和使用报表创建数据访问页和宏的应用VBA编程入门及模块。
(2) “Access数据库应用”课程基础实践教学由6个部分组成。
数据库及表的操作(学会创建、编辑数据库及表,建立设置表的关键字,设置表中字段的属性,建立表之间的关联。)查询的应用(学会创建各类查询,使用查询进行统计计算,运行查询。)窗体的应用(主要学会建立各种窗体,通过窗体控件事件运行宏。)报表的应用(主要学会建立不同的报表,在报表对数据进行计算。)数据访问页和宏的应用(学会创建数据访问页,创建宏、宏组,掌握宏的相关操作命令,运行宏。)VBA编程入门及模块的应用(学会VBA编程的基本方法,掌握程序设计的3种基本结构的设计方法,学会模块的应用,参数传递的实用方法等。)。
在课程结束之前完成一个小型的数据库应用系统综合实验项目。
3)“Visual Basic程序设计”课程
(1) “Visual Basic程序设计”课程基础理论教学由8个部分组成。
Visual Basic程序开发环境、对象及其操作Visual Basic程序设计基础数据的输入输出以及Visual Basic常用控件Visual Basic程序控制结构Visual Basic数组及过程 Visual Basic事件过程Visual Basic菜单、对话框、多重窗体等程序设计Visual Basic数据文件。
(2) “Visual Basic程序设计”课程基础实践教学由7个部分组成。
Visual Basic环境和程序设计初步Visual Basic程序设计基础及数据输入输出语句的应用常用标准控件的使用选择结构和循环结构程序设计数组及过程程序的设计界面设计程序的设计文件应用(掌握顺序文件和随机文件的打开、读写操作和关闭。掌握文件系统控件的使用。)。
在课程结束之前完成一个小型的应用系统综合实验项目。
2.3教学资源设计和建设
为提高计算机基础公共课程的教学效果,针对我学院学生的特点,近4年来,我们不仅对课堂教学形式进行了改革,同时构建了3门课程的教学和学习资源平台,利用两种局域网环境的辅助教学系统和学院计算机中心主页,提供了这3门课程多元化的教学和学习资源,主要包括:教材、课件、教学进度、习题与实验指导、试题库、教学实践素材和样张、综合实验项目要求和样例、网上自测练习、网上讨论及答疑、在线考试系统等教学学习资源。教学和学习资源的建设,扩展了课堂的教学和学习,提高了学生自主学习能力和操作应用技能。图1给出了教学学习资源展示图。
2.4面向应用的教学模式设计与实现
三门课程的教学模式设计主要是采用课堂教学、实践教学和网站提供的教学和学习资源平台、网站自测系统、邮件答疑等形式。课堂教学采用边讲边练结合的形式,学生通过对示例的操作,进行感性理解,进一步理解知识点和操作方法;通过实践教学练习,加强和巩固知识点的理解,提高操作及应用的技能;通过在教学过程中布置课程的综合实验项目,使学生利用所学知识和操作的能力,构思设计自己要创建的应用系统;学生通过课堂学习,通过在网上浏览资源平台的学习资料,通过自测系统自测所学知识和操作,通过邮件进行答疑解决知识点概念和操作等问题;这种教学模式体现了面向应用的理念,提高了学生对课程学习的收益,有利于培养学生的创新意识和设计能力,有利于培养学生自主学习能力,有利于提高学生应用技能。
2.5考试机制的改革和实现
在2005年我们将笔试和上机考试机制改革为在线考试系统(无纸化考试,理论和上机两部分),考试系统为B/S结构,可方便设定考试范围、难易度、各题分值,可自动判卷,及时给出成绩。大大解决教师阅卷和上机评判操作题的工作量,提高了考试的公正性和阅卷的准确性。考试机制改变后,我们为了突出应用能力的考查,将考核标准比例进行了调整,综合大作业设计和平时的实践练习成绩占40%,期末上机操作测试部分占30分,期末理论部分考查占30分。考试机制的改革,注重了学习过程,突出了学生综合能力的考核,得到了教师和学生的认可。
3改革效果
近几年在构建面向应用的计算机基础课程体系的教育教学改革中,有以下收获:
提高了教师对计算机基础课程目标的认识,加强了教师的执教能力,提高了教师的团队意识,提高了教师的科研水平和工作量。
统一了3门计算机公共课程的教学大纲、教学课件、教学进度、教学知识点复习题、上机操作实验指导等教学资料。
课堂教学采用边讲边练的形式,以示例驱动教学知识点和操作方法,提高了学生学习兴趣。
构建了3门课程的立体化教学和学习资源。在计算机中心网页和局域网辅助教学系统中提供了教学和学习资源;学生可以在家里、自由上机、电子阅览室等上网获取学习资料,并可以在局域网络辅助教学系统中进行自测练习,有利于提高学生自主学习的能力,提高了教学效果。在2005级学生的462份问卷调查中,313份认为课程学习内容有所收获,对教学效果认可率达到了67.7%。
注重课程教学过程,3门课程的综合作业设计为学生提供了创新和设计能力的空间,有利于提高学生的操作应用能力。
进行了考核机制的改革,实施在线考试,不仅考查知识点概念,同时测试操作技能。综合成绩的组成是(平时课堂练习+期中成绩+综合作业设计成绩+期末成绩),注重了学生的过程和综合能力的考核,加强了实践操作能力的培养和训练,注重了综合能力的提高。
在不断学习、探讨、研究和改革实践中,我们在构建突出应用的计算机公共基础教学课程体系上以上的体会和收获,我们将坚持面向应用的教育教学方向,进一步完善和发展计算机公共课程。
参考文献
篇7
C++语言是在C语言基础上发展而来的一门面向对象的高级语言。教无定法,教学有法。对于计算机专业大学生的C++程序设计语言教学方法,必须结合当前大学生基础和实际情况,进行教学方法改革和教学模式创新,提高教学质量和效果,使得计算机专业大学生不但能够掌握面向对象的理论知识,而且具有一定的可视化编程与调试能力,实现理论与实践相结合,达到工程应用型的实用人才水平。如何在有限的学时内使得大学生能够找到科学的创新学习方法[4],尽快掌握C++语言基本理论和具备编程能力,是每位任课教师都需要面临的难题。
二、教学模式创新
为了培养面向工程应用的C++程序设计人才,在知识、能力、应用、创新等各方面全面培养大学生,本文提出“双主互动为纲、两个创新、两个学习、两个支持、四个课堂”的教学模式,使得学生能够达到掌握理论知识和具备编程能力的工程应用水平。教学模式创新的基本框架如图1所示。
本课题组的教学模式采用双主互动教学为纲,即基于师生互动的教师主导学习和学生自主学习。两个创新是指对教学内容和教学方法分别进行创新。教学内容创新是指教师对教学内容进行梳理分解,突出重点,并及时将新内容、新科研成果、新概念、新技术等内容补充进来,改善课程知识结构,以适应社会对计算机编程人才的需求。教学方法创新是指采用互动式、全方位的教学方法,进行理论与实践相结合、教学与科研相结合、课内与课外相结合。两个学习是指将学生分成多个小组进行讨论学习、对C++的开发环境进行学习,使得学生面向学以致用的培养环境。两个支持是指教师要采用各种手段和方法对学生的学习进行指导支持,包括面授支持、电话支持、e-mail和QQ等网络支持。四个课堂是指理论教学课堂、上机实践课堂、课程设计课堂和其它课余时间的课堂。
三、采用自然语言启发式教学方法,提高学生理解能力
C++语言是一门计算机程序设计语言。C++语言教材从前到后系统性特别强,前后章节之间环环相扣,联系紧密。由于面向对象的很多新的概念比较抽象,如果教师在教学中仅仅把教材上的语法知识照本宣科地讲给学生听,会导致下面大部分学生听不懂,学生会很容易感到枯燥乏味和厌倦疲劳,从而产生排斥和厌学情绪。这种抵抗情绪一旦从开始就产生,则将影响后续整个学期的教学效果。由于从头到尾都听不懂,老师在课堂上提出的问题学生也无法进行互动,这种灌输式的教学方法效果非常差。而教师要根据课堂实际情况,采用互动式教学方法,培养学生的主动学习能力,才能得到良好的教学效果。
1.第一次课程教学中,明确C++语言课程的重要性
目前C++语言是大多数电子、信息、计算机相关专业的非常重要的程序设计课程,也是这些大学生后续专业课学习、毕业设计、以后上研究生或参加工作进行计算机软件和IT开发的主要编程语言,广泛应用于软件设计和开发中。要让大学生有危机意识,在大学生就业如此严峻的情况下,学好C++语言,能够提高大学生以后在就业竞争中的筹码。
2.讲课过程中,对C++语言中的很多概念,结合自然语言进行讲解
C++语言作为一门计算机语言,它和人类的自然语言相比,既有区别,又有联系。在讲解一些关键概念时,采用一些浅显的自然语言的例子,提高学生的理解能力。本文作者在讲述一些关键概念时,将这些概念和自然语言结合进行循序渐进启发式讲解,激发学生的学习兴趣,起到了非常好的效果。下面举几个例子。
(1)引用是C++语言中第一个新的概念。引用类似于自然语言中的别名或者绰号,是正名的别名,没有正名就没有别名。例如唐太宗就是李世民的引用。李世民是正名,唐太宗是别名。正名和别名属于一个变量,共用同一片内存空间。引用主要用作函数的参数传递,形实结合后不会产生临时的变量,节省了内存空间
(2)类和对象是C++语言区别于C语言中普通数据类型和变量的概念。类是具有相同属性和行为的一组对象的集合,它为属于这个类的所有对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。类和对象的关系就像模具和铸件的关系一样,类就相当于模具,对象就相当于铸件。一个模具可以生产出成千上万个铸件。
(3)友元是C++语言中另一个新的概念。在数据共享与保护中,友元类似于自然语言中的朋友,但是友元和自然语言中的朋友既有联系又有区别。人类的朋友关系通常是双向的、可以传递的,但是C++中的友元关系是单向的、不能传递的。
3.引导学生合理安排课程的学习时间,培养学生的学习兴趣
教师可以把学生分成若干个小组并布置一些编程作业,培养他们的团队协作意识,并共享小组编程成果,使得他们对自己编制的程序能够运行和产生正确的结果具有自豪感,提高学生的学习兴趣。由每一个小组各自给全班同学讲授和演示自己的算法、编程思路、运行结果,既能够锻炼学生的编程与演讲能力,又能够在课堂中产生良好的互动。
4.讲课过程中尽量做到幽默风趣,灵活运用教学手段
教师在上课时,要做到风趣幽默、声音洪亮、带人真诚、平易近人、知识渊博、通俗易懂,才能产生良好的教学效果。教师要灵活运用多种教学手段,尽量采用多媒体教学,在PPT幻灯片中多做一些动画效果,或者以Flas演示程序的动态运行过程。教师在C++语言教学过程中要根据课堂中学生的反应,随机应变,结合我国传统文化与最新国内外时事,让学生潜移默化地学习一些难以理解的语法,则能达到事半功倍的效果。
四、对一些难以区分的概念采用表格形式进行对比和总结
C++语言是在C语言基础上发展起来的面向对象的高级语言,全面兼容C,但是又增加了很多新的较为复杂的语法知识点。对于一些学生难以理解和掌握的语法知识点,如果教师不帮助学生及时进行总结和举一反三,按照大学生初学的水平很难真正达到掌握和编程应用的水平。因此,教师可以在讲完某些知识点后采用表格的形式进行对比和总结。例如,C++中引用和指针的区别总结表,普通指针、指向常量的指针和常指针三种指针所指向的内容和指针本身能否改变对比总结表,对基类中具有不同访问属性的成员经过不同方式继承后在派生类中的访问权限的比较和总结表,运算符重载时重载为类的成员函数和友元函数、前置、后置自增、自减运算符参数个数总结表。
五、熟悉Visual C++编程环境,具备图形界面编程能力
目前,Visual C++ 6.0是比较经典的开发环境。即使掌握了C++基础知识,仍然难以高效掌握使用Visual C++的编译器。为了培养实用型软件开发人才,教师还应该进行Visual C++编译器的入门教学,培养学生掌握如下知识:
1.能够使用Visual C++开发环境进行界面设计;
2.能够创建简单的基于MFC的应用程序;
3.能够使用类、函数和消息映射机制;
4.能够利用开发环境有效创建对话框、按钮和菜单等资源。
当然,对于Visual C++的学习,一本好的教材也至关重要,现在的书店和图书馆各种Visual C++的学习教材五花八门,不泛互相抄袭、错误百出、误人子弟的教材。如何从这些书籍的海洋中找到合适的入门教材,对于作为初学者的大学生来说有点难为他们。本文作者也买过不少Visual C++学习的书籍,其中不少书就没有任何学习价值,既浪费钱,又浪费时间。作为教师,有责任和义务为学生挑选一本优秀的、很容易入门的教材。本文作者和周围很多从事Visual C++语言开发的朋友们都认为Jon Bates主编的《实用Visual C++ 6.0教程》是一本非常不错的教材。本人在每个学期给学生教学时,都会将这本教材的电子版发给同学们,而且从他们的反馈来说,效果确实不错。
六、理论与实践相结合,提高程序编程与调试能力
理论必须与实践相结合,才能得到验证,否则只是纸上谈兵。作为一门计算机语言,C++程序设计的实践性操作特点决定了上机实践是课程学习中的重要环节。授之以鱼,不如授之以渔。帮助学生编程序或调试程序,不如教会学生编程序或调试程序。因此,在教学中,教师可以从如下几个方面进行考虑:
1.上课时教师提前给同学们将上机编译器环境、各种单步调试、断点调试的方法传授给学生,并布置好上机操作的题目,这样学生在上机前就会有充分的准备,做到有的放矢。
2.针对性地给学生布置一些具有趣味性的程序设计题目,让学生通过查资料、上网和请教老师等多种方式编程调试,培养学生解决问题的能力,让学生感到有成就感,提高学生的学习兴趣。
3.对学生的上机存在的问题进行总结,对于一些普遍存在的问题要在课堂上统一进行讲解。并且也要对对自己的教学方法和教学模式进行实时总结和改进,形成闭环。
按照本文作者研究的教学方法,经过一个学期的理论教学与上机实践学习,在学期期末考试前的一个月对2010级计算机科学与技术专业1班全班52个学生划分为13个小组布置了课程设计项目。每4人一个小组,由每个小组自己推选出1个组长、1个副组长和组员。组长负责课程设计项目的总体实施和分工,副组长协助,组员配合。课程设计的考核是每个小组交一份打印课程设计报告,包括项目题目、小组成员、程序设计结构、流程图、源程序、实验运行结果。每个小组推举一名学生在讲台上进行10分钟的PPT演讲,老师和学生进行5分钟左右的提问。考核成绩是由老师根据课程设计报告、演讲PPT内容、回答问题效果等项目进行打分。经过一个学期的C++理论学习和一个月的课程设计,全部小组都按时递交了课程设计报告和进行了汇报演讲,其中不少学生讲的非常精彩,这对于他们也是一种不可多得的实战锻炼。学生普遍反映通过理论与实践结合的学习开阔了视野,提高了工程应用能力,培养了团队协作能力,增强了学习信心,达到了前所未有的良好效果。
七、结论
本文作者根据多年来的教学体会,提出将满堂灌式的教学方法转变为以学生为主体、以活跃式课堂为形式、以课程实际相结合的多模式创新教学方法,真正实现教师为主导、学生为主体的互动式高效教学创新模式。
参考文献:
[1]郑莉. C++语言程序设计[M].北京:清华大学出版社,2010.
[2]钱能. C++程序设计教程[M].北京:清华大学出版社,2009.
[3]谭浩强. C++面向对象程序设计[M].北京:清华大学出版社,2006.
[4]王卫军.教师信息化教学能力发展策略研究述[J].电化教育研究,2012, 229(5):103-109.
篇8
关键词关键词:VB程序设计;中职院校;教学策略
中图分类号:G433文献标识码:A 文章编号:16727800(2014)002019102
0引言
《VB程序设计》是编程效率最高的一种编程方法,实用性非常强,在计算机技术迅速发展的今天,VB程序设计已成为中职计算机和电信等相关专业学生必须掌握的知识和技能,但学生对这门课的普遍感觉是学起来难,不容易掌握。那么,到底难在哪里呢?笔者试图找出原因,并提出解决对策。
1《VB程序设计》学习现状及难点
1.1学习兴趣缺乏,影响学习效果
中职生在计算机课程的学习积累中,所学的仅是《计算机应用基础》这样的课程,程序设计是第一次接触。首先VB程序设计与之前的计算机课程相比有很大的区别,其逻辑性、抽象性、系统性更强;其次很多学生对该课程不了解,认为程序设计课程枯燥乏味,一开始就缺乏学习热情,加之在学习过程中知识的难度不断加大,久而久之就失去了学习的兴趣;另外教材选择偏难,不符合中职生学习基础状况,很大程度上影响了学习兴趣和学习效果。
1.2英语基础不扎实,学习费时费力
VB程序设计中的控件及相应的属性和代码设计中用到了大量的英语词汇,而很多学生英语基础不好,加之又不愿意去记忆,就会觉得《VB程序设计》学起来很费力。
1.3课程入门有难度,概念理解有困难
VB程序设计中引入了很多新的概念,如控件、对象、事件、方法和属性,在没有任何知识背景的情况下,要完全理解这些概念比较困难,学生因此普遍觉得《VB程序设计》学习入门难,即便在学了一段时间之后,还是不能很好地掌握这些基本概念。
1.4编程理念难理解,知识应用欠缺
对于中职学生来说,一般都是初次接触程序设计的思维方式和概念,加之理解和接受能力的限制,学习起来有一定的困难。由于缺乏抽象能力以及良好的编程习惯,要解决一道实际问题非常困难。有的学生能把基本概念掌握得很好,但是对于知识的灵活应用仍很欠缺。
2VB程序设计教学策略
2.1努力培养学生学习兴趣
俗话说:兴趣是最好的老师,有兴趣才会有学习的动力,因此必须培养学生学习VB程序设计的兴趣。首先应抓住VB可视化的特点,选择有趣实用的例子,激起学生学习的兴趣。比如在上第一节课的时候,笔者给学生演示了VB中用于显示系统时间的实例,当学生看到时间显示在屏幕上,并且每秒都在变化时,非常感兴趣,就很想知道是如何做到的。这时候可以演示程序的设计过程,即只需在窗体中添加两个Label控件和一个Timer控件,进行相应的属性设置和代码设置就可以了。这样直观的演示,让学生感觉学习VB程序设计是一件有趣而简单的事情。与此同时,笔者向学生介绍VB程序设计的特点,即可视化的编程特点,以及VB程序设计应用的广泛性,鼓励学生树立学好它的决心和信心。
2.2运用适当的教学方法
VB程序设计教材多采用“学中用”的教学方法,其重点往往局限于语言本身,讲解语法、命令、控件等内容,结果通常是:学生能非常熟练地掌握VB语言本身,却不知道运用之法。因此,笔者按“用中学”的思路展开教学活动,将知识点融入实例开发中。学生总是能较容易地接受一些直观的东西,所以在讲解一些抽象概念时,笔者充分利用多媒体教学工具的辅助,把抽象的概念形象化,便于学生理解掌握,例如把存储空间形象化为一间间连着的教室。通过一些简单的实例,让学生观看、模仿,在实际操作中慢慢探究和领悟这些抽象的概念,并适时地加以归纳总结,使学生较轻松地接受新知识。同时在反复的实例编写练习中,让学生熟悉程序设计流程,以及所涉控件的属性、代码设计等,有些概念、知识点不需要死记硬背,引导学生在实际应用中灵活掌握即可。
2.3由简到难,逐步累积
学习程序设计是一个逐步积累的过程,在教学过程中,要注意分散难点、合理选材,为学生建立科学的学习顺序,并注意适时、适量、学以致用,逐步渗透相关的知识、思想和方法。特别是对于较难的知识点,一定要注意由易到难地学习。如在介绍条件判断语句时,通过实例,先让学生掌握“If…Then…Else”语句的使用,然后介绍If语句的嵌套形式“If…Then…ElseIf…EndIf”语句的使用,最后介绍多重分支语句“Select Case”,对这3种条件判断语句作总结和比较。这样循序渐进的学习过程,容易让学生接受,对知识的掌握也更牢固。
2.4多动手,举一反三
2.5课程设计注重知识的融会贯通
在一个学期的学习过程中,学生对VB的基本概念、基础知识和基本操作有了一定的掌握,每个阶段知识点的实践操作对学习有着很好的巩固和提高作用,但对于VB的综合应用在每个章节中往往体现不够,而且实践指导书上类似的题目也比较少。对于计算机专业的学生来说,熟练掌握VB的综合运用显得尤为重要,因此课程设计要在知识点的综合、灵活运用方面起到较好的促进作用,课程设计中要注重学生对知识的灵活运用,要教会学生学习的方法,培养学生思考、分析、解决问题的能力,以及在问题解决过程中的创新精神。
3结语
虽然在《VB程序设计》教学过程中有这样那样的问题,但是只要找到问题的根源,采取符合学生认知规律的、科学的教学方法,就会提高教学效率,取得事半功倍的效果。
参考文献:
[1]刘世峰.Visual Basic程序设计[M].北京:中央广播电视大学出版社,2006.
篇9
关键词:VB程序设计;能力培养;教学改革与实践;互动教学;案例教学
Reform and practice of the VB programming guided by ability training
Chen Sijia
Shandong institute of bussines and technology, Yantai, 264005, China
Abstract: As one of the computer foundation courses, VB programming is designed to develop computer application ability for the Non-computer science students in college. By analyzing the teaching status quo of VB programming, this paper proposes to the teaching reform guided by ability training, and introduced the corresponding reform measures and its practice and effect.
Key words: VB programming; ability training; teaching reform and practice; interactive teaching; case teaching
随着高等教育大众化趋势的深入发展,人才竞争日趋激烈。同时,计算机的普及度越来越高,各行各业都需要具有较高信息素养的复合型、应用型人才,高校计算机基础教育在培养过程中占据了越来越重要的地位。非计算机专业学生仅仅具有最基本的计算机应用能力已不能适应社会发展需要,还应具有更深层次的计算机知识和技能,以及将来在各专业领域中应用计算机解决实际问题的意识和能力。VB程序设计课程正是在这一思想指导下所开设的非计算机专业学生的公共基础课程,课程核心内容在于介绍面向对象程序设计的基本理论,以及如何应用VB进行基于Windows环境下一般应用程序的开发与设计。因此,为了让这门课程在我校应用型人才培养中起到应有的作用,对其进行以能力培养为导向的课程改革势在必行。
1 VB程序设计课程教学现状分析
1.1 VB程序设计课程的特点
VB是面向对象的程序设计语言,它采用面向对象的程序设计方法,使用窗体和控件设计应用程序界面,采用事件驱动的编程机制。VB程序设计语言具有好学易上手、界面友好等特点,对于未学过计算机专业课程的学生而言,很适合作为程序设计的入门教学语言。因此,VB程序设计是目前高等院校普遍开设的计算机基础课程。学生通过学习这门课程,掌握程序设计语言的基本规则、常用算法,学会面向对象的、可视化界面的程序设计方法,并了解使用VB程序设计语言开发应用软件的过程,从而为今后的深入学习或自学其他程序设计语言打下坚实基础。
作为一门面向非计算机专业学生的计算机基础课程,VB程序设计课程具有如下特点:
(1)非计算机专业学生缺乏必要的程序设计背景知识,但VB却易学易懂,入门较快;
(2)概念多、理论多、涉及内容多,系统性不强;
(3)课程实践性强,实践教学的效果决定了这门课程的成败;
(4)后期编程对学生基础要求高,非计算机专业学生的基础相对薄弱、理解能力不够强。
1.2 教学现状及存在的问题
我校已开设VB程序设计课程多年,但是学生学习的效果却不理想。目前的VB课程教学,重点放在了对语句、语法和一些细节的讲解;同时国家计算机等级考试也强调语法的重要性,导致学生花费大量的精力去学习语法,对上机操作严重缺乏兴趣,忽视了程序设计课程中实践的重要性。尽管学生可以通过死记硬背来应付各种考试,甚至取得很高的分数,可他们却编不出一个简单实用的程序,也不知怎样运用所学编程知识去解决实际问题。为了改善VB程序设计课程的教学效果,我们对教师和学生进行了访谈和问卷调查,发现了课程教学和学生学习过程中的一些问题:
(1)大部分VB程序设计教材和课程讲授中对所有问题都阐述得很全面,但对一些重点问题的描述却没有足够的深度,缺少对学生程序设计基本方法的训练和解决编程问题基本思路的引导。
(2)教学中只是单一地采用“知识灌输”式的举例教学法,而不是采用“以学生为中心,以教师为主导”的“案例+启发”式教学法,统一的教学内容和实例没有和学生专业紧密结合,造成学生对课程逐渐失去兴趣。
(3)学时分配不够合理,理论课学时远大于实验课学时,对于强调实践重要性的程序设计课程而言,造成的后果是大部分学生对实验课不感兴趣,而且编程及实际应用能力较差。
(4)缺少课程设计环节,缺乏知识的整体应用和实际工程项目的开发训练。学生学完本课程后,无法理解和掌握开发一个完整、系统的计算机应用软件的方法,使得学生对知识点的学习支离破碎,不成体系,容易遗忘。
(5)学生可利用的互动教学资源不完善,不利于学生课后自学习惯的培养。同时缺乏科学合理的考核机制,学生的学习过程和课后学习情况无法考核,不能全面体现学生的真实学习情况。
2 教学改革措施与实践
针对VB程序设计语言教学的特点和以往教学中存在的问题,为提高课程的教学质量及培养学生的计算机应用能力,课程组教师在多年的教学过程中,一直在不断地进行教学改革和实践,主要有如下一些措施和手段。
2.1 教学过程互动化
大多数高校的VB语言都采用 “集中授课+实验辅导”的教学方式,先在多媒体教室中讲授理论课知识,然后针对所讲授的内容布置实验作业;实验课时由教师辅导学生上机编程完成实验作业,前一次理论课是后一次实验课的基础。在这种教学方式下,VB程序设计课程设置普遍存在理论课学时大于实验课学时的问题,导致教师讲得多,学生练得少,学生缺乏动手能力,不利于编程素养的培养。同时,多媒体教学这种“计算机+大屏幕”教学模式知识容量大,虽然节省了教学时间,提高了教学效率,但有些教师上课时照“片”宣科,没有师生互动,课堂气氛十分沉闷。教师上课单纯依赖于电子教案,使得授课方法单一,达不到预期效果,没有发挥出多媒体教学的优势。
因此,本课程从传统的“多媒体教室+实验室”教学转变为在互动教室完成整个教学过程的教学模式;变传统的“教师讲+学生听”为“教师讲+学生听+学生练”相结合的互动教学模式;变教师主控为以学生为中心、教师为主导的模式,缩短了学生从教师所讲内容再到动手实践的过程,学生上手快,通过实践更容易理解教师所讲授的理论知识。
2.2 教学内容案例化
非计算机专业学生的编程基础薄弱,对一些计算机编程的专业术语理解起来有困难,而讲授法是一种单向的信息传递,教师讲述知识,学生被动接受,很容易使学生产生厌学情绪。虽然讲授法可以让学生很快接受VB语言的基本概念、语法结构等基础知识,但是却无法较好地提高学生的实际动手能力,更加无法培养学生提出问题、分析问题、解决问题的能力。因此VB程序设计课程的教学模式必须从“教为主”向“学为主”转变,让学生主动发现问题、分析问题,并逐步学会解决问题。
案例教学是一种互动式启发教学方法,旨在培养学生分析问题和解决问题的能力。对于非计算机专业学生的VB程序设计课程教学中,使用案例教学应注意以下问题:
(1)教学案例的选取和设计要与学生的专业背景和生活结合起来。
(2)应以激发学生求知欲望,提高学生分析、解决问题的能力为根本出发点。
为使教学案例能够充分发挥其功能,取得良好的教学效果,笔者在教学过程中做了一些有益的尝试,取得了一些经验:首先,教师要根据教学内容精心设计案例,案例应目标明确并兼顾知识系统性,在整个教学过程中让主线案例贯穿始终;其次,案例的选取和设计要以激发学生的学习主动性为主,具备趣味性和实用性,结合学生实际,培养学生兴趣,使学生能够深入地参与到教学活动中;最后,案例还要有针对性和关联性,既能够针对当前所讲的知识点,又能够复习巩固以往知识点及关联今后将要学习的知识点,起到承前启后的作用。
在非计算机专业学生的教学过程中,应把培养学生兴趣放在首位,将教学内容以案例的形式呈现,不仅能够使学生更容易理解,还可以很好地将学生生活和所学专业知识与VB教学结合起来,强调了学生在学习过程中的主体地位,提高了学生学习的主动性和探索性。新的培养模式自采用以来,教学效果有了很大改善,很多同学反映这样上课很有意思,并且对编程产生了更大的兴趣。
2.3 实践教学自主化
VB程序设计语言的学习过程是一个循序渐进的过程,光靠课堂的时间和教师的辅导是远远不够的,学生需要在课下多练习、多实践、多讨论,为了提升学生学习兴趣,变学生的被动学习为主动学习,对其进行了以班级为单位的学习小组划分,方便学生之间互相学习和督促。
学习小组的分组原则为以宿舍相邻为依据,方便成员沟通与交流,3~5人一组,每组设一名组长。组长的职责是:督促本小组成员积极主动完成作业;辅助教师记录小组成员出勤情况;带领小组成员顺利完成本课程的学习。同时,对表现优异的组长可以给予适当加分的奖励。小组组长的选取是很重要的,在分组前用2~3周观察学生,要选取学习态度端正且进步较快的学生作为小组组长。分组以后,实验课上学生以小组为单位坐到一起,遇到问题时可以小组内讨论。学生之间更容易交流,他们知道自己的问题在哪儿,怎么讲更容易让对方听明白,能快速解决疑难问题。分组讨论使得学生在互相讲授的同时,也巩固了自己所学的知识。
进行分组以后,也为后期的课程设计环节做好了准备。以学习小组为基础,各小组自选题目,组长负责组织与分工,成员之间互相协作,使得课程设计环节能够顺利地完成,并取得较好的项目实训效果,有利于培养学生的团队协作精神。学习小组大大促动了学生学习的动力,VB学习也变成立体化的形式,学生不仅在课堂上学,课下还进行讨论和自学,收到较好效果。
2.4 教学资源多样化
VB程序设计的实践教学环节非常重要,实验教学效果决定整门课程的成败,而实验的关键又在于实验教学资源。学生光靠课堂的时间来实际操作编程是远远不够的,在课下要进行大量的个人练习,如何给学生提供课后习题、参考资料等资源,是非常重要的问题。笔者先后以ftp、网站、空间3种方式提供资料,3种方式各有优缺点:ftp提供了方便地上传下载功能,学生可以很方便地获取自己想要的资料,也有利于学生在课下主动完成作业,但是难以动态掌握学生课后情况,只能看是否提交过作业;网站可以提供比较全面的资源列表,但是网站只能统计点击率,无法和学生实现实时交互;空间在交互和点击率上做得很好,但资料需要借助ftp和邮箱进行传递。因此,本课程采用了3种方式结合的方式,即用ftp提供作业空间和大型资源下载,用网站提供参考资料,用QQ空间实现和学生的实时在线交互,动态反映整个教学过程,受到学生的一致好评。图1为我校VB程序设计课程网站,图2为笔者正在使用的QQ空间。
2.5 考核方式合理化
教学内容及教学方法的改革必然会牵动教学效果测量手段的改革。当前高校对程序设计类课程的学习效果大部分都是通过笔试的方式来测量。这种方式偶然性大,无法考核学生的整个学习过程,学生大多忽视平时的学习,认为考试之前熬通宵也能考高分。同时笔试的形式也使学生不重视VB的实践操作,学完本课程后,依然无法真正运用VB去解决实际问题,使得本课程在学生心目中的印象大打折扣,觉得这门课程学了也是白学,间接影响到新生对这门课程的学习态度。以能力培养为导向的VB程序设计课程教学,不仅要在教学方法、 教学手段上进行探索,还需要在课程考核和成绩评价上进行积极探索,建立以学生为本的科学的教学评价体系,激励学生学习基本知识,并将
(下转页)
(上接页)
知识应用于实践。
教师在教学过程中发现,只注重学生最后期末考试成绩,并不能够完全考察学生的真实学习水平和能力,重视教学过程的考核,更能够体现学生的真实学习情况,而且还能够持续激发学生的学习兴趣,因此我们提出了期末考试改笔试为机试,以期末考试成绩为主、过程考核为辅、竞赛获奖加分的激励考核方法,提出了6+2+2+X的考核比例,即期末机试成绩占总成绩60%,平时实践作业完成情况、出勤率和课堂表现情况占20%,课程设计占20%,竞赛获奖单独加分的考核形式。在教学实践中,这种考核方式既关注学生的学习成效,同时也对学生的日常学习进行了考核,加强了教学过程的考核,取得了较好的效果。特别是期末考试采用上机考试的形式以后,学生在实验课程中的学习态度有了很大改进,并且课下还利用业余时间到实验室调试程序,对培养学生的计算机应用能力起到了非常积极的作用。
3 结束语
经过课程组所有教师的共同努力,本文所提出的改革措施和手段陆续在课程教学过程中得以实践,都取得了较好的教学效果,特别是提升了非计算机专业学生学习这门课程的兴趣,对学生考取计算机等级考试资格证书也起到了辅助作用,在学校培养应用型人才的教学目标下,本课程建设也取得了长足的进步。
参考文献
[1] 苑永波.信息化教学模式与传统教学模式的比较[J].中国电化教育,2001(8):25-27.
[2] 冯烟利.Visual Basic程序设计教程[M].北京:清华大学出版社,2011.
篇10
关键词:C语言程序设计 民办高校 实践能力 实验教学改革
中图分类号:G642 文献标识码:B DOI:10.3969/j.issn.1672-8181.2013.19.128
C语言因为具有良好的计算机硬件编程能力,能够编写系统软件和应用程序,有着广泛的应用领域[1]。C语言还是数据结构、数据库等课程的先修课程,也是国家计算机二级考试的科目之一。因此,很多院校都把C语言作为程序设计的入门课程。相比于传统的研究性大学,民办高校更注重自身办学特色[2]。我校的办学理念是“走进校园的目的是为了更好地走上社会”。具体到C语言这门课,就是要更加注重学生动手实践能力和实验教学,着力推进应用型C语言实验教学改革。具体有以下几个方面。
1 实验教学改革方法
我校C语言实验教学改革的目标是:通过C语言实验教学的改革,培养出具有综合分析和解决问题的能力、熟练的编程调试能力、持续的自学能力的应用型人才。需解决三个关键性问题:一是实验指导书的编制;二是实验教学和培养方式的改革方法和手段;三是实验教学全过程规范制度的建立。具体实施方法如下。
1.1 C语言实训指导书的整理编制
结合我校育人理念和计算机类学生的特点,针对性地编写相关实验内容。实训指导书分为三个部分:实训总要求、实训模块和项目拓展实例。第一部分为实训总要求,目的是让学生编写规范的代码,从开始程序设计就进行规范练习,为以后工作打下良好的基础。第二部分为实训模块,有三个:①基础部分,为随堂实训;②深化部分,为综合实训;③课程设计,为期末的课程设计,是对整个内容的一个综合设计,可以使学生从软件开发的角度开始思考问题、解决问题。第三部分为案例拓展实例:学生成绩管理系统。本书具有基础性、实用性和系统性,可以指导学生按照从浅入深,从低到高的训练过程,逐步提高他们的编程和动手能力。
1.2 实验教学和培养方式的改革
改变实验教学方法,启发学生思考,引导学生成为学习主体。具体体现在:①课前针对性提问,促使学生应用所学理论知识积极思考,并通过实验来验证解决;②少讲多练,开头5-10分钟讲述实验内容和重点,中间大段时间留给学生操作,最后5分钟时间实验总结;③注意学生操作过程中的实际效果,学生如遇问题并不直接告知答案,而是引导学生自己分析,养成独立思考解决问题的习惯。相比于传统教学方法,启发式教学,引导学生成为学习主体,更能激发学生的学习兴趣[3]。
1.3 对实验教学规范制度建立的探索
为了保证实验教学达到最佳效果,针对部分学生学习主动性差和缺乏持续学习动力的特点[4],一定要进行严格的考勤制度和每次实验现场的考评,加大实验表现在最终期末成绩中所占的比重。规定实验课无正当理由缺勤2次以上,直接取消期末考试资格。设计现场考评成绩表,每次实验后给出所有学生当次实验得分,并累积到期末,作为该课程的平时成绩。增加C语言程序设计大赛等比赛的指导,提高学生学习的兴趣,参加比赛,获得证书。
2 对应用型C语言实验教学改革的反馈
2.1 应用效果
本实验教学改革方案首先在2012级软件班进行实验,取得了不错的效果,有多名学生在2012年“蓝桥杯”全国软件专业人才设计与创业大赛中获奖,下一步,将尽快投入到理工学院大一其他专业的C语言程序设计的实验课程教学中。同时,进一步探索C语言课程的整体教学模式与后续专业课程的结合,力求将应用范围扩大到各年级和各专业。
2.2 评价与反馈
2.2.1 同行评价
《C语言程序设计》实验教学,其教师队伍合理,教学目标定位合理,实验教学内容设计有层次感,教学方法科学,有良好的教学效果。《数据结构》及《java语言程序设计》教师也对本门给予了很好的评价,综合体现出了该课程的教学效果良好。
2.2.2 学生评教
在学生座谈与学生问卷调查评比满意度高达90%以上,其中有80%的学生认为是优良。学生反映指导内容充实,设计有层次性,与实际结合密切,学完之后有成就感,教师责任心强、能激发学生的学习积极性、与学生互动良好。
3 后续研究工作和展望
一是实训指导书还需进一步完善,可考虑将课前预习环节加入到指导书中。在课堂教学方法的实施中,问问题的人数较多时,需要教师有极强的责任心,考虑是否可以预先录制相关疑难问题解答的视频,直观地“程序演示”,来增强学生们对程序的理解,提高教师指导效率;二是可以考虑构建集考勤、教学、评价一体化的实验教学网站,构建自主学习平台;三是改革C语言这门课程的考评体系,建议引进无忧二级C语言考试系统,以二级考试的难度要求学生,促进学生C语言二级过级率的提升。
4 结语
上述方法在我校的计算机类专业的课程运用实践中取得了良好的教学效果,增强了学生的编程能力和逻辑思维能力,为培养计算机方面应用型人才迈出了重要一步。当然,C语言实验教学改革也不是一蹴而就的,还有许多内容需要进一步去探究。
参考文献:
[1]廖建华.任务驱动型案例教学在“C语言”课程教学中的实施[J].教育与职业,2011,(5):157-158.
[2]夏季亭,王蕾.民办高校构建现代大学制度的优势与挑战[J].中国成人教育,2012,(1):20-22.
[3]白灵,韩莹,鹿玉红等.C语言程序设计课程考试改革实施方案[J].时代教育,2013,(9):39-40.
[4]程传鹏.基于大学生心理特点的C语言教学方法[J].计算机教育,2012,(1):68-71.