程序设计基础课程教学探索

时间:2022-06-10 04:32:47

程序设计基础课程教学探索

摘要:通过对实际教学过程的分析和总结,提出程序设计基础课程教学中经常面临的一些典型问题。从教学的角度将这些问题归纳为教材选择问题、课堂教学问题、实验教学问题和评价体系问题4类,按照“以学生为中心、重在过程”的现代教学思想对各类问题出现的原因进行剖析,提出行之有效的解决方法。

关键词:程序设计基础;教材选择;课堂教学;实验教学;评价体系

0 引言

程序设计基础是计算机专业的一门重要学科基础课程,是传授程序设计基础知识和培养学生逻辑思维能力、问题抽象能力和程序设计基本能力的入门课程。程序设计基础作为程序设计语言课和算法设计分析课的先导课程,为具体的程序设计活动提供所需要的算法思想,同时为各种算法分析提供大量实例。因此,该课程的教学将直接影响学生对后续课程的学习效果。

然而,教师在该课程的实际教学过程中经常会面临一些影响教学效果的问题,如教师偏重讲授程序设计的基本语法,使课程教学经常转变成讲解某门程序设计语言等。我们从教学过程的角度可将各种问题分为4类:教材选用问题、课堂教学问题、实验教学问题以及评价体系问题。这些问题贯穿全部教学过程,若不予以重视并妥善解决,将严重影响教学效果,致使教学效果事倍功半。

以学生为中心是现代教育理念的重要内容。学生是教学活动的主体,教师应该以学生为中心组织教学。以学生为中心,有利于教师了解和贯彻各种现代教学观念,有利于提高教学质量,促进教学改革;同时,也有利于教师更好地了解学生的学习态度,从而分析教学过程存在的问题并制订行之有效的应对策略提高教学效率。因此,贯彻以学生为中心的理念对现代课程改革具有重要意义。

针对程序设计基础课程的教学改革已有一些研究成果,文献1、2对该课程的总体要求作了较深入的探讨;文献3从教材的选用方面介绍了一些有效的方法;文献4、6从教学方法等角度对如何上好这门课给出相应建议,并在实际教学中取得较好的教学效果;文献7、8研究通过开放平台的使用提高学生动手能力的问题。笔者将针对上述各类问题逐一进行分析,并给出一些行之有效的建议和方法,以指导解决实际问题,提高教学质量。

1 改进教材选择机制

教材选择是程序设计基础课程顺利开展的必要基础,为学生选择一本适用性强的教材是教学成败的重要因素。然而,实际的教材选择环节也会出现一些问题,主要表现在教材内容与教学内容偏差大,学生不能进行有效地预习和复习;教材理论内容太多,没有对应的实践内容等。

程序设计基础课程的相关书籍很丰富,可选的教材也很多。其中比较知名的有吴文虎教授主编的由清华大学出版社出版的《程序设计基础》、Stewart Venit和Elizabeth Darke合著的由清华大学出版社影印发行的《程序设计基础》、罗学科等编写的由高等教育出版社出版发行的《程序设计基础》等。每本教材都有自身的特点,面向不同的读者群体。任课教师往往根据自己对课程的理解判断哪本教材有利于课堂教学,将该教材作为程序设计基础课程的指定教材,当然行政或商业因素往往也会干扰教材的选择。这反映出教材选择的一个本质问题——忽略学生因素。

教材是为学生征订的,因此教师在教材的选用上要做到以“学生为中心”,改变以往的教材选择模式。在选择教材之前,教师必须与授课班级的学生进行沟通,了解学生对计算机基础知识的掌握情况、对算法相关知识的了解程度、对该课程的期望以及希望教师为他们提供什么类型的信息等;同时还要查阅同专业的高年级学生对以往教材选用的反馈意见,关注他们对教材选用的满意和不满意之处。通过对学生进行沟通了解,教师可以有效掌握授课班级的学生情况,在选定教材时就可以做到有的放矢。

教材编写者可能并非教师,该教材内容与课程教学内容要求可能并不完全相符,因此教师应在第一次上课时给学生指定本课程哪些内容是必须掌握的,哪些内容是需要了解的,哪些内容是作为扩展阅读的等。此外,教师在确定选用教材后,如果所选教材不能完全覆盖教学内容,那么教师应考虑指定一些参考书来弥补所选教材的不足。

2 更新课堂教学观念

受传统课堂教学模式的影响,现在很多课堂教学仍以“填鸭式”教学为主。教师在课堂上对知识进行“自我陶醉式”地讲解,往往忽略学生的学习主体地位,更谈不上让学生参与教学。结果是教师讲的“醉”,学生睡的“香”。程序设计基础作为一门专业基础课,其重要性不言而喻,同时还具有很强的实践性。改变传统教学模式和提高课堂教学效果,需要教师坚持以学生为中心的思想重新认识课堂教学,更新教学观念。

2.1 认清课堂教学的主体

程序设计基础的课堂应是师生交流、对话、沟通和探究学问的舞台,只有师生共同参与的课堂才是真正的课堂,而改变以往教师对课堂主体的认识是实现真正课堂的关键。现代教学理论认为学生是课堂的主体,教师在课堂上发挥主导作用。课堂教学的本质在于学生的“学”。在课堂组织过程中,教师应充分调动学生积极性,允许学生打断教师的讲解以发表自己的不同看法、观点或者想法。教师应该多创造一些学生与教师进行课堂对话的机会,对学生提出的想法进行分析和讨论,如果时间充足则尽可能让更多的学生参与课堂讨论,形成真正意义上的课堂。

比如,教师在讲解冒泡排序算法时可以先给学生10个数,让学生考虑如何将其排序。经过引导,学生应该有2种不同的排序方法:冒泡排序与选择排序。教师在课堂上可以对冒泡排序方法进行较详细的讲解,而对于选择排序,可以安排选择这种排序方法的学生在下一次课中对自己的排序思想进行讲解。这样不但能够实现课堂主体的互换,而且可以调动学生学习和探索知识的积极性,从而极大地提高教学效率,取得良好教学效果。

2.2 明确课堂教学的性质

课堂主体的确立是确定课堂教学性质的基础。程序设计基础课程的课堂是引导和启发学生自主探究知识,让学生自主讨论的场所。教师在课堂上是知识的“引路人”,要在知识的“大道”上开启学生的好奇心,鼓励师生之间、学生之间进行知识的辩论。例如,教师在讲解枚举算法时一般会引用经典枚举问题“百钱买百鸡”,然后可以向学生提出要求:每个学生模仿该问题出一道类似的题,同桌同学互换题目进行试做,最后讨论各自出的题目有什么不足之处。

2.8 更新课堂教学的方式与内容

在现代教育技术的影响下,程序设计基础的课堂教学方式也必然发生重大改变。多媒体技术的广泛应用,使课堂教学在传统的粉笔加黑板模式下添加了投影仪,从而变得生动活泼,并且为教师节省不少板书时间。正因为如此,不少教师花很多心思做了图文并茂的PPT,但上课一味地让学生看PPT,过分依赖PPT上的内容,反而会使学生只关注每张PPT上的精彩画面,而没有注重内容是什么,更不会去听教师讲课的内容。最后,投影仪的引入没有提高教学效果,反而降低了原有的教学效果。因此,先进的教学手段并不是课堂教学取得良好效果的充分条件,合适的教学方式和良好的课堂组织更有助于提高教学效果。

程序设计基础的课堂教学有两件重要的事情:一是引入算法思想;二是采用该算法解决一些实际问题。算法思想是对同类问题的处理过程进行一般化总结,因此可以将其放到PPT中,以节约课堂中教师对算法思想进行板书的时间,但教师必须采用口语化的语言举出算法实例并进行讲述,不能只是照PPT读算法,必须做到让学生理解这种算法思想是为哪类问题而提出的,如何用程序设计语言将算法实现,而较难做到的是采用该算法思想解决同类型问题。对于平常使用较少的算法思想,教师在教学过程中应采用先以实例进行讲解,再进行总结的方式开展教学,这样会取得较好的效果,如动态规划算法;而对于比较常用的算法思想,可以先直接讲述算法思想,再针对该算法思想举例加以验证。

3 改革实验教学模式

对于程序设计基础课程的实验教学,很多院校并没有在思想上树立正确的认识,经常错误地认为该课程实验就是把教材上的个别例子再录入并进行验证的过程,仅注重学生在上机编程时是否能够得出“正确”的结果,而忽略程序设计技能的培养。事实上,该课程实验的过程是将算法思想应用到具体问题的过程,是通过解决问题对算法思想进一步巩固和加深理解的过程,是学生对算法从理论认识到实践认识的升华,是学生在问题解决时进行团结协作的训练过程。因此,我们必须改革实验的教学模式,并做到以下几个方面:首先是实验项目的分层次设计;其次是实验过程的工程化管理;第三是实验结果的反馈与反思;最后是开放式教学资源与平台的充分利用。

3.1 精心设计实验项目

教师在程序设计基础的实验项目设计中,要综合考虑学生的基础、学习能力、抽象思维、接受能力等方面的差异,有效解决实验过程中“一类学生吃不饱,一类学生刚刚好,一类学生吃不了”的现象。在提供实验项目种类时,一般可以分两类:一类是给出程序,让学生阅读程序并对程序进行注释,分析程序的功能;另一类是给出具体问题,要求学生编程解决该问题。第一类实验项目重在让学生一方面理解别人的思维过程,通过分析别人的思维过程,体会该程序的优劣之处,这是训练个人编程思维的一个很好的方式;另一方面通过对他人程序加注释的方式发现不良编程习惯造成的影响,以有利于在编写程序过程中养成良好的编程习惯。教师可以提供多个实验项目并对每个项目规定相应的难度系数,以将其作为实验结果评价依据之一。

3.2 工程化管理实验过程

在实验过程中,教师要以工程化的思想对实验过程进行管理。学生从教师给出的实验项目中选好所做的项目后,在实验过程中要完成3项内容:解决方案文档化、程序注释化、实验数据用例化。在实验过程中,学生要按要求对程序或者问题进行分析,把问题所采用的算法、抽象的数据关系、各种公式等用文档的方式记录下来。学生从程序设计起步阶段就要开始练习软件设计说明书的基本书写方法;接下来分析程序功能或者对所给项目采用相应的语言编程实现,此时必须对程序中的关键语句及程序功能进行注释,以提高程序可读性并养成良好的编程习惯;最后在程序运行过程中,要对实验用到的测试数据进行记录,写明采用该数据的目的和数据输入后的实际运行效果等。通过对测试数据的记录,学生在实验过程中逐步掌握软件测试的方法,为进一步提升编程能力打下基础。

3.3 重视实验结果的反馈

对于实验课的实验结果,教师要及时分析整理,并对学生分析和解决问题的逻辑思维能力等情况及时给出反馈信息,通过反馈进一步提高学生的实验技能。教师对实验结果的反馈要给出两方面的信息:一方面是正面的、积极的反馈,这种反馈一般肯定学生的所学和所练,鼓励学生加强学习的信心;另一方面是负面的、错误的反馈,要给出一些出现错误的情形,如对问题进行抽象处理时出现的变量抽取错误、程序逻辑错误等问题。这也就是要求教师不要一直讲正确的,同时要讲一些出现错误的案例,使学生可以通过对比更加明确问题所在。教师可以将这些错误分配到每节课中,也可以在一节课中集中处理。实验结果的负反馈可以让学生掌握程序调试中的相关技术和技能,加强程序调试能力。

3.4 充分利用开放性教学资源与实验平台

当前网络上有关程序设计基础的教学资源是丰富的,教师要在教学过程中指导学生通过网络课程进行自学,掌握利用网络进行学习的方法。另外,ACM大赛是对程序设计基础课程教学效果检查的一种手段。ACM大赛采用的是ACM在线评测系统,该系统在清华大学、北京大学、浙江大学、南阳理工学院等均建有相应的平台,并且大多是开放的,外校学生一样可以注册并进行测试。因此,在教学过程中,教师每讲过一种算法思想,就可以列举一些能够使用该思想解决的ACM大赛题目,并让学生登录系统测试对这种算法的掌握情况。

4 革新考核方式

程序设计基础课一般通过“笔试+上机实验”的模式考核学生对该课程的掌握情况。在这种模式中,笔试成绩的比例通常比较高。从一定程度上讲,这种考核方式适合层次相同和识记能力较强的学生。而对于不同层次、动手能力较强但表达能力较弱的学生往往不太适合,这也正是理科类学生的特点。这种一张试卷定成绩的考核模式并不能完全反映学生的实际情况,更不利于引导学生注重平时的学习过程,因此我们必须对课程考核方式进行必要的改革。

4.1 考核内容的改革

在程序设计基础课程的考核体系中,教师要注重学习过程的重要性,加大平时考核成绩在总成绩中所占的比重。例如,将平时学习成绩比例设为20%,考核内容包括课堂问题回答、讨论、课堂表现及作业完成情况等;提高实验成绩在总成绩中的百分比,将实验报告比例设为30%,包括平时实验完成情况和实验报告完成情况等;将期末笔试成绩比例设为30%,主要考查学生对基本知识和概念的掌握情况;将期末上机考核成绩比例设为20%,考查学生的综合能力和素质。这种考核体系将学生平时的课堂表现算入期末考核总成绩中,同时考查学生对于平时实验的完成情况,使得考核的内容更全面和更科学。

4.2 考核结果的反馈与反思

在课程考核结束后,学生将得到一份成绩单,以反映学生对课程的掌握情况。学生一般只关注自己的分数,而教师则有很多事情要做。如果教师不对教学过程中的经验与不足进行反思,那么教学水平将很难有质的提高,同时教师也很难提高教学效果。教师得到学生的成绩单后,要对学生在试卷每道题上的得分情况进行统计,还要将统计出来的问题与学生平时考核出现的问题结合,看是否相符并分析出现这种问题的原因在哪;走访学生,听取学生对出现的问题的反馈;对学生的分析进行记录,为下一年的课程开设做备案,防止同样的问题再次出现。

5 结语

以学生为中心的教学理念重视学生在教学过程中的主体地位,同时也不忽视教师的引导作用。贯彻以学生为中心的理念可以改变教师本位的观念,进而促进教师积极探索提高教学效率的方法和途径,从而有效解决教学过程中遇到的各种问题。无论是教材选择机制的改变、新教学观念的树立还是新试验教学模式及新考核方式的采用,都是在以学生为中心的理念指导下的创造性探索。这些方法源于教师长期的教学实践,在实际教学过程中得到检验。黄淮学院学生代表队在2011年ACM大赛河南赛区中取得可喜成绩,说明这些方法对提升教学效果有明显作用。时代在发展,学生的学习过程不断变化,这就要求课堂教学的模式和手段也要不断变化,但人才培养的大方向是不变的,教师在未来的教学过程中仍会有许多新的、复杂的问题需要解决。这正是课程改革需要不断深入的内在要求和动力。

上一篇:高职IT人才立体化多维度培养模式研究 下一篇:计算思维在计算机课程教学中的贯穿