面向计算思维的程序设计教学实践

  • 投稿苗久
  • 更新时间2015-10-09
  • 阅读量1043次
  • 评分4
  • 89
  • 0

刘 军

(湖北理工学院 计算机学院,湖北 黄石 435003)

摘 要:从程序设计教学的根本目的出发,以培养学生的计算思维为指导思想,提出以学生为本,通过教师引导加强学生独立学习的能力,指出在培养计算思维的过程中容易出现的问题,旨在建立一个全面培养学生计算思维的课堂教学模式,提高应用计算机对综合问题的分析和解决能力。

教育期刊网 http://www.jyqkw.com
关键词 :计算思维;程序设计;教学模式;学习能力

基金项目:湖北理工学院新技术支撑下的“未来课堂”理念研究资助项目(2013B16)。

作者简介:刘军,男,副教授,研究方向为无线网络,miile@126.com。

0 引 言

普通理工科院校普遍将计算与程序课程作为一门基础课程,但在全国计算机等级考试(NCRE)中,程序设计的通过率较低,在后续的专业学习或工作中,学生更是难以自觉地应用计算机解决实际问题,这反映了程序设计课程的教学效果并不理想,给目前的教学带来了严峻的挑战。

计算思维能够全面提高教学效果,全面提升学生的学习能力和学习质量[1]。计算思维是指运用计算机科学的基础概念进行问题求解、系统设计和人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。计算思维从理论与方法论的角度阐述了有关计算和计算机的最基本特征,学生如果能够从基本层面掌握这些内容,有助于将来正确应用计算机解决实际问题。教指委也要求以培养计算思维能力为主线,开展系列课程改革研究。如何通过培养计算思维有效提升学生的学习质量已经成为当前高等教育信息化改革的一个重要方向[3-6]。

1 以培养计算思维为主导

将计算思维有意识地融入程序设计是当前课堂教学的研究热点。这要求教师对传统的教学进行一定的改革,明确程序设计教学的主要目的是培养学生的计算思维能力和提高学生自觉应用计算机分析和解决综合问题的能力。计算思维的培养应真正落实在教学中,在教学内容、教学方法和教学方案中体现计算思维。

由于程序设计本身就已经涵盖了部分计算思维的思想,程序设计的知识只是计算思维的载体[7],计算思维隐含在各个教学层面中。但这些隐含的计算思维只是零散和片面的,没有有意识地对教学的各个方面进行系统的设计来反映计算思维,学生难以全面地掌握思维方式以提高程序设计能力。同时,仅仅意识到培养学生的计算思维是不够的,还需要具体落实到教学的各个方面。只有转变原有的以传授知识为主的教学方式,对计算思维的培养模式充满信心,并持之以恒地培养学生的思维模式,才能够逐步提高学生分析问题和解决问题的能力。

2 强化学生的主动参与

计算思维的培养是一个连贯的过程,只有让学生始终如一地融入计算思维活动,才能够取得预期效果。教师不仅要在教学实践中体现计算思维,还应使学生对培养计算思维的教学模式产生浓厚兴趣,认识到计算思维的重要性,主动地参与教学方面的各个环节,这才是实现教学目标的根本保证。

计算思维的培养是一种创新的教学模式,在教学中不能让学生有充当“小白鼠”的感觉。学生在学习中遇到瓶颈或困难时,会认为该教学模式不能提高学习能力,从而失去主动参与的兴趣,进而在心理上全面排斥整个学习过程,也就无从谈及计算思维的培养。因此,及时帮助学生解决学习中的困难是非常重要的。教师应主动采取多种多样的形式与学生交流,如可利用网络平台或各种通信软件在线帮助学生,也可以帮助学生成立学习小组,让学生在小组内或小组间开展广泛的讨论和交流。教师应及时从这些交流中发现问题,引导学生解决,时刻保持他们的学习动力。

3 注重课堂教学实践

根据教学目的和内容,教师结合学生所学专业的知识特点进行案例设计,使学生专注于程序的算法设计,对所采用的计算思维进行归纳总结,与当前教学内容进行有机融合[8]。教学案例应该明确应用情境,促使学生理解计算思维的抽象和自动化本质。

3.1 教学前

教师在教学前应总体规划,根据教学内容体现的计算思维采用不同的教学策略。因此,具体教学方案以计算思维为中心,具有“碎片性、冗余性、一致性和完整性”特点。碎片性是指解决问题的程序根据思维的递进关系将源码分成不同的部分;冗余性是指同一思维模式可通过多个不同的日常问题或专业问题展现出来,不同的代码完成相同的功能;一致性是指讲解的源码部分只是同一个程序的子程序;完整性一是指所有的子程序组成一个完整的程序,二是指计算思维在程序中得到了完整的体现。

3.2 教学中

教学应打破传统课堂的灌输式教学,提倡“二个中心,一个基本点”,即以教师和学生为中心,以算法为基本点。教师采用启发式教学,并引入多种思维方式,在分析和解决问题的层面上,引导学生掌握知识并独立思考。教师要引导学生提出各种发散和联想的问题,鼓励学生相互回答。教师除单独解答一些问题外,还可以与学生共同设计程序,提高学生的参与度。算法是程序设计的灵魂,是计算思维过程化和可视化的具体展现。针对具体问题进行问题分解进而实现算法,是培养学生分析问题和解决问题能力的关键,也是课堂教学的重点。

例如,分而治之是计算机科学的一个重要思维方法,是以全局的观点将一个难以解决的较大的抽象问题分成几个规模较小而结构与原问题相似的较为具体的子问题。在讲解时,教师应针对具体问题详细分析,一步一步地构建流程图,然后按照流程图设计程序,并编译运行显示结果;接着引导学生,先从简单的问题应用该思想,然后扩展到较复杂的问题或学生所学的专业问题上,并请多个学生在黑板上画出流程图,在计算机上设计、调试和运行程序;最后教师进行点评,总结和归纳分而治之的运用,强化计算思维的训练。

3.3 教学后

每次课后教师应进行多次教学反思,及时就教学内容、教学方法、课堂表现和教学效果等进行总结,反思计算思维引入的可行性、准确性,判断取得的效果是否达到了预期,如果效果不理想怎样在下次课中予以补充和完善。在作业批改中,要求教师沉浸在学生所体现的思维中进行活动,不仅指出语法的错误,更应指出每个学生设计程序时存在的思维误区,并总结共性的语法和思维问题,在网上及时提示学生改正。教师在完成作业批改并与学生交流后,应进行二次教学反思,不断完善教学方案和教学方法。

4 互换师生角色

4.1 指导思想

整个实践教学过程中,教师与学生的角色进行交换,教师作为引导角色,不断抛出问题,由学生分析问题和解答问题。角色的互换产生强劲的内驱力,不仅保持了学生学习的激情,而且使学生学会如何提问、如何扩展问题的广度和深度,提高了学生主动学习的能力,也进一步加强计算思维在分析问题和解决问题过程中的潜意识融合。

4.2 实验教学组织

在某个或某几个关联的知识点讲授完毕后,教师应及时组织实践教学,将相应的实验教学安排在理论教学结束的同一周或相邻的周次,以免学生遗忘;针对学生所学专业的特点,有计划地将某些具有代表性的问题纳入实验课的教学方案中,并针对经典案例详细列出程序设计的建模过程和算法步骤。

实验课前,老师可将学生以寝室为单位进行分组,同时,提前一周将实验内容和包括计算思维案例的各种教学资源提供给学生[9]。

在实验中,学生在课堂上按时完成指定的实验内容,并以组为单位向全班讲解如何进行问题的分析和程序设计。教师可随时中断学生的演讲,结合实验所蕴含的计算思维进行提问。讲演完毕后,教师要鼓励其他学生对该组演示程序发表看法,发现学生不同的程序设计思想,及时指出程序设计的优点和不足。

在实验课结束时,应全面总结实验的共性问题和解决方法,尤其要注意发现与程序设计方法相违背的设计,并坚决要求学生及时改正。

4.3 综合练习

综合练习应紧密结合实际工程项目和学生专业知识的特点,坚持以学生自我独立设计为主、教师为辅的原则,加强学生实践能力的锻炼,提高学生综合运用知识和计算思维的能力。在练习中,教师应积极提供帮助,指导学生按照软件工程的思想高质量地完成综合练习报告。综合练习一般安排在期末,因此教师要注意将综合练习的批改意见及时反馈给学生。

5 教学中需注意的方面

5.1 语法是基础

在具体教学中,要避免计算思维的形而上。学生牢固而灵活地掌握程序设计语言的语法知识是培养计算思维的基本条件,是程序设计的基础。

5.2 思维层次

在不同的教学阶段,计算思维有一定的层次,是一个逐渐递进的过程,贯穿整个教学阶段,不会一蹴而就,需要教师耐心和精心组织好每节课的教学。

在教学开始阶段,学生往往因为问题简单而忽略了分析步骤,此时恰是学生既能较易掌握知识点又能专注于建模和算法分析的最好时机,是培养计算思维的起点。因此,教师应不厌其烦地引导学生一遍又一遍地进行简单的思维训练。在后段的学习中,学生往往疲于理解和记忆语法的细节,无心进行算法分析。因此,教师应及时解答学生的语法问题,拓展思维训练,将教学重点引到问题的求解算法上。

5.3 考核的转变

培养学生的计算思维,更需要改革教学的考核内容和考核方式,不能以考核语法知识或仅仅完成设计任务为主,而应以考查具体的设计思路或算法和应用程序设计解决实际问题的能力为主。教师在考核过程中应有更灵活的措施,在评判结果上应具有更大的决定权。

5.4 教学评价

教学评价不仅关注教师的教学态度、模式、内容、方法和课堂互动情况,更应注重整体教学方案中计算思维的展现及其效果。因此,评价应以学生为本,及时调整教师的评价方案,鼓励教师改革,为学校培养更具创新性和创造力的学生。

6 结 语

面向计算思维的教学实践结果表明,不仅学生的学习成绩普遍提高,而且在后继专业课的学习中,学习能力也得到了提高。

程序设计能够激发学生的创新潜能,能够保持学生的学习兴趣,提高学生分析和解决综合问题的能力,为学生今后的学习和工作创造良好的条件。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 战德臣, 王浩. 面向计算思维的大学计算机课程教学内容体系[J]. 中国大学教学, 2014(7): 59-66.

[2] Wing J M.Computational thinking[J].Communications of the ACM, 2006, 49(3): 33-35.

[3] 龚向坚, 邹腊梅, 胡义香. 以培养学生计算思维能力为目标的计算机专业主干课程教学改革探讨[J]. 高等教育研究, 2014, 31(1): 30-32.

[4] 李廉. 以计算思维培养为导向深化大学计算机课程改革[J]. 中国大学教学, 2013(4): 7-11.

[5] 梁林梅, 刘永贵, 桑新民. 高等教育信息化发展与研究论纲[J]. 现代教育技术, 2012(1): 5-9.

[6] 教育部高等学校计算机基础课程教学指导委员会.关于申报大学计算机课程改革项目的通知[EB/OL]. [2014-12-24]. http://jwc.buu.edu.cn/htmlDocument/2012-08-30/detail_1573.html.

[7] 蔡启先. 计算学科教程体系分析与思考[J]. 高等教育工程教育研究, 2006(5): 83-87.

[8] 艾明晶, 李莹. 以计算思维能力培养为核心的大学计算机课程改革[J]. 计算机教育, 2014(5): 5-9.

[9] 王芬, 黄晓涛. 基于计算思维的大学计算机基础在线教育平台研究[J]. 现代教育技术, 2014, 24(6): 78-83.

(编辑:孙怡铭)