编程语言初学常见问题及教学改进措施研究
2020-07-30何晶龙坡
何晶 龙坡
摘 要
针对大学生初学编程语言时常见错误,及解决问题的方法和误区进行总结,提出教学过程中针对性的引导和解决学生学习编程语言的关键障碍的方法。以期提高学生专业技能的同时,提高学生解决问题的能力和综合素质。
关键词
编程习惯;方法误区;教学引导;综合能力
中图分类号: G623.58 文献标识码: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 18 . 60
0 前言
初学编程语言,在起步阶段打好基础非常重要,好的开始是成功的一半,也说明开始并不简单。本文基于长沙民政职业技术学院软件学院学生学习编程语言的实际情况,总结了学生经常犯的错误,以及教学方面如何针对性的指导。这些常见问题,并不只是知识点的细节,更多的是学生能力和习惯的欠缺。培养学生的能力,提高学生的综合素质,符合全面发展的需要,也是本文所希望能带来的帮助。
1 常见问题总结
1.1 写代码缺斤少两
大部分学生在学习编程的过程中,都会遇到写代码缺斤少两的问题。所谓的缺斤少两主要表现为两个部分:(1)常用关键字或标点符号遗漏,最常见的就是Java语言、c语言、sql语言等,语法上有严格要求需要分号作为一句编码语句结尾[1],学生经常在书写完一句代码后漏掉结尾的分号,导致编译无法通过,这种情况主要是学生刚刚接触编程语言,没有形成良好的编码习惯;关键字遗漏主要表现在英语差,以及初学者很多编码的关键字没有记住,导致单词写错或者遗漏部分字母。这种情况如果不借助集成开发环境的智能检测和提示,是很难察觉的。而初学编程,老师们一般要求学生不借助集成开发环境,以便打下坚实基础和了解清楚程序运行机制。(2)丢失部分代码,这也是初学的学生容易遇到的问题。初学编程,一般是跟着书本或者教学视频进行编写,而人的记忆是具有暂存性的。在记忆不深刻的情况下,容易漏掉一些非主要信息。因此在将书本或视频学习到的代码复述到编码工具上的时候,非常容易丢失部分代码。
1.2 不知道如何提问题
提问题是一门艺术,也是一门沟通技巧。大部分同学在初学编程的时候,遇到问题都需要去请教同学或者老师,但很少有同学能够一次性将问题表述很清晰,因此,导致老师或者同学无法理解其所遇到的问题,引起沟通不畅甚至指导出错,进一步导致错误蔓延。例如:android开发学习过程中,经常有同学问老师,我的应用挂了,请问老师是什么原因?这种情况,只是单纯凭借应用挂了这个表象,老师是没法定位错误原因的。又例如:某学生编写java代码读取数据库,数据一致显示不出来,学生直接问老师为啥显示不出来。这种问法都是有问题的,读取不出数据的可能性有很多,必须要了解清楚代码的书写逻辑,或者有无程序异常错误堆栈信息从而进行分析。但学生们经常在问问题的时候,不习惯将错误原因的发生场景、前因后果都描述清楚。这种问题的主要原因是学生平时沟通习惯导致的,需要培养学生的正确沟通思维方式。
1.3 被问题卡住后无法推进学习
学习过程当中经常会遇到各种各样的问题,有些时候简单的问题能够很快解决,有些问题却会拖很久,甚至可能因为解决问题的方法不正确,而导致问题卡住后,没法继续学习下去。例如:Android开发环境搭建的问题,很多同学在初学的时候,就会遇到这个问题,如果开发环境搭建不成功,则后续也无法继续编写Android代码,从而无法跟进老师的上课进度。这时候部分同学不善于请教同学老师,逐渐跟不上学习进度,直到放弃学习。根据作者连续三年Android程序设计课程教学经验,发现有3%~5%的同学因为环境搭建不成功卡住学习进度,最终放弃学习android。考虑到其他编程语言也有环境搭建的障碍,所以这个问题有必要引起重视。
1.4 不能有效利用搜索引擎
2 教学上的解决方法:
2.1 重视学生基础细节的掌握
以上问题首先反映了初学者在对编程语言还不熟悉的情况下,容易忽略一些编码的细节问题,细节虽小,但往往会影响学生的学习效率,甚至影响学生的学习动力。因此,教师在上课的时候,应该更加注重细节的把控,尽量将问题细化到最小,从而避免忽略细节[2]。首先,增加代码注释,对于每一句代码都给予详细的解释。不仅仅描述代码的逻辑,还需要将一些容易忽略的语法逻辑加以标记,这样,学生在跟着老师的代码学习,模仿着写代码的时候,遇到这些细节点,就能够引起重视。其次,加强练习,特别是编程语言基础入门阶段,要特别强调动手练习,尽量实操演练讲解,而不是板书或者基于PPT讲解代码。编码实际上就是一门技术活,熟能生巧,向学生强调学编程是靠不断练习,而不是靠看书和背书。
2.2 增加解决问题案例讲解
大学教学不仅仅是课中,还有课前和课后,特别是编程语言的学习,大部分时间是需要学生在课后花时间学习和练习的,那么这些课后练习过程中会暴露大量问题,而且大部分学生的问题都是重复的。有些同学可能会请教老师,有些同学则不善于向别人请教,那么教师在课后应该尽量收集同学们反馈的问题,针对学生经常遇到的问题,进行总结。总结学生经常犯的错误,在技术层面、学习习惯以及行为方式上多个层面分析[3]。并在课堂上针对性地进行讲解,重点讲解查找错误的方法和思路,授人以鱼不如授人以渔。让学生掌握解决错误的方法是至关重要的,培养解决问题的能力,实际上也是培养学生的学习能力,学习能力决定了学生未来能走多远。其次,老师可以在课堂上实际编码的时候,故意留下一些bug,先让学生一起查找bug产生的原因,及修复方法。然后,带领同学们一起解决bug,这个过程中能让学生对比自己的思路和老师的思路,从而将老师的编码经验分享给了学生。再次,需要向学生强调,遇到bug不要慌张和感觉不安,向学生强调,实际开发工作中,遇到bug是常见的事情,解决bug的过程是迅速提高编程技术能力的关键。学习过程中遇到和解决的bug越多,以后工作后,解决bug的能力就会越强,工作能力就越突出,所以要乐于在学习阶段遇到bug,并享受解决bug带来的成就感。
2.3 引导学生优化使用搜索引擎
学生不会使用搜索引擎查找问题和不会问问题实际上都是表达能力问题,表达能力的训练是一个长期的过程。但针对学习编程中查找问题和问问题的表达是特定场景下的表达能力,这种能力是有一定模式可以参考的,并且能够迅速提高。首先,针对请教问题的方法,在授课的时候,教师可以给一些具体的例子,告诉学生提出问题的时候,要将问题的前因后果描述出来。就像报警要告诉警察在什么位置,为啥报警,不能一昧像警察求助,而不说清楚缘由。其次,要让学生学会使用搜索引起,并用好搜索引擎。搜索引擎是基于关键字搜索的,因此,字数越少匹配的信息越多,尽量减少无关信息作为关键字,但也不能漏掉重要关键字。搜索引擎的使用也是需要累积经验的,教师可以上课的时候遇到问题,带着同学们一起搜索,让同学们学习教师是如何提取问题的关键字,以及如何在搜索结果中找到自己想要的信息。
3 总结
初学编程语言常见的問题大部分集中于对语法和工具的不熟悉,以及练习不够,因此加强练习是学好编程的主要手段。教学过程中应当强调放下书本,多写代码多操作。编程语言的学习过程中,学生定会遇到各种各样的问题,作为教师,不但要能够帮助学生解决问题,更重要的是要教会学生掌握解决问题的办法,提高解决问题的能力。
参考文献
[1]陈琦.The Analysis of the Commonly Seen Problems in the Programming of the C Language%C程序设计中常见问题辨析[J].燕山大学学报, 2000, 024(003):247-249.
[2]贺军,李喜梅.对计算机程序设计语言课程教学的思考[J].职教论坛,2004(14):24.
[3]戴磊.如何提高应用型高校“VC++程序设计”课程的教学质量[J].中国成人教育,2009, 000(021):176-177.