非计算机专业学生计算思维能力的培养
——以“程序设计基础”课程改革为例
2018-06-07杨日璟大连民族大学计算机科学与工程学院辽宁大连116605
杨日璟(大连民族大学 计算机科学与工程学院,辽宁 大连 116605)
2006年美国卡内基梅隆大学周以真教授首次提出了计算思维的概念:计算思维是运用计算机科学的基础概念求解问题、设计系统和理解人类行为的科学方法[1]。2010 年11 月,陈国良院士第一次正式提出了将“计算思维能力培养”作为计算机基础课程教学改革切入点的倡议[2]。2010 年7月,全国9所高等学校联盟发表了联合声明,声明的核心要点是必须正确认识大学计算机基础教学的重要地位,把培养学生的“计算思维”能力作为计算机基础教学的核心任务[3]。计算和计算思维是计算机基础课程的基本理论和基本思维,科学家已经将计算思维和理论思维、实验思维并列为人类三大科学思维[4]。计算机程序设计基础课程中许多知识点都为培养学生的计算思维能力提供了很好的案例。在教学过程中完善和应用“计算思维”方法,将有助于计算机程序设计课程教学的发展与完善,也将有利于高校培养应用性、复合型人才。本文针对非计算机专业程序设计基础课程的教学现状,探究了在教学过程中培养学生计算思维能力的可行性和方法。
1 传统教学模式分析
非计算机专业学生的程序设计基础课程一般都是多班一起授课,教师在理论课上讲授理论知识,按照教材讲授程序设计的语法基础、程序基本结构、数组、过程、文件读写等知识点,在上机实验课让学生通过上机练习来巩固理论课讲授内容。这种模式注重的是知识传授,不仅缺乏趣味性,更缺乏应用计算思维的培养和创新。在实际的教学过程中教学效果很不理想。
(1)灌输式教学忽视计算思维能力培养。以教师为中心的灌输式教学,忽略了学生主体的作用。虽然能保证教学内容的系统性和连贯性,但很容易陷入程序语言为中心的误区。在教学中出现“重结果、轻过程”“重编码、轻算法”的现象,忽视了对学生计算思维能力的培养。
(2)被动学习阻碍计算思维能力培养。学生被动地听和记忆,难以激发学生学习兴趣,更难以体会到程序设计中问题分析、逻辑推导、程序思维及构造的方法。学生普遍反映课程内容枯燥、难懂,不感兴趣,学生学习主动性差。不少学生对计算机理论知识储备不够,入门较慢。学习上不得要领,在学习过程中叫苦不迭,对计算机的“思维方式”难以理解。
(3)脱离应用限制计算思维能力培养。知识点联系不够紧密,缺乏对知识的综合应用。将学习重心放到对基础语法的学习上,不注重总结问题的求解过程。教材中的例题往往是为了说明某个知识点,而例题之间缺少联系,缺少对知识点的整合。学生很难将所学到的知识点串联起来并解决实际问题。由于缺乏与后续专业课程学习的衔接,影响了许多学生学习计算机公共基础课程的积极性,限制了计算思维能力培养。
2 课程改革实践
2.1 分专业知识模块设置
高校非计算机专业计算机公共基础课程近年来普遍采用三个层次的课程体系和教学模式,其中第二个层次就是计算机程序设计基础相关课程,是三个层次中比较重要的环节。在此环节针对不同专业类别设置知识模块。大连民族大学非计算机专业学生计算机公共基础课第二层次的课程设置见表1。
表1 大连民族大学计算机公共基础课程设置
2.2 精心设计教学案例
案例教学法的特点是“以案例任务为主线、学生为主体、教师为主导”,与传统的“教师讲、学生听”的教学模式相比,用案例作为任务,形成以学生自主学习为主,研究性学习、探索性学习及合作学习互补的学习氛围,可以让学生准确理解计算机处理问题的思路和方法,培养计算思维能力。
从培养计算思维的角度出发,按照问题求解的步骤来重构课程中的典型案例。例如循环是一种很重要的程序控制结构,能使学生很好地理解计算机解决问题的特点,也是学习的难点。讲解循环结构的案例,是对自然数1到10的求和,从求和引出“循环”的概念,学生在用 FOR循环求累加后,又提出求10的阶乘的问题,这样可以根据阶乘的定义,从累加运算过渡到累乘运算,问题就迎刃而解了。这个案例的两个问题,既有用循环求解的共性,又有求累加与求阶乘在设置循环变量初值时的区别,使学生体会到计算机编程必须严谨又可以灵活应用。又如降序输出全班50学生某课程的成绩,要求每一行输出10个同学的成绩,并统计成绩的最高分、最低分及平均分。这个案例包含了循环和数组的基本概念和应用操作,同时强化了冒泡排序和选择排序两大排序操作。由问题引入学习的知识点,以兴趣带动学生主动学习,将问题求解提升到计算思维的高度使学生在求解实际问题的过程中,能逐步地领会、理解计算思维的本质,并把这样的思维方式和方法慢慢渗透到自己日常学习中。
案例的设计结合知识点,但又不局限教学内容的顺序,从不同章节抽取知识点进行重新整合。学生们对案例中的程序设计更有兴趣,在程序结构、数组等以前难以掌握的知识方面所花费的时间要少得多,而且掌握得更加扎实。案例设计不仅要让学生掌握编程的基本语法知识,更为重要的是掌握算法,算法的推导和设计正是计算思维的具体体现。解决案例问题,要有一些的知识扩充,也要给学生推荐一些辅助学习的网络资源,方便学生进行自主学习。
案例驱动任务的方法改变了以往“教师讲,学生听”的教学模式。有利于激发学生的学习兴趣,对同一案例可以引导学生主动地思考,尝试多种解决方案,多角度地训练学生思维,逐步培养学生分析问题、解决问题的能力。可使学生既掌握基本知识,又学会用知识来解决问题,从而有效地培养了学生的计算思维,提高了计算机的应用能力。
2.3 上机实验课分层次教学
程序设计课程最后的落脚点是应用,而上机实验是加深对程序设计理解并逐步培养“计算思维”的最基本途径。通过实验课将计算思维训练应用到问题的分析与求解过程中。
非计算机专业学生的计算机基础差别较大,在实验教学中采用分层次教学法和小组讨论法。
(1)基础层次主要是对基本理论的验证实验,单知识点实验,培养学生的操作能力。主要是针对计算机基础较差的同学,通过实验,初步掌握计算思维方法。
(2)第二层次增加了应用,将不同的知识点综合应用到实验题目中,培养学生的应用能力。针对同一个实验任务,鼓励学生使用不同的方法实现,可以培养学生计算思维的多样性和灵活性。随着学习的深入,要求学生总结比较不同方法,在总结过程中提高学生举一反三的能力。
(3)第三层次是综合设计性实验。鼓励学生设计与专业结合的内容,进一步激发学生的创造力,培养学生的创新技能。在综合性实验教学中强调算法的多样性和解决问题的复杂性,培养、激励学生的创新意识、探索精神和问题求解能力。
学生根据自己的情况自主选择进行实验,充分体现学生的自主性,使不同基础的学生都有所收获。
在实验中采用分组讨论学习,学生在课下组成小组,以组为单位在讨论中互相交流,比较处理问题的不同方法,在讨论过程中提高计算思维能力。分组学习,可以使许多计算机基础较差的同学,快速地提高应用能力。实验最后,教师会通过一些综合应用类的典型案例,引导同学们观察、思考,用提问、比较、总结归纳等多种手段,将零星、分散的知识点以及各知识点之间的联系进行总结归纳,最终达到灵活运用的目的[5]。
在程序设计过程中,教师在尊重每位学生的个体差异的前提下,对于不同的学生要鼓励其从不同角度认识问题,使用不同的方式描述算法,用不同方法求解问题,同时给予适当的、科学的评价[6]。
2.4 运用多种辅助教学手段
充分利用网络教学平台资源,计算机公共基础网络教学平台具有教学视频、网上答疑、网络考试系统等功能,为学生自主学习提供了方便,是课堂学习的有效补充。
将案例的制作过程录制成视频文件,供学生课下自主学习使用;教师网上答疑,有效解决了公共基础课程多班授课教师与学生沟通难的问题;考试系统,分阶段的多次单元测试,可以使学生及时了解知识点的掌握情况,有效地督促学生及时复习,减轻学生期末一次性考试负担,提高了学习效率。
3 结 语
在计算机程序设计课程的教学中逐步渗透计算思维思想,通过案例驱动、分层次实验教学等多角度的方法在潜移默化中培养学生的计算思维能力,取得了良好的效果。学生的分析问题和解决问题的能力明显提高,使他们养成新的思维方式,更好地应用计算思维来解决问题,在一定程度上可以提高学生的应用能力和创新能力,为培养创新型复合型人才打下良好的基础。
参考文献:
[1] 周以真.计算思维[J].中国计算机学会通讯,2007,3(11):77-79.
[2] 陈国良,董荣胜.计算思维与大学计算机基础 [J].中国大学教学,2011(1):7-11.
[3] 何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010(9):5-9.
[4] 朱亚宗.论计算思维:计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009,36(4):53-55.
[5] 罗瑞红,刘柄松.案例教学法在VB程序设计课程教学中的应用[J].科教文汇, 2014(8):78-79.
[6]臧劲松.培养学生计算思维的程序设计课程教学[J].计算机教育,2012(2):78-80.