应迎春
马寅初初级中学 浙江 嵊州 312400
摘要:人工智能、大数据、云计算等技术已经走入我们的生活,并且给生活带来了便利,Python语言在这些领域都有应用。同时,Python作为一门"解释型"语言,可读性强,语法简便,能较好地引领学生进入程序设计的世界。算法是程序的灵魂,程序设计离不开算法。阐述用程序设计解决问题的一般过程与方法,有利于帮助学生理解算法在程序设计中的核心地位。本文将从Python教学实践中存在问题为切入点针对算法与程序设计教学策略分析展开探讨。
关键词:Python语言;算法;程序设计;策略分析
引言:《python程序设计》课程已成为浙江省高中信息技术学考和选考必考的一项重要内容。2020年暑期刚出版的浙江省义务教育教科书《信息技术》八年上整册通过"Python程序设计基础""Python程序基本结构"和"算法与程序设计"三个教学单元,使学生了解Python语言的基本概念,能用Python语言编写简单的应用程序,掌握算法与程序设计的基本方法。
1.Python语言课堂教学教中存在的普遍问题
Python语言是初高中信息技术教学的重点及难点内容,教学的具体实施面临诸多挑战。笔者听了三位老师的课,发现在存在以下几方面问题。
第一,精英教学与普及教学的区别;一位是资深信息学奥赛辅导教师,她的上课方式类似于信息学竞赛辅导,上了几次课后,明显感觉到信息学奥赛的精英教学方法不适合现在Python普及教学。由于参加信息学竞赛的学生都是优秀生,具有超强的学习能力;但现在作为义务教育阶段教材的普及教学,学生各方面水平和能力良莠不齐,所以精英教学方法显然不适合现在Python语言的普及教学。
第二,照本宣科与教材处理的区别;一位是刚工作的新老师,没有教学计算机语言的经历,所以一开始上语言很容易照本宣科上课乏味,学生听得云里雾里,据学生反馈学程序设计没有想像中的“有趣”也没有想像中的“有用”;学生仅将教师的代码敲进去并运行出结果就停止了思考与学习,这样丝毫锻炼不了学生思维能力。所以教材处理非常重要。
第三,一般过程与表面有趣的区别;一位是参加地市级优质课评比的高中信息技术老师,上课内容是《用计算机编程解决问题的一般过程》,因为是评比课,她在试上时为追求热闹有趣的课堂氛围,利用海龟画图命令进行项目式学习,从画直线、三角开、正方形、正N多边形,一堂课下来,感觉就是换了个软件在上画画课;其实这堂课的重点是让学生了解用计算机编程解决问题的一般过程即分析问题、设计算法、编写程序、调试运行程序。学生不清楚其一般过程,刚开始抱着很浓厚的学习兴趣,但当往后学习会觉得越来越难而放弃学习。
2基于Python语言的算法与程序设计教学策略分析
2.1结合生活创设问题情境,抽象建模提升学生思维
在程序设计教学中,For循环结构是一大难点,对学生来说也有一个难以逾越的鸿沟。为了让学生能够对于For循环有一个形象的理解,在2020年浙江省初中信息技术优质课评比中一位老师举例:每天在储蓄罐中存两块钱,一星期后储蓄罐中多了多少钱?学生住住会直接告诉结果二乘七等于十四。这是他们经过多年的数学学习所保留下来的一个数学模型。但要想让学生明白计算机的一个思维方式,通过一个动画演示,让学生感受每一天储蓄罐里它的一个变化过程,从而达到扭转学生已有思维,理解计算机的递推思想。再联系变量其将储蓄罐切换为变量S,抽象出这样的一个模型。在实例中抽象建模,让学生自主建构得到S等于S加二这样的一个表达式,从而理解计算机的累加。在For循环作用就是其变化的过程,从而达到学生抽象思维的培养。
2.2适调结构利用教材重点,注重编程解决问题方法
大部分程序设计教材都是按照"先理论后实践,先语句再程序"的顺序编排的。2020浙教版八上信息技术教材也基本采用这种模式:每种语句的学习都是先基本格式,然后执行过程,最后程序实例,若在教学中这也是这个顺序来学习,语法格式也就只能是一些传统的讲解法来学习,而学生对这种死定格式讲解一是没兴趣听,二是讲了与没讲一个样,在编辑应用中学生根本不考虑语句格式。
在不断的教学实践中我尝试着适当调整教材原有的结构,每一堂课抛出实例或生活中问题,根据问题进行分析,抽象建模,设计算法,用自然语言或流程图表示算法,根据设计的算法用Python语言编写代码实现,在算法表示的对应步骤中穿插渗透相应的语法知识,最后调试运行,观察程序运行结果。每堂课着重强调教材重点,注重编程解决问题方法计算机解决问题的一般过程,即分析问题、设计算法、编写程序、调试运行程序,为后面继续深化学习打下扎实基础。
2.3巧用错误认识语法规则,多样实现发散学生思维
有时候程序运行不出并在相应行有显示,这说明程序存在语法错误。初学Python造成语法错误的常见原因有∶字母大小写不同意义、语句的缩进输入、中英文符号的混乱等,不过语法错误程序调试运行时会提示,鉴于此,我在课堂中因势利导,用这些"语法错误"来穿插讲解语法规则,让学生在改错中学习Python语言的语法规则,效果不错。当然,在展示学生程序时,细心同学会发现不同的程序表示,出现一致的程序结果,教师及时引导学生分析程序,从而引出同一程序的多样性表示。
利用错误突破重点或分散难点,取得了较好的教学效果。错误是一种很好的课堂生成资源,这些资源对突破课堂重点往往能水到渠成。如在教学"循环语句"这一课时,课堂的教学重点是对循环语句的正确描述。在用FOR语句编写程序时,教师在巡视中会发现学生最容易出现一种逻辑错误是循环体语句次序颠倒使结果不符合要求。而这恰恰是教学重点需要解决的问题的具体体现。在接下来的评价分析环节,教师就可以自然地利用这些课堂生成资源引导学生对这些典型错误进行讨论和自我总结,从而促进学生科学知识结构的建立或完善。学生的错误通常是他们学习难点的具体体现,在引导学生改正错误的过程中,如果能采取以"错"攻"难"的方式,用错误来"消化"学习难点,有时能收到事半功倍的教学效果。
2.4依托竞赛激发学生兴趣,分层教学铸就学习品质
每年1月-8月的各级中小学电脑作品大赛中的程序设计项目是使用各类程序设计语言,创作完成软件作品,实现某些特定功能或解决某种需求,其中小学初中项目设置有创意程序设计和趣味编程专项;每年6月-11月的浙江省和全国中小学信息技术创作大赛中程序设计限Scratch创意编程比赛和Python创意编程比赛。
从近几年的参赛情况来分析,程序设计这块内容比较容易获得省级以上奖项,家长也比较支持。由于学生水平层次参差不齐,有竞赛引导的基于Python语言的算法和程序设计教学,有利于激发学生的学习兴趣,从而培养学生自主学习、学会学习的能力。
结束语:基于Python语言的算法与程序设计教学是学生深层次的认知信息技术魅力的重要窗口,对于学生未来的学习及发展产生一定的影响。现阶段教学仍然存在诸多的限制因素,其教育价值并未得到充分显现。因此,教师要始终秉持发展眼光看待教育教学,加快教学创新及优化的探索脚步,更为快速的攻克教学难点,构建有效教学课堂。
参考文献:
[1]万鑫.算法与程序设计教学中存在问题及尝试策略的分析[J].中小学电教,2014(7).
[2]焦立新.基于项目的学习在初中信息技术教学中培养学生核心素养的探究[J].科技风,2019(03)