现场编写代码的讲课方式在编程课程中的应用
[摘要]文章介绍了一种改进的计算机编程类课程的讲课方式,该方式在课堂上现场利用开发环境编写程序代码进行授课,教学效果显著。文章详细论述了编程类课程的传统讲课方式的不足和在开发环境下现场编写代码的讲课方式对于引导初学者快速入门所起到的积极作用,并为编程类课程的教学改革提供了参考。
[关键词]讲课方式 编程类课程 现场编写代码
计算机专业多年来一直是我国的热门专业,尤其是近年来在软件外包行业日趋迅猛发展的背景下,企业对于程序员的需求量也越来越大,越来越多的学生报考计算机专业,想通过学习精湛的编程技术谋求个人更好的发展。但是作为程序设计的初学者甚至门外汉,最为苦恼的事情是程序设计课程入门很难。讲授程序设计课程的教师们,也一直在探索能让学生快速入门的授课方法。笔者与多名从事程序设计课程教学工作的同事尝试采用在开发环境下现场编写代码”(以下简称现场编写代码”)的讲课方式来演示并讲解程序,目的是为了让学生能够更条理、清晰地看到程序设计的全过程。经过多年的授课实践,收到了较好的成效。
一、传统讲课方法的现状
对于编程类课程,如“C语言程序设计”“C#程序设计”“AspNet程序设计等,传统的讲课方法包括以下几种:
1 完全板书代码。这种讲课方法,在上课过程中基本不使用计算机,全部程序代码都是板书到黑板上。该方法的优点在于,教师逐行书写代码,可以令学生清晰地理解教师的编程思路。缺点是课堂容量较小,难以处理代码量较大的程序,现已很少使用。
2 完全使用多媒体课件承载代码。教师课前将代码放在幻灯片上,在课堂上将含有代码的幻灯片打开,直接展示给学生。该方法相对方法(1)有较高的课堂效率,但无法运行程序,缺乏程序结果的可见性。
3 课下利用开发环境建立好项目并编写好程序,课上直接打开该程序进行演示。该方法相对方法(2)来讲,可以直接运行出程序结果,增加了一定的趣味性和直观性。缺点在于学生看不到项目或解决方案是如何建立的,也不知道整个项目的多行代码在项目中该以怎样的顺序来写。
4中文写代码软件 多媒体课件等介质存储完整代码,在授课现场将代码粘贴到开发环境加以演示。该方法
是对方法(2)(3)的结合,不同的是,在将代码向开发环境粘贴的过程中,能够向学生演示到该如何建立项目,该把代码粘贴在项目中的哪个文件、什么位置以及代码书写的先后顺序等。但仍不能向学生演示很多重要的在编写代码过程中必经的环节,比如错误分析、代码调试等。而这些都是编程人员尤其是初学者所必须掌握的技能。
二、现场编写代码的讲课方法及其优点
现场编写代码的讲课方法,有效结合上述四种方法的优点,在课堂上,现场结合开发工具,一步一步地将程序开发的全过程:分析题目一建立项目一引用类库一引入控件一编写程序一编译程序一分析语法错误一再编写一再编译一运行一测试一分析运行或逻辑错误一再编写一再编译一再运行一验证结果,都展示给学生。让学生可以观摩到每一个程序的全部编写过程,有效缩短初学者程序设计入门所需要的时间。
现场编写代码的讲课方法的优点具体表现为几点:
1 有助于学生更快地熟悉开发环境的使用方法。由于教师在每次上课时,都会在开发环境中编写代码,在这个过程中必然会涉及对开发环境的各种常用功能的反复使用。学生在听课
的过程中耳濡目染,必然会对开发环境有更深入的了解和掌握。而采用上述传统讲课方法中的(1)(2)方法时,因课堂上基本不会涉及或非常少涉及开发环境的使用及演示,基本靠学生自行熟悉。方法(3)在每次上课时直接打开已写好的项目,略过了代码在开发环境中由创建项目到最终完成项目的全部过程,也会同时漏掉许多在编写代码时,开发环境一些重要功能的演示,如建立项目、引用非默认类库,向工具箱引入新控件、项目属性的配置,开发环境自身配置等。方法(4)比方法(3)确实涉及更多开发环境功能的使用,具有建立项目、引用非默认类库等过程。但由于核心代码是直接粘贴过来的,仍然会存在一些在编写代码过程中需要使用的功能,小到注释、缩进,大到调试和错误列表查看等功能得不到很好演示,毕竟粘贴上来的代码都是曾经编译通过正确无误的代码。而现场编写代码的讲课方法,没有省略开发一个程序的任何细节,在整个开发过程中对开发环境的使用基本都会演示给学生,都可以从中学到开发环境常用功能的使用。
2 有助于快速培养学生的实际动手能力和增强课堂互动性。教师在编写代码过程中,可故意制造一些学生在自行开发的时候可能出现的编译、运行和逻辑错误。并启发和引导学生如何分析、解决和避免这些问题的出现。这种制造问题一分析问题一解决问题的方式,能有效地帮助学生积累分析和解决问题的经验。
在学生有了一定的编程基础后,教师甚至可以在课堂上要求学生现场完成部分程序的编写:在提出一个具体问题后,教师首先和学生共同分析程序的解决思路及方案,然后教师会编写程序的部分代码,但留下程序的核心部分(代码量不宜过大),要求有能力的学生走上讲台,通过自己的努力完成它。当然教师也可以在提出一个具体问题后,不提供给学生任何解决方案或只做简单提示,留给学生若干分钟的思考时间,再由学生到讲台来编写完整的代码,编写成功的,可给学生机会将自己的编程思路讲给大家。
以上做法,可以很好地培养学生的问题分析能力和实际动手能力。也增强了课堂互动性,使现场活跃,激发了学生的学习兴趣以及积极性和主动性。
3 有助于学生更熟练地掌握各种调试方法。教师在写代码时会故意制造很多的常见错误,那么对于这些错误,尤其是运行错误和逻辑错误,教师必然会通过调试工具对程序加以调试来解决。在这个过程中,学生会亲身体验到,在遇到错误时,老师是如何通过代码调试来解决这些问题的,在遇到哪类错误时应该用哪些调试方法等。这个环节,学生应该是受益最大的。只有学会正确的调试程序,才能够进行高代码量、高难度的程序开发。
4 有助于学生更清晰地理解教师编写程序时的设计思路。对于一个几百行代码量的程序,
如果直接将完整代码呈现给学生,再依次向学生讲解,学生会产生迷茫。即使老师以清晰的讲课思路向学生讲述,学生当时能够读懂每一句代码,也理解了编程思路,但到自己动手的时候,他们往往会不知道该从何处人手,先写哪里,后写哪里,造成了典型的能读不能写的情况。如果这几百行代码,教师是以清晰的思路,在课堂现场一行一行地敲出来的,学生会更加理解整个程序的设计思路,每完成一步就演示这一步的效果,等学生充分理解了,再在已完成代码的基础上添加新的功能。这样的讲课方式,能让更多的学生真正读懂代码、更加理解程序。
三、教师采用现场编写代码的讲课方法需具备的技能
现场编写代码的讲课方式对教师有一定的要求,主要表现在以下几个方面:
1 打字速度。这是采用现场编写代码的讲课方法所必需的基本技能。如果打字速度不够流利,学生可能会失去耐心,分散注意力,导致教学效果适得其反。而且在课堂时间利用率上。打字速度过慢也无法完成既定教学内容的讲授。事实上,如果打字足够流畅,完全可以在快速敲代码的同时向学生解释每一句代码的作用,同步进行,相辅相成,不会使编码和讲课脱节。
2 开发经验。熟悉绝大多数语法错误”“编译错误”“运行错误产生的原因及解决办法,能够及时排除因讲课用机或开发环境配置不正确导致的各种异常,这样就能面对在课堂编写代码时可能出现的各种问题。毕竟,教师即使在课下花再多的工夫准备代码,甚至演练多遍,也不能够保证在课堂上一点错误都不出,在这个时候开发经验就是至关重要的补救武器。
此外,还应能够进行准确的代码量评估。在设计课堂上要编写的示例程序时,应尽量控制程序规模在一次课内讲完,最多不超过两次。因为如果在一次课内讲不完整个程序,就意味着下次课要先花一定的时间协助学生重新理清程序的设计思路。讲完一个程序需要的节次越多,就意味着浪费在再整理上的时间越多。
3 适时地放弃。即使是具有丰富开发经验的教师,一旦在课堂上出现意料之外的程序错误,在几次调试都无法成功解决的情况下,加上众目睽睽,烦躁和紧张情绪也会迅速膨胀。此时,很容易失去应有的分析能力,导致程序越改越错,越错越烦。最后的结果就是一直卡在这里,课程无法继续进行,浪费了大量的课堂时间,最严重的后果可能导致学生对教师失去信心。
事实上,任何编程者都无法保证在遇到每个程序问题时,都能迅速解决。如果在课堂上遇到
这种出现意外程序错误的情况,且多次调试无果时,应主动放弃,坦白告知学生,在这里遇到了意料之外的程序错误,无法马上解决,先继续讲其他内容,等到下次课的时候再回补这部分内容,并告知学生造成上次错误的原因。这样学生更能够接受和理解,并且对这种教师都难以解决的问题,印象更深,对学生是有益的。
四、总结
多年来的教学效果证明,对于程序设计初学者,尤其是以培养应用型人才为目标的本专科计算机专业的新生来讲,采用现场编写代码的讲课方式,能够较好地帮助他们了解并熟悉程序设计,从而达到使其快速入门的目的。当然现场编写代码的讲课方式,也存在不足。例如,在敲代码期间,教师无法离开计算机操作台,行动受限,不能够很好地吸引学生的注意力;个别开发环境的个别区域(Visual Studio开发环境的属性栏)无法设置字体大小,后排同学难以看清楚等。所以在实际应用中,应结合黑板板书、多媒体课件,并视教室环境、学生人数等多方因素而定。
[注释]
韩玉民,车战斌,高亮.高职软件技术Net方向软件开发课程建设[J].计算机教育,2008(10)117-118.
苏小虎,高宗梅.基于兴趣的计算机语言学习方法探索[J].计算机教育,2010(24)80.