面向计算思维能力培养的程序设计课程教学方法探索
2017-04-22徐利军冯国富葛艳郑宗生王爱继贺
徐利军 冯国富 葛艳 郑宗生 王爱继 贺琪 袁小华 赵丹枫
摘要:培养计算思维能力是计算机基础教学的核心任务。本文讨论了我们在教学过程中培养计算思维能力和创新能力的方法和经验。在实际教学中取得了良好的教学效果。
关键词:计算思维;程序设计;教学方法
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)17-0132-02
一、前言
2006年3月美国卡内基梅隆大学的周以真教授首次提出了计算思维的概念:“计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的涵盖计算机科学学科的一系列思维活动。”计算思维的本质是抽象与自动化。抽象是通过简化、转换、递归等方法将复杂的问题简化为计算设备可以处理的计算模型再进行求解的过程。自动化是运用计算机的运算能力来求解问题。当今人类社会的信息化程度日益加深,计算思维作为解决科学、工程、管理问题的重要思维工具,必将成为合格人才的基本思维能力。高等学校在计算机专业人才的培养过程中,应当将培养学生的计算思维能力置于重要位置,将其有效地融入计算机本科培养方案的各个环节之中。我校计算机专业大一新生就开设以C语言为编程工具的《程序设计基础》课程。对于这门课,如何改革已有的教学方法以加强学生计算思维能力的培养,我们进行了一些探索。计算思维教育的主要目标就是培养学生解决问题的良好思维习惯,在遇到实际问题时能够想到利用计算机学科的方法和技术来求解问题。计算思维教育不是传授枯燥的概念与相互孤立的知识点,而要注重培养学生解决问题的思维习惯、方法和能力。这门课程采用传统的教学方法时通常先讲授理论知识,然后上机实践巩固课堂上所学的知识点。但由于高中阶段大部分学生没有系统接触过程序设计课程,缺乏必要的基础知识,随着课程的进展,大量抽象概念的出现,会导致学生的学习积极性下降,而且这种重理论轻实践的讲学内容方法会限制学生的动手能力,学生在面对实际问题时依旧束手无策。针对这个问题我们重点改革了实践环节的教学,从培养学生的编程能力角度出发,针对学生的抽象思维、代码编写、程序调试等能力进行训练,并且要注重理论联系实际,让学生在解决实际问题中体验到学习的乐趣。
二、教学目标
程序设计基础是计算机专业本科教学中的一门重要基础课程,是计算思维中语言级的问题求解。我校在教学目标上,从深层次对程序设计进行抽象与总结,将计算思维的要素贯穿于整个教学活动。通过计算思维这样一种思维模式,在课程教学中“显式”地强调与强化这种思维模式,一方面提高学生解决问题、分析问题的能力;另一方面通过发挥其纽带作用,使整个教学活动具有核心的“凝聚力”。程序设计教学中以计算思维能力培养为核心任务,以讲授程序设计方法为主要内容,加强上机实践,提高学生的综合素质。
三、教学内容
在教学内容上,将程序设计的基本理论与计算思维思想最大限度地汇聚于本课程,重点阐述程序设计的基本方法和基础理论。计算思维的两个核心要素“自动化”与“抽象”贯穿于程序设计课程的相关知识点中,是联系课程不同环节的核心纽带,在教学中潜移默化地灌输与培养这种思想与思维模式,对学生思维能力培养具有重要意义。建立了向冯诺依曼计算机结构落地、向计算思维层次拨高的教学内容组织思路。根据冯诺依曼计算机结构将教材(C程序设计—谭浩强)章节顺序微调形成程序设计知识点向计算机结构三大部件CPU(运算器+控制器)、存储器、I/O(输入输出设备)的映射:计算思维导论(第一章C语言概述、第二章算法、第三章最简单的C程序设计);CPU(第四章选择结构程序设计、第五章循环结构程序设计、第七章用函数实现模块化程序);存储器(第六章利用数组处理批量数据、第八章善于利用指针、第九章用户建立数据类型);I/O(第十章对文件的输出输入)。
四、教学细节
1.课堂授课。我们改变以往单纯以课堂讲授为主要活动的教学模式,将教学环节细化为集体备课、课堂讲授、讨论、辅导答疑、作业和考核六个主要环节,通过将六个环节做深、做细狠抓教学质量。课堂的主角是学生,激发学生的学习兴趣,才能保障教学顺利高效完成。在课堂环节中提倡互动式授课,鼓励学生提问,引导学生动脑思考,培养学生的自学和创新能力。程序设计授课不能纸上谈兵,要注重实践。课堂内所有讲解知识点都有具体的编程实例相匹配。每一个实例都会现场编译运行,容易出错的实例会有目的地修改后再运行,让学生在实践中理解和掌握相关知识点。在讲课过程中会故意给出典型错误的案例,例如:在讲到变量时设计变量未赋值即使用的错误;讲到数组时设置数组元素溢出的错误,然后由学生来调试解决这些编程错误,大大提高了教学质量。原教材各知识点的案例之间相互独立,没有前后承接关系,不利于学生对知识点的全面掌握。通过改造和引入新的案例内容形成连续性强的案例,随着章节知识点的推进,学生可以不断加深对程序设计的认识。例如从第三章的温度转换案例展开,不断在随后章节中加以扩展:第三章中,分别用常量方式、符号常量方式、常变量方式实现温度转换;第四章中,用选择语句实现温度表示方法的切换;第五章中,用循环实现输入合法性检查;第七章中,用函数改造已有的程序;第六章中,用数组实现批量数据的温度转换;第八章中,用指针改造已有的程序;第十章中,用文件增加数据存储的功能。通过这种渐近方式,使学生掌握知识点间的关系及理论向实践的转化过程。
2.上机实验。作为大学期间第一门程序设计课程,在实际教学过程中必须将理论教学与实验教学紧密结合,相互促进。实验教学内容采用循序渐进方法,分为验证型实验、设计型实验和综合型实验。验证型实验目的是掌握C语言的基础知识,是计算思维方法的简单模仿,要求学生参考教师给出的实例完成实验内容。设计型实验目的是掌握C语言的中高级知识,是计算思维方法的初步运用,要求学生运用计算思维方法分析和解决简单问题。综合型实验目的是培养学生的计算思维和应用创新能力,是计算思维方法的高级运用,要求学生综合运用计算思维算思维方法分析和解决实际问题。实验的具体安排为:验证型实验(C上机环境、表达式与基本的输入输出、选择结构、循环结构)、设计型实验(函数定义与调用、递归函数、数组、指针、文件)和综合型实验(综合型程序设计题目)。为了更进一步地培养学生解决问题的能力,我们会结合学习进度给出一组综合型程序设计题目。这些题目都是以生活中某个具体问题为基础,其解决需要学生综合运用学习到的知识。为尽可能模拟真实开发环境,我们通常要求2—3名学生协同完成。在评定成绩时,我们要求每组选出一个代表讲解和演示程序,由老师和其他学生代表一起打分形成最终成绩。综合型程序设计既能让学生综合运用所学知识,还可以让学生身临其境解决问题提高自信心,提升学生学习热情和积极性,培养学生的计算思维和团体协作能力。
五、总结与展望
目前将计算思维融会贯通于计算机专业教育的各个环节之中已经成为大势所趋。通过这几年的实践证明,以培养计算思维能力为核心展开教学改革,不仅有助于学生深刻掌握课程内容,而且能够培养学生用计算机学科的思维方式来求解问题的能力,取得了良好的教学效果。
参考文献:
[1]Jeannette M.Wing.Computational Thinking[J].Communications of ACM,2010,49(3):33-35.
[2]教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009.
[3]谭浩强.C程序设计[M].第4版.北京:清华大学出版社,2010.
[4]陈国良,董荣胜.计算思维与大学计算機基础教育[J].中国大学教学,2011,(1):7-11,32.