张思++全婕++涂英
摘 要:目前多数大学都要求在校大学生学习并掌握一种编程语言,由于编程思想中的一些晦涩难懂的抽象概念,学生在学习入门级课程中都备受煎熬。文章主要了介绍一门专为大学生学习Java编程入门而设计的慕课。在新教学方法中,编程新手可以通过使用Alice3 可视化编程环境,直观的学习体会抽象的编程思想。此外,本方法已经应用到2015-2016学期的Java教学中;同2014-2015学期的学生成绩对比,本方法对学生掌握编程技术有积极的影响。
关键词:Java;MOOC;Alice
中图分类号:TP311 文献标志码:A 文章编号:1673-8454(2017)10-0021-03
近年来,教育信息化领域发生了革命性的变化。基于游戏学习[1],手机练习[2]和MOOC教学等新型教学模式及方法,不仅可以解决教育研究与教学实践中的一些问题,而且还可以帮助教师改进课程以及提高学生的学习效率。本文的贡献是尝试把可视化编程教学引入到编程教学过程中来,在教学方法和手段上进行研究,努力提高学生对编程课程的学习兴趣。在当前MOOC的大环境下,此项研究有利于充分发挥教师和学生的主观能动性;也可以为在移动互联开放环境下的教学提供辅助支撑和基础研究数据。本文首先介绍编程教学相关研究成果以及目前所面对的一些问题;然后介绍一种专为大学生学习Java编程入门而设计的教学方法;最后对比分析两个学期两个班的学习情况,总结新方法对学生掌握编程技术积极的影响。
一、编程教学现状及问题
程序设计是高等院校非计算机专业学生的基础课程。目前,程序设计语言有很多种,而且更新很快。初学者难以理解其中抽象的概念,难以掌握复杂的语法,无法下手检查程序的语法错误,编写程序成为一项枯燥而又艰苦的工作,让不少初学者生畏,从而失去编程的兴趣 [3]。
在传统的计算机语言教学过程中,教师们主要的教学方法是通过在课堂上以教学为主、课后线下或QQ答疑为辅来实行。在这个过程中,我们强调了学生的课堂学习,却忽视了激发学生兴趣导向的自主学习能力的培养。由于内容抽象难懂,无法引起非计算机专业的本科生学习兴趣。在计算机工科领域,男女比例严重失衡,这对学科长期发展很不利。
二、教学方法设计与实现
本研究项目针对当前武汉市高等教育教学改革和建设中的突出问题,从理论和实践两个方面进行研究和探索,寻求解决问题的方法和途径,主要从以下4个方面的改革入手:教學手段,教学方法,实验内容和评价体系。该项目是以超星-泛雅平台为载体,借助于江汉大学计算中心的自主学习平台教育资源的支持而实现的。在线课程演示图如图1所示。
1.教学手段
数据可视化编程是指通过对可视化元素的相关操作进行程序编写。数据可视化编程就像是拼积木。逻辑积木的组合方式比较灵活,可以尝试很多解决问题的思路。零基础的初学者在完全不懂语法和算法的情况下可以快速实现自己的程序设计。
在学习编程的过程中,首先是学生自己用最简单的方式尽快实现程序的主要功能,这样有助于增强初学者信心和进一步明确学习需求;然后在进一步的学习中,学生会很快发现不是所有需求都能用可视化编程实现,为了实现某些特定需求自己必须编写代码;接下来学生可以带着问题,一边阅读相关书籍,一边不断修改调整已有代码;最后经过学习再使用程序设计的架构来组织代码。这样学生既能最快地完成工作,又能逐渐养成较好的编程习惯和深入理解程序设计思想。
针对在Java编程课教学中遇到的一些实际问题,本项目通过使用Alice 3[4];该系统是一种面向三维模型的编程工具,学生可以使用系统来创作出三维动画游戏,或导演一部动画故事。在该系统中,抽象的类、对象已经换成可视的三维模型,系统中建造好的模型库,包含各类动物、人、建筑物以及场地等,而且可以不断地从网上补充新的三维模型到库中。因为该系统是Java语言写成,学生能将所编的游戏或者动画程序通过Netbeans开发环境转换成对应Java源程序[5]。
2.教学方法
采用游戏教学法[1],激励学生编程的兴趣和欲望,培养计算思维能力,逻辑分析能力和发展创新能力。打破传统按章节知识点授课的方式,从实际游戏项目出发,在游戏设计开发的过程中,学生很容易初步掌握编程的基本概念及基本技能,从实战中找到自信,再通过充分调动其自主学习能力,充分利用网上丰富学习资源,自行深入继续学习。让学生从亲身经历的案例中分析原理,从实际现象中看出本质,最后将自己抽象领悟出来的概念同书本上的理论知识相对应。例如:Java程序设计课程重难点一般包括:常用系统类的使用,数组的运用,OOP设计及实现。通过让学生导演自己的电影或者创作游戏将知识点隐形的传达给学生。本课程包括8个主要章节,21个课程知识点,以及32个学习任务。首先,学生通过学习一个个的教学小短片了解主要知识点;然后,完成课后小测验,检查自己的学习情况;接下来,到课堂实验时,可以有的放矢的提出问题;最后,通过完成一个完整的实验项目,掌握所学知识。这种教学方法相对于传统教学来说有其复杂性,大大增加了教师的工作量;需要教师投入更大的精力和时间,更加全面的,合理的制定教学策略。具体课程模块设计图如图2所示。
3.实验内容
根据学生的不同专业背景,设计不同的类型题材的实验。对于非计算机专业的学生,程序设计是一个全新的领域,计算思维是一种新的思维方式;当人初次接触一个新事物时,抵触和恐惧往往大于好奇和兴奋。对这类学生,需要采用投其所好的教学策略。首先从他们熟悉的方向着手,再慢慢的使其解除抵触心理,最后引导学习掌握新知识。学生专业与游戏类型的例子如表1所示:
4.评价体系
平时和期末成绩各自占比为40% 和60%。平时成绩主要考察学生动手能力,团队协作能力,以及表达能力。采用Quizzes + Project + Presentation形式作为平时成绩考核。其中Presentation是由学生讲解自己完成的作品,其余同学根据其讲解给其作品评分。期末采用统一集中上机考试方式进行考核。
三、教学效果对比分析
本文介绍的新教学方法已经应用到2015-2016学期的Java教学中,对学生掌握编程技术有积极的影响。如图3所示:左图为2014-2015学期Java程序设计课程A班学生成绩,右图为2015-2016学期Java程序設计课程B班学生成绩。A班一共有54名学生;采用传统教学方式授课。B班一共有56名学生;采用本文介绍的新教学方式授课。两个班都是由非计算机专业学生(商科)组成,没有编程基础。通过一学期的学习,A班平均分为51.68/100;B班平均分为54.23/100。B班高分段有6人,但是A班在高分段为1人。B班不及格人数比A班不及格人数少6人。A班最高分为82分,但是B班最高分为90分。
四、结语
本文所介绍的新教学方法,将传统的“课堂 + 多媒体”教学模式,过渡到“移动互联 + 学生自主学习 + 开放式自学方式”的模式。强化实践教学,提高教学效率和质量,增加基于移动互联网络的自主学习,建立MOOC课程,学生可以随时随地在网上完整地学习到一门课程,通过在线测评,检查学习情况。借助Alice3D可视化编程技术手段,带动学生的学习积极性,优化教学效率。下一步研究主要是在挖掘学生相关数据的同时注重学生隐私保护,体现学生为教学中心的指导思想。
参考文献:
[1]张思,向华. 基于游戏驱动的Java程序设计课程教学改革研究[J]. 计算机时代,2015(1):72-74.
[2]张思,吴开诚,廖恩阳. 基于Android的在线考试练习系统设计与实现[J]. 计算机时代, 2015(3):27-29.
[3]Lahtinen, E., Ala-Mutka, K., &J?覿rvinen, H. M. (2005, June). A study of the difficulties of novice programmers.In ACM SIGCSE Bulletin (Vol. 37, No. 3, pp. 14-18).ACM.
[4]Dann, W. P., Cooper, S., &Pausch, R. (2011). Learning to Program with Alice (w/CD ROM).Prentice Hall Press.
[5]Dann, W., Cosgrove, D., Slater, D., et al. (2012, February). Mediated transfer: Alice 3 to java.In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 141-146).ACM.
(编辑:郭桂真)