首页 > 范文大全 > 正文

促进计算思维的程序设计实验教学研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇促进计算思维的程序设计实验教学研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:以程序设计课程的实验教学为平台,从实验内容设置和实验教学方式两方面阐述如何将程序设计实验教学与计算思维培养有效结合,使学生在提高程序设计能力的同时,具备以计算思维进行分析与解决问题的能力。

关键词:程序设计;计算思维;实验教学

0 引言

程序设计基础课程是计算机基础教学的核心课程,是非计算机专业学生开设的必修课。课程主要讲授程序设计的基础知识和方法,使学生能够使用c语言编写和调试程序,掌握程序设计的基本思想,为今后利用计算机解决自身专业领域的问题打下基础,培养学生将计算机当做一种工具,甚而当做一种思维方式去分析和解决问题,最终形成计算思维。

程序设计基础课程作为程序设计第一门课,对大部分学生而言有一定难度,学生们对知识似懂非懂,尤其很难理解程序设计的思维方式,而要掌握良好的程序设计方法则更加困难。该课程是实践性很强的课程,包括理论教学和上机实验两部分,其中实验环节占有非常重要的地位,没有实验教学的质量,也就无法保证教学质量。因此,加强实验环节在教学中的作用和地位,构建促进计算思维培养的实验体系,引导学生通过实验训练提高应用能力和拓展计算思维,是当前的重要任务。

如何组织程序设计基础课程的实验教学,从而通过切实可行的实验训练来提高学生的程序设计和计算思维能力;如何建设实验资源的平台,从而使其有利于学生的自主学习及优质资源的共享,实现将培养计算思维真正贯穿于学生的学习之中?针对这些亟待解决的任务,所采取的改革措施和成果可作进一步的推广,使得所有程序设计系列课程的实验教学都能有较大的提升。

1 国内外研究现状分析

2006年,美国卡内基·梅隆大学周以真教授首次提出计算思维的概念并给出定义:计算思维是运用计算机科学的基础概念来求解问题、设计系统以及理解人类行为的一系列思维活动…。2008年10月的《中国高校计算机基础教育课程体系2008》,要求当代大学生应当具备的计算机应用能力包括:操作使用、应用开发以及研究创新。培养学生的计算思维成为当前计算机教育重点研究的一项课题。目前大部分高校中,计算机操作使用能力主要体现在基础课程上,而后两种能力主要体现在程序设计课程上。特别是对程序设计课程,其学习目标确定为:首先,掌握一定算法,学习分析和求解问题的思路及方法;其次,理解算法的实现过程,学习如何有效利用计算机编写程序。该课程的重点是掌握问题求解的思路即算法,培养学生的计算思维能力,而不只是简单的编写程序。

2010年陈国良院士在“第六届大学计算机课程报告论坛”中指出:人类科学发展的三大支柱:理论科学、实验科学和计算科学,分别对应理论思维、实验思维和计算思维三种思维方式。陈国良院士同时强调,开设计算机基础课程的重要目标是培养计算思维能力。2011年举办的第七届全国高校计算机教育改革与发展论坛中,与会专家一致认为,计算机专业课程应尽快引入计算思维。近年来,国内外不少专家学者在这一方面做出了积极探索,美国卡内基·梅隆大学、斯坦福大学、麻省理工大学、普渡大学等众多名校纷纷开设面向全校的以“计算思维”为指导的计算机通识课程,并取得显著成果。上海交通大学姚天昉提出把“计算思维”引入程序设计课程,对课程讲授和实验环节进行全方面的改革。四川大学陈杰华等尝试利用计算思维对程序设计的实验教学进行改革。于晓强等人从教学方法和教学手段两方面人手,探讨了怎样在程序设计课中培养学生的计算思维能力。这些研究和探索是对计算思维的具体化,丰富了计算思维的内容。但是,这些探索并没有对非计算机专业的程序设计给予足够的关注,如何在实验中引入计算思维,目前还没有比较好的具体操作方法和实验体系。我们提出的课题“促进计算思维的程序设计实验教学研究”,主要围绕实验教学、实验资源建设、拓展思维和技能训练等方面展开工作,积极支撑学校非计算机专业学生程序设计能力的培养和提高。

2 研究目标和研究内容

程序设计基础课程的实践性很强,让学生循规蹈矩地上机调试程序,不是实验教学的最终目标。实验教学的目标是要培养学生分析问题和求解能力,培养其计算思维和创新思维能力,而不只是简单地让他们去验证程序的实现。这包括掌握c语言及其运行环境;具备一定编程和调试程序的能力;掌握一定算法,不仅会用现有的算法,还能自行设计相应算法。

因此,改革程序设计基础课程的实验教学模式,让学生能在实验环节中更好地巩固知识、拓展计算思维;同时利用学校课程中心提供实验电子资源和交互平台,为学生自主学习、交流提供资源和帮助。

2.1 完善实验教学内容

实验内容的设置要能培养学生的计算思维能力。教师应当不断创新学习,设置适合学生兴趣特点和知识架构的实验内容,而完善的实验内容能为他们提供更多的思考空间,利于计算思维、创新思维的培养。

以前的实验内容往往缺乏趣味性和应用性,导致学生兴趣不浓,所以,要增强实验内容的趣味性、综合性和应用性。从趣味性来讲,可以选择如万年历的计算、排序、“兔子生兔子”、密码3次有效输入等实验进行计算思维训练。通过这些充满乐趣的问题,促使学生积极主动地思考、轻松愉快地学习。从综合性来讲,可以将某个综合题目作为长期任务,按其功能模块分成一个个短期任务。每章学过之后要求完成一项或几项对应的短期任务。例如,介绍选择语句后,让学生完成“怎样实现图书管理系统的密码验证”;介绍循环语句后,让学生完成“怎样实现系统的菜单”;介绍文件后,让学生完成“怎样访问书本信息”。这些任务是相互关联的,从而使学生的任务形成一定的连贯性,在整个实验中始终都有一个总任务驱动。通过每个小实验最终完成综合任务的方式,更能激发学生的学习兴趣,使学生了解在实际系统中怎样应用知识点,加深知识点的理解,提高分析与解决问题的能力。从应用性来讲,可以选择一些和学生专业相关的问题,例如,所得税计算适合会计等文科专业的学生,而不定方程求解更适合数学等理科专业学生。当指定一个应用环境后,学生会明白这种程序是有实际用途的,提高了学习兴趣,更乐于思考,有利于计算思维的培养。

2.2 通过算法多样化训练计算思维

程序设计实验教学不单是提高学生的操作能力,更要利用算法的多样性来训练计算思维能力。由于学生知识结构和认知方式有所不同,思考问题的角度也不同,势必会导致算法的多样性。而教师应尊重个体之间的差异,鼓励学生以不同角度来思考问题,以不同算法来求解问题,培养学生的计算思维、创新意识。譬如,对于排序问题,可以采用多种算法实现,如冒泡、选择、快速等,鼓励学生编写各种程序来实现,或者改写别人编写的算法,对多种排序方式进行比较分析,激发学生的思维活动,培养学生计算思维的多样性。当然,教师不能只提倡算法的多样性,更应积极引导学生对多种算法进行比较和研究,达到简化及优化算法的目的。

在实验教学中,积极鼓励学生展示和讲解自己的程序。为了清楚地阐述自己的算法,讲解的学生需要思维清晰有条理,表达能力较强。而其他学生对他的算法积极思考及提问,如果认为自己的算法优于前者,也可主动阐述自己的算法。这种方式可推动整个班级的学习积极性和主动性,积极思维,大胆创新。教师也能从中更加了解每个学生,营造融洽的教与学的氛围。

在实验过程中,要求学生从需求分析开始,然后设计和优化算法,最后上机编程实现。当出现错误时不要轻易舍弃,分析是算法还是语法的问题,找出问题所在,努力解决。学生们一定会因为改进算法和解决错误感到满足,这样才能训练计算思维,促使学生积极思维,大胆创新。实验教学的设计过程如图1所示。

2.3 实验教学资源的建立

利用课程中心网络平台,根据教学进度建立实验内容的相关资源。实验之前,先建立实验内容,明确实验要求以及问题关键所在,通过网络平台,使学生对每次实验能提前了解、思考和分析。在完成每次实验后,教师将实验实现的多种算法和学生实现的较好的算法实现共享,进一步给学生提供参考,拓展学生的计算思维。同时,借助于课程中心平台的论坛和答疑等功能,随时提问,互相讨论,畅所欲言,大家之间的交流不受时空限制。

在实验中对于学生在编译、运行过程中经常出现的错误及问题,指导学生认真分析系统提示信息,判断错误所在位置和原因。并及时收集这些错误及问题所在,建立程序错误档案库,放在网络平台上,供学生参考,提高他们上机调试和解决错误的能力,同时也提高实验课的效率。

2.4 开设小班讨论课

开设小班讨论课是程序设计基础课程实验改革的重要举措之一。与普通的实验课不同,讨论课为学生提供了一个激发自我、展现自我的主动学习环境。要培养计算思维能力,学生不仅需要独立思考的能力,同时也需要和老师同学问的相互交流。

2012年上半年,程序设计基础课程实行小班讨论课。为使小班讨论课达到提高计算思维能力和营造积极研讨氛围的目标,我们采取分组讨论的方式,将每班分为6个小组,每组约5人。讨论课之前,教师分别给每组学生布置讨论题目,每组在积极准备本组题目的同时,也要思考其他组的题目。讨论课中,每组轮流选一个代表发言,阐述对本组问题的看法。一组阐述完后,其他学生积极发言提出自己的看法。讨论过程中,教师除了倾听他们的发言,还要充当裁判员的角色,当因同一问题持不同观点而争论不休时,分析判定学生观点的正误。讨论课的形式激发了学生的潜能,谁有不同的观点都可以讲,很多学生真正将讲台当做锻炼自身能力的平台。通过讨论课的方式扩展学生的计算思维能力和形成研讨问题的习惯,因而,讨论课中各抒己见,一题多解是很常见的。但在教学实践中也发现,学生间水平差距较大,有的学生反应快思维活跃,能从多个角度思考和分析问题,而有的学生难以跟上大家的节奏,结果造成两极分化,强者更强,弱者更弱。因此,如何将小班讨论课的每位学生都充分调动起来,是值得进一步思考探究的问题。

2.5 设置综合实训课

对于程序设计课程而言,学生要掌握的程序设计能力是编程知识和计算思维的有效综合。每次的实验课虽然能加深学生对所学理论知识的理解及消化,但缺乏知识的连贯性与整体性,而综合实训课是针对所学知识的综合运用和融会贯通,因而设置综合实训课是非常必要的。

在综合实训课的内容设置上要求综合性较强,层次可以多样化。题目难度不等,方向多样,既要照顾大多数的学生,题目要紧扣教材且难度不宜太大,同时,对于兴趣浓厚的学生,可以出一些难度较大,趣味性、实用性更大的题目,大力提高学生问题求解的能力。例如,图书管理系统,通讯录,航空订票系统,贪吃蛇游戏,计算器等等。由学生自行选题,可以一人一题,也可以两三人一组共同完成一题,还可以由学生自己通过对某方面的兴趣,提出适合自己的题目。

由于学生课程安排紧凑,综合实训课的课时设置应灵活处理。在学期中后期由教师综合实训的题目,学生自主选题,利用课余时间进行思考研究,然后在学期末以小班形式集中开设8课时的实训上机课,教师与学生直接交流。教学效果表明,通过平时与教师的交流互动,以及独立查阅相关资料解决问题,约有四分之一的学生能利用课余时间出色的完成综合实训题,大部分学生能在实训课中通过老师的指导解决存留问题,较好地完成实训题,而少数不感兴趣且动手能力一般的学生最后能基本完成自己的任务。综合实训课的内容由于涉及课程的全部知识点,借此不仅可以促进学生的自学,提高其分析解决问题的能力,还能让学生掌握一定的系统开发技术。

3 结语

在促进计算思维培养的程序设计实验教学研究中,教师们首先认清课程的教学目的,从实验内容设置、实验教学手段等多个环节人手,结合湖南大学特点和优势,在程序设计基础课的实验教学中进行实践,效果显著。程序设计实验教学是一个不断发展的过程,要从学生和教师等多方面收集反馈意见,及时对实验教学方法进行调整和改进,这样才会取得更好的教学效果。