支架式教学在程序设计类课程中的运用研究
张婷婷 陈冀
新课标的必修课程部分要求学生掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法,通过解决实际问题,体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。程序设计类课程的开设不仅仅是为了让学生掌握某种程序设计语言,更重要的是帮助学生学会运用编程分析问题、解决问题的方法与过程。在学生的程序设计基础比较薄弱甚至零基础的情况下,教学支架就显得尤为重要。在教学过程中,能够引导学生自主学习,帮助学生解决自主学习过程中遇到的问题,满足学生个性化学习需求的教学资源、教学手段等都可以称之为教学支架。程序设计类课程中常用的教学支架有问题支架、范例支架、建议支架、向导支架、图表支架、视频支架、程序支架等,程序设计类课程中利用编程解决问题的一般过程分为分析问题、设计算法、编写程序、调试运行和检测结果五个环节,不同的教学支架应用在不同的环节可以起到辅助教学的作用。
● 分析问题,利用问题支架和范例支架引导学生对问题进行分析
例如,设计猜心术APP之前,教师可引导学生思考现实生活中猜心术游戏的规则是什么,根据学生说出的游戏规则(对比玩家A猜的数字和玩家B出的数字,如果猜的数字大于出的数字,则玩家B提示猜大了,如果猜的数字小于出的数字,则玩家B提示猜小了,玩家A重新猜,否则猜对了,玩家A赢得游戏)分析猜心术APP的设计原理。如果根据学生最近发展区中的认知还不能很好地分析问题,教师可以提供一个做好的APP范例演示给学生看,帮助他们更清晰地分析问题。
● 设计算法,利用图表支架引导学生更为直观地描述算法
算法的分析与描述是程序设计解决问题的重要环节,算法的描述一般有自然语言和流程图两种方式。在初学编程解决问题的过程中,教师可提供空出关键部分的二维图表或者流程图支持学生对算法的分析与描述。例如,在猜心术APP算法的设计过程中,教师可向学生提供空出分支结构的判断条件和判断结果的流程图框架(如下页图1),引导学生根据对问题的分析进行流程图填空,从而完成对算法的描述。在初学编程时,提供流程图支架比直接教学生绘制流程图更容易让学生接受。
● 编写程序,利用程序支架帮助学生掌握程序的核心部分
编写程序是解决问题的过程,但程序的编写对于大部分初学者来说,还是比较困难的,在这个阶段,教师可给学生提供半成品程序框架,即去掉程序代码的核心部分,这样既减轻了学生编写完整代码的负担,又帮助学生掌握了程序的核心部分。例如,在猜心术APP的程序模块中,教师可提供如下页图2所示的程序框架,空出分支结构的判断条件和判断结果,让学生在学习完分支结构相关内容后完善程序。另外,还可以列出缺失部分的程序模块供学生选择拼接。在程序支架的帮助下,学生对学习内容的接受度会更高。
● 调试程序,利用问题与解答列表支架帮助学生答疑解惑
调试程序也是利用编程解决问题的过程,学生在初步完成程序的编写时可能会出现各种各样的问题,如字符拼写错误、语句格式错误等。有时候,出现同样问题的学生比较多,教师可提供一份常见问题列表和解决方案给学生,学生对照自己的问题进行查找并解决。在问题与解答列表支架的支持下,能够解决教师不能及时答疑的问题,同时能够提高课堂效率。
● 检测结果,利用视频支架等方式帮助学生优化解决问题的方法
到检测结果这一步时,问题基本得到解决,但现实课堂上学生对学习内容的接受度有所差异,部分已利用编程解决了问题的学生可能无事可做,此时,教师可提供教学微视频或者其他可用于自主学习的材料,引导这部分学生思考更为优化的解决方案并尝试自主实现。例如,在猜心术游戏APP中,“如何设计使APP能以最少猜测次数猜出系统随机出的数”这个问题涉及循环结构的知识,教师可以提供讲解循环结构相关知识的微视频或者学案给学生先行自主学习。有视频或学案等支架的支持,基本能实现分层教学,提高课堂教与学的效率。
● 思考与建议
1.教学微视频等向导类支架使用中存在的问题
在实际教学中,笔者发现教学微视频等向导类支架的经常使用,容易造成学生不听讲、依赖教学支架的现象。出现此现象的原因可能在于教学微视频等向导类教学支架的内容和教师讲解的内容重复,以至于学生更愿意自主学习,针对此现象,教学微视频等支架的内容可调整为教师讲解内容的延伸而不是重复。如果需要相同内容的教学微视频等支架作为答疑支撑,也不能经常使用或者提前让学生知晓,而是在需要的时候再提供。
2.教学支架投放的合理时间
在程序设计类课程中,学生运用编程解决问题的每一个环节可能需要不同的教學支架,每一个环节的教学支架最好不要课前全部提供给学生,以免学生因为后面环节的内容影响当前环节内容的教学。
3.教学支架需要及时撤离
教学支架在程序设计类课程中的应用比较适用于初学阶段,初学阶段部分学生是零基础或者基础比较薄弱,提供教学支架能够帮助学生顺利地跨越最近发展区,提高对学习内容的接受度。在学生掌握了基础内容,并熟悉如何利用编程解决问题后,教学支架需要慢慢撤离,逐步过渡到学生自主或者合作完成程序的编写,从而解决问题。