HI,欢迎来到学术之家股权代码  102064
0
首页 精品范文 程序设计实践

程序设计实践

时间:2023-05-31 09:50:36

开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇程序设计实践,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。

程序设计实践

第1篇

关键词:程序设计实践;兴趣

中图分类号:G633.6 文献标志码:A 文章编号:1674-9324(2014)22-0178-02

《C/C++语言程序设计》是计算机学科体系中的核心课程之一,主要讲授程序设计语言的基本知识和程序设计方法,使学生了解高级程序设计语言的结构,掌握程序设计的思想和方法,以及基本的程序设计过程和技巧,具备初步的分析问题和利用计算机求解问题的能力。课程核心是培养程序设计能力,加强实践是培养设计能力的重要途径。本文基于教学中存在的问题,从案例驱动教学、注重实践教学等两方面探究如何在实际教学中提高学生的学习积极性和思维能力,实现学生从单纯的程序编写到解决实际问题能力的转变。计算机程序设计类课程实践性很强。实践性强体现为无论多简单或多复杂的程序设计问题都要形式化为数学式子或相应的操作步骤,最终都要编写程序,开发出能够解决相应问题的计算机软件;学习该类课程既要注意学习好理论,更要注重进行实际上机操作的训练,运用理论知识进行程序设计解决实际问题,做到理论与实践相结合。

一、教学难点

本文对2011、2012和2013年度参加C和VB二级考试的一年级理工类学生做了抽样统计(数据来源为西安科技大学大学教务处),结果表明报考率和通过率差强人意,尤其是C语言,9个班级中通过率在50%以上的只有3个班级,最低的通过率仅为17.3%。通过问卷调查的方式获悉学生普遍对C语言的学习有畏惧心理。程序设计类课程理论性抽象性较强,语法知识繁多,结构复杂,调试程序更是初学者的“拦路虎”,学生往往难以理解程序设计的思维方式,对教学内容似懂非懂,而掌握良好的程序设计方法则更加困难;采用传统的教学方法讲解课本上的内容难以调动学生的学习积极性。主要原因主要有以下三方面:第一,教学重理论轻实践,过分注重计算机语言语法知识的讲解,轻视了算法设计、逻辑思维和编程方法的培养;第二,学生计算机编程能力有待提高,大多数学生基本上是初次接触计算机程序设计,习惯采用数学思考方式来进行程序设计,还没有真正掌握计算机编程的基本思路;第三,实验课时不足,实践课时通常是理论课时的一半,大部分专业是16个学时,这样的学时安排远远不能满足学生能力培养的需求。教学要以学生为中心,要让学生容易接受理解。教师只有从学生的角度体会“学”之困惑,反思“教”之缺陷,才能明了如何通过“教”帮助学生学习,体现现代教育以人为本的思想。程序设计基础课程对许多学生来说,是第一次接触编程,因此,学生往往难以理解程序设计中分析问题、解决问题的方式,尤其是抽象思维。所以,教师不但要研究教学内容,更要研究教学对象――学生,根据学生的学习特点,研究教学内容传授中重点和难点的解决办法。

二、教学组织方式

程序设计基础教学内容的组织方式主要有两种:以语言知识为主线、以程序设计为主线。目前普遍采用的方式是前者,经过一些高校多年的探索实践,以程序设计为主线的组织方式也取得了成功的经验。以语言知识为主线的教学内容组织方式往往以上述语言表达模块为单位,同时考虑程序设计的学习进程来组织教学内容。典型的教学内容组织路线是:概论-数据类型和表达式(标准类型)―分支―循环―数组―函数―指针―结构―文件。以程序设计为主线的方式则重点围绕学生程序设计能力培养,以程序设计的学习进程为主,打破语言模块的完整性,循序渐进地组织相关教学内容。在教学中,以语言知识为主线的教学内容组织方式重视语法知识的完整性,侧重以语法的理解带动程序设计能力的培养;以程序设计为主线的方式则更加强调编程实践,侧重以编程带动对语法知识的深入理解。因此,以程序设计为主线的教学组织方式往往按照程序设计的渐进学习进程,结合实际案例来组织和实施教学,将程序开发过程的相关内容贯穿和渗透到每个知识点的讲授中去。一种以程序设计为主线的教学内容组织路线是:概论―初识程序设计―语句级控制(分支与循环)―数组应用―模块级控制(函数)―指针、结构应用―程序设计进阶(递归、链表结构)―文件应用。在采用以程序设计为主线的实施方式时,可以将课程内容分为若干渐进式的程序设计学习阶段。在每个阶段的教学过程中,通过案例讲解程序设计的思想和方法,引出知识点,必要时再使用多种方法(如多媒体动画)进行深入的讲解与分析,并通过布置思考题和实验题,让学生通过学习思考和大量的上机练习培养编程能力,掌握知识。

三、问题驱动式教学

问题驱动教学是围绕教学目标,通过完成事先设置的相关联任务(例题)来达成教学目标的实现。在开课前,对典型的例子演示运行结果,激发学生的学习兴趣,明确学习任务和目标;在课堂上,将本次课程的内容和知识点通过几个具体的任务表现出来,引导学生在完成任务的过程中掌握所涉及到的理论知识,并注重反例教学,让学生“吃一堑,长一智”。这种教学方式学习目的明确,任务清晰,能极大地调动学生的学习积极性,对教学效果的提高起到非常明显的促进作用。

四、模仿创新教学

模仿创新即通过模仿而进行的创新活动。在《C/C++语言程序设计》课程中,模仿体现在学生根据教师所给程序进行验证分析,碰到类似的情况和功能实现可以参照相应的程序;创新是在所给验证性实验的基础上,根据新要求,实现新程序,并能综合应用所学知识实现复杂功能程序。课程实验教学将学生学习到的理论知识应用到实际问题。考虑到学生的基础不同,应尽量设计有层次和梯度的实践训练内容,使不同水平的学生都能得到最大可能的提升。每次的实际教学设计中,可以把实验内容分成三部分:验证、改编和综合。

1.验证程序。结合案例教学方法,针对每次上课所学知识点的不同,分别提供给学生一些已包括所学知识点、实现实际问题、可直接运行出结果的有吸引力的案例,即源程序,让学生自己执行程序和查看结果,根据源程序和运行结果分析其程序中所包含的知识点及程序具体实现的功能,加强学生分析问题的能力。有时候源程序中包含一些常见错误,让学生发现问题,调试程序,带来成就感。

2.改编程序。在已给程序的基础上,提出具体的功能改编要求,学生需要结合已学知识修改相应的程序,从而实现新功能。例如,学生可以通过改编“猜数字游戏”源程序,实现“提示猜测数字大小、每个数字最多猜7次”等功能。

3.综合程序。在学习了基本的程序设计知识后,通过综合程序练习同学们运用知识解决问题的能力,例如象棋游戏、成绩管理系统、智能排序等综合程序。基于案例的教学方式有时教师遇到问题暂时卡住时也可问学生如何解决,学生会很有兴趣积极地帮助教师完成该案例的调试,这样真正做到上下交互,教学相长。这种教学方式忌只放PPT,要当场分析和编程,不能用解说代码代替实际开发,这样学生就更感兴趣学习编程了。

五、课外补充

1.建立“程序设计学习QQ群”。责任教师申请一个学习程序设计类课程的QQ群,所有的辅导老师和学习这门课程的学生都加入群。开学初老师把QQ群公布给学生,让学生课后每次上QQ都能看到群里的讨论。在QQ群里,学生与老师,学生与学生之间随时随地在网上进行讨论、答疑。在学习群里“能者为师”,学生之间经常互相解答问题,这样既提高了学生的知识水平和问题的回复率,也减轻了辅导老师的工作量。

2.定期组织学习小组之间的编程竞赛。每个班按10人左右分成若干个学习小组,老师为组织者和裁判,在教学大纲的范围内出题进行小组之间的编程竞赛,由老师出一个相同的题目,小组内的成员之间通过小组群,互相协作,共同参与,最后由组长整理提交程序的结果,老师做裁判,又快又准完成程序设计的小组为胜,获胜的小组成员每人都获得平时成绩加4分的奖励。这种编程竞赛方式能充分调动每个小组成员参与的积极性,提高学生的学习兴趣,同时又能激发了学生的团队合作精神。

3.制作“微课”形式的视频。仿照“做游戏学英语”的形式,制作各知识点的微课视频,在网上共享,以备学生课下自主学习。

参考文献:

[1]吴文虎.我怎么讲好“程序设计基础”这门课[J].中国大学教学,2011,(12):10-12.

[2]王洪波.杏坛英华――北京大学青年教师优秀教案集[M].北京:国家图书馆出版社,2009.

[3]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业核心课程教学实施方案[M].北京:高等教育出版社,2009.

[4]何钦铭.“程序设计基础”课程教学实施方案[J].中国大学教学,2010,(5):62-65.

[5]刘芳.《C语言程序设计》教学存在的问题及改进[J].教育理论与实践,2012,32(36):51-52.

第2篇

【关键字】高职 Java程序设计 双证制

【中图分类号】G【文献标识码】A

【文章编号】0450-9889(2012)12C-

0166-02

目前,我国软件工程师的人才需求不断增多,2011年,我国软件产业人才需求达120万人,全国Java技术人才的缺口应该在60万人左右。未来5年内,随着开源技术的迅速发展,Java人才供不应求,国内许多软件开发企业不惜花费大量的时间与资金培训Java软件开发人员。在这种背景下,为了适应企业的需要,提升毕业生的就业率,国内的许多高职院校都竞相开设了Java程序设计课程,为计算机专业的人才培养寻求新的突破口。由于Java语言的实践性和开发环境的特殊性,如何在传统软件开发人才培养的基础上,采用先进的教学方法与手段,提高教学效果,成为近几年教育界普遍关注和研究的热点。

一、高职Java软件人才培养现状

Java程序设计2005年获教育部计算机基础课程指导委员会指定为核心课程。高职院校软件技术专业、计算机应用专业、通信技术专业根据培养计划纷纷开出与Java技术相关的课程。大部分院校以面向对象技术、Java程序设计、Web技术为核心课程构建课程体系,根据不同专业的特点选择数据结构、操作系统、数据库原理等课程作为扩展课程,根据企业需求动态调整课程内容,实施项目教学。但是,经过几年的实践,仍然存在这样的问题:教师在教学过程中过度重视理论知识的讲授,忽视学生应用能力和实际动手能力的培养;课堂教学与企业的需求严重脱节;教学中对关键知识点和应用能力要求模糊,理论与实践环节没有做到环环相扣;在实训过程中,多数项目还停留在模拟实现阶段,缺乏软件项目实训环节;对于教学与实训效果,评价体系不健全,学生质量监控体系和学习过程的支持体系不完善。出现这样的问题,部分原因在于多数高职院校的课程实施仍然没有完全脱离学科教学的影响,专业课程设置依然由基础理论、专业理论、专业技术课程三部分组成。这样的设置虽然在一定程度上体现出高职的人才培养目标,但在实施过程中没有真正合理协调这三类知识的比重,没有把握好知识“够用”“必须”“实用”的标准,导致学生只是泛泛而学,不能精通一项技能,影响专业人才的培养。

二、高职Java程序设计课程建设的总体思路和建设目标

针对当前高职院校Java程序设计课程教学中存在的问题,我们在市场调研与岗位需求的基础上提出了课程建设的总体思路和建设目标。

高职Java程序设计课程建设总体思路是:以课程内容的建设为主线,关注Java语言的发展动态,动态调整课程内容;根据企业需求,不断完善Java程序设计课程体系,加大实践教学力度,采用先进的教学手段和教学方法,调动学生的学习积极性;充分利用网络平台和教学资源库,促进学生巩固知识。

在明确课程建设思路的基础上,确定建设目标是:通过理论教学与实践教学,引导学生掌握Java基本知识,掌握程序设计的基本方法,适应企业岗位技术需求。

三、Java程序设计课程教学改革措施

高等职业教育在服务经济发展的同时,人才需求呈现多元化、多层次发展趋势。职业教育要适应经济和社会的发展需要,必须加快人才的创新能力培养,在人才培养的过程中不断优化教学改革。课程改革是高等职业教育的重点和难点。高职课程体系改革以培养高技能应用型人才为根本任务,以培养技术应用能力为主线,设计和构建人才培养方案及课程、教学内容体系。

(一)课程建设中内容的合理收集与选择

课程内容建设是Java程序设计课程建设的核心,课程内容的建设主要包括内容的动态更新和内容的局部调整。Java的开源特性要求课程内容建设者不断更新课程内容,网络为Java语言的最新材料搜集提供了便利。在SUN公司被收购前,通过登陆其主页可以取得JDK(Java开发工具包)的最新版本,获取最新研究成果的电子文档,了解Java语言的最新发展动态。现在,可以通过搜索引擎搜索Java语言内容的电子材料,以取得Java语言的最新内容。对于Java语言内容的选择,要考虑到内容的基础性、前沿性、先进性和完整性。高职教育以培养学生的动手能力为主,兼顾理论知识讲授。在进行Java语言内容的选择后,以市场为导向,围绕已经积累的内容和所选择的内容,对教学内容进行局部调整,不断完善相应的教材、资源库建设。

(二)Java程序设计教学模块的划分

高职院校的培养目标是:面向生产、服务和管理一线,培养具有一定理论知识和较强实践能力的的实用型、技术型、高级技能型专门人才。作为计算机类与电子类专业的核心课程,高职程序设计课程的教学目标可以归纳为:一是理解和掌握Java语言的基本语法和语义,以及面向对象的基本概念,掌握标准程序和小应用程序的开发方法;二是熟练使用JCreator、Eclipse等平台从事应用程序开发;三是培养学生良好的编程习惯;四是了解软件开发的基本流程与格式规范。根据这些目标我们可以把程序设计课程的教学内容划分为基础模块、技能训练模块、综合应用模块等三个大模块。其中,基础模块包括Java开发环境、语言基础等内容;技能训练模块包括数组、类、多线程等内容;综合应用模块包括面向对象的设计、绘图程序设计、图形界面设计等内容。每个模块下又再细分为具体相应的子模块,不同的子模块设有相应的课题,完成不同的教学目标。教师在教学过程中可以根据专业技能要求取舍课题,并在教学中不断更新。

(三)高职Java程序设计课程体系构建

Java课程在高职院校电子信息类专业的教学中占有非常重要的地位,如何构建Java课程体系,提高学生就业竞争力,是当前高职院校计算机专业课程改革中的一个重要研究课题。目前国内许多高职院校的Java课程体系主要包括:Java程序设计、JSP技术、J2EE架构技术等。我们可以根据市场人才需求变化确定课程体系构建,以Java技术为核心制订课程体系,构建课程设计、教学安排、师资配备、培训效果等四个模块的标准。其中,课程设计是核心部分,由基础与高级两个模块构成。在Java SE、Java EE、JavaME、Java 类认证课程体系中增加Java开源解决方案, 补充MySql数据库、Struts、Hibernate、Spring等开源技术,介绍Web与Ajax等热点技术。采用P(Project 项目)+ E(Experience)+ T(Technology)的模式进行教学,学生在项目实践中积累经验。具体方法可以结合案例教学、项目驱动等教学方法,模拟企业工作的流程进行软件项目开发,进一步培养学生掌握Java基本知识和基本技能,以及利用各种手段独立解决问题的能力。

(四)构建“双证制”教学模式,突出技术应用能力培养

近年来,计算机类专业毕业生遇到了前所未有的就业困难,学生对口就业率大约为54%左右。通过市场调研反馈回来的信息,随着企业“蓝领”人才规模的扩大,具备一定的专业理论基础知识,同时又具有职业技能资格证书的应用型人才更受用人单位的青睐。因此,高职院校电子信息类专业构建了完备的实践教学保障体系,试行毕业证+职业技能资格证的“双证制”教学模式,突出专业特色,提高毕业生的竞争能力。

“双证制”教学模式促进人才培养过程中各个要素充分发挥其功效,紧扣学生和用人单位的需要,把教学的各个环节紧密衔接,有利于技能型人才的成长。为了确保这种教学模式的顺利实施,我们必须做好下面三个方面的工作。

1.制定好相配套的教学计划。教学计划是人才培养目标和规格的具体保障,是办学“定向”和“定位”的重要依据。要保证“双证制”教学模式的顺利实施,我们要聘请IT企业的工程技术人员参与教学计划制定,按照以能力为中心的指导思想,以“必需”和“够用”为度设置理论教学与实践教学时数,将职业技能取证的理论内容与专业课程的教学紧密结合。

2.构建设施齐全、功能配套的实验实训基地。功能完善的实验实训基地是实施双证制教学的重要保障,高职院校针对Java程序员职业岗位构建一套完整的实践教学体系。在自身构建好实验基地的基础上,与社会上的知名企业合作,寻找合理的合作方式,构建校外实训基地,使实践教学和理论教学得到有机结合,为学生职业技能的提高提供有力的保障。

3.构建完善的实践教学保障体系。为了保证“双证制”教学的顺利实施,可以构建系主任、教研室主任、实训教师三级实践教学目标管理责任制的实践教学保障体系。在实践教学的过程中,制定项目任务书,按要求进行考核,不断强化理论和技能训练,确保实践教学的顺利开展。

【参考文献】

[1]张刚,牛连强,阚洪敏.“Java程序设计”课程建设的研究与实践[J].计算机教育,2009(7)

[2]高源,刘力.市场需求与高职计算机专业课程设置研究[J].计算机教育,2007(11)

【基金项目】广西新世纪高教教改工程2011年立项项目(2011JGB296)。

第3篇

关键词:思维;程序设计;代码实例教学;翻转课堂

引言

前耶鲁大学校长理查德•莱文在谈到大学教育的本质时曾指出:“大学教育的目的不是传授知识和技能,却能够让人胜任任何学科和职业。”在莱文看来,大学教育的核心在通识。目前,程序设计课程已经成为当代大学生最重要的通识类课程之一。这就提出了一个问题:程序设计课程的教学目的是什么?是传授知识,还是传授技能?笔者认为,这两者都不是程序设计课程的目的所在。正如乔布斯所说,学习编程教会一个人如何思考,每个人都应该学习一门编程语言。笔者认为,程序设计课程教学目的之核心在于教会大学生如何思考,就像学习《几何原本》一样,学习程序设计的目的是提升思维能力。

1课程内容的逻辑组织

精心设计好课程的逻辑组织,使学生在学习的过程中真正体会到C语言的逻辑之美,是提升学生思维能力的必要前提。《几何原本》对包括牛顿、爱因斯坦等一大批的科学家产生了深远的影响,主要是源于其逻辑体系的构建。目前,学生在进入大学之前虽然学习了几何学的内容,但很少有学生能够领略《几何原本》中逻辑体系的思想,其主要原因是中学时期学生的逻辑思维能力还不够成熟。大学一年级恰恰是训练大学生思维能力的最佳时期。程序设计课程在提升大学生的思维能力方面发挥着重要的作用。文献[1]中所确立的授课内容的逻辑组织仍然是程序设计课程中内容逻辑组织的最佳范本。笔者在此基础上稍加修改,使之更适合初学者,修改后的教学内容如下:第一部分:初识C语言;第二部分:数据类型、运算符和表达式;第三部分:控制流语句;第四部分:函数与程序结构;第五部分:数组;第六部分:指针;第七部分:结构体;第八部分:文件输入输出。《几何原本》在5条公理的基础上推导出整个欧式几何学所有的定理,这种逻辑体系的思想在C语言中也得到很好的展现。通过课程内容的逻辑组织,学生认识到C语言在很少语法规则的基础上却能够描述丰富的程序逻辑,是提升学生思维能力的关键所在。学习知识并不是程序设计课程的关键,学会利用有限的知识解决复杂的问题才是程序设计课程的关键所在,也是提升大学生思维能力的关键所在。例如,关于函数的参数传递,不同的教科书中有按值传递、数组作为函数参数、按地址传递等不同的说法。然而,用C语言原作者的话说,C语言只支持按值传递一种参数传递方式。在这个问题上,在课程的内容组织上让学生理解C语言只支持按值传递,只通过按值传递一种参数传递方式就能够实现丰富多样的参数传递功能,才能准确地把握C语言参数传递的本质。在这个过程中,逻辑发挥着至关重要的作用。再比如,指针是C程序设计语言的难点,在指针这一部分,让学生首先把握指针变量是用来存放变量地址的变量这个基本概念,然后把握如何访问一个变量的地址、如何通过指针变量访问它所指向的变量这些有限的语法规则,就可以表达丰富的程序逻辑,并在此基础上理清指针与数组、指针与字符串的关系。理清各个语法规则的逻辑关系,是把握指针这一部分的关键所在,也是提升学生思维能力的关键所在。C语言的成功与其清晰的逻辑表达是分不开的。理清程序设计课程各个部分的逻辑关系,是利用有限的学时使学生把握程序设计的本质、提升思维能力的关键所在。

2代码实例教学

选取好的代码实例,使学生在阅读规范的C语言代码过程中真正领略到C语言代码的逻辑之美,可以使学生的思维能力在理解代码的过程中得到最有效的训练。南宋理学家朱熹曾说:“模拟者,古人用功之法。读得韩文熟,便做韩文的文法;读得苏文熟,便做苏文的文法。”可见,模仿是学习的重要手段。许多学生大学学习了C语言程序设计之后,仍然不会写程序,最主要的原因是缺少模仿规范的C语言代码的环节。我们在讲解具体的语法规则时,用了一些小的示例代码。例如,在讲解循环结构时,用了银行等额本息和等额本金的利息计算示例。我们发现,借助于这些小的示例代码把握C语言的语法规则之后,在课堂上与学生共同阅读一个完整、规范的C语言程序,是教会学生写程序的最关键的一个环节。我们选取了文献[2]中简单线性回归的源代码与学生一起在课堂上阅读。通过阅读代码,学生对于如何利用C语言的语法规则构建一个完整的应用程序有了很好的把握。我们还推荐学生课后自己阅读文献[2]中方程求根、函数求极值、排序等方面的源代码。在阅读这些代码的过程中,学生对如何将正在学习的线性代数、微积分等课程的理论转变成解决现实问题的程序有了深刻的理解。模仿规范的代码之后,我们指导学生用C语言实现了稳定婚姻匹配问题[3]。在利用C语言实现稳定婚姻匹配算法的过程中,用到数组、指针甚至链表等知识点,使学生在模仿他人代码的基础上体会到自己编写程序解决问题的乐趣,在不知不觉中提升思维能力。此外,我们还讲解了PageRank算法[4]的原理,与学生一起对如何用C语言表达PageRank算法的逻辑进行探讨和程序示范,使得学生对如何利用C语言表达搜索引擎的程序逻辑有了深刻的理解,也让学生理解了Google、百度等搜索引擎的本质。

3MOOC教学与SPOC教学

MOOC教学与SPOC教学是课堂教学的有力补充。MOOC指的是MassiveOpenOnlineCourse,对全社会开放;SPOC指的是SmallPrivateOnlineCourse,仅对本校学生开放。理清课堂教学和MOOC教学与SPOC教学的关系,充分发挥各自的优势,是利用好MOOC教学与SPOC教学的关键。课堂教学的优势在于便于与学生交流互动,MOOC教学的优势在于学生可以根据自身的学习情况适时安排和控制学习,SPOC教学的优势在于学生在看视频短片时可以自主选择停下来思考,没看懂的可以倒退反复观看;同时,MOOC教学与SPOC教学的课程内容可以永久存档,方便随时复习。MOOC教学的逻辑组织与课堂教学的逻辑组织是相对独立的。课堂教学自成体系,MOOC教学也是自成体系,两者可以分开来学,又可以相互补充。对于课堂上需要扩展的知识点,则是通过视频短片的形式放在SPOC中供大家课后进一步学习。在与学生一起用C语言实现了稳定婚姻匹配问题之后,仍然有一系列的问题有待于进一步思考。例如,稳定婚姻匹配算法所给出的稳定匹配的性质是怎样的?稳定匹配算法对男士更有利还是对女士更有利?对于这些问题的解答有两种方法:一种是当场给出答案;另一种是让学生课后思考,并在SPOC上利用视频短片的形式给出问题的答案。事实证明,在课堂上给出问题,让大家课后进行思考,再与SPOC上视频短片中的答案进行对照,更有利于推动学生主动思考。

4翻转课程教学

翻转课堂教学是提高学生学习积极性的重要手段。每名学生在课程的最后都需要用C语言做一个项目,撰写实验报告,并且在课堂上与大家分享自己所做的项目及心得体会。对于所做的项目内容没有任何限制,每名学生都可以自由选取。事实证明,对项目的内容不加限制是正确的,这给了学生最大的发挥空间。有名学生给笔者发邮件说:“老师您好,我的实验大作业是一个帮助妈妈理账的小程序,希望能够有机会参加翻转课堂,和大家分享我的程序。”有的学生做的是关于航道规划的程序。学生在利用C语言解决一个实际问题的过程中,会积极与老师和同学交流以解决所遇到的困难,并精心准备在同学面前的展示。每名学生的思维都在这个从开始着手解决问题到最后在同学面前展示自己成果的过程中得到了升华。著名作家、思想家列夫•尼古拉耶维奇•托尔斯泰曾说:“知识,只有当它靠积极的思维得来,而不是凭记忆得来的时候,才是真正的知识。”C语言程序设计本身的特殊性能够为学生思维的训练提供有利的前提和基础。学生在利用C语言解决自己感兴趣的实际问题的过程中,可以真正理解C语言的全貌,体会C语言的魅力,提高自主探究的思维。翻转课堂可以全面提升课堂上老师与学生之间、学生与学生之间的交流互动。每名学生都可以站在讲台上分享自己的程序,在从自己会到给其他同学讲明白的过程中,其分析、综合、论证的逻辑思维和表达能力得到很大的提高;作为听众的其他同学则通过翻转课堂看到主讲人身上的优点。孔子云:“三人行,必有我师焉。”传统教学中是讲台上的一位老师,而翻转课堂则让每名学生都可以贡献智慧并成为别人的老师。程序设计课程的教学目的不仅仅是让学生掌握一门程序设计语言的语法规则,而是培养学生利用程序设计语言解决问题的能力,教会学生如何思考。最后,每名学生能够利用C语言解决一个实际的问题,并在课堂上与大家分享,又能够聆听其他同学的经验,取长补短。因此,翻转课堂是实现教学目标的核心环节。在实现这个环节的过程中,也有学生提出问题。例如,针对每名学生自己选择的项目,具体的评分细则是怎样的?许多学生已经适应了传统的考核方法——预先设计好项目由学生实现,实现项目相应的功能就给相应的分数。笔者认为,由学生按照自己的兴趣选择项目,能够更好地发挥其想象力,选题的过程本身也是一个思考的过程。翻转课堂的结果表明,不同的学生选择不同的项目,会更大地激发学习热情。与由老师指定固定的项目相比,学生可以真正体会到利用C语言简单的语法规则解决多种多样问题的奥妙,这才是程序设计课程给予的真正的启示。关于评分,考试占50%,平时的程序作业占25%,最后的项目和课堂翻转占25%,其中项目的代码部分由老师给出评价,占15%,课堂翻转的成绩由学生投票决定,占10%。关于如何合理设计最后的项目和课堂翻转部分的分数比例及其评分细则,仍然是一个值得思考和探讨的问题。

5结语

第4篇

摘 要: 教师要提高《C语言程序设计》教学质量,必须依据教学目标,对教学内容进行重新组织梳理;用案例教学、项目驱动教学等手段丰富教学方法;构建多元考核评价体系。从而在实践中取得良好效果。

关键词: 教学改革 《C语言程序设计》 组织结构 教学方法

1.引言

《C语言程序设计》是高校计算机专业的重要基础课程,在计算机专业的课程体系中占有极其重要的地位。一方面C语言是学生接触的第一门专业类课程,是培养学生专业兴趣的起点。另一方面,C语言是其他很多核心专业课的先修课程,如数据结构、计算机图形学等。所以C语言的掌握水平在很大程度上决定了学生专业基础知识的掌握,直接影响后续课程的学习效果和专业素质的培养。所以如何提升教学质量,让学生确确实实地学好这门课程,是教学改革的目的和指导方向。

2.改革教学内容组织结构

《C语言程序设计》的主要内容包括语法基础、控制结构、数据类型、数组、函数、指针、结构体与共用体、文件等。近年来因为学校培养方案的改革,很多专业课程课时都被压缩。C语言现有学时满足不了把所有知识点都教授给学生的教学要求。改革内容组织结构就很有必要,首先要明确课程教学目标。《C语言程序设计》的课程教学目标要求学生掌握C语言的基本概念、语法和程序设计的常用方法;领会结构化、模块化程序设计的基本思想;通过编程训练,熟练使用编程工具编写和调试程序;在课程学习的过程中,形成良好的编程风格和程序设计思维方式,提高分析问题及通过设计程序解决实际问题的能力,为专业课程体系中后续课程的学习打下基础。依据教学目标,把教学内容分为三个层次。

3.改革教学方法

3.1教学手段的改革

C语言的课堂内容多是抽象的理论,对大多数学生来说枯燥无味。首先,教师可以通过研讨和网络资源,向优秀教师学习,不断提高自身能力。其次,整合资源制作优秀的教学课件,既要体现新的教学方法,又要现实教学内容的层次性。再次,充分利用现代教育技术,把教学资源放在网络上,供学生自行调用,也可在网上给学生答疑。最后,以案例教学、分组讨论等方式丰富课堂教学方法,不单纯依赖多媒体教学。

3.2实验教学的改革

在实验教学中,可采用“项目驱动,分层教学”的方法。

项目驱动教学是整个实验教学围绕一个工程项目进行,逐步拓展实训项目和设计,将每一个阶段的学习作为项目的一部分完成,最后课程结束时,完成一个小型系统程序的建立。

通过实验能够实时了解学生的内容掌握及编程能力。在教学过程中,由于个体差异的存在,学生在内容掌握和编程应用方面会有较大差异。针对这种现状,就需要应用“分层教学”。对基础好的学生,可以多给一些深入的实验题目,而对基础不好的学生,就要帮助其弄懂、掌握学习内容。

3.3多元的考核评价体系

课程考核评价分为两部分:过程考核和期终考核。过程考核就是平时成绩,依据学生的出勤、日常表现、课后作业、实验报告、测验和项目完成情况和完成质量对学生进行考核,占总成绩的60%,期终考核是以卷面考试方式检测学生对于所有知识点的综合掌握情况,占总成绩的40%。

4.结语

通过本学期的教学实践,课堂教学和实验教学效果都得到很好的改善,调动学生的学习积极性。学生的编程能力和课程内容掌握水平都有明显提高,取得长足发展。

参考文献:

[1]何克抗,郑永柏,谢幼如.教学系统设计[M].北京师范大学出版社,2002.

[2]戴大蒙.“程序设计类”课程层次型教学模式的研究与实践[J].中国成人教育,2010.9.

[3]张秋生.C语言程序设计课程教学改革与实践[J].软件导刊,2012.11.

[4]何钦铭,颜晖,苏小红等.“程序设计基础”课程教学实施方案[J].中国大学教育,2010.5.

第5篇

关键词:C语言程序设计;以应用为本位;启发式教学

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)10-2412-03

C语言功能丰富,应用面广,当下,很多高校依然把C语言作为非计算机专业学生的一门通识平台课开设。然而,在C语言课程的开设过程中,教师和学生不同程度地存在着缺位和误区,教与学的效果不尽如人意。在C语言的教学过程中,不少任课教师因循守旧,教学目标不清,教学方法单一,教学观念陈旧,使C语言的课堂蜕化为单纯的语法规则的灌输,使C语言的学习变为简单的语法知识的学习,学生普遍反映难学厌学。C语言程序设计课程一般面向的都是大学一年级的新生,他们刚刚结束高中生活步入大学校园,对一切充满了新鲜感和不适应感,学习观念、学习目的和学习方法有待转变和调整,学习的主体意识和自觉性有待增强和提高。针对这些问题和现象,笔者在自己的教学过程中进行一些了探索和实践,取得了一定的效果。

1 教师自觉转变教学观念,提高自身素质

纵观C语言程序设计课程的教学,现在最典型影响面最大的教学模式就是由教师和学生构成一个教学体,教师在讲台上自我表演,学生充当看客或听众【1】。所谓知识也好、信息也好,都是一个从教师到学生的单向流动。在这种以教师为主导、以教材为核心、以课堂为中心的教学模式下,教学蜕化成为一种单纯的知识传授,学生学习的积极性和主动性的调动,学生创新能力和创新思维的培养,都无从谈起。面对这样的现状和背景,教师教学观念的转变和自身素质的提高显得尤为重要。本着对学生负责,对学校负责的态度,教师应在自身责任感的驱使下,主动了解先进的教育思想和教学理念,像教学互动性、学生主体性和知识建构性等等;认真思考大学教育的功能,比如授人以鱼还是授人以渔;结合教学实际,转变教学观念,改变传统的教与学的地位,由过去的“以教师为中心”转变为“教师主导,以学生为主体”,营造民主的教学氛围;改变课堂老师单向灌输、学生被动听讲的授课模式,引入多元化的教学方法,比如启发式,探究式,引导学生独立思考,鼓励学生主动参与学习。

2 引导学生转变学习观念,培养学生学习的主体意识

C语言程序设计课程的开设面对的多数是大学一年级的新生,而对于刚入校的大学生来说,受中学养成的学习习惯的影响,学习的自主意识淡薄,学习还习惯性地全部寄托在老师身上,对老师的依附心理严重。同时,面对大学里比中学多得多的自由学习时间不知如何有效地管理和支配,对新的学习环境和新的学习生活有不同程度的不适应和困惑。面对这样一个处在比较特殊阶段的学生群体,承担C语言程序设计课程的任课教师要有针对性对学生进行引导和管理。首先,任课教师从一开始就让学生明确一个观点,即C语言是学生自己学会的,而不是老师教会的。俗话说,“师傅领进门,修行在个人”,尽管教师的教在教学活动中起着主导作用,但更重要的是学生的学,学习的主体是学生本人,只有学生充分发挥自己学习的自觉性和主动性,教师的教学思想才能得到很好地贯彻,教学效果才能得到很大的提高,整个学习活动也才会成功。其次,强化学生的责任意识。对绝大多数学生来说,如果单从年龄判断,步入大学校园也往往意味着步入成年人的行列。而成年人也就意味着要对自己负完全责任了。教师在教学过程中要不断强化学生对这一点变化的认知,让他们知道要对自己负责,对自己的学习负责,而不应再完全依赖教师或家长的监督。最后,教师的指导和管理。学习观念的转变,新的学习习惯的养成,不是一蹴而就的事情,需要在实际的学习活动中逐步完成。课前的预习、课堂的参与、课后的作业、实验的完成、期末的考试等是C语言教学活动不可或缺的环节,每一个环节里需要学生完成的任务,任课教师从一开始都给出一个明确的要求并严格按照要求去管理,将大大有益于转变学生的学习观念,培养学生学习的主体意识。

3 激发学生的学习兴趣,调动学生学习的积极性

在C语言程序设计课程的教学过程中,往往有学生反映C语言比较抽象,课堂教学又枯燥无味,很容易丧失学习的兴趣和热情。如何激发学生学习C语言的兴趣并始终保有这种兴趣,也常常是教授C语言课程的老师很头疼且又不能回避的问题。“兴趣是最好的老师”,每位教师都深知学生的学习兴趣对教学活动成功的重要性,但C语言程序设计课程侧重思维训练的特点又决定了在这方面留给任课教师的空间是有限的。笔者在自己的教学实践中做了一些尝试。

1)演示典型的完整的C语言应用,培养学生的学习兴趣

学生在学习C语言程序设计课程之初,对该门课程的学习目的和学习目标多数是模糊的,对C语言的认识也多半是空白,任课教师适当的引导很容易引起学生学习的兴趣和探究的欲望,因此该门课程的开篇很重要。笔者摒弃了以往通过文字抽象地介绍C语言的产生、C语言的特点和C语言的应用的做法,直接从演示典型的完整的C语言的应用开始。演示的程序有难有易,涉及的范围涵盖实际生活中的应用、有趣的数学问题、图形动画、游戏等。笔者一度选择了图书管理系统、文本编辑器、学生成绩管理系统、兔子产子问题、百钱百鸡问题、图形时钟、扑克牌的自动发牌、猜数游戏、五子棋游戏等应用,引起了学生浓厚的学习兴趣。

2)营造轻松的学习氛围,创造愉快的学习体验,强化学生的学习兴趣

要引起学生对C语言一时的兴趣不是一件难事,但要让学生在整个C语言程序设计课程的教学过程中始终抱有这样的学习兴趣就不是一件易事了。哪位任课教师做到了这一点,他的教学活动无疑就是成功的。C语言比较抽象,课堂教学容易枯燥无味,是一个不争的事实。为此,在实际的教学活动中,选择难易适中贴近生活的问题,比如利息的计算、持有的股票价值的计算、学生成绩的管理、募捐活动的模拟等;涉及C语言的语法特性时,尽量使用生活化的直白的语言,少用专业术语;课堂教学的开展过程中鼓励学生积极参与,对学生提出的任何有意义的问题都及时地给予肯定;面对问题,对学生做出的任何有价值的回答都及时地给予表扬,都有助于营造轻松的学习氛围,有助于让学生体验到成功的欢乐,有一种成就感,有助于强化学生学习的学习兴趣和热情。

4 践行以应用为本位的教学思路,有选择性地采用以知识为本位的教学思路

C语言程序设计课堂教学的组织有两种思路两种模式。一种是以知识为本位的教学思路下形成的“建筑模式” 【2】,课堂教学以讲授语法为主,先是提出语法概念,然后解释该语法概念,最后举例说明其应用,强调先系统学习理论打下宽厚的理论基础,然后再进行应用,讲究的是理论的系统性与严密性。另一种是以应用能力为本位的教学思路下形成的“生物模式”,课堂教学以程序设计为中心,以编程为目的,从应用的角度切入,先是提出问题,然后引导学生分析解决问题,最后着重介绍涉及的C语言的语法特性,强调结合应用学习必要的理论知识,随着应用的展开,编程难度的逐步提高,算法和语法的学习同步趋向深入,有利于学生能力的培养。

C语言系人工设定的具有确定内涵的概念和知识体系[3],同时C语言程序设计又是一门实践性很强的学科。为此,在C语言程序设计课堂教学的组织上,笔者始终践行以应用为本位的教学思路,同时根据课程内容的特点有选择性采用以知识为本位的教学思路,比如C语言中的基本数据类型、运算符和表达式、文件等基本概念和语法知识,在教学中只需把规定的内容阐述清楚,使学生理解并接受,同时又不破坏这些理论知识的系统性,就适宜采用以知识为本位的教学思路。

5 根据课程内容特征,选择灵活多样的教学方法

教学方法是在教学过程中,教师为了实现教学目的、完成教学任务而采取的教与学相互作用的活动方式的总称。C语言程序设计课程的教学目的是使学生掌握用C语言进行程序设计的基本思想和方法,并具有灵活应用这些思想和方法分析解决实际问题的能力。实现这一教学目的要完成的教学任务包括C语言基本语法的介绍,结构化、模块化程序设计思想和方法的引入,基本程序设计训练以及程序调试方法的演示等。面对这些多样的教学目标和任务,灵活多样的教学方法的选择和恰当应用成为必须。笔者在自己的教学实践中,结合课程内容的特点,有选择性地应用了如下的教学方法。

1)启发式教学,引导学生思考,在应用中学习。

在C语言程序设计的课堂教学中,根据课程内容的特点,精心设计任务或场景,引导学生发现问题、思考问题,使学生在启发诱导下获取知识,解决学习中的疑难问题。比如,在引入数组时,笔者设计了这样一个任务,即编写一个C语言成绩管理程序,要求能够统计出学生C语言成绩的平均分、最高分、最低分以及各个分数段的人数(为了说明问题的方便,假设当前要处理的有10个学生的成绩)。第一步,引导学生描述出10个学生的成绩。根据之前的学习经验,学生很容易想到用10个float类型的简单变量表示,比如score1,score2,、、、,score10。第二步,为节省时间,直接给出用这10个相互独立的简单变量实现的程序,引导学生观察。在学生感叹程序复杂之余,带领学生读程序,引导学生发现,当前的程序无论是成绩的录入、求学生成绩的最高分、最低分,还是统计各个分数段的人数,对每位学生成绩的处理方法都是一样的,存在大量的相似的操作。同时提出问题,这些相似的操作能不能用循环结构描述和实现,让学生思考。诱导学生分析发现,要想用循环结构描述这些相似的操作,学生成绩的描述必须有一个统一的表示方法。适时地给出score[i]这一表示方法,指出让i从0到9变化表示10个学生的成绩,和学生一块用该表示形式改写之前程序的关键部分。让学生比较改写前后的两个程序,很容易得出结论,用score[i]描述批量数据,方便和循环结合起来使用,数据的处理更为有效。最后指出score[i]这一描述形式就是数组,接下来介绍数组的定义完善改写后的程序。

和学生一块模拟执行该程序,由之前的知识积累学生知道,形参m、n和实参a、b对应的是不同的存储单元,m、n和temp是自动变量,从变量的作用域和生存周期的角度,容易得出一个让学生意外的结论,该swap函数中形参m、n值的交换影响不到实参a、b。在学生诧异之余,启发学生思考,诱导学生尝试给出不同的解决方法。往往有学生提出定义a、b为全局变量,诚然这不失为一种解决方法,在鼓励学生的同时,再次诱导学生发现问题的关键并在此基础上找解决方法。和学生一块梳理思路,发现swap函数中形参m、n值的交换传递不到实参a、b,一方面是因为彼此对应的是不同的存储单元,另一方面是由于变量的作用域和生存周期的问题。学生提出的定义a、b为全局变量的解决方法显然是从后者考虑的,现在有意识地诱导学生只从前者考虑,让学生大胆假设在什么样的前提下形参m、n值的交换即是实参a、b值的交换。毋庸置疑,只有当形参m、n和实参a、b对应的是相同的内存单元时。在学生给出了这一假设之后,启发学生思考该假设能不能成立以及如何成立。和学生一块分析,要使形参m、n和实参a、b对应的是相同的内存单元,表面上看它们不能是相同的类型,但实现又要求形参m、n操作的对象是实参a、b,显然形参m、n操作的对象和实参a、b应该是相同类型,同时形参m、n指向的是和实参a、b相同的内存单元,学生相对容易想到形参m、n应该是指向实参a、b的指针变量,问题由此迎刃而解。最后结合该任务的完成引导学生总结,在主调函数和被调函数之间双向传递数据变化,全局变量和指针变量都是不错的解决方法。

2)注重当堂实践,现场编程互动,在学习中应用。

C语言程序设计是一门实践性很强的课程,在践行以应用为本位的教学思路的过程中,笔者不仅重视实验课这一实践环节,更是把实践延伸到课堂教学中。在带领学生对特别设计的问题做了充分的分析之后,引导学生当堂实践,或者师生现场编程互动,不仅可以调动学生学习的积极性,更能培养学生解决实际问题的能力。

参考文献:

[1] 李克东.教育技术学研究方法[M].北京:北京师范大学出版社,2003:132-137.

第6篇

关键词:VB程序设计;教学方法;改革

中图分类号:G64 文献标识码:A

文章编号:1672-5913 (2007) 15-0024-03

Reform and Practice of Teaching

Abstract: In order to improve the student’s ability of the practice and the innovation, this paper is expounding the reforms of teaching methods, means, manner and examination on VB, which is based on experiences of teaching practices.

Key Words: VB programming; Teaching methods; Reform

作为一门面向对象程序设计的入门语言,Visual Basic功能强大、简单易学,受到越来越多的计算机专业人士的接受。同时,各高校也相继开设了“Visual Basic程序设计”这门课程作为计算机专业与非计算机专业的语言基础课。但是在课堂讲授过程中怎样使学生真正掌握并灵活运用却不是一件简单的事情。笔者在近几年的教学实践中进行了如下改革探索,取得了良好的教学效果。

1采用实例教学法,激发学生的学习兴趣

VB程序设计语言所涉及的内容多,控件的属性、事件、方法也很多。现绝大多数教材章节的安排都是从知识的逻辑结构体系来考虑,先介绍对象、对象的属性、方法和事件及VB语言基础等等一系列在程序设计中比较抽象、难懂的概念,然后才介绍程序的建立和运行。要让学生对这些概念有一定深度的理解和掌握是比较困难的。时间一长,就会影响学生学习的积极性与主动性。因此在教学中,我从实例入手,采用实例作为知识的载体,选择学生感兴趣的问题作为实例,通过让学生亲眼观看、亲手模仿,在实际操作中亲自去体会和领悟这些概念。例如,在讲标签控件的属性时,我们设置如图1的用户界面作为入手点,通过按照例图进行界面设计和属性设置的实际操作,使学生认识标签控件的backstyle、caption、name、backcolor、font等多个不同属性的作用。

同时,用一系列问题作为引导,来激发学生的学习主动性,加深对概念的理解。例如,在讲解整型变量、单精度变量、双精度变量所能保存数据的范围不同时,我曾为学生设计了如下的实例,首先让同学们在窗体的CLICK 事件中编写如下一段代码,求10!。

代码如下:

Dim S as long

Dim I as integer

S=1

For I=1 to 10

S=S*I

Next I

Print "S=";S

通过运行,单击窗体显示出正确的运行结果。然后再让大家参照上面的代码写出求100!的代码。当按照一些学生的做法,把ForI=1 to 10改为ForI=1 to 100,运行并单击窗体时,发现结果产生溢出。什么原因呢?让学生们思考,并想办法来解决溢出。这时提示同学们将程序中变量S定义为单精度(Single)或者双精度(Double),直到看到计算机给出正确结果。做到这一步,让同学们返回来看整型变量、长整型变量和单精度变量、双精度变量的不同数据范围。毫无疑问,此时同学们对概念的认识清楚了很多,同时也加深了对概念的理解和记忆。

2采用循序渐进方法,培养学生创新思维[1]

知识的学习是一个循序渐进的过程。在教学过程中,我们可以先从简单的实例出发,再增加或者改变实例的条件,逐渐加深难度,以此培养学生的创新思维,提高学生对程序的分析与编写能力。这里仍以10!这个实例来看,这是我们讲授For…Next循环时的一个典型实例,这段程序在学生弄懂 For……Next 循环语句之后,理解起来并不困难。但为加深学生对语句的理解程度,提高学生举一反三的能力,要求学生对原程序条件做如下几种变化:

(1) 求1到10之间所有数的和。

(2) 求1到100之间所有数的和。

(3) 求1到100之间所有奇数的和,步长为2。

(4) 求1到100之间所有奇数的和,步长为1。

这里第(1)小题和实例中原程序相比难度不大,学生已学会根据数据范围定义数据类型,很快写出如下代码:

Dim S As Integer

Dim I As Integer

S=0

For I=1 To 10

S=S+I

Next I

Print"S="; S

第(2)小题将(1)题程序中I的终值改为100即可,学生理解终值在这一循环语句中的作用。第(3)小题增加了难度,需要动脑筋思考,将(2)题程序中For I=1 to 100语句改为For I=1to100step2,才能得到奇数的相加,而且步长为2,掌握步长step在循环语句中的用法与作用。第(4)小题难度更大,要求奇数和,步长为1,做两点变化:一要写出ForI = 0 To 49 ,二要修改循环体,将循环体语句变为 S = S + (2 * I + 1)。要做到这些变化,需要学生对For…Next循环语句有比较深刻的理解并能创造性地、灵活地予以运用。通过这种循序渐进的方式,激发了学生主动思考与解决问题的积极性,巩固了教学效果,提高了学生的综合编程能力。

3合理利用现代化技术教育手段,提高教学质量

随着计算机技术的发展,大多数高校现都采用合班课,多媒体投影教学的方式。采用这种现代化教育技术手段,为我们提供了一个更为有效的教学平台,既可以保证板书的正规化,又能够实现板书的多媒体化。但由于课堂人数多,在有限的课堂时间内,增加了老师与学生课堂交流的难度。如何合理利用多媒体,让计算机更好地为教学服务呢?在教学过程中,我采用教学互动的模式,例如拿一些程序和同学们一起思考分析,让学得好的学生示范操作,与学生们一起在黑板上写出必要代码,等等。这样,多媒体教学与传统黑板教学结合使用,使得多媒体教学不再那样呆板,同时也创造了良好的课堂气氛,提高了教学质量。

再者,利用现成的校园网建立网络教学系统,构建基于网络的VB教学平台。我们的教学辅助系统包括教学资源、上机实践与测试、师生探讨与交流、系统管理等几大模块。老师可以在这个平台上开展教育活动,学生可以自主学习,与老师、同学们相互交流[2]。这不仅体现出新的教学手段与方式,而且可以增加学生与老师交流的机会,大大方便了学生自学。

4实践教学,培养学生实践能力

VB与其他计算机方面的课程一样,是技术性、实践性很强的课程。为了加强实践性教学环节,我们把理论课与上机实践课比例设置为1:1。在实践教学中采用小组讨论、协作学习等多种方式,使学生有积极的学习态度,从而获得良好的实验效果。在以往的上机课中,学生只是把书上的例题或理论课上所讲的例子依葫芦画瓢地输入,运行出结果就算大功告成。这样的实践课,学生们不用动脑子,久而久之,就失去了创造力与学习主动性,最终学无所成。为此,在上机实践当中,我每次实验前先提出明确的任务要求;实验中要求学生不允许照搬照抄现成的程序,而是利用已学内容,通过独立思考和适当的编写来完成任务;实验后,要求每个学生写出实验报告,详细写出实验步骤与过程、实验问题与难点。教师收回实验报告,批阅后,把写得好的与坏的程序讲给学生,并共同讨论实验问题,让学生们在实践中加深对理论知识的学习和掌握。

5改革考核形式,体现学生综合运用能力

考试作为教学效果的一种客观测试手段,是教学中的一个重要环节。目前,多数高校对VB课程的考试方式仍然采用传统的笔试。这种方式只注重对学生理论知识的考核,而忽视了对学生实践操作技能的考核,其结果往往很难反映一个学生的真实水平和创新能力[3]。我们根据VB的课程特点,在传统的期末闭卷笔试考核之外,增加了平时考核、实验考核和课程设计考核的内容。平时成绩占10%,期末闭卷考核成绩占60%,实验成绩占10%,课程设计成绩占20%。平时成绩根据学生的出勤情况和课外作业的完成情况给出。实验成绩根据每次的实验报告情况给出。对于课程设计,在课程即将结束的前两周,将所有的学生分成若干小组,让各小组分别选择不同的课题来设计,例如开发一个档案管理系统、图书管理系统,等。小组成员通过查阅资料、构思、讨论,在规定的两周时间内独立完成设计。老师对学生的设计既要进行整体考核,又要对各小组成员所分担的任务进行考核,重点是考核学生完成一个项目的综合能力、集体工作中的协作能力、个人创新能力。实践证明,这种综合考核方法不仅检验了学生把所学知识、技能进行条理化、系统化以及综合运用的能力,而且对调动学生的学习积极性,提高学习兴趣,客观、公正地评价该门课程的教学质量和效果都起到了很好的促进作用。

6结束语

总之VB是一门理论和实践并重的课程,要想使学生在有限的时间内熟练掌握这门课程的内容,对师资、设备和教学过程要求都很高。以上是笔者在VB课程实际教学中实施的一些具体做法。实践证明,通过采用上述教学方法和教学手段,大多数学生的学习质量有了明显的提高,部分学生已能够独立应用VB程序设计完成小型应用系统的开发。

参考文献

[1] 赵晓华,鲁明珠.VB教学方法改革初探[J].中国成人教育,2006,(4):132~133.

[2] 应英.构建基于网络的VB教学平台[J].浙江水利水电专科学校学报,2004,(3):41~44.

[3] 朱跃波.浅谈高职VB教学改革[J].怀化学院学报,2006,5(25):166~168.

第7篇

摘要:从计算科学的角度出发,对程序设计课程的教学方法进行探索与思考,介绍东南大学计算机科学与工程学院在改进教学理念及教

>> 程序设计课程的教学理念与教学方法探究 程序设计课程全英语教学理论与实践研究 VB程序设计课程的教学实践与改革 基于CDIO工程教育理念的.NET程序设计课程教学实践 《Java语言程序设计》课程改革与教学实践 “VB程序设计”课程教学实践与探索 C#程序设计课程教学探索与实践 VB程序设计课程教学改革与实践 Java程序设计课程教学改革与实践 《C程序设计》课程教学改革与实践 程序设计课程混合教学模式改革与实践 独立学院“VB程序设计”课程教学与实践 C语言程序设计课程的改革与实践 “Java程序设计”课程建设的研究与实践 注重实践的程序设计课程教学 探索C语言程序设计课程的实践教学 重在设计能力的程序设计类课程教学改革与实践 基于虚拟软件工厂的程序设计课程教学设计与实践 程序设计竞赛对高职程序设计课程教学的研究与探讨 “C语言程序设计”与计算机相关课程的融合教学与实践 常见问题解答 当前所在位置:l.

[2] 郦全民. 用计算的观点看世界[M]. 中山:中山大学出版社,2009:30.

[3] 董荣胜,古天龙. 计算机科学与技术方法论[M]. 北京:人民邮电出版社,2006:49,109-116.

[4] 徐本顺,殷启正. 数学中的美学方法[M]. 大连:大连理工大学出版社,2008:18.

Teaching Idea and Practice in Programming Course

XU Dongmei

(School of Computer Science & Engineering,Southeast University, Nanjing 210096,China)

Abstract: This paper gives a brief introduction to the improvement on teaching concept and teaching method what author did tryout,and investigates on the teaching method of the program design course from the point of view at calculation science, to the present state and development of teaching principle carried on analysis, put forward a teaching method that is importing the doorstep in the teaching with data consciousness and algorithmic feasibility,usage teaching principle of push thinking, pay attention to the programming style to exaltation teaching efficiency, and promote teaching quality.

Key words: Programming Desing; base teaching; teaching idea; image thinking; abstract thinking

第8篇

【关键词】程序设计;教学改革;项目教学;

非计算机专业目前,绝大多数高等院校已经把计算机程序设计课程作为非计算机专业的一门公共基础课,这是与培养学生应用计算机解决实际问题能力的人才培养基本要求相适应的,也是社会人才需求的选择。但是,从多年计算机程序设计教学经验发现,学生对程序设计课程的学习积极性、主动性不强,甚至很多学生对这门课程开设存在质疑。如何高质量的完成非计算机专业的程序设计课程教学,是笔者一直关注的问题。

1程序设计教学在非计算机专业中存在的问题

1.1学习目的模糊。学习目的不明确是非计算机专业学生学习程序设计课程的主要障碍。很多非计算机专业特别是文科、管理类等专业学生认为学好本专业知识就够了,程序设计课程应该是选修课,对编程有兴趣的就选修,没兴趣的就可以不选。这种认识的不足直接导致其在学习过程中缺乏主动性和积极性,对计算机程序产生畏惧甚至厌恶心理。

1.2知识跨度大,学习困难。尽管有计算机文化基础作为入门,但两门课程在逻辑思维上有着很大差别。计算机文件基础属于应用层面,程序设计课程是以某种程序设计语言为工具,通过分析、设计、编码、测试等不同阶段给出这种语言下的程序以达到解决特定问题的目的。程序设计需要建立程序设计思想,逐步深入到软件本身的学习内容,进而达到熟练运用这种语言解决实际问题。程序设计课程在学习和理解上难度显然比计算机文化基础要大得多。

1.3教学方法陈旧。很多院校的这门课程仍以课堂讲授为主,教师在讲授过程中过于注重知识的传授,如语法、语句、结构等概念性内容,算法设计、程序编写、逻辑思维和抽象思维等能力方面的培养在教学内容中没有充分体现,课堂教学没能体现计算机在专业领域中的应用。

1.4缺乏综合能力的培养。计算机程序设计是一门综合性、实践性很强的课程,由于课时的限制,学生的实践课程更多的是验证课堂上学过的知识和程序,而对包括逻辑思维能力、独立思考能力、动手能力等学生综合能力培养关注不够,学生编程思想不能很好的建立起来,程序无从编起,出现“听得懂,编不出”现象。

2程序设计课程在非计算机专业改革中的前期准备

2.1适应专业需求,选择适合的程序设计语言。

选择适合的程序设计语言对于非计算机专业学生而言至关重要。程序设计课程有面向对象程序设计和结构化程序设计。目前,绝大多数高校都会选取一门结构化语言作为程序设计课程,而且基本上是C语言。结构化程序设计语言具有自顶向下、逐步细化、模块化设计、结构化编码等特点,是一门实用又好用的程序设计语言。面向对象程序设计语言在概念的理解和编程思想上有很大的不同,相对学习起来也困难些。笔者认为选择程序设计语言不能跟风,图一时的省事,不同的学校有不同的特点,同一个学校还有不同专业,所以选择使用哪种语言作为程序设计课程使用第一要务是适合专业需要,同时兼顾社会需求。尝试像Java这样的面向对象程序设计语言也不失为一个很好的选择,对于偏文科、管理类的专业可以选择Visual Basic程序设计语言。

2.2做好教学设计,编制教学一体化设计方案。

依据对学习者学习需要的分析,采用项目引领教学,使教学效果达到最优化,教学设计提出解决问题的最佳方案。在开课之前做好教学设计方案至关重要。

课程教学一体化设计方案编制体现优化组合原则、因材施教的原则,按照项目引领教学,通过多种媒体教学资源和多种教学手段、方法的优化组合,体现“以学生为主体”的教学思想。课程教学一体化设计方案的基本内容包括:课程性质、地位及课程教学目的等;课程的基本内容、各部分内容之间的关系、课程的主线、各主要知识点在教学上的要求等;课程媒体的数量、内容及在教学中的作用、媒体在自学和教学辅导中的分工、如何使用等;教学过程的组织、监督与管理;教学安排建议包括面授辅导的次数、内容、形式及时间,讨论、作业的安排等。

3程序设计课程在非计算机专业的改革思路

3.1以学生为中心,上好第一堂课。

为消除学习程序设计的为难情绪,激发学习热情,提高学习兴趣,我们认为第一节不仅需要给学生一个课程内容的概要介绍,更需要贯穿“以学生为中心”的教学理念,培养学生自主学习能力。

在课程内容安排上,我们会简单讲解程序设计是什么,它能完成什么任务,让学生有一个基本而清晰的认识。重点结合实例讲解对程序设计专业学习的促进作用,哪些方面要求大家具有使用计算机及编程语言解决问题的能力,还有国家二级计算机等级证书在多数用人单位招聘时会获优先录用等实用信息内容。由于这些内容和大学学习以及就业紧密关联,学生听起来非常专注。在了解本专业对计算机能力的需求以及社会对专业人才计算机能力的要求后,学生往往会产生强烈的学习热情,最起码不质疑不排斥了。

3.2以项目为驱动,加强实践教学。

程序设计是一门实践性特别强的课程,学生只有在实际编程中不断总结经验,不断理解编程思想,经过长时间的积累才能自由运用语言达到编程程序解决实际问题的能力。在教学过程中增加更多的实践环节,根据各阶段教学的教学目标,设计合理可行的实践项目,并对项目开展中出现的问题进行分析,解答主要问题,引导学生按照专业的开发流程开展项目。

3.2.1学生分组,确定项目负责人。改变传统的课堂教学实验只是为了验证课本上或教师准备的实例的做法,注重项目的系统性和知识的综合性。培养学生团队合作意识,调动学生的主观能动性出发,采用项目组长负责制的分组方式。每组成员一般在3到5人,组长一人,负责项目设计的总体运行和任务分配。

3.2.2搭建开发平台,选择适合的开发工具。在搭建开发平台时考虑将开发工具、数据库、Web服务器等集成在一起的可视化开发环境,框架结构部分已由开发工具自动生成,减少不必要的编码,又有“所见即所得”的效果。学生有了一定的程序设计基础后,再使用非可视化的开发环境,锻炼学生的程序设计能力。

3.2.3设计用户界面,引入评价机制。为了学生容易上手可以先安排界面设计,这种先易后难、循序渐进的方法使学生产生满足感、成就感,激发进一步学习的热情。用户界面设计出来后,首先各小组选派一人阐述设计思想,然后各小组互评,最后选出优胜者,可以设计一些评价机制和鼓励办法,使学生不仅学会还要优化。

3.2.4编写程序代码,建立程序设计思想。根据学生的实际接受能力,教师按照事先划分好的任务,用实例对每一个知识点进行讲解。教学过程中应避免面面俱到,贪多求全,像玩游戏一下尽可能让枯燥的编码充满乐趣。对于学生,充分发挥项目组的作用,从软件工程的角度出发,适当使用一些其他的辅助工具,提高综合运行能力,建立程序设计思想。

3.3 以人才培养为导向,改革考核方式。

以往的考核方式基本采用笔试+机考的方式进行。笔试和机考的内容、题型相对固定,特别是受考试时间的限制,基本没有综合项目设计方面的考核,考试成绩不能反映学生的综合能力,这样就偏离了程序设计课程考核的本质,因此,提出以人才培养为导向的考核方式改革思路。

跟踪学生的整个学习过程,通过教学过程中项目的完成情况考核学生的学习态度、知识的掌握程度和解决实际问题的能力。授课教师可以采用形成性考核方式+终结性考核两种方式,形成性考核主要依据项目的完成情况,每完成一个项目考核一次作为平时成绩;终结性考核安排在期末,要求学生选一个综合类的项目进行演示,并回答由相关学科的教师组成评审组的问题,教师对项目评分形成期末成绩,平时成绩和期末成绩的汇总就是这门课程的总成绩。这种考核方式避免了学生平时不学习,期末突击复习的弊端,达到了人才培养的目的。

参考文献

[1]罗湛,邓朝霞.非计算机专业C 语言教学改革探讨[J].装备制造技术.2013年第12 期:202-204.

[2]陆金钰,秦庆东.面向土木专业人才培养的《计算机程序设计》课程改革实践与探索.教育教学论坛.2014年第四期:213-215.

第9篇

摘要:本文结合学生的学习心理和认知规律,分析了C语言教学问题的主客观原因,提出了“先过程,后对象”的教学理念,从教材建设、教学内容安排上阐述了教学内容的具体组织实施过程,从教学思路、教学观念、教学手段几方面探讨了教学方法的改革。

关键词:C语言;教学方案;教学组织;教学改革

中图分类号:G642

文献标识码:B

C语言程序设计是一门难学、难懂、难以应用的课程,对学生越来越缺乏吸引力。传统的C语言教材大都存在着内容陈旧、缺乏现代编程思想、过于偏重语法、难度高等缺点,难以提起学习兴趣,学生有畏难情绪。

传统的教学观念,强调先打好基础,然后再进行实践、学习技能。教学实践证明,基础和技能的教学可以同步进行,甚至先教技能再教理论,在不断实践中掌握技能,在技能学习中提高基础理论。这样更适合学生的成长。

为此,我们以社会对学生编程和软件开发能力的需求为依据,参照人才培养模式和专业课程体系改革,对C语言课程教学进行了探索实践。

1 教学方法的改革

在C语言程序设计教学中,我们不再局限于单纯介绍C语言基本语法,而是本着面向未来的精神,把C语言作为一种实践工具,以程序设计方法为主线,以语法和结构为核心,以能力培养和提高学习兴趣为目标,注重理论与实践的结合、先进性与基础性的统一,变应试为应用。

1.1先过程、后对象的教学方法

考虑到绝大部分学生今后不会去搞程序开发,所以思维能力的培养是首要的。从这一角度来说,先过程、后对象的方法更符合学生的认知规律。而过程化的程序设计方法和解决问题的思路更切合学生已有的认知结构,甚至可以说就是我们日常分析问题、解决问题思路和步骤的一种计算机的代码化,更易于被学生接受。

1.2采用一体化教学方法,以程序案例为主教学,通过案例讲解语法要点和难点

“案例驱动”教学法应用在C语言程序设计教学中,就是讲解语法时不停留在理论讨论上,不是教会这一语法现象是什么,而是通过实例教会学生某一语法现象如何应用。比如,算术运算符中的求余运算和整除运算是比较有特色和应用较多的运算,在讲解这两个运算符的时候,就不能只停留在写两个表达式让学生计算出结果来,而应该结合实例让学生知道这样的语法特色用在什么地方,怎么用。如通过求1到5的倒数和这样一个小例子使学生认识整除运算的特点及在今后级数求和运算中如何避免可能引起的误差;通过一个求两位整数的逆序数的小程序,学生就会明白整除运算和求余运算可以用来将一个整数的各个位数分解出来,待后续循环结构介绍完毕时,又可将问题扩展到求任意位数整数的逆序数;当介绍到函数的概念时,又可将问题引申到回文数的判别,这样将一个对学生来说很难的算法问题分散到各个部分来处理,不仅降低了算法讲解的难度,也使学生能真切地体会到学习语法知识的必要性。

教学始终贯穿一个核心实例 ―― 学生成绩管理系统的开发。选择这样一个系统的原因是学生比较熟悉有关成绩的业务和功能,同时开发学生成绩管理系统将涉及到 C 语言程序设计课程的全部知识点。

1.3教学模式特色

集课堂、实验、网络教学于一体,教、学、研有机结合、相互促进,形成了“课内教学+课外俱乐部”、“常规教学+实验教学+网络教学”、“开放实验室+自编教材+教学网站+教辅系统”、“课上现场编程互动+课后作业练习+课下实验练兵+机上考试实战+课外创新实践提高”的立体化教学模式。

2 教学的组织实施

C语言课程的教学目标突出培养学生的编程能力,为实现这一目标,在教学内容上抛弃了过多的语法细节和非通用的或实际用途很少的语言特性,注意强调基础性、实用性、先进性和系统性,兼顾教学和自学两方面的适用性。精简过程化部分的内容、降低其难度、衔接面向对象的方法是关键。主要特点如下:

(1) 以结构化程序设计为重点,面向对象的概念和编程思想为扩展,MFC编程基础为补充,体现了先进性和系统性的统一。

(2) 淡化语法,对语法难点通过实例具体而分散地介绍,舍弃不实用和过于复杂的内容,如位运算、共用体、多继承等概念,体现了基础性和实用性的统一。

(3) 在内容上降低难度,淡化了过于繁杂的指针概念,简化了字符串的处理方法,体现了基础性和先进性的统一。

(4) 将面向对象的一些概念有机地渗透到过程化的内容中,如引用、函数重载、默认参数,这样避免了在面向对象部分集中介绍过多的概念而使学生产生畏难心理。

(5) 强调算法的分析训练,有利于在学时紧张的情况下学生通过自学提高分析问题、解决问题的能力。

3 教学内容安排

结构化的程序设计是本课程教学的基础和重点。结构化程序设计强调按照一定的结构形式来设计和编写程序,不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性,这正是程序设计课程的主要教学目的所在。面向对象的程序设计也是以结构化为基础,这充分表明了结构化程序设计的基础地位。这部分内容在讲解上强调算法分析、淡化语法细节,语法内容是程序实现的手段和工具,而不是学习程序设计的目标。

通过类和对象的介绍使学生了解面向对象方法的实质是强制通过函数来对数据进行操作,从而保证数据操作的安全性,这就是数据隐藏和封装的思想;通过介绍派生类的继承关系,使学生深刻认识面向对象方法对代码重用的支持;而介绍多态性的关键在于让学生了解基于虚函数的多态性的实质是允许将派生类的对象当作基类的对象使用,因而不必为每一个派生类编写功能调用,从而实现接口的复用。这部分内容强调从实用出发,着重介绍基本的、主要的概念。而对从纯理论研究着眼的一些概念,如继承关系中的私有继承以及多继承中的诸多概念等,对于初学者来说过于复杂,要么不做展开讨论,要么就干脆舍弃。

从结构化程序设计到面向对象的方法过渡时,要解决学生思维方式的转换和衔接的问题。由于思维惯性,学生会将面向对象方法和结构化方法的比较贯穿于所设计的程序中。授课时要从学生的认识规律出发,不必急于空泛地强调面向对象方法的好处,要让学生清楚面向对象的程序设计和结构化程序设计一样,只是一种程序设计方法,它是为解决程序复杂性而产生的。就解决简单问题而言,并非一定要采取面向对象的方法,也并非面向对象方法一定比结构化方法更好。结构化程序设计是从一个个具体的局部入手,描述问题的解决过程;而面向对象的方法是从全局的角度抽象出问题所涉及对象的整体框架,再来描述各层次、各部分的内在联系。方法虽然因着眼点不同而不同,但面向对象的方法仍然是以结构化程序设计方法作为其代码基础的。这样学生既了解了它们之间的区别,又认识到了其间的联系。

4 考核体系

课程考核评价方面,建立了全新的考核评价体系,注重过程考核、编程实践能力考核,改革后的课程评价考核体系主要体现了考核形式多样化、考核标准合理化以及考核试卷个性化三大特征。

5 实验教学

C 语言特别适合编写系统软件,执行速度快,代码质量高,在进行系统控制、调节、测量、硬件驱动等方面具有独特优势,这些优势必须要通过实训室中软硬件结合的程序设计方可体现。按照“少而精”的原则,压缩并精选实验项目与内容,提高教学效率,从而使实验教学与理论教学的结合更加紧密。

开放实验室,让学生可自主选择实验时间、自主选择实验内容,为学生提供勇于探索、敢于创新的外部环境。

建设了与课程相配套的具有我院特色的实验环节: 课程设计、项目分析设计、科研开发等。考试方式:上机实验和考试结合,增加机试,借助编程题自动评分系统考核学生实际编程能力;开发编程题自动评分系统,向无纸考试过渡;开发题库系统,为机考提供支持;开发在线教学网站,拓展教学空间。

课内实验教学兼趣味性和实用性于一体,课余通过指导学生参加科技创新活动、各种程序设计大赛、学生俱乐部的各类小型软件开发项目,达到巩固知识、锻炼能力、提高素质的目的。

6 结束语

通过几年来的实践,我们加强教学的内容选取、组织形式、实例贯穿、上机实践、课时安排、教学环境与利用、教学评价与考核等多个环节的改革,取得了相当不错的教学效果。

参考文献:

[1] 龚沛曾等. 案例教学法在"Visual Basic程序设计"课程中的应用[J]. 计算机教育,2004,(5): 62-63.

[2] (美)HM.DeitelP.J.Deitel著.C++编程金典第三版[M].北京:清华大学出版社,2005.

[3] 张春兴.教育心理学[M].杭州; 浙江教育出版社,2006.

[4] 龚沛曾,杨志强主编.C/C++程序设计教程[M].北京:高等教育出版社,2004.

[5] 刘鹏,安玉洁. 微格教学的多元化架构[J]. 电化教育研究,2007,(9).

第10篇

引言

随着软件外包行业不断深入的发展和层次的不断提升,对本领过硬的高素质专业技能人才和应用型创新人才的需求也日渐凸显。普通高等院校的计算机科学与技术专业本科生培养目标之一是为IT市场培养应用型人才[1],本科生毕业后主要从事软件开发等相关工作,在工作中直接应用程序设计类课程所学知识,所以,这类课程对于计算机专业本科生尤为重要。

一、目前教学中存在的问题

在IT行业急需大量的从事软件开发相关工作的人才的情况下,普通高等院校的计算机专业每年培养的相当数量的本科毕业生的就业情况却很不理想,与这种需求不成比例。高校的这类课程的教学方法和过程与其他类别的课程几乎没有区别[2,3],采用教师讲授、学生学习、实践环节、考试检验四个步骤的传统教学过程,“学”与“用”脱节,导致学生为了“学”而学,不积极主动思考如何主动的去解决问题,甚至主动的学习新的知识进而主动的提出问题,缺乏项目开发的实践经验,到了工作岗位难以胜任工作,从而失去了高校教育的“学”是为了更好的“用”的意义。

二、改革目标和研究内容

1.改革目标

在教学中培养学生的主动性和创新思维,解决目前学生只学不思考的问题。培养学生的团队合作能力以及领导能力,拓宽知识视野、面向实际应用、注重自主学习能力和独立思考问题的能力。增加不同程序设计语言比较及与程序设计语言密切相关的课程内容,解决目前学生对课程学习过于单一、无法融会贯通的问题。

2.研究内容

基于以上存在的问题和现状,本文主要研究普通高等院校计算机科学与技术专业本科生的程序设计类课程新的教学模式和方法的理论和实践的改革,主要有以下四方面。

2.1教学模式

打破传统的“教师讲―学生听”的教学模式,释放学生在学习活动中的热情与潜能,在课堂上采用基于主题词的问题式的开放的教学模式,即:教师根据本次课程的内容事先研究出几个主题词,并围绕主题词向学生提出问题;让学生根据所学过的各门课程的相关专业知识,围绕问题分组展开讨论;教师根据各组讨论的结论和问题总结知识点,并有针对性的讲解本次课程的内容。通过这种方法培养学生的联想、主动思考、主动解决问题的能力。

改变传统的理论和实践结合的模式,把理论课堂转换到实验室。由于程序设计类课程的实践性强的特点,采取企业培训的模式:理论内容和实践内容不再分离,而是融合到一起。

2.2学习方法

突破传统的课下学生分散的独立学习的方式,采用集中式的小组讨论式团队学习法。每进行一周的课程开展一次小组讨论,讨论的主题和内容自拟,每次2-4小时。学生每五人分为一个小组,设组长一名,每组配备一个助教,助教可由高一年级的优秀学生担任,针对课堂和作业以及其他方面遇到的问题和关键知识点组织讨论,并作讨论日志。在讨论的过程中让学生彼此了解自己的不足,也学习到了其他人提出的问题中蕴含的知识,锻炼了学生的学习能力、与人沟通的能力和团队合作的能力,高年级的学生在助教的过程中也会学习到新的知识并提高组织和管理能力。

2.3强化训练环节

每2-3周,教师根据所学知识布置一个大作业,每名学生都独立完成。通过查阅相关资料,解决作业中的问题,并以项目报告的形式提交,报告中体现软件工程的思想,包括需求分析、概要设计、详细设计、编码及作业遇到的问题几方面,培养学生的独立解决问题的能力的同时也培养了学生的项目写作能力。在学完程序设计类课程的学期,安排实践项目训练,与企业联合。以规范化的企业标准训练学生,使学生提前进入工作角色。

2.4培养方案

在培养方案中增加程序设计语言比较课程。渤海大学的秦玉平教授,提出过程序设计类课程整合的方法[4],但没有明确提出在培养方案中开设该课程的研究。对于学习了两种以上的程序设计类课程的学生,开设多种程序设计语言比较的课程,并拓展与程序设计相关的其他课程的知识在程序设计中的应用。

三、教学改革实施过程

实施方法:采用市场调查、理论分析和实践研究相结合的研究方法。对于程序设计类课程新的教学模式采用理论分析和实践结合的方法;对于创新思维和综合素质的培养采用实践反馈和循序渐进的研究方法;对于基于主题的问题式教学方法采用在课堂中实践的研究方法,分析总结教学效果;对于课堂研讨和课下交流教学过程,采用实践的研究方法。

具体实施计划:

第一阶段:对软件外包企业进行调研,了解用人单位对人才的定向技能的需求,制定程序设计类课程的培养方案。对学生基本情况进行调研:分析学生的需求,总结学生的意见,了解学生对已学知识的掌握程度。

第二阶段:撰写适应本教学改革的教案,主要包括问题式开放教学的问题的设定、大作业的内容的设计和占总成绩的比例和项目案例的设计。

第三阶段:总结前一学年的教学效果。进一步修改教学大纲以适应教学改革,针对发现的问题定制更完备而详细的教学计划,并调整教学大纲。

第四阶段:重复第二、三、四轮本方案,并实行本方案的小组讨论式团队学习法中高一年级的优秀学生担任小组助教的教学过程。

第11篇

随着我国信息化进程的推进,各行业对IT人才的需求日益增加,然而,软件专业毕业生就业问题却很严重,一方面毕业生找不到满意的工作,另一方面用人单位感慨招不到适合需要的专业人才。这种现象在高职院校中表现尤为突出。调研表明,用人单位普遍反映出软件专业应届毕业生存在以下较为突出问题:(1)应聘简历中课程繁多,但学生缺乏专业核心竞争力――程序编写能力;(2)自主学习能力偏差;(3)普遍缺乏沟通和团队协作能力和创新意识和能力。

一、目前程序设计类课程在教学过程中存在的主要问题

作为以培养技能型人才为培养目标的高职高校,程序设计能力是计算机专业学生的最主要的核心竞争力之一。在计算机大类专业的人才培养方案中,有大量的程序设计类的课程作为专业基础课或专业选修课,我们发现?上述课程的教学过程中存在以下问题:

(1)课程实验以模仿为主,练习的“代码量”严重不足,不利于所学知识的内化和程序设计能力的形成与提高,也不利于学生创新思维和创新能力的培养:课程实验环节通常配有实验指导书,学生可以根据指导书依样画葫芦完成实验,非常不利于学生将所学知识内化为自身的技能。另外受课时限制,实验数目和题目数目均受到限制,同时也非常缺少自主设计环节,抑制了程序设计能力的提升和学生主观能动性的发挥。

(2)教学环节中学生之间缺乏良好的合作机制和良性竞争环境:传统的实验教学主要是通过教师向所有学生讲解实验目的、实验要求和实验注意事项,而学生上实验课时每人独立操作,教师对提出问题的学生进行辅导。学生相互之间无法形成合作的氛围,很难建立合作机制,不利于学生团队合作能力的培养。

(3)考核以考试为主,缺乏科学的课程考核方法:传统的实验考核模式通过考勤、提问、实验报告和卷面考试等方式来衡量学业成绩,这种评价方法无法真实地衡量学生的能力,学生的实验报告往往存在互相抄袭现象,而卷面考试则往往以客观题为主,反映的只是学生死记硬背的能力,从而使考核体系成了一种摆设,反而进一步扼杀了学生分析问题、解决问题的能力。

(4)教师各自为政,缺乏丰富且优质的共享教学资源,限制了学生自主学习能力的提升:由于没有统一的教学平台,任课教师的资源相对分散,教师在组织课堂教学时各自为政,学生缺乏丰富的实践资料,学生中缺乏自主学习的良好氛围,教师不能很好地监控和管理学生自主学习的情况,学生很难熟练掌握教学内容,学生的自主学习能力的提升就受到了很大的影响。

尽管前期对程序设计课程进行了项目化教学改革,在一定程度上克服了传统实践教学模式中学生一味模仿、没有相互协作、没有自主学习和创新等问题,但还是逃不出模仿为主,练习量少,在有效提升学生程序设计能力上面还是存在很大的不足。

二、对程序设计类课程教学过程的改革设想和实践

我们教学团队主要通过强化学生编程实践,提高编程思维能力为核心,构建教学内容的项目化、练习实践的竞赛化、辅导过程的自主化、考核方式的过程化的“四化”教学模式。

从而达到培养具有程序思维和设计能力、有一定创造性和团队协作能力的算机类专业应用型人才。具体的改革设想和课程教学实践如下:

1)以整体项目完成为依托,完成课程教学内容,实现教学内容的项目化。

课程以“1个项目,8个单元、11个任务”的形式分解原来知识体系,打破思维定式,让学生在项目完成过程中掌握知识、提高技能。相关课程标准、教学单元设计、教学课件、考核方案、《儿童智力游戏》开发演示软件、基础知识练习题等都依托Moodle平台,学生可以随时下载学习。

2)构建融合教、学、考等环节的综合实践教学平台,建立分层次的题库,利用平台开展竞赛化的实践练习,提升学生程序设计能力,激发学生创新能力,培养学生团队协作精神。

建立实践教学平台是改革的基础和出发点。平台将集成较丰富的、为各程序设计相关课程专门定制的、按梯度安排的大量设计题目资源,可以高效完成学生成果的提交、批改、成绩生成等教学环节。

(1)全自动判题平台可以布置实践作业和竞赛,也可自主练习。在采用项目化教学方式使学生对课程知识的理解和应用建立整体认知的基础上,引入竞赛模式,针对每一个教学单元设置一个时间跨度包含课内外的随堂练习竞赛,将竞赛作为推动教学的手段,通过竞赛检验阶段教学成果。

(2)平台对学生的竞赛和练习提供实现了实时排名功能,竞赛排名能有效的激发学生相互竞争的意识和学习自主性。在竞赛环境下,必将出现学生想更多更好地解决问题的趋势,而要解决更多更难的问题,势必要先学、多学,学生自主学习的意识自然增强。学生通过参加练习赛,巩固必须掌握的基础知识,提高解决实际问题的能力;通过对竞赛中难题的探索,进行深入学习,提升程序设计能力;通过同组队员之间的讨论,提高沟通能力,逐渐培养团队合作意识和互助写作精神。

(3)平台设置了代码比对机制,若检测到代码抄袭行为,将扣除其成绩排名作为惩罚,激发学生实践和创新的热情,同时保证学习的公平性。

(4)利用平台教师可以对学生学习情况、学习成果进行实时客观的统计分析。随时了解所教学生的学习动态,及时发现学生学习中出现的问题,有针对性地进行学习指导与督促。

3)引入翻转课堂理念,录制随堂练习题辅导的微课视频,让学生根据自己的实际能力,随时进行自主学习,实现差异化教学效果。

多年的教学实践表明,每个学生学习能力的存在较大的差异,有的学生学习基本知识点之后就能解决很多实际问题,有些学生完全不能将他应用于实际应用。为了整体的提升所有学生的实际编程能力,教学要求所有学生完成规定数量的的编程实践练习题。教学中,我们引入翻转课堂理念,录制规定要求学生完成的程序设计练习题的辅导视频,并于Moodle平台的网络课程上,学生可以根据自己的解题能力,有选择的播放学习,直到达到解决问题的程度,实现自主、个性化辅导。

4)改革课程考核方法,考核过程化,促进学生学习的主动性。

传统考核方式,依据考勤、提问、实验报告及期末考试等方式进行,可操作性不强,且有失客观、公正,也很难客观的体现学生的实际编程能力。通过与竞赛类似的考核方式,采用自动判别方法,考核结果更加客观、公正,并突出过程学习、实践能力在评价指标中的地位,评价体系较为科学、合理。因此课程的考核将全部采用过程化形成性考核,根据每单元随堂练习赛的排名决定每一次的平时成绩,学生随时都可以看到自己当前得了多少分和整体排名情况,有效的促进学生学习的主动性和积极性。

第12篇

关键词:计算思维;Visual Basic 程序设计;教学

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)25-6266-03

The Application of Computational Thinking in Visual Basic Programming Teaching

JIA Ru, HAO Chang-sheng, PEI Yi-fei

(The Engineering and Training Center, Inner Mongolia University of Science & Technology,Baotou 014010, China)

Abstract: Computational thinking is widely becoming a hot spot in computer education nowaday.In order to cultivate and train the college students' ability of computational thinking & the computational ability better, computational thinking is applied in Visual Basic Programming Teaching.It is a new teaching reform which will provide a good example for the teaching of other computer education.

Key words: computational thinking; visual basic programming; teaching

目前,计算思维的培养成为国际和国内计算机教育界关注的热点。在我国,2010年《九校联盟(C9)计算机基础教学发展战略联合声明》的核心要点也强调“需要把培养学生的‘计算思维’能力作为计算机基础教学的核心任务”。而且从国家层面上讲,大学计算机基础教育这门课程的定位就是基础课程,也就是与数学、物理同地位的基础课程[1]。既然它是基础课程,课程的教学方法和教学理念就应该像数学与物理一样,将学科的基本理论、基本思维讲给学生。计算和计算思维是计算机基础课程的基本理论和基本思维,科学家已将计算思维和理论思维、实验思维并列为人类三大科学思维[2] ,为此,就应该将计算思维的基本概念和基本理论讲授给学生。因此,在大学计算机基础教育中强调和深化“计算思维”的培养,既有助于计算机基础教育学科的健康、持续发展,又有助于国家战略型人才的培养。

“Visual Basic程序设计”是大学计算机基础课程的重要分支,也是许多高校非计算机专业进行计算机基础教育的重要课程之一,该课程的目标:学习问题求解的思路和方法即算法,理解计算机是如何具体实现算法即如何有效利用计算机编程,最终通过该课程的学习提高广大学生的计算机操作使用能力、应用开发能力、研究创新能力以及计算思维和计算能力。也就是说,培养和训练大学生计算思维不仅是计算机基础教育的现实要求,更是Visual Basic程序设计的课程要求。

1 计算思维

国际上广泛认同计算思维的定义来自美国卡内基・梅隆大学周以真(Jeannette Wing)教授。周教授认为,计算思维(Computational Thinking)是运用计算机科学的基础概念(即思想和方法)进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动,它不仅属于计算机科学家,它应当是每一个人的基本技能[3]。计算思维是建立在计算过程的能力和限制之上,由人由机器执行。计算方法和模型使我们敢于去处理那些原本无法由个人独立完成的问题求解和系统设计[4]。计算思维的本质就是抽象和自动化,即如何按照计算机求解问题的基本方法去考虑问题的求解,以便构建出相应的算法和基本程序。

计算思维是一种具有普遍性的科学思维方法,依据周教授的观点,它包含如下主要内容:

1) 通过简约、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐述成一个我们知道问题怎样解决的思维方法;

2) 是一种递归思维,是一种并行处理,是一种把代码译成数据又能把数据译成代码,是一种基于多维推广的类型检查方法;

3) 是一种采用抽象和分解来控制庞杂的任务或进行巨大的任务系统设计的方法,是一种基于关注点分解的方法(Seperation of Concerns,简称SoC方法);

4) 是一种选择合适的方法陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;

5) 是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法;

6) 是利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法;

7) 是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折衷的思维方法。

2 以“计算思维”为线索展开“Visual Basic程序设计”教学

思维方法比知识本身更重要。既然计算思维是一种问题求解的基本思维方法,作为从事计算机基础教学的一线教师就应该切实地在日常教学中潜移默化地训练和培养学生的计算思维能力,提高他们的计算思维素养,进而培养和锻炼他们的创新能力。

2.1 以“计算思维”为线索展开“Visual Basic程序设计基础”教学

Visual Basic程序设计基础就是Visual Basic语言。正像自然语言的产生是人类社会活动发展的客观要求和必然结果,同样,计算机语言的产生和发展则是人类使用计算机的客观要求和必然结果。从计算机语言的基本语法到其整体结构,都渗透着许多计算思维。因此,以“计算思维”为线索展开“Visual Basic程序设计基础”教学就是:在讲解相关知识点的同时也要讲授其中所反映的计算思维,通过思维强化知识,通过知识培养思维;这样,既有利于语言本身的学习,又有助于学生计算思维能力的培养。

例如,人们利用计算机就是为了处理信息数据,而不同类型的信息数据,其表达方式不尽相同,其处理方式也会有所不同,那么,计算机是如何实现信息数据的表示、存储和处理?这其中蕴含的计算思维又是什么?首先,根据冯・诺依曼计算机体系结构:从软件方面考虑,可通过声明或定义不同类型数据以表示不同类型的信息;从硬件方面考虑,可通过存储元件可实现信息数据的存储,不同类型的数据占用不同长度的存储单元。可仅仅完成信息数据的表示和存储是远远不够的,如何真正实现数据处理?由此便产生了计算机语言,即利用计算机语言编写的数据处理程序指挥CPU(中央处理器)完成相应的数据处理。这个通过人、机共同努力完成的“问题求解”过程,就是一个计算思维的实现过程,如图1所示。

显然,实现这样一个信息处理的计算思维,是需要计算机语言的技术支持:即数据表示(数据类型)、数据存储(变(常)量)和数据处理(表达式和控制结构),并由此引出Visual Basic语言基础知识的学习。

2.1.1 数据表达

数据表示――数据类型

例如,根据现实生活中不同的信息数据如文本型、数值型、逻辑型、日期型、货币型等,Visual Basic语言便提供了相应的数据类型:String型(字符型)用于表示文字信息,所占用的内存空间最多可达20亿字节;Numeric型(数值型)用于表示数值信息,表示范围越大、精度越高的数据类型所占用的存储空间也越大,如Byte型(字节型)、Integer型(整型)、Long型(长整型)、Single型(单精度型)和Double型(双精度型)、Currency型(货币型)6种基本类型,它们所表示的数据范围和精度依次增大;Boolean型(逻辑型)用于表示逻辑判断的信息,如对/错、是/否、真/假等,占用2个字节的存储空间;Date型(日期型)用于表示日期、时间信息,一般占用8个字节的存储空间;Variant型(变体型)是一种特殊的数据类型,可用于表示任何信息,占用的存储空间灵活;Object型(对象型)用于表示任何类型的对象,一般占用4个字节的存储空间。

数据存储――变(常)量

这些不同类型的数据在计算机具体处理时,一般都被放在一定的内存单元中,但为了进一步高效地使用系统资源快捷地处理这些数据,用户需要指定这些内存单元,于是Visual Basic给我们提供了变(常)量,即用户通过声明或定义相应数据类型的内存单元的符号地址,CPU就可根据这些符号地址准确地存取数据,进而进行相应的运算。

2.1.2 数据处理

简单的数据处理――表达式

Visual Basic在充分利用CPU运算功能的基础上,提供了针对不同类型数据采用不同的计算方式――表达式,它是一种最基本的数据计算方法,主要有算术表达式(完成数值型数据的计算)、字符串表达式(完成字符型数据的计算)、关系表达式(完成数据的比较计算)、逻辑表达式(完成逻辑型数据的计算),并由此实现对数据的初级、简单处理。

复杂的数据处理――控制表达

在日常的信息数据处理过程中,常常需要根据不同条件,实现对数据灵活多样的处理,显然,基本表达式难以直接实现,于是基于这一客观需要,计算机语言便产生了控制表达,即根据条件完成相应的计算,如语句级控制(如分支、循环)和模块级控制(如函数)[5]。

语句级控制的结构有条件语句控制和循环语句控制。条件语句控制结构主要有:If条件分支和Select条件分支,循环语句控制结构主要有:For条件循环和Do条件循环。

模块级控制,对于Visual Basic语言而言,就是过程级控制。Visual Basic将一个工程分为多个模块(也称文件),每个模块中的代码又分为相互独立的多个过程(Procedure)。过程就是具有一定语法格式、完成一个相对独立任务的语句段。在同一个工程中的各过程在代码上相互独立,但功能上相互联系。过程级控制的结构主要有两种:系统内部过程(内部函数过程、事件过程)和自定义过程(用户根据自己需求设计的过程)。

2.2 以“计算思维”为线索展开“Visual Basic程序设计”教学

简单的计算机语言支持,可以完成简单的数据处理,但对于复杂、大量的数据处理,则需要一定的处理方法,这便是程序设计方法。当前,影响最大、使用最广泛的程序设计方法主要有两种:面向过程程序设计方法也称结构化的程序设计方法(Structured Programming)和面向对象程序设计方法(Object Oriented Programming)。Visual Basic语言既可以实现面向对象也可以实现面向过程的程序设计。面向过程程序设计是一种传统的程序设计方法,面向对象程序设计方法是一种全新的、当前比较流行的程序设计方法,但不管是哪种程序设计方法都是值得学习和借鉴、并能有效解决实际问题的计算思维方式。以“计算思维”为线索展开这部分内容的教学就是将程序设计实现问题求解所体现的计算思维讲授给学生,即“方法”随着“思维”的讲解而展开,“思维”随着“方法”的贯通而形成,“能力”随着“思维”的理解和训练而提高,最终使学生真正掌握基于计算技术/计算机的问题求解思路和方法,并逐步培养他们相应的计算思维和计算素养,提高他们的计算能力,进而为他们日后所从事的研究和工作开拓思路、大胆创新奠定基础。

2.2.1 面向过程的设计方法

面向过程的设计方法所强调的计算思维:程序功能的实现主要由过程(或函数)完成实现。在程序中接收或者定义各种数据,然后通过过程(或函数)对数据进行操作,最后将结果输出或返回。面向过程设计方法的特点是将数据结构和过程(或函数)作为两个实体对待,程序设计范型的主要特征:

程序=数据结构+算法

程序中数据结构和过程的分离,造成了程序的可重用性差,程序维护代价高,因此,面向过程的设计方法更适用于功能和数据结构及其关系都不复杂的问题求解。

Visual Basic系统提供了丰富的内部函数、事件过程,而且用户还可根据需要自定义实现一定功能的过程(也称子过程或函数)。无论是系统提供的还是用户自定义的各子程序之间可以彼此独立,亦可相互联系、相互调用,形成了结构化明显的程序结构,其中充分体现了结构化的计算思想:

1) 自顶向下、逐步求精

在进行程序设计时,先把对问题的处理(算法)粗分成几个步骤,叫模块。然后对每个模块再细化为几个小模块,每个小模块再细分为若干个更小的子模块,直到每个小模块功能直接用语言来实现为止。这种逐步细化的计算思维方式,使得程序结构清晰,便于日后维护和修改。

2) 模块化

整个程序就是由几个大模块构成,各个大模块又是由功能相对独立的模块组成,每个模块只能有一个入口和一个出口与外界联系。这种清晰的程序结构,既便于机器实现功能,又便于设计者的设计,同时还便于程序的调试、修改和维护。

3) 三种基本结构

整个程序中的大小模块仅由顺序、选择和循环三种基本控制结构组成。这三种基本控制结构都是单入口和单出口,它们可以任意组合、嵌套,可构造各种功能复杂的大结构,且又能保证每个模块结构清晰、层次分明,致使整个程序结构也很清晰。清晰的结构提供了清晰的问题求解方案。

2.2.2 面向对象程序设计方法

面向对象程序设计方法体现的计算思维:通过操作对象完成需要的功能,对象包括各种数据和方法,方法就是对数据进行操作,然后将得到的结果输出或返回。面向对象程序设计是一种围绕真实世界的概念来组织模型,它采用对象来描述问题空间的实体,强调从问题域的概念到软件程序和界面的直接映射,因此,它更接近于人的自然思维[6]。面向对象程序设计这种新型程序设计范型的主要特征是:

程序=对象+消息

其中,对象是程序的基本元素,传递消息是基本操作。具体体现在这些方面:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律;程序中的一切操作都是通过向对象发送消息来实现,对象接收到消息后,启动有关方法完成相应操作;类由继承关系产生相互间联系。一个程序中涉及到的类,可由程序设计者自己定义,也可使用现成的类(包括类库中的类或他人已建好的类),尽量使用现成的类是面向对象程序设计范型所倡导的思维方式。

面向对象程序设计方法一般包含如下四个基本步骤:

1) 系统调查和需求分析

2) 面向对象分析OOA(Object Oriented Analyzing)

3) 面向对象设计OOD(Object Oriented Designing)

4) 面向对象实现OOP(Object Oriented Programming)

在这样的理论框架[7]指导下,在具体教学中,将面向对象程序设计的计算思维的核心概括为:一个中心即以对象为中心、两个基本点即前台设计和后台设计,这里的前台主要指用户界面,后台主要是程序代码,但无论是前台还是后台都是围绕对象展开,并由此帮助学生逐步构建面向对象程序设计方法的计算思维,进而用之解决具体实际问题,尤其是在开发功能较为复杂的大型系统,面向对象程序设计方法将是一种简洁方便、高效的求解方案,不仅如此,还应启发和鼓励学生并创造性地运用这种面向对象的计算思维解决现实生活中的多种问题。

3 总结

以“计算思维”为线索展开“Visual Basic程序设计”教学,就是将程序设计中所体现和涉及的计算思维,通过日常教学予以精讲、明讲、透讲,然后再启发学生利用这些计算思维自主解决实际问题,帮助他们从中领悟“什么是计算思维?如何应用计算思维解决问题”,并在解决问题中自主建构自己的计算思维、锻炼自己的计算能力,进而为他们将来的研究、工作和学习中具有创新思维和创新能力夯实基础。

当然,以“计算思维”为线索展开“Visual Basic程序设计”教学,作为一种教学改革和教学尝试,需要进一步完善,特别是,随着对“计算思维”理论知识与实践知识认识的深化,将会更好地指导教学实践,真正培养学生的计算思维和计算素养,提高他们的计算能力。

参考文献:

[1] 陈国良, 董荣胜. 计算思维与大学计算机基础[J]. 中国大学教学, 2011(1):7-11.

[2] 朱亚宗. 论计算思维[J]. 计算机科学, 2009,36(4):53-55.

[3] Jeannette putational Thinking[J]. Comminications of the ACM,2006,49(3):35.

[4] 董荣胜. 计算思维与计算机导论[J]. 计算机科学, 2009,36(4):50-52.

[5] 何钦铭, 颜晖, 等. “程序设计基础”课程教学实施方案[J]. 中国大学教学, 2010(5):62-65.