杨冬梅
(河南信息统计职业学院,河南 郑州 450008)
“程序设计”是计算机专业重要的课程之一,也是展现编程思想,强调学生编程能力的重要课程。但因程序设计所包含的知识点细碎,对程序设计的实践性要求较高,如果缺失编程兴趣,则很难深入学习编程方法,更难以适应就业岗位需要。为此,化解“程序设计”课程兴趣不足难题,就需要从激趣入手,深化“程序设计”课程改革。
从“程序设计”课程专业来看,对学生的专业知识、逻辑思维、动手实践能力等提出更高要求。但传统的“程序设计”课程在教学中,以布置实践作业为主,学生根据作业任务完成相关编程知识的学习和应用。由于高职生源整体质量的降低,软件设计类课程学生对“程序设计”实践课程兴趣度不足。一方面,一些学生反映英语基础差,对“程序设计”中的语言学习没有好感。如在C语言编程设计中,如果对英语不熟悉,其在编程中的一些设置、备注、程序表达方式等缺失兴趣和信心。如果英语基础不好,就很难对后续程序类课程进行良好学习,也看不懂他人的程序设计思路。另一方面,一些学生存在逻辑思维欠缺问题,特别是曾经是文科的学生,面对编程逻辑,更易产生抵触情绪。通过对学生程序设计兴趣不足原因的分析,可以梳理出以下主要问题:(1)学生在学习上自主性不够,特别是受到中学被动授知教育的影响,往往缺乏应有的学习自觉意识。(2)“程序设计”习题本身过于浅显,与实际应用有较大偏差,导致学生感觉编程难。(3)“程序设计”课程需要不断积累编程经验,而非一蹴而就,很多刚学习程序设计的学生在遇到编程难题时,会丧失学习积极性。所以说,缺失编程兴趣是造成“程序设计”课程教学低效的主要原因,而激趣教学,就是要从兴趣导向上,让学生体验编程的乐趣,挖掘学生的编程潜能,逐渐改进学生对“程序设计”课程的学习积极性,提升学生的编程能力[1]。
在高职“程序设计”课程教学实践中,兴趣不足影响学习积极性,而趣味的激发需要突出对学生需求的满足。当下,很多学生喜欢玩游戏,也容易从游戏中获得满足感。为此,我们对比了多款虚拟机器人编程软件,以RoboMind编程软件最具代表性。该软件可以满足教学团队设置不同的编程游戏任务,让学生从玩游戏过程中,培养编程意识,锻炼编程逻辑思维。最关键的是,通过编程闯关方式,能够降低学生对编程的抵触心理,增进“程序设计”学习乐趣。RoboMind编程软件是荷兰阿姆斯特大学开发的程序设计智能化机器人软件,编程界面主要有4部分,即菜单区、代码编写区、地图和结果显示区、运行调速区等。整体来看,编程界面新颖,操作方式简便,游戏化风格更易满足高职学生的编程体验。
从软件功能及特点来看,RoboMind主要有三大优势:(1)对语言兼容性强。可以支持中文、英文多国语言指令,非常适宜英语基础不好的学生。如利用“翻译脚本”功能可以实现对语言代码的多语种翻译呈现。(2)学习门槛低。在RoboMind编程实践中,其语法简单,比较容易上手,且内置多种编程概念,可以满足查看、移动、循环、条件语句等语法功能,还能够根据需要进行喷绘、抓取,在“编辑区”,可以直接输入指令,来让机器人自动完成编程。另外,对于一些指令及方法的运用,不需要额外记忆,可以从“插入”菜单选择需要的指令代码。如在程序显示器写一个“口”字,只需要执行代码“画白色,重复(4){向前1步;右转};停止画画”。(3)闯关式理念让编程更富趣味。在“程序设计”教学中,对于“程序设计”任务的布置和完成,都可以利用闯关游戏来贯穿编程知识,让学生在闯关中内化理解。另外,根据不同层次的学生实际,可以设置不同等级的闯关任务,学生可以根据自主情况选择编程,增强程序设计的信心和乐趣[2]。
利用RoboMind进行编程实践时,可以根据自身的设计任务来优化教学内容。首先,布置游戏任务。RoboMind具有不同难度的闯关设置,可以让学生在规定时间、不限闯关数量完成“程序设计”实验任务,并获得相应的经验值。其次,分析游戏任务。每一个学生根据任务要求,可以进行小组合作学习。如对于Repeat循环语句的练习,可以设置迷宫中行走案例;在If语句及观察指令学习时,可以设置寻宝案例,每行进一次,观察环境,确定是前进还是转向,当发现宝贝后,拾起宝贝,完成任务。同时,利用寻宝游戏,教师要鼓励学生将自己比作机器人,以自我的思维与行动来操控机器人指令,进而增强思维情境,锻炼学生逻辑思维能力。然后,开始闯关。在分析完闯关任务后,进入闯关游戏。通常,在布置闯关任务时,学生很少能够一次性闯关完成,都需要从多次的尝试、失败中查找问题,最后化解问题取得成功。如此一来,学生能够在闯关游戏中感受程序调试的乐趣,增强面对问题、永不放弃的精神。利用闯关游戏,来强化学生的心理素质,增强学习积极性。再次,进入闯关分享交流。每一次闯关任务的完成,我们都需要结合闯关任务进行探讨,对闯关中的问题进行分析,对所遇到的情况,闯关过程利用抓屏软件进行播放,分析学生如何化解编程疑惑。事实上,每次在分享交流中,学生都能够从他人的闯关任务中,获得思维的拓展,特别是从解题思路上,有助于启发学生坚定对编程课程的学习信心。最后,完成进阶。每一次闯关成功,都说明学生已经具备相应的闯关知识和能力,而进入下一关,难度会提升,编程知识点也会增多。利用闯关方式,让学生从中不断消解困难,巩固和提升对“程序设计”课程的学习积极性,也让学生从程序设计中锻炼编程方法。
在挖掘“程序设计”学习趣味上,教师也可以融入多种教法,来突出编程实践教学,强化学生对“程序设计”知识点及编程技能的训练。
“程序设计”课程教学中,语法及逻辑等问题是基本点,也是要求学生理解并掌握的内容。对于编程语法,很多学生需要经过多次训练来掌握,如果单一设置编程训练,学生易感到枯燥。利用互改作业模式,可以通过察看他人程序,分析程序语法是否存在错误。同时,在阅读他人程序时,也能够从中了解程序设计的不同风格,增强学生的编程意识和良好习惯的养成。另外,在编程调试中,通过对他人程序错误现象的分析,来加强自身对语法的理解和应用。
学习编程,不能一个人学习,要从大家的共同学习交流中取长补短。根据学生情况,分成若干小组,组内成员在编程水平上具有互补性。如此一来,对于编程设计中的问题,可以让小组成员进行分析,查找解决方法;也可以让学生对某设计任务进行共同研讨,梳理编程思路。小组合作与讨论,有助于增强学生的编程思维,拓展程序设计视野,特别是对于某一问题的解决,可以有不同的解法和路径,在这个交流过程中,让学生能够从编程实践中增强编程能力。
对于“程序设计”课程趣味的营造,也可以导入项目答辩模式。针对不同的编程任务,我们设置具体的项目内容,来考查学生的编程水平。如对于基础性程序设计项目,主要考查学生的编程思想、编程方法和基本操作;对于应用性编程项目,主要考查学生在程序设计编程设计的综合技能,包括编程项目报告、程序设计、项目答辩等内容。利用项目答辩教学模式,更易突出学生的个性化编程能力,锻炼学生独立完成编程任务。
程序设计兴趣的激发,也可以通过竞赛机制,来强化学生你追我赶的编程积极性。考查学生的编程技能,利用一些竞赛活动,让学生从上机实验、课下编程学习中,解决编程问题,营造良好的学习编程的氛围。当然,对于竞赛项目任务的设计,需要结合学生编程实际,特别是竞赛题目的层次性,利用难度分级来满足不同编程水平的学生需求。
大学生群体对现代移动通信网络较为熟悉,我们可以利用QQ群、微信群等即时通信工具,组建程序设计问答群,让学生在群里对学习中的问题进行提问,发挥群体的智慧来解决疑难。同时,一些学生性格内心,在课堂上不愿意与教师交流,课下也不愿向同学请教,这样会带来更多的学习疑难。通过交流群,对于一些问题,教师、学生共同参与解决,其他学生也可以参与回答,由此营造的学习环境,也有助于让内向的学生从中看到而获得有益帮助,进而逐渐形成良好的学习氛围。
“程序设计”具有较强的实践性、创新性,教师要在整合各个章节、习题、实践内容基础上,多融入编程思想的渗透,特别是对于刚入门学生,在算法知识、数据结构等知识还不完善时,要侧重于体验编程过程教学,以简易的编程虚拟机器人,或者其他趣味性的编程软件,引导学生认识编程的魅力,转变对编程的正确态度。教师在面对不同学生时,要多鼓励,多给予积极的引导。对于基础好的学生,尝试以综合性、挑战性程序任务来激发其编程能力;对于基础差的学生,以浅显的、趣味性任务来增进编程成就感,逐渐提升编程兴趣。
[1]陈进.高职学生编程兴趣引导的探索和实践[J].教育观察,2017(18):76-78.
[2]邹静.浅谈大学C语言教学方法[J].现代职业教育,2017(1):126.