Java程序设计课程中计算思维的培养
2020-01-17茅颖
茅 颖
(江苏商贸职业学院,江苏 南通 226000)
1 计算思维
2006年3月,在美国的计算机科学权威期刊《Communications of the ACM》上,美国卡内基梅隆大学(Carnegie Mellon University,CMU)的计算机科学系主任周以真(Jeannette Wing)教授首次系统地提出了计算思维(Computational Thinking)的概念。周以真教授提出:计算思维是采用计算机科学的基础概念来解决问题、设计系统以及理解人类行为等的一系列思维方式。正如每一个人都有阅读、写作和计数(Reading、Writing、 Arithmetic,3R)的能力一样,计算思维是人类必须具备的思维能力。在此基础上,南安普顿大学(University of Southampton)的Cynthia Selby博士和John Woollard博士提出计算思维的五个核心概念分别为:算法思维、评估、分解、抽象和归纳。
2010 年在西安交通大学举办的首届“九校联盟计算机基础课程研讨会(C9)”的会后声明中提出:高校计算机基础教育阶段的首要任务是培养大学生的计算思维能力,而计算机程序设计中包含了大量解决问题的算法及思维模式。2012年,首届“计算思维与大学计算机课程教学改革”研讨会在西安成功召开,陈国良院士正式提出计算机基础教学改革应以培养学生计算思维能力为切入点。计算思维已引起全世界计算机科学家和教育工作者的积极关注,为培养新时代的创新人才,教育必须摆脱传统教学在思想和方法上的束缚,激发学生以新的方式来思考。
2 Java程序设计教学现状
2.1 Java课程内容多课时少
Java程序设计课程要求学生了解Java语言特征、常见的Java类库以及面向对象程序设计思想;掌握计算机程序的结构;掌握程序的开发过程;掌握常用数据结构以及Java编程语言的语法;学会利用Java语言编写面向网络应用的简单程序等内容。本校的Java程序设计课程目前总学分为4学分,一学期只有64个课时,从培养完善的计算机人才的角度出发,教师希望学生能够在课堂中学到更多的知识,掌握更多的技能,因此64个课时远远不够,教师如何有效的分配课时,既能帮助学生完成更多知识点的学习,又能为学生留出足够的时间进行知识的内化,并提高学生的实践编程能力,是教师在教学实施中的一大难题。
2.2 学生基础参差不齐
Java程序设计课程是计算机类专业的专业基础课程,本校计算机类专业文理兼收,文科生对程序设计类课程的接受能力相对较差,同时由于各地区教育发展的不平衡,有些学生在初高中就已经接触过程序设计的相关知识,而有些学生仅仅接受过计算机基础操作的相关教育。学生计算机编程基础参差不齐,有部分学生在课堂学习中很难跟上教学进度,使得这些学生心态上产生消极畏难的心理,出现了较为严重的两极分化现象,这就需要教师在教学过程中能够设计有效的教学策略,因材施教,提高学生对程序设计的兴趣与信心,从而培养学生的计算思维能力。
2.3 教学方法单一
Java程序设计课程内容多课时少,教师为了按时完成教学任务,不得不增加理论讲授的时间,压缩实践课时,在教学过程中较多的使用讲解教学法与讲演教学法,学生在学习的过程中缺少实践操作的时间,程序设计与编码的能力难以得到提高。同时,在Java程序设计课程的教学过程中,教师很容易陷入语言表达形式的误区,尤其是在大多数考试内容中偏重对语法的考核而不是对编程能力的考核。部分教师在教学过程中存在重编码,轻算法的现象,导致学生在学习过程中将基本语法视为重点,以程序正常运行不报错为目的,不重视总结问题求解的过程,忽略了思维方式的锻炼。
3 Java程序设计课程中计算思维的培养
3.1 提高知识点的联结程度,培养学生概括性思维能力
Java程序设计课程中知识点的联结程度比较差,缺乏整体性与关联性,学生在学习过程中缺乏连贯性,使得学生程序设计思路无法得到有效的拓展。教学案例的设计及讲解缺乏整体性和连贯性,使得学生无法把自己掌握的知识进行整合内化,同时在程序设计与编码的过程中更是无法通过自身能力解决不断出现的各种主观或客观问题。因此,在教学设计的过程中需要提高知识点的联结程度。
3.2 利用算法为主线教学,培养学生算法思维能力
算法在人们的日常学习或生活中总会被使用,是对解题方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。教学过程以算法为主线,在算法的讲解过程中增加Java知识点,从而培养学生的算法思维能力,增强学生利用算法综合分析问题、解决问题的能力。
例如,在教学设计中利用解决排序问题中的二分查找算法,同时结合递归算法来讲解选择结构与循环结构。二分查找算法的递归实现主要利用的是选择结构语句,二分查找算法的非递归实现则是利用选择结构与循环结构相结合而实现的。还可以利用排序问题中的冒泡排序算法来讲解数组的声明、定义与遍历等内容。
这种利用算法为主线的教学方式,将Java程序设计课程中的基本知识点与算法相结合,在有效帮助学生掌握Java基本知识的同时,既能有效培养高职学生的算法思维能力,又能提高高职学生利用算法思维分析问题解决问题的能力。
3.3 构建网络学习平台,培养学生自主学习能力
通过构建Java程序设计课程的网络学习平台,使学生可以充分利用课后的闲暇时间进行自主学习,从而弥补学生课上学习跟不上的问题,并能够有效协调教育资源的不均衡。Java程序设计课程的网络学习平台中包含微课、视频、PPT、实训指导书等大量学习资源,学生在课堂学习中遇到的问题与困难可以通过这些学习资料来解决,能够加强学生记忆,加深学生对知识点的理解。同时学生可以利用网络平台中的实训指导书在课后进行程序编码的实践练习,遇到问题可以在线与教师实时提问解答,使学生通过课后的编程实践能够确实感受和领悟计算机问题求解的基本方法与思维模式。网络学习平台的构建与使用,改变了学生以课堂学习为主的学习模式,激发了学生对Java程序设计课程的学习兴趣,培养了计算机类高职学生的自主学习能力。
4 结语
计算思维能力的提高是一个长期培养的过程,Java程序设计课程不仅仅是要让学生掌握程序设计语言的基本语法知识,还要通过编程能力的培养使学生学会利用计算机解决问题的方法,培养学生的计算思维能力,从而为社会培养出更多高素质的计算机类技术技能型人才。