李泽龙 于瀚翔 张鑫鹏 王涛
摘要:随着计算机科学与技术的发展,计算机逐渐成了学习和工作中必不可少的工具,编程逐渐走进了大众的视野当中,本文针对计算机编程初学者的教育为研究对象,了解讨论编程教育的背景和现状,进一步分析了当前编程教育的主要教学方式以及存在的问题和不足,并提出了一些提升编程教学质量的建议与策略,希望能对编程教育的进一步发展提供一定的参考。
关键字:计算机编程;计算思维;编程教育
一、背景与现状
(一)编程教育的背景
新一轮科技革命和产业革命的孕育兴起,对专业人才的需求发生了一系列的变化,对于人才的培养和教育也提出了更加前沿的要求 ,开展人工智能与编程教育已经成为当今的流行趋势。伴随着云计算、大数据、人工智能等IT技术迅速发展及与传统行业实现快速融合,一场由数字化和智能化转型带来的产业变革正在孕育[1]。近几年国内奥赛等竞赛竞赛活动正在持续发展且十分向好,之前有高校自主招生的驱动,现在有国家“强基计划”的引领,加上时代潮流和教育政策的导向,越来越多的人看到了科技类创客类的教育,其中尤其是编程教育项目。学习编写程序与进行程序的设计,除了学习编程基础知识之外,还会培养学生的计算思维,锻炼学生依靠自身独立思考并解决问题的能力,也就是逻辑思维能力,提高学生对信息的敏感程度,增强学生处理复杂问题的信心。这就为学生在未来的学习和工作中奠定了独立思考与解决问题的思维习惯,这种思维习惯对学生的成长至关重要,成为学生在学习和工作中的核心竞争力。
(二)编程教育的现状
在政策层面,2017年7月,国务院在《新一代人工智能发展规划 》中首次明确提出,要“实施全民智能教育项目,在中学阶段设置人工智能相关课程,逐步推广编程教育”[2]。在 2018 年新发布的课标中,信息技术、通用技术、数学等都加入了“互联网、人工智能、大数据处理”与编程教育相关的知识内容;由教育部发布的《2019年教育信息化和网络工作要点》也指出,要“推在中学阶段设置人工智能相关课程,逐步推广编程教育”;因此,为了提高基础教育阶段学生的未来的数字适应力,现阶段迫切需要在中小学推广实施编程教育的相关课程[3]。
当前互联网编程教育已经进入启动期,大量的投资的涌入了市场,行业中的厂商已经逐渐拉开差距,并探索出不同的发展模式。编程猫从创新性编程工具及全产业链覆盖切入;童程童美、极客晨星、小码王坚持线下与线上结合策略;傲梦与VIPCODE主打一对一或一对多的小班教学;西瓜编程与核桃编程主推低价课程抢占用户。通过差异化运营,各厂商正在加强用户的产品认知,从而形成了现状百花齐放的状态。
二、践行编程教育的现实意义
编程是模拟在现实生活中根据目前的需要,按照计划顺序进行任务处理和问题解决的过程,编程是计算机系统运行所必需的。研究表明,编程教学对培养个人的重要技能如反省和思考、批判和分析思维是有效的。编程教学具有重要的功能,如培养计算思维,开发个人的想象力,帮助他们以过程为导向的方式思考,处理信息,获得与他人进行团队合作的习惯。
“计算思维”的培养是编程教育提升学生思维能力主要表现,提高学生对问题和信息的综合处理能力。计算思维作为一种分析问题解决问题、进行系统设计、理解人类行为的综合思维模式,受到社会各界的广泛关注,当前基础教育也十分关注和重视对计算思维的锻炼。编程学习可以有效促进计算思维的培养。图形化编程、机器人编程大量的相关文献和研究表明,编程教育与计算机科学之间存在着一种不可分割的有机联系,编程教育是培养计算思维的一项有效工具[4]。Lee[5]和 Saritepeci均在其研究中发现,学生的编程自我效能感、计算思维技能以及计算思维技能发展之间存在显著的相关关系[4]。
在当今这个时代计算机逐渐成为大部分人在工作和学习中没有办法离开的工具,在各种各样的事务和情况中,数字化、数据化、电子化、信息化已经成为一种趋势,越来越多的工作和事务需要计算机来处理,信息和数据的处理已经成为工作和学习的基本手段和方法。在此基础上,计算思维必然与实证思维和逻辑思维一样,成为一个现代公民必须掌握的基本思维模式。近年来,计算思维(Computational Thinking)的价值和意义日益突显,成为当前国际计算机界、教育界广为关注的一个热点主题。围绕着科技创新和人才创新,计算思维的培养也成为国际竞争的重要抓手。而编程教育正是具有培养计算思维能力的重要途径和方式。
三、编程教学的方法
(一)远程教学模式
通过远程的线上直播视频等形式,通过一对一、一对多等远程教育模式,辅导入门学习者学习。远程教学的模式不会受到地域地理因素的影响,不会受到地区的限制,能够将教学资料和课程传送到任何地方,可以对编程教育进行很好的推广,让更多无法在传统教育和线下实体学习的学生一个接触学习编程的机会。远程教学模式在时间上更加富有弹性,学生也可以根据自己的学习时间来进行安排,极大地提高了教学的灵活性,同时也激发了学生自主学習的积极性和兴趣。编程教育在远程教学模式上有着特殊的优势,编程本来就是需要在计算机的环境上进行学习,采取线上教学模式,既符合编程需要的操作环境,也可以降低总体成本,解决空间设备利用,地理制约等层面的问题。
(二)游戏化教学
游戏化教学工具的使用会给学生带来更高程度的动机。以一个游戏故事为背景作为引导线索,让学生根据自己的想法、标准、速度、策略和技能来行动。在故事中提供不同的路径并以多种选择或者具有一定开放性的操作在教育层面上,在教育层面上这种方式能够促进学习,以此来锻炼学生解决问题的思维能力。游戏化的教学工具可以加强与学生的交互,提高学生的学习动机。给予学生一个具体化的情景,使得学生在身历其境的情况下进行问题的思考以及困难的解决。
(三)Online Judge+题库
OJ(Online Judge+)最初应用于ACM / ICPC, O1等编程竞赛项目的分数评定,而后在各编程学习者间广泛普及。现阶段各高校学生广泛使用橙汁进行编程联系,很多高校都有自己的橙汁平台。对应其评测功能,各橙汁配有其相应题库,方便使用者进行学习。对题库的充实和优化将为橙汁系统带来更大的竞争力。配合适当的教学体系,可寻思推进使用者的编程学习进度。教育平台可利用其服务器投入等特性,帮助学习者使用。
四、编程教学中存在的问题
(一)教学过程中缺乏计算思维的培养
在教学方面,教师更注重编程语言的语法教学,而不是推广解决问题的方法和编程能力。在一些高校当中大学计算机课程仍然停留在基础知识和技能操作的培养上,没有能够真正地进行思维能力的培养。对于计算机编程的入门学习者来说,培养良好的计算思维打下思维基础,才能在日后的学习当中更加有序游刃有余地解决问题。
学生需要学习如何分析问题的编程和数据结构的概念。学生应该进行分析和说明步骤,以理解问题。在当前的社会发展过程中,最关键的不是解决具体问题的技巧,这种技巧往往只能解决单一的问题,而将问题转化为可以使用计算机解决的形式,这样的思维方式才能造就解决问题的基本方法。
(二)不合适的教学方法削弱了学生编程学习的积极性
计算机编程对于教师和学生来说都是一门很难教的课程。在很多的编程教学过程中,仍然是以编程语言的语法为先导,这让学生在学习难以记忆和理解的编程语言语法时遇到了困难。在学习编程相关课程的过程中,当学生们认为自己在做一项困难的任务时,学生在很大程度上会产生消极态度。同时,学生在普通的编译器中进行编程练习时经常会遇到自己难以理解的报错,错误地将编程学习变成了一种修改错误和消除漏洞的过程。在程序中消除漏洞的过程既费时又烦琐,进一步削弱了学生学习编程语言的积极性。
编程教学是一个复杂的过程,需要很多的技能,学生在编程教学中会遇到各种各样的困难。编程入门学习者在学习计算机编程时面临许多障碍,包括需要学习新的语法和计算模型编程语言的语法,看似深奥的标点符号和格式规则,在编写程序时必须遵循,可能是一个严重的障碍。计算机科学的研究表明,学生在编程过程中会在大量的代码中迷失,淹没在编程代码的细节上。导致学生过于关注代码的语法细节,而不是程序的设计和思维的拓展上。
(三)缺乏优秀的教师
在编程教育行业,缺乏专业能力过硬和教学方法优秀的教师,行业顶尖人才非常珍贵,每年都会有优秀的计算机人才涌现,但是进入编程教育行业的优秀计算机人才却少之又少。随着我国产业结构的不断升级,云计算技术、机器学习等人工智能技术在世界范围内的推广,在移动应用、智能手机终端、云管理、云物流等领域出现了巨大的人才缺口。在此情况下,相关行业顶尖人才愈发珍贵,流人教育行业人才较少,课程质量难以突破。专业计算机编程人才普遍进入传统计算机行业如:开发程序、程序测试、运营维护等。编程教育者在实验编程过程中必须掌握发现、分析和解决问题的能力,并能将这种思维能力通过言传身教的教学方式传授给学生,但是这一点正是计算机专业出身人才的薄弱点。而具有过硬教学技能的教师却对编程教育不够专业,成了编程教育行业缺乏优秀教师的主要痛点和难点。
五、编程教学教育质量提升策略
(一)建立更加多样化的编程工具
建立更加多样化的编程工具并引入游戏化和情境化教学方法,利用具体情景和游戏化的活动在教学过程中培养计算思维思想来辅助学生进行问题的解决和知识的学习,从而完成了培养学生计算思维的目标。
图形化编程的方式可以有效降低学生认知负荷,提升学生的学习兴趣以及提升编程思维。图形化编程工具可以帮助学生对任务和目标进行分解,将一个庞大的问题分解为多个小问题,通过解决分解出的小问题有条不紊地解决整个问题,锻炼了学生分析问题、解决问题的能力,增强学生解决问题的逻辑性。基于块的编程环境通常包括可视化编程。在这类环境中,可以通过对屏幕上的可视对象进行拖放的方法来执行编码过程,而不必按照编程语言的语法规则编写代码。
更加多样化的编程工具开发减少了认知负担,从而激励新学习者学习编程,提供这种开发的连续性可能是一种解决方案。因此,建立更加多样化的编程工具被用来帮助编程初学者理解编程和参与编程。让学生透过不同的编程工具,创造性的反映他们的想法,在不同的工具中应用程序设计的概念。
(二)编程教育要更加注重以培养计算思维为导向
对于计算机编程入门学习者来说,无论是中小学生还是大学本科生,计算思维的培养要远比编程能力的培养重要得多。比起学习具体的编程语言和语句语法,让学生形成利用计算机来处理问题的习惯和思维模式更加重要。可以让学生一个问题的解决当中领悟和归纳出一种解决问题的思维和方法。学习编程步骤必须培养解决问题的技能,学习编程的过程就包含解决问题步骤的过程。
(三)建立系统的课程体系和授课模式
建立系统的成熟度课程体系和授课模式,通过多种多样教学课程对学生进行积极引导,例如使用游戏化的编程工具、可视化图形编程工具等进行授课,培养学生的计算思维、思考能力和创新意识,提高学生的解题能力。编程教学根据先易后难,循序渐进的学习进程,为学生培养创造性思维提供学习平台,让学生学习编程的过程变得有趣有效。操作简单的双师系统以及师生双向引进学习的多元化的教学模式,让教学更加智能化,信息化,高效化。改进教学方法和增加多种授课模式,如:实践上机练习、项目学习、课堂授课、研讨会和辅导课、基于问题的教学。实践上机练习很有效的教学方式,让学生在练习和实践中更好地理解和体会所学习的基础知识和概念,提高学生编程能力;项目学习让学习者在具体的项目中学习,在参与到实际的编程项目的过程当中,增强了学生参与解决问题过程中的感受,增强了学生的积极性;课堂授课是传统的教学方法时获得知识的主要场所,仍然是必不可少的,可以帮助学生获得系统的编程知识;研讨会以及基于问题导向的教学可以让学生在思维和知识的碰撞中交流想法,从而有效帮助学生对知识进行理解,提高学生自主学习的效果。
六、结束语
在当今这个时代计算机逐渐成为大部分人在工作和学习中必不可少工具,数字化、数据化、电子化、信息化已经成为一种趋势,信息和数据的处理已经成为工作和学习的基本手段和方法。学习编程具有很大的现实意义,可以提升学习者的综合素质。但是对于编程入门学习者的教学仍然存在教学过程中缺乏计算思维的培养,不合适的教学方法削弱了学生编程学习的积极性,编程教育的行业内缺乏专业优秀教师的问题。因此,在编程的教学方面需要建立更加多样化的编程工具,在编程教学中要更加注重以培養计算思维为导向,建立系统的课程体系和授课模式让编程初学者能够更加有效地掌握编程能力和计算思维。
参 考 文 献
[1]王子行,杨帆.面向商业新业态 重构学习新场景[J].中国高等教育,2020(20):9-10.
[2]新一代人工智能发展规划[J].科技导报,2018,36(17):113.
[3]孙发勤,冯锐.编程教育中的智能导师系统:架构、设计与应用[J].远程教育杂志,2020,38(01):61-68.
[4]傅骞,章梦瑶.实体编程的教育应用与启示[J].现代教育技术,2018,28(12):108-114.
[5]计算思维教学改革宣言[J].中国大学教学,2013(07):7-10+17.
作者单位:李泽龙 于瀚翔 张鑫鹏 王涛 贵州师范大学国际教育学院