兰州交通大学 王红鹰
我国信息科学的不断发展,计算机应用到社会和生活的各个方面,提升了社会发展的速度,成为人们通过网络进行沟通和交流的有效手段,同时掌握一定的计算机知识和技能已经成为当时人们找工作和胜任工作的必备条件,因此,计算机课程在我国各大高校中也占据了非常重要的地位,程序设计作为计算机基础教学的必要内容,能够对学生的实践能力和创造性思维能力进行培养,并且通过计算思维能力的学习能够为学生其他学科的学习奠定良好的基础。但是在当前的计算机程序设计基础教学中存在一些问题,包括教学方式单一,教学内容老旧,使学生的学习能力和解决问题的能力并没有得到提高。因此,对当前的程序设计课程进行改革是非常必要的。
现代社会需要高素质人才,需要他们具有强烈的创新意识和极强的动手实践能力,学生们在大学校园中主要学习理论基础知识和一些指导实践的技能,在目前这个创新型社会背景下,我们更需要关心实际生产生活中需要什么样的技能型人才,需要何种创新型人才,根据社会的需要培养优秀人才,这就需要我们培养学生的得学习态度和学习方法,从以前的教学生学什么到培养学生如何去学,主动去学。进而培训学生发掘问题,思考问题,处理问题的能力。基于计算思维为导向的程序设计课程不仅要掌握相关理论知识,更要有很强的实践能力。类似课程的学习与教授需要理论与实践的结合。用理论指导实践,再实践中完善理论。可以实现解决问题的全过程训练及培养。此程序在培养专业人才知识结构体系方面起着至关重要的决定性地位。对于课程的指导从课程授予方式来讲,只要学生能够掌握基本的代码编写,及相关语法结构以及一些简单的程序设计即可;从人才培养角度来讲,不仅要求学生学会掌握编写程序,还要能够使用程序、分析程序、评价程序、掌握保障程序运行的基本结果和流程,进而能够优化程序,提高程序运行的能力;从程序设计角度来看,要求学生们能够根据所学的知识,对遇到的实际问题对问题进行算法描述和具体分析,进而结合问题分析流程,对程序进行系统的分析和优化;从计算思维培养角度来看,程序设计是解决问题的利器,而计算思维是发现问题表述问题解决问题的基本。再进行程序设计之初,首先要选好相应工具,也就是说选取哪门程序语言来处理此问题,例如C语言和JAVA语言,当然也可以选择其他相应的程序语言为工具。在一般的程序设计教学过程中,首先根据培养目标,设定一个完整的知识体系,然后根据相应体系确立重点教学内容和教学点,之后再根据教学体系中的重点和教学方法确立验收标准及考核办法。当然需要授课老师编排明确的授课计划,授课内容,授课方式。将程序计算的重点分解到每一个课时,最终培养学生独立学习、独立思考、独立处理问题的能力。
程序设计基础教学中对学生计算思维的培养是非常重要的,在计算机程序教学中应将计算思维贯穿到整个教学实践过程中,并将这种思维方式作为计算机人才培养的重点。在计算机专业课程教学中,一些程序设计课程是必修科目,在这些程序设计过程中就体现了计算思维,例如对问题的分析和数据变量以及算法机构和程序代码的编写等。因此,在实际教学过程中应制定出能够培养学生计算思维能力的教学体系,并依照制定的教学体系对程序设计知识进行系统的塑造,并根据实际案例的分析,让学生逐步的掌握解决问题的方法,形成计算思维能力。
例如,首先在向学生讲解具体的算法过程中。程序设计基础实践教学中对算法的讲解首先应该结合实际生活中的例子,针对解决实际问题为主,将生活中存在的问题进行列举,并通过科学合理的计算和比较,从而选择合适的解决方式,这就需要引入算法的概念和特征。例如我们需要到一个地方去旅游,那么针对生活中的这一问题,需要考虑的首先是从出发地到目的地的线路问题,其次,要考虑到天气情况,最后选择合适的交通工具,在这三方面因素进行考虑过程中,可以发现其具有一定的制约因素,因素分析的过程能够体现出计算思维的思想。
另外,在控制结构的讲解中,程序设计中控制结构可以分为顺序结构和选择结构以及循环结构,在讲解顺序结构时可以通过输入输出和赋值语句来进行讲解,并通过输入输出一些有意思的字符信息来提高学习趣味性,而在讲解选择结构时,可以引入一些具体的案例,比如以逻辑思维中的探案推导为例,通过案例的吸引力来引导学生掌握基本方法,避免枯燥的语法学习,而且可以进一步将生活中的实际问题延展进入循环结构,即能加强学习的连续性,还能环环相扣提高学生的思维能力。
当然计算思维能力的培养是一个潜移默化的过程,需要在长期、系统地学习中积累而成。
学生课前阶段的知识点和技能点上具有一致性,并在对学生学习能力提升上就要一定的延伸和拓展作用,学生是课堂教学实践的主体,教师需要训练其能够自主进行程序设计和拓展的能力。程序设计基础课程在教师的课堂教学中,其基本的教学办法有以下两种:一是通过全面的讲解,以输入/出语句、常量、变量、运算符、顺序/选择/循环结构、赋值语句、函数等为主线进而周祥的论述程序设计的基本方法和作用;二是项目化教学法,首先将各种理论概念以及软件的使用应用到现实项目中去,根据实战去构建计算思维能力,进而对程序设计有更深入的理解并最终指导实践应用到实践中去。再不断的授课实践中,通过不断总结,发现项目化教学能更好的更快的使学生产生学习兴趣,更好的理解相关理论,更容易在实践中举一反三。根据学生的自身特点,结合现阶段的实际授课情况,将相应程序计算法进行整理,使其标准化、序列化、最大限度实现理论、技术、能力和计算思维相融合,最终目的是解决现实工作中遇到的实际问题。项目授课方式一般分为以下几个步骤:任务申领——相关理论——实施任务。但在具体教学中,理论知识的学习占用了绝大部分时间,而实践内容相对较少,这就导致了学生的讨论机会比较少,更不能很好的进行独立分析,更多的是按照既定模式、或者教师的思维去执行、设计。通过综合考虑之后,提出了翻转课堂与项目教学模式相结合的方式,以Robert Talbert模型为基础,建立起翻转课堂的教学模式。此种教学方式需要通过课前阶段和课中阶段两个阶段对程序设计所涉及的知识进行巩固和学习。实际教学中以一个完整的教学项目为单位来讲述程序设计课程,涵盖教学从提出到具体实施的整个过程,包括教学环节的设置。在实际教学过程中,首先课前教师需要为学生提供自主预习的时间,学生通过观看相关视频和进行有针对性的课前练习来完成课前阶段的学习任务;继而在课堂上教师需要根据学生的实际学习情况,设计出新的教学项目,新教学项目的设计需要能起到一定的监督和指导作用,可以给予学生更多的动手实践和思考的空间。教师在课堂上重点扮演是教练的角色,一是对学生进行自主练习过程中遇到的问题进行及时的解决,并给学生提供正确的思考方向,引导学生进行讨论和思考,二是对课堂教学的内容进行总结和梳理,让学生对程序设计所涉及的内容和知识进行有效的贯穿,做到详略得当。
总体来说,首先教师要引导培养学生自主学习能力,只有具备了自主学习能力,才能学习和掌握到更丰富、充实的知识,从而构建完整的知识体系。在完整的计算机科学知识体系基础上,从全局高度理解计算机科学的精髓,更有利于计算思维能力的形成。其次在教学过程中要将基本技能的掌握和计算思维能力的培养有机地结合起来,有意识地将计算思维融入基本技能的训练中,突出计算机科学基本概念、方法及思想的理解,将一般规则传授给学生,启发学生思考,引导学生探索,逐步培养计算思维能力,让学生能更容易地去解决实际应用中的复杂问题。
现以FORTRAN程序设计教学为例,对实际课堂教学效果进行评价。主要对以下两方面进行评价,一是FORTRAN程序设计的实际学习效率和学习的效果,二是学习完成后,对学生编程能力和分析解决问题能力是否具有一定的推动作用。教学评价可以分为两个阶段,第一阶段,在程序设计基础模块教学完成之后,通过布置的学生作业和考核,来考察学生基础知识掌握情况。另外,通过布置课程设计作业,要求学生可以根据自身的兴趣和爱好来自由的选择题目,应用FORTRAN语言编写算法程序,通过学生的实际解答情况对编程能力进行考察,第二阶段,程序课程设计结束之后,教师可以自制问卷调查,通过学生的主观意识来考察整个的学习过程对学生计算思维能力培养所产生的实际效果。根据当前计算机应用程序设计实践教学课程的改革,对本校开设FORTRAN程序设计课程的学生进行考核和作业情况的调查,大体上可以分为两种类型,基本技能型和能力拓展型,基本技能型的程序设计中包括了对三种基本结构的应用的计算程序,例如穷举法应用的计算程序,个人所得税计算程序,排序的程序等;能力拓展型主要包括常用的工程数值计算程序,学生成绩信息管理系统等,能力拓展型的程序设计综合性都较强。从学生完成的总体情况上来看,具有较高的完成效率,并且质量较好,这可以说明通过计算思维的引导,对程序设计基础实践教学课程的改革具有一定的效果,使学生的计算思维能力得到了很大的提高,在未来程序设计课程教学实践中应不断的将教学的方式和思维方式进行创新,这样才能使计算机教学方式和教学理念与时俱进的发展。
程序设计基础实践教学与计算思维进行有效的结合,能够促进学生程序设计能力的提升,同时在实际教学中应改变传统的教学方式,将整个教学过程始终贯穿抽象和自动化两种核心思想,另外,还要在实际授课中将程序设计的具体知识引入计算思维方式。传统教学方式主要是通过对程序中涉及的语法结构进行讲解,然后讲解实际例子,最后教师做总结并布置作业,从计算思维培养的角度出发,教学内容应从问题导入和语法引用以及面向实践等方式,突出知识点和程序中涉及技术点的关联性,并注重课堂教学内容的层次性。程序设计中以循环结构为例,教学可以分为以下步骤:首先,结合学生的日常生活,为学生展示当前程序设计的学习已经深入到我们实际生活中,并对未来的就业具有重要的影响,这样会让学生对课程的学习给与足够的重视。第二步,利用抽象方法,对循环结构中的基本结构先进行提炼,比如引导学生利用等比数列,把等比数列的前n项进行求和的算术问题转化成相应的循环结构,这样就在无形中将数学思想灌输到学生的知识学习中,第三步,给学生提供实践的机会,例如可以让学生由简入难,逐层探求解决实际案例,鼓励学生进行积极的思考和讨论,从计算角度分析,引入计算思维的简约和嵌入以及转化等方法,将复杂的程序问题进行转化和分解,提出有效的解决方式。第四步,进一步拓展,需要引入多层循环嵌套结构,并对基本结构和多层循环结构的差异性和适用的范围进行分析和研究。
基于计算思维为导向的程序设计课程是当前教学改革关注的热点,在非计算机专业课程中仅仅通过单一课程的学习来提高计算思维是不符合学生学习和教学实际的,高校在培养学生时应将计算思维贯穿到人才培养的始终,培养出复合型的创新人才,并让学生在学习和工作中都具有运用计算机科学概念对实际生活中的问题进行解答的能力;对计算机系统进行设计和问题解答,使学生树立计算思维方式,通过计算机程序设计实践教学改革能够提高学生对程序设计学习的兴趣,同时能够提高学生利用计算机分析和解决实际问题的能力。
[1]张敏.以计算思维为导向的C语言程序设计课程案例教学法研究[J].微型电脑应用,2015,31(9):63-65.
[2]吕红,吕海燕,周立军,等.基于MOOC的以计算思维为导向的大学计算机实验教学改革研究[J].自动化技术与应用 2016,35(12):37-42.
[3]张阳,李雄伟,卢宏锋,等.基于计算思维的计算机基础教学改革与实践[J]. 北京邮电大学学报(社会科学版),2015,17(2):113-118.
[4]刘道文.高校非计算机专业计算思维能力培养策略研究与实践[J].计算机教育,2013,13(1):39-43.
[5]郭福亮,崔良中,李永杰,等.基于计算思维能力培养的计算机基础教学改革探索[J].计算机工程与科学,2014,36(s2):162-164.
[6]于宁,崔武子,蔡春,等.突出计算思维训练的VB程序设计实验教学[J].实验技术与管理,2016,33(9):182-185.
[7]何明,陈卫卫,陈希亮,等.基于计算思维的大学计算机基础课程改革方法探析[J].计算机工程与科学,2014,36(a01):96-99.