时间:2024-08-31
马瑞民
摘 要:对传统计算机基础教学中的计算思维训练中出现的问题进行了梳理,提出了强化程序设计课程教学中计算思维训练的几点做法,这有利于实际进行计算思维能力训练,提高计算机基础教学水平。
关键词:程序设计 计算思维 计算机基础教学 能力培养
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)02(b)-0130-02
Computational Thinking Ability Training on Program Design Courses Teaching
Ma Ruimin
(College of Computer and Information Technology, Northeast Petroleum University,Daqing Heilongjiang,163318,China)
Abstract:First sorts out the problems on traditional computer basis teaching of computational thinking training,and propose some methods of intensive computational thinking training in program design course teaching,of which is beneficial to the actual computational thinking ability training, and improve the level of computer basic teaching.
Key Words:Program design;Computational thinking;Computer basic teaching;Ability training
2010年7月,九校联盟(C9)在西安交通大学举办的“九校联盟(C9)计算机基础课程研讨会”上旗帜鲜明地提出把“计算思维能力的培养”作为计算机基础教学的核心任务[1],这既找准了非计算机专业计算机基础教学提升教学水平、为高校创新人才培养服务的最佳路径,也为计算机基础教学提供了未来十年教学改革的方向。但是,传统的计算机基础课程在计算思维能力培养方面存在哪些问题,如何利用传统的计算机基础课程强化对非计算机专业学生的计算思维能力培养,这些是我们必须关注的主要问题。本文以计算机基础课程中最重要的程序设计课为基础,谈一下对计算思维能力培养的认识。
1 对计算思维能力的思考
计算思维最广泛使用的概念由美国卡内基﹒梅隆大学周以真教授提出,即计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类行为的涵盖了计算机科学之广度的一系列思维活动[2]。
计算思维的定义本身比较抽象,可以从求解问题中的计算思维、设计系统中的计算思维和理解人类行为的计算思维等方面[3]进行分析和理解。计算思维最根本的概念一个是抽象,另一个是自动化[4]。利用计算手段求解问题时,需要首先把实际问题转化为数学问题,并用数学方法表示(即抽象);其次是建立数学模型、设计算法和编程实现,并在计算机中求解(即自动化)。
九校联盟(C9)计算机基础教学发展战略联合声明中,除了旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务之外,还提出计算机基础教学是培养大学生综合素质和创新能力不可或缺的重要环节,是培养复合型创新人才的重要组成部分;高等学校需要进一步确立计算机基础教学的基础地位,加强队伍和机制建设;加强以计算思维能力培养为核心的计算机基础教学课程体系和教学内容的研究[1]。这就明确地回答了近年来一些高校削弱计算机基础教学地位,弱化计算机基础教学师资队伍建设以及淡化计算机基础教学改革的做法是十分不恰当的。目前,把“计算思维能力的培养”作为计算机基础教学的核心任务不但能提高计算机基础教学在本科教学中的地位,也确实能提高学生的计算机应用能力,高等学校应该抓好这个核心任务。
2 传统计算机基础教学中计算思维培养中存在的问题
明确地提出计算思维概念的时间不长,深入领会计算思维的定义、本质和特征还需要一段时间,有意识地把计算思维思想能力培养贯穿到非计算机专业计算机基础教学的全部过程还有许多工作可做。同时也应看到,过去几十年计算机基础教学中或多或少地也在利用计算思维的思想进行程序设计能力的训练,不能全盘否认或抹杀在计算思维培养方面已经取得的成绩,但相对而言所存在的不足也是十分明显的。
2.1 知识性教学活动多,明确按照计算思维培养的教学环节少
对非计算机专业学生进行计算机基础教学的主要课程是大学计算机基础、程序设计以及其他与专业相关的计算机应用培养方面的课程。由于各方面的原因,学生往往喜欢知识性、操作性强的课程(例如大学计算机基础),而对程序设计课程中的程序设计训练不太喜欢,也缺乏重视,遇到问题就回避,训练效果不佳。而程序设计类课程恰恰是肩负着计算思维能力培养的主要任务,这种不喜欢和欠重视严重地阻碍了计算思维思想的培养。
2.2 编程技巧教学活动多,抽象过程训练少
即使在程序设计课程的教学中,教师也往往以程序设计的技巧训练为出发点,而对计算思维的培养,特别是有目的的抽象过程的训练较少。常常想当然地编写程序,对算法的细节分析和描述较少,在把实际问题转化为数学问题进而用数学方法表示的抽象过程的训练更少,注重的是编程实现的自动化过程。教师有目的地引导学生按照计算思维思想解题的极少,学生的计算思维的形成基本上靠教学活动中自然形成,导致学生不知道什么是计算思维。同时,由于早期的抽象过程缺少训练,学生对自动化的实现过程也处于“悬空”状态,出了问题找不到问题所在,更难以找到好的改正方法,达不到计算思维培养的目的,学生的计算机应用能力也受到了限制。
2.3 各课程独立成体系的多,综合性训练少
我国高校大学非计算机专业的计算机基础课程的设置很长一段时间是按教高司【1997】155号[5]文件设置的,呈现以“三个层次”的总体构架为主的课程模式。这种课程构架决定了高等学校的计算机基础课程主要以大学计算机基础和程序设计(各种高级语言)为主,再辅以其他软硬件基础课程、本专业的专用软件以及专业课中计算机应用等。由于每个课程学时都是很有限的,除了本课程独立体系内容的介绍和训练以外,综合性运用计算机解题的训练极少,这与计算思维培养的初衷不尽一致,也导致了学生在专业课用计算机解题的能力薄弱,特别是近年在一些高校中出现了削减计算机基础课程学时的现象,课程的构架及教学目标不但未有提升,甚至偏离了或不如教高司【1997】155号文件的要求。
目前,我国高校非计算机专业学生计算机基础课程的主要构架是1+1+X模式,其中第一个1是所有学生都必须学习的公共必须课程(例如,大学计算机应用基础,通常简称大学计算机基础),第二个1是各类别专业不同的公共必须课(例如,理工科专业可以开设程序设计基础),X是各专业根据本专业的需要开设的课程[6],当然也可以按计算机基础教学的能力结构、知识体系与实验体系设置课程[7],这两种方案的本质是相同的。在各学校准备参加教育部组织的第一轮本科教学工作水平评估时,把各专业的计划学时均压缩到2500以下,相应的计算机基础教学的学时也受到了一定的影响。同时,把各专业与计算机训练相关课程组织起来进行综合训练的方案较少,即使学生学习了一些具有独立体系的各类计算机基础课程,其综合运用能力训练少,在专业课教学中发挥的作用不一,计算思维能力没有很好地体现。
3 强化程序设计课教学中计算思维训练的几点做法
为了加强学生的计算思维能力培养,需要在计算机基础课程教学中全方位地渗透计算思维思想,特别是要对传统的程序设计课程进行改革,并从以下几个方面着手强化学生的计算思维能力训练。
3.1 将计算思维训练贯穿到计算机基础教学始终
相对而言,计算思维定义等具有一定的抽象性,学生对其理解具有一定的难度,运用上更是无从下手。在教学中可以抓住计算思维的本质—— 抽象和自动化,在程序设计训练的过程中,首先解决把实际问题转化为数学问题,并用数学方法表示(即抽象)的过程,这部分是传统的程序设计教学中比较欠缺的,它实际上超出了程序设计课本身的范围,是需要运用数学、物理等课程的逻辑思维知识来进行抽象的。之后,通过建立数学模型、设计算法并编程序上机求解等进行自动化过程的训练,把自动化和抽象都作为教学中重点的训练目标。
3.2 每门课程都要有相应的计算思维训练目标
计算机基础教学是由系列课程组成的,不能把计算思维能力培养的任务归于某一门(或某几门)课,每门课程都要设置计算思维培养方面的训练目标。例如,在大学计算机基础课程中,重点可以放在计算思维的基本概念的介绍以及了解常用的算法,使学生对计算思维思想有一定的感性认识,以便于后续课中运用计算思维思想解题;在程序设计基础课中,可以将把算法的表述及其上机的自动化作为计算思维的训练目标,同时兼顾把实际问题转化为数学问题的抽象过程;在其他计算机基础课及专业课的计算机应用中,也要根据需要设置相应的计算思维训练目标。这样,在这些课程的教学大纲中,要明确提出计算思维训练的要求,使教师在操作上能按照计算思维训练的教学目标组织教学,并使学生在教学中受益于计算思维训练过程。
3.3 增加综合性实验项目
在大学计算机基础、程序设计之类课程的教学中涉及了算法、数据结构、数据库和程序自动化等方面的内容,由于各课程之间缺少有机的结合,使得一些内容的讲述相对重复,但效果往往不佳,既浪费了学时也不利于计算思维训练。因此,可对计算机基础课程的教学大纲进行系统的修订,对其相应的知识点的训练进行统一设计,通过增加综合性和创新性实验的方法,强化各知识点的系统训练,从而达到强化计算思维能力训练的目的,提高计算机基础教学水平。
3.4 采用项目驱动的教学模式
可以将程序设计一课按照项目驱动的方式组织案例教学,采用自顶向下、逐步求精的方法将某个大程序(例如学生成绩管理系统、职工工资管理系统等)分成若干不同层次的模块,并将各个模块逐步细化、求精,最终形成完整的大程序。这不但能提高学生的学习兴趣、提高学生较早地对程序设计概念、方法和手段的认识,更可以通过早期分析抽象和逐步自动化的训练过程,加强学生计算思维能力的培养。
3.5 重视计算机基础教学的师资队伍和教材等建设
要想达到学生计算思维能力培养的目标,教师是最重要的。通过培训、示范教学和联合攻关教学改革课题等各种方法,使计算机基础教学师资队伍能够适应计算思维能力培养的教学模式和教学方法。此外,教材建设要跟上计算机基础教学改革的步伐和课堂教学内容的变化,教师在具体教学实践中虽然理论上是按教学大纲组织教学,但在计算机基础教学的实际操作中,往往都是以某部教材作为教学的基本内容,教材建设的重要性十分明显。纵观国内已有的计算机基础教学程序设计方面课的教材中,真正地按计算思维能力培养组织的极少,导致教学中完全看教师对计算思维的理解多少、兴趣如何,在计算思维训练方面的差异巨大,致使学生对计算思维思想掌握的程度参差不齐,难以达到教学目标。因此,必须在对教师进行计算思维教学模式进行培训的基础上,组织优秀教师编写以计算思维训练为目的的计算机基础系列教材,使教师在教学实践中更好地对学生进行计算思维能力培养。
4 结语
国内“计算思维能力的培养”是九校联盟(C9)提出的,对高校计算机基础教学影响巨大,组织落实好这一任务对大学生综合素质和创新能力的提高不可或缺。但是,传统的计算机基础教学中对计算思维能力的认识、培养都相对淡薄,找到提高计算思维能力培养的好做法十分必要,这里提出的强化C程序设计教学中计算思维训练的几点做法不失一种有效的实现途径。只有深入地解决教师、教材、训练目标和训练方法等问题,才能实现九校联盟(C9)提出的教学目标,才能使计算机基础教学更好地发展。
参考文献
[1] 九校联盟(C9)计算机基础课程研讨会.九校联盟(C9)计算机基础教学发展战略联合声明[J].中国大学教学,2010(9):4,9.
[2] Jeannette M Wang.Computational Thinking[J].Communications of ACM,2006,49(3):33-35.
[3] 陈国良.计算思维导论[M].北京:高等教育出版社,2012.
[4] 董荣胜.计算思维与计算机导论[J].计算机科学,2009,36(4):50-52.
[5] 教高司[1997]155号.加强工科非计算机专业计算机基础教学工作的几点意见[R].1997.
[6] 中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2008[M].北京:清华大学出版社,2008:33.
[7] 教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009:15-27.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!