基于整体案例法的《程序设计基础》教学方法探索

时间:2022-10-27 10:23:06

基于整体案例法的《程序设计基础》教学方法探索

摘要:为了提高《程序设计基础》课程的学习效率和教学效果,提出了一种整体案例教学法。该教学方法为此门课程精心设计了一个案例,强调理论教学、课堂讨论和实验教学中的整体性、联系性、适用性和实践性。此教学方法的实践教学证明,效果很好,值得深入研究和推广。

关键词:程序设计;案例教学法;理论教学;实验教学

中图分类号:G642文献标识码:A文章编号:1009-3044(2007)18-31761-02

Teaching Method Exploration for Basic Programming Course Based on Unitary Case

XIE Cong-hua

(School of Computer Science, Changshu Institute of Technology, Changshu 215500, China)

Abstract:In order to improve study efficiency and teaching effect of basic programming, a new unitary case teaching method is presented. This method elaborates a teaching case for all contents of this course, while emphasize unity, affiliation, applicability and practicability in the theory teaching, class discussion and experiment teaching. Teaching experience shows unitary case teaching method has good effect and is worthy of further researching and extending.

Key words:Programming; Case Teaching method; Theory Teaching; Experiment Teaching.

1 引言

《程序设计基础》是高等教育中计算机必修课程之一,是很多后继专业课程的基础,是高等教育的一门重要的基础课程。《程序设计基础》对初学者来说难于理解,学习效率和教学效果比较差。如何让学生学会读程和编程,引起了很多专家和学者的注意。

目前,已经有很多教师和学者为解决此类问题,提出过较好的方法。刘学[1]提出了上课教学应该点线面相结合的教学方法,肖随贵[2]提出要紧扣“程序=数据结构+算法“的核心,孟佳娜等人[3]提出了以任务驱动改进教学方法的思想。他们这些方法是多年教学的心得,给教学工作者很好的启示。

本文提出一种新的教学方法:即整体案例教学法。主要从以下三个方面进行探讨:(1)教学案例的选择与设计;(2)案例分析与讲解,课堂讨论,得出结论;(3)综合实验进行实战演练。案例教学起源于哈佛大学商学院,它是一种与传统教学的“概念――理论――应用”模式完全相反,采用“案例――理论――概念”模式的教学方法。通俗地讲,案例教学是通过对具体实例的演示、讲解,让学生对案例进行分析、讨论、交流,充分表达自己的见解,以达到高层次认知学习目标的一种启发式教学方法。本文针对《程序设计基础》的内容特征,提出了整体案例教学方法,可以让学生从整体上把握《程序设计基础》的主要内容,灵活应用这些知识点进行动手编程。

2 教学案例的选择与设计

《程序设计基础》的基本内容有:程序设计的产生发展过程、语言基础(包括数据类型及其定义)、程序设计的基本语句(赋值语句、输入/输出语句、顺序语句、分支语句、循环语句)、数组的定义和使用、程序的调试、文件的定义与使用和过程与函数的定义与使用。

常量、变量、常用函数等。如果呆板地按这样的顺序教学,学生学习的都是纯理论的知识,内容枯燥乏味,抽象不易记忆,缺乏连贯性,会挫伤学生的学习积极性。我们为《程序设计基础》的所有教学内容精心设计了一个学生都很熟悉的案例如图1所示。

案例选择学生熟悉的学生成绩管理系统,对整个学期的教学内容规划和进度安排作一个周密的计划,把《程序设计基础》的知识点都体现在里面。由于学生专业的不同,对计算机知识的要求也不同,存在不同层次的需求。为了满足不同人学习的需要,可以在图1中增加或者减少部分功能。把图1的功能用程序设计语言规范地开发出来,基本上按照书的章节分解模块,便于教学。

图1 基于文件的学生成绩管理系统

3 案例分析讲解与课堂讨论

案例设计和开发后,先把案例的整体功能及其与教材的章节关系进行分析和讲解,然后分析和讲解单个模块。根据作者的教学经验,总结经验得出以下几个原则。

3.1 生动具体的生活语言与专业术语结合

对于程序初学者来说,有些专业术语听不懂,比如什么叫内存地址,索引,递归,堆,存储变量的赋值,无法理解变量的作用域和生存周期,更是无法理解参数的地址传递和值传递的区别。在整体案例教学中,结合图1中成绩管理系统的各个功能模块学习和理解语句语法的用法,采用生动的语言和具体形象的比喻帮助学生理解,把枯燥沉默的课堂变得活跃有趣。如程序设计语言中的字符、词语、语句的学习,可以把具体的汉语和英语学习经验来类比抽象的程序设计语言学习。又如,对于图1中涉及到的交换和排序等算法,可以通过学生表演展示。两个变量的交换,老师在上课时让三个学生上台表演,一个人手里拿5元钱,另一个人拿10元钱,每人只能用1只手拿一张钱,如何才能把他们的钱互换,如果只要2个同学, 那这个结果是什么?关于排序的不同算法,可以让多名身高不等的学生如何按照算法的思想按照学生身高的升序或降序排队。通过这么形象的表演,学生会理解得非常深刻。

3.2 案例与教材章节的整体性与联系性相结合

首先系统分析一下图1中左右图框的对应关系,让学生有一个整体了解。然后具体分析调用相应的模块实现了什么功能,主要用到的了教程的什么知识点,是如何实现的。最后回到教材对一般的语法和规则应该怎么做。这样的案例法可以让学生不再觉得程序设计的枯燥,知道这些知识将有什么具体的作用,所以很容易接受。

分析和阅读程序模块时,把功能模块细分成块:包括数据的输入块,数据处理块和数据输出块。通过分解模块,让学生有一个清晰的思路,同时也可以培养学生以后按照这样的思路和规范写程序。

整体性还体现在前后不同章节的联系,让学生对几章的内容联系起来看问题,而不是孤立的去学习知识点。为什么有单个变量还要定义一组多个变量的数组? 为什么有了变量和数组还要学习文件,他们之间存在什么关系?为什么有了顺序语句、分支语句和循环语句还要定义函数和过程,以及的它们的区别是什么?通过回顾总结这些知识点,引入新课内容,为课程做好承前启后的过度。

3.3 课堂讨论反馈问题和培养创新。

课堂留下一些时间,让学生讨论案例的算法和功能的不足、基本知识点的疑问、教学方法和手段等问题,可以及时反馈给教师,供其修改教学方案和改正存在的教学问题。

课堂讨论中注意灌输一些计算机算法的思想,不只注意一些语言本身的细节,沿着程序设计,数据结构到算法分析的思路进行分析。对案例中实现的功能,讨论如何去改善算法,以提高程序的运行效率提出自己的设想,进而逐渐培养学生的创新能力。尤其是程序设计的重点与难点知识,通过大家积极思考,集体讨论,让老师和同学会有不同的理解。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

4 整体案例法的《程序设计基础实验》教学

《程序设计基础实验》教学是整个教学过程的重要组成部分,它可以培养学生多方面的能力:一是实际动手操作的能力;二是独立获取知识的能力;三是培养学生解决问题的能力;四是综合应用所学知识能力;五是团队合作的能力。基于整体案例法的《程序设计基础实验》,有以下几个建议和方法。

4.1 由简单到复杂的循序渐进实验

首先,通过调试编好的程序,深刻领会教程的知识点。单步调试可以从本质上理解一个程序的执行顺序和程序设计的概念。给学生提供一些经过调式过的规范程序,让其单步跟踪、各种输出语句等理解程序中词语和语法,变量值的变化过程,深刻领会教材中的基础知识、基本概念和基本原理。然后,实现一些比较容易实现的实验,不至于在实验初期使学生产生畏难心理和抵触心理。随后通过加大难度,补充案例中部分模块的一些语句、过程或函数,学生可以体会到成功的喜悦,产生学习的兴趣和动力。最后,通过综合实验提高灵活运用的能力。

4.2 实验课培养团队精神和创新能力

由于学生都没有编程和调试的经验,所以会遇到很多问题,其中有很多问题是共性问题。同时学生较多,大班有100-150之多,小班也有30-50人之间,而教师人手有限,所以实验课上往往是老师累得忙不过来,而学生的问题没有都得到及时地解决。为此,整体案例法的实验中把5个人分一组,按照“男女搭配,优差结合”的原则组合成一个“整体”。各个层次的学生相互取长补短,一方面大大地减少了问题的人数,另一方面学生帮助解决问题也是一种能力的提高,可以发现自己没有遇到的问题。

组建团队后,细节问题让小组讨论解决,而老师解决一些共性的问题,这样大大的提高了实验课的效率。同时,为了完成大实验作业,让小组团队分工协作,可以培养学生动手查阅文献的能力,设计出不同的算法的创新能力,以及团队协作的能力。

4.3 设计综合实验和考试诱导法,提高综合能力

在课程的后期阶段,要逐渐的加大实验难度,通过设计和实现一些综合实验,以培养学生自主学习能力和创新能力。实验项目最好结合整体案例法,设计与之相似的、功能比较全的综合实验。通过小组集体设计和分解模块,制定编程的规范,由小组成员协作开发。

考试诱导发可以避免临时突击, 死记硬背, “高分低能”现象,可以有力地督促学生加强动手能力的培养。通过考试诱导学生更加注重实验课程、编程规范和过程。这门课程的最后成绩包括理论考试和综合实验成绩,各占一半。其中综合实验的分数评定应根据实验报告的设计书、团队协作和组织情况、编程格式规范、编程流程和实验总结各方面,而不是只注重最后的结果。

5 结束语

本文对程序设计基础课程提出了一种整体案例教学法,精心设计和编程实现了一个学生成绩管理系统的案例,涉及到课程的所有知识点内容。从案例分析和课堂讨论,实验教学等方面提出了行之有效的教学方法。

参考文献:

[1]刘学. 程序设计课程教学中的有效方法[M]. 全国第五次程序设计语言发展与教学学术会议论文集. 清华大学出版社,2006:186-188.

[2]肖随贵. 高校程序设计语言课程教学改革探讨. 全国第五次程序设计语言发展与教学学术会议论文集.清华大学出版社[M]. 2006:189-190.

[3]孟佳娜,胡潇琨,谭征. 非计算机专业程序设计语言的教学改革与实践. 全国第五次程序设计语言发展与教学学术会议论文集[M]. 清华大学出版社, 2006:177-179.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:浅谈在《网页制作》中我如何调动学生的积极性 下一篇:网络环境下基于“任务驱动”的上机教学系统设...