论文网
首页 职业教育教育技术学正文

基于Ch交互式平台的C++语言程序设计课程教学研究

  • 投稿排骨
  • 更新时间2015-10-09
  • 阅读量256次
  • 评分4
  • 33
  • 0

陈晋音,卢 瑾,张 健

(浙江工业大学 信息学院,浙江 杭州,310023)

摘 要:针对传统C++语言程序设计课程存在的问题,提出基于Ch交互式平台的C++语言程序设计教学建设方案,阐述如何搭建线上线下结合的学生综合评价体系,介绍该建设方案在实际教学过程中取得的良好效果。

教育期刊网 http://www.jyqkw.com
关键词 :C++语言;Ch交互式平台;项目式;案例;线上线下综合评价

0 引 言

程序设计课程是大多数非计算机专业学生的必修课程,也是培养学生基本素质的一门重要课程[1]。C++语言不同于大学英语、高等数学等基础必修课,重在培养学生基于计算思维求解问题的思想和能力[2],问题分析、建模和算法设计、实战编程的能力。C++语言功能强大、表达形式丰富、使用方便灵活、应用领域广泛,目前大多数高校都将C++语言作为大学新生的程序设计入门语言,也将其作为数据结构、算法设计等课程的工具语言。

C++语言程序设计是一门实战型课程,程序设计开发环境的选择、课堂教学和实验教学的有机结合[3]、学生计算思维能力和编程能力的评价体系[4],是课程教学中需要解决的3个难题。选择合理有效的开发工具能使程序设计的学习事半功倍,科学合理的设计教学案例和教学模式,能激发学生自主求解问题、学习新知识的动力,而客观的教学评价体系则让教与学相辅相成,设计一套教学研究方案从以上3个方面着手,积极做好学生逻辑思维、计算思维和创新能力的培养。

国内很多学者对于如何针对C++语言程序设计教学提出了很多很好的建议,如吴文虎教授提出的“理念先行”,就有效地解决了解题思路的问题;斯金纳提出了如何有效提高课堂效果的教学方法。针对如何将“以教师为主”的教学转化成“以学生为主”的教学,后续提出了教学改革方法,有研究型教学[5]、任务驱动式教学[6]、混合式教学[7]、抛锚式教学[8]、项目式教学[9]等,这些方法的共同目标是提高学生的学习积极性,化被动传授知识为学生主动获取知识,并培养学生的程序设计能力、计算思维能力和创新能力,但是这些方法往往擅长从单个方面探究,缺乏一套完整的从开发平台、教学方法和教学效果评价为一体的课程教学研究,教学方案的效果有所局限。选择合适高效的程序设计开发平台,设计相应的项目驱动式教学方案,并利用线上线下混合管理学生、评价教学成果,完成这三个方面的工作是本课程教学研究的重点。

1 C++语言程序设计课程现状分析

C++语言程序设计教学分为理论教学与实践教学,前者主要以教师课堂教学PPT为中心展开基本概念、语法和规范的教学;后者主要是让学生自己动手,围绕知识点展开程序设计、编写和测试等上机实验训练。

在教学过程中,普遍存在以下问题。

1)开发环境缺乏交互性。

传统的C++语言教学编译环境包括常用的C++语言程序的运行平台,有Turbo C++、Visual C++、Borland C++等,它们都是集成化的开发环境,要在这些平台上演示一个最简单的程序,如输出一行字符或求一个表达式的值,都必须写出完整的程序,这对初学者来说无疑使C++语言的上机复杂化,而初学者需要的是能够简单明了地直观看到运行结果,以便于理解。其次,这些平台都是编译性平台,虽然可在程序运行中设置断点或设置要查看程序运行过程中某些变量的变化情况,但对于初学者,无法提供直观的查看方式。

2)求知积极性没有被完全调动。

C++课程的授课对象通常是大一的新生,他们需要从高中阶段的被动式、高压式知识获取方式转变成大学开放式、自主式的知识发现,一方面需要教师积极引导学生从被动到主动的求知习惯,另外一方面,现有的教学模式是以教师为中心、以知识点为导向的学习,即便有人提出以“学生为中心”的课堂教学,依然没有从根本上激发学生的积极性。

3)分析问题和程序设计能力差。

学习过程中,学生的知识学习与实际应用脱节,他们能够从有限的教材上获得典型的例题求解方法,但是没有办法从编者的角度,从实际应用的角度抽象出应用问题的一般分析、分解、设计和求解方法。掌握了语法细节和规则,难以从实际问题出发,通过逻辑思维、计算思维,乃至创新思维的方式解决问题,而这些恰恰是C++语言程序设计课程的核心和灵魂。

4)理论教学为主,学生实战能力弱。

一般高校安排C++语言程序设计课程的课时以理论课为主,上机实践课为辅。以浙江工业大学信息学院电信专业为例,C++语言程序设计课程总学时64课时,其中理论48课时,上机16课时。学生由于大部分时间都是以课堂听课的形式获取知识,通过上机实践辅助程序设计和调试的过程,在大一阶段几乎没有接触到应用的机会,迫切需要从一开始接触程序语言就让学生培养解决问题的思维方法,理论和实践教学并重。

5)考核机制单一,无法全面评价学生能力。一般高校的C++语言程序设计课程考核主要基于两个方面:期末考试和上机实践的表现,其中期末考试题型多以客观题为主,上机实践题则是程序设计题为主,通常都是体现了所谓的关键知识,更多是典型例题的拓展题目,从知识点分布出发。个别院校有采用限定时间的上机程序设计评定,但这些方法都没有跟踪式的评价学生整个学习效果,无法全面评价学生的综合能力。

2 基于Ch交互式平台的C++语言程序设计课程教学研究方案

总结教学现状,针对传统C语言程序设计课程存在3个方面的问题:程序开发平台单一、课堂教学和实践上机环境脱节、课程评估方式不利于培养学生的程序设计能力和计算思维能力,我们提出基于Ch交互式平台的C++语言程序设计教学建设方案,充分利用Ch解释平台的交互功能和内存透明管理,设计项目式教学方案,并设计线上线下结合的学生综合评价体系。

2.1 基于Ch交互式平台的程序设计课程

Ch交互式平台已被多所高校采用,作为C++语言程序设计课程的开发平台[9-10],我们根据学生的学习规律,从基础认知阶段、中级理解阶段和高级设计阶段,基于Ch平台设计3个阶段的课程学习。图1是基于Ch平台的分阶段程序设计课程方案,分3个阶段,循序渐进推进课程教学:基于Ch交互式窗口开发平台的形象化教学、基于Ch Professional平台的理解强化教学和基于Ch IDE集成化编程环境的高级创新程序设计。

1)基于Ch交互式开展形象化基础教学。

学生一开始接触C++语言,避免被其繁杂的内存管理和指针操作难倒。我们基于Ch的强大交互能力,将一些抽象的概念形象化,如数组和指针的概率,单个语句键入后马上就可以得到结果进行验证。数组和指针的存储格式、访问方法和调用方式等都能够直观地显示给学生,体现了很好的交互式形象化教学。

2)基于交互性程序运行平台的综合程序设计。

要求学生掌握基本的语法、基本结构和简单的算法设计编程实现,基于Ch professional平台设计典型应用的问题分解、程序设计和编写、测试。由于平台具有良好的调试界面和功能提示,学生在通过基础教学后,展开一定自主能力的上机实践成为很好的锻炼,professional平台的结果演示界面可以规范初学者的编程习惯,在基础教学的基础上进入巩固和综合应用程序设计阶段。

3)基于高级功能的综合案例开发。

充分发挥Ch平台的IDE集成开发环境和强大的图形图像处理功能,面向学生的课外科技竞赛和就业方向,结合课程的进度,在讲授课程前先设计、选择一套与学生所学专业相关联、与教学内容相一致、功能相对完整的案例程序;然后根据每次的讲授内容,将案例分割设计成多个具体且相对简单的实例程序分析讲解。对应案例利用Ch平台实现和演示,进度符合课程安排,便于学生边学习边应用。

2.2 项目驱动式教学建设

项目驱动式教学采用课堂教学和实践教学同步,C++语言程序教学遵循简单到复杂的原则,从简单项目入手到综合应用型项目,学生自始至终全程参与。步骤如下:项目目标确认、分组展开、概要设计、详细设计、编写程序、调试测试、现场报告和组间评价、最终成绩。图2是项目驱动式教学建设的组成步骤。

每个章节的内容和知识点给定2~3个项目案例供学生自己选择,学生在选定项目之后首先明确项目目标。

学生自主选择队友组队并完成角色分配,制定详细的分工和职责,便于最后的考核和成绩评定。

每个学生对自己任务模块展开概要设计和详细设计。其中对于第一阶段(如图1所示)作为项目驱动式教学的开始,要求学生做简单的计算思路整理流程图或N-S图代替概要设计;对于第二、三阶段(如图1所示)中高级项目案例引入,则需要学生对项目进行模块划分、队友之间协作分工,然后做概要分析和详细的流程分析、接口设计和模块独立性设计等。

程序编写环节需要学生结合课堂教师分解、团队讨论、课外查阅资料、上机编写和修改等工作,需要合理布局,并设计好程序接口,便于与其他的队友协作,共同完成整个项目。

调试测试工作是项目驱动式教学步骤中很重要的一项,尤其对于第二、三阶段的综合应用案例,需要集合队友的共同程序模块,这不仅培养了学生的调试习惯和方法,而且锻炼了他们之间的协作开发能力。

现场报告和组间评价环节贯彻学生的自主思考、分析和表达能力培养,只有通过查阅文献、项目分析和设计,最后经历Debug各个环节之后,才会有充实的过程汇报给大家,这在一定程度上督促学生保证每个环节的完成质量。另外一方面,关于组间评价,由于项目驱动式教学需要学生充分利用课内外的时间完成学习任务,为了传达评定的民主客观性,不是由老师一个人说了算,学生之间的客观评价也非常重要,作为学生最终成绩的一部分。

2.3 基于项目驱动教学方案的线上线下综合考核体系

有别于目前大多数项目式教学建设的一刀切——根据最终上交程序和期末考试的方法来考核,我们提出了一种基于项目驱动教学的线上线下综合考核体系。鉴于项目式教学的特点,充分发挥项目驱动式教学的优势:从整体上注重学生以项目为驱动的学习、开发和总结过程,关注学生的全程参与和表现,整个考评体系如图3所示。

(1)线上考核系统。搭建学生项目案例教学管理系统,学生可以自主选择合适的时间完成网上课题的选择、程序设计和提交操作。

项目题目选择模块:教师定期发放案例,学生在对应案例中选择一个,作为阶段性的项目。

模块任务划分让学生定位项目角色,明确项目任务。

编程日志是让学生严格按照项目开发流程,定期记录编程日志。

调试日志是学生在程序调试阶段记录程序的测试案例,及其测试结果。

结果演示报告环境是学生在每次项目提交阶段,制作PPT做公开汇报,并接受全体学生的提问和评价。

(2)线下考核系统。项目式教学的考核不能将最终上交的程序和项目报告作为唯一成绩给定标准,因此我们设计了线下考评3个模块。

学生自评。学生对整个项目的学习和开发过程做自我评价,最终提交项目进度记录表、问题和解决方案记录表、自我总结报告。

组间互评。学生之间相互督促和评价,不同组的学生对其他组的项目报告做评分,对其程序进行评分,有必要的时候可以做监督评分。

教师考评。教师根据学生的现场报告PPT和汇报情况、提交的项目报告给出评分,对项目程序定评分并对学生的课堂出勤做评分。

以上三块评分总计入每位同学的最终课程成绩,构成我们设计的线下考核成绩。

3 结 语

基于Ch平台的C++语言程序设计课程教学对非计算机专业C语言程序设计一年多的教学实践来看,Ch交互式平台对初学者提供交互性好、可视化强的开发平台,激发了学生的学习兴趣,深入浅出;实施项目案例驱动式教学方案充分发挥了项目式教学优势,启发学生自主学习;线上线下综合考核管理系统客观综合评价学生,学生灵活运用课堂和课余时间,能够很好地解决学生的畏难心理,激发学生的学习热情,并弥补传统教学在方法和考核上的不足。经过一年多时间的实施,学生的编程能力、计算思维和创新能力得到显著提高,毕业设计环境和实习环节开发能力显著增强。此外,学生参加智能车竞赛、ACM竞赛、机器人大赛Robocup等,也凭借扎实的编程基础和开发能力屡获佳绩。

基金项目:浙江工业大学教学建设项目“基于Ch交互式平台的C++语言程序设计教学研究与实践”(JG1216)。

第一作者简介:陈晋音,女,副教授,研究方向为程序语言教学与实验教学管理,chenjinyin@zjut.edu.cn

教育期刊网 http://www.jyqkw.com
参考文献:

[1] 俞庆英. 非计算机专业C程序设计教学方法创新[J]. 计算机教育, 2010(20): 118-121.

[2] 牟琴, 谭良, 计算思维的研究及其进展[J].计算机科学,2011, 38(3): 10-17.

[3] 卢瑾. C语言程序设计阶段式分层实验教学研究[J].计算机教育, 2014(14): 74-76.

[4] 夏一行. 加强C语言程序设计课程中编程理念的培养[J].高教研究, 2012, 13(6): 43-44.

[5] 张安富, 改革教学方法探索研究型教学[J].中国大学教学, 2012 (1): 65-67.

[6] 李高杰. 任务驱动式教学在计算机软件教学中的应用探析[J]. 无线互联科技, 2013(8): 230.

[7] 余胜泉, 路秋丽, 陈声健. 网络环境下的混合式教学: 一种新的教学模式[J].中国大学教学, 2005(10): 50-57.

[8] 刘琦, 刘智琦, 徐奕奕. 程序设计类课程的抛锚式教学模式[J]. 计算机教育, 2012(12): 77-81.

[9] 朱金秀, 陈小刚, 朱昌平, 等. 项目式实验教学的探索与时间[J]. 实验室探索与研究, 2008(11): 93-96.

(编辑:郭田珍)