APP下载

螺旋式递进项目教学法在C++程序设计课程教学中的应用

2016-06-17匡珍春

计算机时代 2016年6期
关键词:程序设计

匡珍春

摘 要: C++一直以来被大一新生戏称为“C怕怕”。如何消除学生这种恐惧感,笔者结合建构主义学习理论和多年C++程序设计课程的教学实践经验,尝试过案例教学法、项目教学法等多种教学方法,发现螺旋式递进项目教学法的效果最为显著。螺旋式递进项目教学法注重知识间的内在关联,既能激发学生的学习兴趣,又可以提高程序设计类课程的课堂效率。项目教学法中至关重要的环节是项目的设计,而螺旋式递进项目教学法恰恰强调了项目的系统性及其复杂度的螺旋式安排。

关键词: 螺旋式递进项目教学法; 程序设计; C++; 教法改革

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2016)06-92-03

Abstract: C++ has been considered by the college freshmen as C Panic. How can teachers eliminate the students from the sense of fear. Based on years of teaching experience of the C++ programming course and the constructivist learning theory, with the attempts of the methods of case teaching, project teaching and etc., found that the spiral progressive project teaching method is the most effective method of teaching, which pays attention to the intrinsic connection between knowledge, and can stimulate students' interest in learning and improve the classroom efficiency of programming courses. The important part of project teaching method is the design of the project, the spiral progressive project teaching method just emphasizes the project's and the spiral arrangement of the project's systematicity complexity.

Key words: the spiral progressive project teaching method; programming; C++; teaching reform

0 引言

作为计算机科学技术专业的一门核心课程,C++程序设计教学质量的好坏,会影响到后续相关课程的教学。如何设计C++程序设计课程的教学过程,从而达到更好的教学效果,让学生学完该课程后具备自己动手编写一些小规模且有实际应用价值软件的能力,一直以来都是教育工作者、学生和专家关注的重要课题。

笔者运用建构主义学习理论,结合多年程序设计类课程的教学实践经验,以螺旋式递进分解子任务的方法展开项目教学内容,将项目教学法运用于C++程序设计教学,收到了较好的教学效果[1]。

1 C++程序设计课程教学中存在的问题

1.1 传统教学法不适合于C++程序设计课程的教学

作为面向对象程序设计类的C++程序设计课程,不仅应强调其实践性和技术性的重要性,而且需注意较多的新名词或术语,如对象、类、消息、模板及类的封装性、继承性和多态性等等。对于其知识结构和编程思维方式的明显变化,若采用传统的三部曲灌输型教学法,即罗列概念语法、编程举例讲解和练习验证巩固,是根本行不通的。一方面,这容易导致学生产生畏惧心理,从而戏称C++为C怕怕;另一方面,学生很难掌握面向对象程序设计方法的本质,从而导致实际开发能力严重不足。

1.2 计划学时数少,难以达到课程的教学要求

现在大多数高校计划课程种类繁多,但每门课程学时数逐步减少,必须考虑如何在有限的学时数内让学生学到更多的知识,而按照传统的授课方式是难以达到课程的教学要求。

2 项目教学法

传统的以语法教学为主线,单纯的告诉学生对应知识点能干什么、解决什么问题的教学模式,不利于激发学生的学习兴趣和培养学生的编程思维能力。部分教师开始尝试将项目教学法应用到C++程序设计课程中,结果发现,因学校扩招,学生层次参差不齐,而项目教学法对学生综合素质要求较高,不仅不能发挥出项目教学法的优势,相反会让学生无所适从,难以取得较好的成效。

3 螺旋式递进项目教学法

3.1 螺旋式递进项目教学法的特征

为真正提升学生的C++程序设计课程的综合编程能力,笔者尝试改革教学模式,经过多年的实践,探索出了一种非常适合C++程序设计教学的小项目引导的“螺旋式递进项目“教学模式。与以一个大项目贯穿整个教学过程,再将大项目以章节为单位拆分成多个小项目进行教学的项目教学法不同的是,螺旋式递进项目教学模式中涉及到的每个小项目都相对独立,它们并不是从一个大项目拆分而来,如此一来,即使学生对前一个项目不感兴趣或者没有学好,也不会影响到下一个项目的学习和理解。

3.2 螺旋式递进项目教学法的教学设计

学习教练肖刚定义教学设计:“教学设计是一个系统设计并实现学习目标的过程,它遵循学习效果最优的原则吗,是课件开发质量高低的关键所在。”螺旋式递进项目教学设计的目的是为了提高教学的效率和教学质量,在螺旋式递进项目教学设计的过程中,确定可行性的符合螺旋式上升势态的递进式的微型项目至关重要。作为大一的新生,其程序设计的基础几乎为零,如何激发他们的学习积极性,拓展编程思维能力,模仿别人编程、借鉴高手的编程思路等尤为重要。在此过程中,老师的指导不可或缺,这个过程可称之为“螺”。在“螺”过程完成后,老师可对设计的微型项目做适当改进,例如改变某些条件或实现的结果,老师做适当提示之后,要求学生完成之前程序的改编工作,这个过程可称之为“旋”[2]。

由于该课程教学时数有限,结合项目教学法特点,同时兼顾教学内容及学习者特点,主要以“学生成绩管理系统的设计与实现”为案例(如表1)贯穿整个课程的基础教学过程,具体实施过程描述如下。

⑴ 合理安排螺旋式递进子任务

将案例分解为一个个循序渐进的子任务,每个子任务的设计应以能引入新的课程内容为益,且预留较强的扩展空间[1]。

⑵ 教学过程做到通俗易懂

在教学过程中,尽量摒弃高深的理论知识以及生涩难懂的专业术语,做到讲述通俗易懂,演示过程深入浅出,编程技能训练循序渐进,呈螺旋上升趋势。经过一段时间训练后,学生的学习能力得到大幅度提升,不仅会做,而且能独立的做、熟练地做,学习理念也大有转变,从“要我学”转变为“我要学”。

3.3 螺旋式递进项目教学法实施过程中需注意的问题

相对于传统的理论课堂上教师一味地操作演示,学生上机操作只需照着老师的代码输入的死板教学模式,螺旋式递进项目教学法无疑是教学改革的一个飞跃性进步。但是,若想让螺旋式递进项目教学取得实质性的效果,还须做到以下几点:

3.3.1 教师必须打破固有的教学思路,多种教学方法相结合

教师要意识到:与普通的项目教学法不同,螺旋式递进项目可以被分解成若干子任务,每一次螺旋式递进,项目的功能都得到增强,反映了不同教学单元的主要知识点和技能点,这种螺旋式项目,既拓展了学生的思维,也体现了知识的螺旋递进型。教师合理设计知识点和能力点的顺序,是体现知识点的深浅度呈现螺旋递进的势态的重点[3]。

3.3.2 教师必须提升课堂掌控能力

由于学生个体存在差异,在上机实验过程中,少数学生出现玩游戏或者索性不写代码的状况,课堂讨论时部分学生并没有积极主动的参与进来,对知识的理解仅仅停留在表面上,此外学生的团队合作意识较差。面对种种不尽人如意的现象,教师须有足够的能力应对。教师应该合理安排教学任务,及时调动学生的积极性和主动性,让学生真正做到手、脑、嘴同时动起来[4]。

3.3.3 精心设计实验项目

为了能更好地实现教学目标,激发学生的学习欲望,教师必须在课前精心设计好相应的实验项目。实验项目的设计必须具有一定的挑战性,不能像实验指导说明书那样把步骤写得很详细,从而导致学生的想象力和创造性思维不能够得到很好的培养的不良局面[5]。

4 结束语

多年的教学实践证明,C++程序设计课程采用传统讲授法、“任务驱动”法等教学模式后,学生的期末考试成绩和实际动手编程能力并不理想。

本文以学习者建构知识为目标,以构建主义理论为依据,结合实际教学经验提出了一种新的教学方法,即“螺旋式递进项目教学法”。该方法对教师的综合素质要求非常高,教师既要精通本学科的专业知识,又要具备丰富而又缜密的逻辑思维以及先进的编程理念,以知识点的渐进为原则精心设计项目,将项目按照螺旋式递进关系适当分解、细化,并以分解后的子任务为线索展开教学。实践证明,该教学方法有利于构建教学环境,能有效激发学生的学习兴趣和实践积极性,学生在掌握基本理论和知识的同时,程序设计能力、程序的阅读能力和创新能力得到较好的培养,从而达到学以致用的效果;老师在较短的学时数内能完成原定的教学任务,显著提高程序设计类课程的教学效果和质量。

参考文献(References):

[1] 杨朝霞.以螺旋式案例实施面向对象程序设计教学的研究[J].

计算机教育,2010.5:116-120

[2] 李永明,程序设计课程“螺旋式”教学法探索与实践[J].专业

教学研究,2011.9:72-74

[3] 冷鹏.教师如何有效实施螺旋式项目教学法[J].价值工程,

2011.33:171-172

[4] 陈晓玲.螺旋式小项目教学法在《VFP程序设计》中的应用[J].

计算机光盘软件与应用,2015.3.

[5] 苗玉辉.螺旋式项目教学法在实验教学中的实践研究——以

南阳师范学院《现代教育技术》实验课为例[J].南阳师范学院学报,2015.3:75-78

猜你喜欢

程序设计
基于SolidWorks和VBA的电机阶梯轴建模程序设计
高职Java程序设计课程体系建设思考
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
基于LabVIEW的车载充电机控制程序设计
浅谈基于C语言的计算机软件程序设计
高职高专院校C语言程序设计教学改革探索
OBE理念下基于Greenfoot的Java程序设计课程教学改革
模块化程序设计在一体化检定平台中的应用
PLC梯形图程序设计技巧及应用