研究性教学在高校计算机程序课程中的探索

2014-09-10 12:26邓小颖陈卫峰
电脑知识与技术 2014年6期
关键词:研究性教学能力培养教学改革

邓小颖 陈卫峰

摘要:该文介绍了在高校计算机程序设计系列课程中开展研究性教学改革的实践过程,并做经验总结和理论探讨。根据课程特点,提出程序设计教学过程中需区分的三个不同阶段,并采取相应的教学策略。通过教学改革,培养了学生分析解决问题的能力和创新思维。

关键词:研究性教学; 程序设计课程; 教学改革; 课程阶段; 能力培养

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)06-1251-02

Exploration on Research-Based Teaching in College Computer Programming Course

DENG Xiao-ying, CHEN Wei-feng

(College of Physics and Technology, Yangzhou University, Yangzhou 225002, China)

Abstract: The paper introduces the practice of research-based teaching reform in college computer programming course, and summarizes the experience and theory. According to the characteristics of the course, three key stages are identified in the progress of teaching programming courses, and three different teaching strategies are innovated for them. The reform of the teaching method successfully cultivated the students problem-solving ability and creative thinking ability.

Key words: research teaching; programming course; teaching reform; course stage; ability training

研究性教学是在教学过程中创设类似科学研究的情景,让学生在探索、思考和实践的过程中吸收知识、应用知识、分析问题、解决问题,提高学生的素质,培养学生创造能力和创新精神的教学模式[1]。

计算机程序设计,作为现今理工科大学生的必修课,天然具有重创新、重实践的课程特点。编写程序的目的是为了满足各种各样的需求,注重效率和用户体验。“成为编程高手至少要写十万行代码”,已是业内的一种普遍说法。所以,我们将研究性教学改革应用于计算机程序设计课程,其目的正是希望培养学生的学习兴趣和创新思维,培养学生分析解决问题的能力,让学生在扎实掌握基础知识的同时,培养其实际操作能力[2-3]。

1 教学改革的方案和手段

1.1 三个阶段的区分

在多种计算机语言中C语言因其应用领域的广泛,其程序设计系列课程已成为高等院校开设最广泛的程序设计课程,特别是非计算机专业的理工科学生,绝大多数都是学习C系列语言[4]。

由我们从事C语言系列课程的教学实践,根据程序设计的特点和方法不同,可分为三个阶段或层次:1)基础C语言语法和算法;2)C++面向对象编程;3)可视化、框架编程阶段。这三个阶段的划分,不仅是难度的逐步提高,更重要的是编程思维的不同。所以在实施研究性教学的时候,需区别对待。

C基本语法学习阶段,是面向过程的编程思维,而C++是面向对象的。第三阶段的VC++编程,虽然也是属于面向对象,但对学生来说,基于框架的可视化编程,从形式上又是一个大的突破。除了C语言课程体系,其它的许多计算机编程语言,也同样面临这三个方面的理解和学习。

1.2 研究性教学的内容安排和组织形式

在第一个阶段,由于面向的是零基础的学生,所以基础的语法仍然以课堂老师讲解为主。研究性教学体现在:当学生有一定编程基础以后,由老师选取合适的课题,让学生课后充分思考,再在课堂上讨论和比较。例如排序、查找、递归,都是比较适合运用上述教学方法的知识单元。特别要说的是,在教学过程中,凡涉及算法的内容,都鼓励学生采用伪代码描述,这样更能让学生明确算法和编程语言之间的区别和联系。

到学习面向对象编程的第二个阶段,大多数学生都会遇到理解上的障碍。笔者采取循序渐进、逐步深入的教学策略。首先通过事例和程序的讲解,让学生了解类与对象的概念以及它们在程序中的使用方法。后期采用研究性教学,老师和学生一起,努力探究种种语法现象的原理,布置学生查阅资料,并动手上机调试验证,最后以总结汇报的形式提交结论。

在这一阶段的学习过程中,学生对计算机程序的运做机制会有更加深入的认识。例如内存的分配机制、编译器所承担的角色等等,这些知识也是编写高效安全的程序代码所必须要求掌握的。笔者也尝试在学习C语言之初就“一步到位”的讲解这些原理性的内容,但通过比较发现,效果不如现行的教学方式。

研究性教学的第三阶段的任务是利用可视化编程环境编写具有良好用户界面的计算机软件。这部分内容的特点是:理论上,涉及的知识比较深奥,例如界面编程、消息和事件等;但另一方面,采用可视化的编程方法,特别是使用编程框架(例如MFC),能够大大降低软件编写的难度。基于此,本阶段的教学主要采取例程学习、任务驱动的模式。

先由教师选取典型的例程,让学生上机模仿,教师对各种编程部件做功能介绍,并对原理做一些简单讲解。等学生掌握基本的编程要素,便可由教师布置任务,交学生完成,并鼓励学生根据所学,自己提出任务设想。教学形式上主要采取分组分工,团队合作的模式,以完成任务的情况为最终的考核依据。从某种意义上说,这样的教学方式恰恰符合现代软件工程的基本思想。

2 教学改革的经验和原则

2.1 教学资源的合理安排

时间上,做到课内与课外的统一。特别是课外时间,做为课堂的延伸,通过调动学生的积极性而被充分利用,是研究性教学成败的关键。探究和实践的大部分工作是由学生利用课外时间自主完成的。这需要老师对学生积极引导,并针对学生特点制定合理的教学策略。

另外,对于程序设计课程,需要阅读大量的参考资料,不能局限于一两本教材。特别要求学生能够充分利用网络资源,日积月累。

2.2 研究性教学环节的精心设计

2.2.1 教学方案的制定

计算机程序设计,具有易会难精的特点,例如,条件判断、循环等基本的概念和语法,很快就能讲清楚,学生自学也不成问题,但难在运用。我们在教学实践中的一般做法是:针对每个知识模块,选取难度适中且开放性强的题目让学生思考解决,稍大型的软件编写,则提出要求,让学生从设计方案入手体验完整的软件开发流程。

在各个阶段,根据内容的特点和学生情况来制定教学方案,是贯彻实施研究性教学的重点。特别是学生的情况每届都不尽相同,这就需要教师及时去发现,并相应调整教学方案。

2.2.2 教学手段形式多样

根据不同的教学阶段和课题难度,寻找并采取最优的教学手段:或立足课堂,或独立探究,或分组合作,由教师根据具体情况来安排。如上文所述,我们根据三个阶段的教学特点,在教学手段上各有侧重。

这里需要指出,在程序设计课程中开展研究性教学,并非削弱教师课堂讲授的作用。研究性教学不等于让学生自学,将学生思考讨论和教师讲解点评有机的结合起来,才能达到最好的效果。特别是教师对学生任务完成情况的总结和评价,往往起着画龙点睛的作用。

2.2.3合理的评分考核体系

为配合研究性教学的特点,评分体系也必然要做相应的调整。具体做法是:降低笔试的比重,提高平时考察的分值,同时加入实践环节。在不同阶段,三者的权重也有所区别,一般说来,越往后,实践环节的比重越高而笔试的比重越少。教师在操作过程中必须保证公平,掌握每个学生的基础和学习情况,这要求做更多细致费时的工作。所以在开展研究性教学的过程中,如果条件允许,配置一两名助教是很有必要的。

2.3 协调师生在教学活动中的定位和作用

当代大学生见识广,理解能力强,充分建立以学生为主体的教学模式,有助于提高学生的学习兴趣和调动他们的主观能动性。只有学生参与并投入到教学过程中来,研究性教学的实施才能顺畅无碍。这也是研究性教学区别于传统教学方式中,学生只能被动接受知识的态势。程序的编写更是如此,老师讲解十个例程也比不上学生亲自动手编写一个完整的程序。让学生在实践中发现问题,提出创新意见,在探究中提高分析问题和解决问题的能力。

强调学生的主观能动性,并不意味着削弱教师的作用。教师在教学活动中扮演着设计者、组织者、引导者和总结者的角色。从课程的整体设计到每一节课的安排;从课内的引导到课外的延伸;从研究性课题的取舍到难易的把握;从了解每个学生的基础到最后给出客观的评分,这些都需要教师付出更多的努力和时间。事实上,研究性教学是对教师提出了更高的要求。

3 总结

研究性教学的实施,抽象的说,需要解决“研究什么”和“怎么研究”这两个问题,都需要教师从教学方案到组织形式,从激励机制到考核方法,等多方面进行精心设计和把握。该文基于计算机程序设计系列课程的教学实践,对此做了深入探讨和经验总结。

从教学效果来说,学生在掌握基本编程能力的基础上,不再局限于教材和课堂,能够积极思考并查阅资料;通过分组合作完成任务,使学生初步了解编写软件特别是复杂工程的工作方法;更重要的,通过研究性教学的训练,让学生能够做到自觉运用编程的手段去思考并解决遇到的各种各样的问题。总之,同传统教学方式相比,研究性教学改革在计算机程序课程中的运用,能够更好的达到培养能力和锻炼思维的教学目的。

参考文献:

[1] 教育部高教司.教高[2005]1号文件:关于进一步加强高等学校本科教学工作的若干意见[Z].2005.

[2] 况迎辉,姜晓彤.研究性教学在程序设计课程中的应用[J].电气电子教学学报,2010(6):76-77,116.

[3] 郭晓俐,汤克明.研究性教学模式在C 语言教学中的实施[J].计算机教育,2010(2):135-137.

[4] 敖志广,吕振辽.非计算机专业本科生C语言教学实践[J].计算机教育,2007(1):53-54.

猜你喜欢
研究性教学能力培养教学改革
研究型大学本科生科研能力提升策略
基于研究性教学的数字电路与系统实验教学改革
水质工程学课程群研究性教学改革与实践
研究性教学理念下的普通心理学教学改革
数学归纳法在高中数学教学中的应用研究
信息技术教学中学生自主探究能力的培养探析
基于CDIO的大学生职业素养培养研究
基于人才培养的技工学校德育实效性研究
低年级学生课前预习能力的培养
现代信息技术在高职数学教学改革中的应用研究