计算思维驱动的计算机基础教学内容体系研究
2017-03-20白小军刘白林杨盛泉
白小军+刘白林+杨盛泉
摘要:针对目前高校计算机基础教学中存在的问题,引入计算思维的理念,分析了计算思维的内容框架,并以此为基础重构了计算机基础教学的内容体系和课程体系。
关键词:计算思维;计算机基础教学;内容体系
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)10-0191-02
一、计算机基础教学的困境和改革
长期以来,人们对计算机基础教学的定位模糊不清,出现了诸如狭义工具论、唯编程论、浓缩论、无用论等各种认识误区,学生对教学内容没有兴趣,教师也对教学提不起兴趣。针对这种情况,计算机基础教学指导委员会进行了两次改革。2006年,美国卡内基—梅隆大学的周以真教授提出了“计算思维”的理念,国内外的学者纷纷展开研究,探讨计算思维的本质及其驱动下的教学改革问题。以此为契机,我国的计算机基础教育正在酝酿第三次改革,即以计算思维培养为导向的课程改革。
二、计算思维的本质与核心内容
按照周以真教授的表述,计算思维就是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维应该是每个人的基本技能,而不仅仅属于计算机科学家。正如每个人都应具备基本的读、写、算能力一样,现代社会还需要每个人都具备基本的计算思维能力,能够自觉的运用计算科学的思想方法,解决各专业领域的实际问题。总结前人的研究成果,可以得出如下结论:(1)计算思维的本质是基于计算环境和约束的问题求解的思想方法。(2)计算思维的主要内容涉及:计算模型的研究,计算系统的设计与构造,计算系统的特征与约束,如何有效利用计算系统进行问题求解以及问题求解的效能评价与验证。(3)计算思维的主要特征包括:抽象、自动化、形式化和机械化。(4)计算学科中的核心概念包括:计算、抽象、自动化、设计、通信、协作、记忆和评估等,以这八个概念为基础,可以辐射出一系列内容,构成计算思维的内容框架,如图1所示。
三、面向计算思维能力培养的课程内容体系
以图1的内容框架为基础,对计算机基础教学的内容体系进行重组。首先,将课程体系分为两部分,即核心课程和选修课程。核心课程面向所有的专业开设,包括“计算思维导论”和“算法与程序设计基础”两门;选修课程则针对不同的专业及应用领域选择开设,包括“数据库技术及应用”、“多媒体信息处理”、“信息安全基础”、“网络技术基础”等。下面针对两门核心课程设计其内容体系。
1.计算思维导论课程内容体系。“计算思维导论”是学生入学后的第一门计算机课程,其内容体系被分为如下六个单元:(1)计算思维的理论基础。从原始计算方法及演化入手,理解计算的历史及自动计算工具、方法的演化;针对现代计算机的工作原理,从数据的表示和运算入手,解决计算的基本问题;采用图灵机理解自动计算模型以及形式化方法,进而理解冯·诺依曼体系,分析其局限性并引出近些年新兴的计算模型。(2)计算思维的逻辑基础。首先通过逻辑理解思维的规律和过程,进而讲解布尔逻辑、命题逻辑和谓词逻辑,学习逻辑的表示、运算以及推理方法,理解计算思维中的形式化方法,最后将逻辑思维与算法联系起来,通过算法实现逻辑运算与推理。(3)计算思维的方法学。首先分析人类解决问题的思维过程,引出借助计算机求解问题的过程,并对两者进行对比。计算机解决问题的首要步骤是抽象和建模,这就是问题描述;然后是设计合适的数据结构和算法,并依靠程序设计语言来实现算法,这就是系统设计和实现;最后还要验证结果的正确性以及求解效率等。(4)计算思维的算法基础。围绕三大主题展开:①算法基础,了解算法的概念、性质和分类,重点学习算法的表示,并明确同一个问题会有多种不同的算法;②常用算法思想,精选穷举、递推、递归、回溯、分治、并行化等常用算法,启迪学生思维;③典型应用,选择应用场景,介绍同一个问题的多种算法实现,使学生理解算法是程序设计的灵魂。(5)计算思维在计算机学科中的应用。从操作系统、多媒体系统、计算机网络、数据库技术、信息安全等领域关注的核心问题以及解决问题的基本方法出发,概要介绍计算思维在各领域中的应用,使学生切实感受计算机学科中的基本思想方法。(6)计算思维在其他学科中的应用。精选各行业的典型案例,直观展示计算思维在其他行业中的应用。
2.算法与程序设计课程内容体系。用计算机解决实际问题,“算法与程序设计基础”是针对理工科开设的一门计算机基础课程,其内容体系分为七个部分:(1)程序设计基础。首先通过一系列示例,介绍程序设计中的核心概念和方法,建立基本的程序认知;然后从数据抽象和过程抽象两个角度理解计算思维中的核心概念——抽象,对于数据抽象,重点介绍基本数据类型以及数据的表示与存储方法,概要介绍数组、结构体、指针及其他复杂数据类型。(2)程序的流程控制。从算法的表示入手,引出结构化程序设计的思想以及三种基本结构;以构造为核心概念,使学生理解通过基本结构的组合与嵌套实现任意复杂的流程控制;然后通过案例介绍三种控制结构,熟练掌握基本流程控制方法以及流程的组合嵌套等构造方法。(3)复杂数据类型。针对数据抽象,介绍数组、指针、结构体、链表等数据类型。对于每一种类型,从其应用场景引入,分析为什么要使用该类型以及如何构造和使用该类型。由于几种复杂类型之间具有密切的联系,所以在内容组织上要关注这些关系,使学生清楚把握知识脉络。(4)面向过程程序设计。从面向过程的基本思想入手,解释其“自顶向下、逐步求精”、“模块化设计”、“结构化编码”的基本概念,并将模块映射为函数,实现结构化程序的构造;对于函数这一核心概念,应将其接口和实现分开,这样有利于理解函数的使用,也便于向面向对象方法过渡。(5)典型算法的函数实现。从应用情境出发,精选用计算方法解决实际问题的一系列典型案例,分析其算法,设计函数原型并实现算法。要介绍的核心算法包括:窮举算法、分治算法、递推算法、递归算法、回溯算法、排序算法和检索算法等。(6)面向对象程序设计。要引导学生理解面向过程的缺点及面向对象的改进,理解抽象的思想以及封装、继承、多态的特性。在树立面向对象的思想后,一要学会使用系统库或第三方库中的类和对象;二要学会设计自己的类和对象。对于第一个问题,抓住字符串、输入输出流等基础类,深入理解类的接口及访问方法,学会使用API;同时学习动态数组、向量和哈希表等几种典型容器类的用法,这些容器在开发中广泛使用。对于第二个问题,要从封装、继承、多态三大特性入手,引出类的设计、对象的构造以及对象间的通信方式,并给出具体示例,用图表和代码的方式表达自己的设计。(7)数据存储与文件。计算思维中的一个核心概念是记忆,数据结构研究的是数据的内存记忆方式,而文件研究的是数据的持久记忆方式。要弄清楚文件的类型以及存储和处理方式,针对顺序读写、随机读写介绍其原理与代码实现,最后介绍面向对象环境下的文件操作方法以及几种流的使用方法。
四、结语
本文研究了计算思维的本质与核心内容,探索了计算思维驱动的计算机基础教学内容体系和课程体系。培养计算思维,在于掌握一种利用计算方法解决各领域实际问题的独特思路,各专业都应开出计算思维相关的课程。同时,在选择教学内容时应有所侧重和取舍,尤其要注重思维方法的训练,这样才有利于培养学生的思维能力及创新能力。
参考文献:
[1]Jeannette M.Wing.Computational Thinking[J].Communications of the ACM,2006,49(3).
[2]教育部高等學校大学计算机课程教学指导委员会.计算思维教学改革宣言[J].中国大学教学,2013,(7).
[3]陈国良,董荣胜.计算思维的表述体系[J].中国大学教学,2013,(12).
Research on Content System of Computer Fundamental Course Driven by Computational Thinking
BAI Xiao-jun,LIU Bai-lin,YANG Sheng-quan
(School of Computer Science and Engineering,Xi'an Technological University,Xi'an,Shaanxi 710032,China)
Abstract:According to the problems in computer fundamental teaching,introduced the concept of computational thinking,analyzed the content framework of computational thinking,and based on this framework,reformed the content system as well as the course system for computer fundamental teaching.
Key words:computational thinking;computer fundamental teaching;content system