大学程序设计课程中的计算思维培养

点赞:6356 浏览:21549 近期更新时间:2024-03-01 作者:网友分享原创网站原创

摘 要:介绍了计算思维提出的背景及国内外的发展现状,针对传统大学程序设计课程的教学问题,将计算思维引入课程.对改革的主要内容、实施步骤及案例设计进行阐述,提出的改革思路可给其他高校大学程序设计课程的教学改革提供参考.

关 键 词:计算思维;大学程序设计课程;非计算机专业

作者简介:张莉(1976-),女,江苏宜兴人,南京大学计算机科学与技术系大学计算机基础教学部,讲师;金莹(1978-),女,回族,江苏南京人,南京大学计算机科学与技术系大学计算机基础教学部,副教授.(江苏南京210093)

中图分类号:G642.0文献标识码:A文章编号:1007-0079(2013)16-0094-02

2012年7月16日,“第一届计算思维与大学计算机课程教学改革研讨会”在西安交通大学召开,中国科学院陈国良院士和多名计算机教学名师、专家以及近三百名在国内高校承担计算机课程教学的教师参加了此次研讨会,大会探讨了如何在大学计算机课程中引入计算思维,如何建立计算思维教学体系以及如何让学生养成用计算思维方式来思考和解决专业问题等内容.

一、计算思维产生的背景及现状

2006年3月,美国卡内基·梅隆大学的华裔女科学家周以真(JeanteM.Wing)教授在美国计算机权威期刊《CommunicationsofACM》撰文提出计算思维(ComputationalThinking)[1]的概念和详细定义.周以真教授指出计算思维是运用计算机科学的基础概念进行问题求解、系统设计和理解人类的行为,它是涵盖了计算机科学之广泛性的一系列思维活动.

计算思维是随着近十年来美国对计算科学重要性的认识逐渐提高而提出的.近些年来,美国大学计算机基础教育出现了学生对计算机基础课程兴趣逐渐下降,如中途放弃课程或通过抄袭及来完成课程的教育危机.2005年6月,美国总统信息技术咨询委员会(President’sInformationTechnologyAdvisoryCommittee,PITAC)给美国总统提交了报告《计算科学:确保美国竞争力》(ComputationalScience:EnsuringAmerica’sCompetitiveness),[2]报告中陈述21世纪科学上最重要的以及经济上最有前途的前沿研究都有可能通过熟练掌握先进的计算技术和运用计算科学得到解决,计算本身也是一门学科,它可以促进其他学科的发展.计算思维一经提出,美国的教育专家们看到了解决这两者矛盾的希望.2010年周以真教授再次在刊物上发表文章阐述计算思维的基本思想,而近年来美国各大高校都在修订其本科生计算机科学课程的计划,美国麻省理工大学、[3]斯坦福大学[4]和卡内基·梅隆大学[5]等著名高校纷纷设置了面向全校的计算思维的通识课程.除美国外欧洲也开始重视计算思维的培养,2010年8月,英国皇家协会也发布了以计算思维为出发点的为期18个月的“学校计算教学方法”项目.

中科院自动化所的王飞跃教授率先把计算思维引入国内,王飞跃教授撰文《计算思维与计算文化》,[6]他希望能借“计算思维”的东风将中国传统世故人情的“算计文化”反正成现代科学理性的“计算文化”,以提高民族的整体素质.2010年10月中国科学技术大学的陈国良院士在“第六届大学计算机课程报告论坛”上倡议将计算思维引入大学计算机基础教学后,计算思维得到了国内众多计算机基础教育者和研究者更广泛的重视.中国科学院计算技术研究所李国杰院士、[7]清华大学软件学院孙家广院士[8]和中国科学院计算技术研究所徐志伟总工[9]等多位专家在这方面进行了有效的探索.

二、计算思维与大学程序设计课程

1.大学程序设计课程教学目标

大学程序设计课程是许多高校理工科(包括部分文科)专业的必修公共基础课程之一,《中国高等院校计算机基础教育课程体系(2008)》[10]对“程序设计基础”课程提出的培养目标主要有两个:学习问题求解的思路和方法,理解在计算机上是如何具体实现算法的,这也就意味着大学程序设计课程学习的重点不仅仅是编写程序,而更重要的是学习算法思想与问题求解方法.但是大学程序设计课程传统的教学方法存在诸多的问题.


2.大学程序设计课程存在的问题

(1)教师在课程讲授过程中容易陷入语法和句法的细枝末节中而忽视基本问题求解方法的讲解.

(2)上课时常常是教师先讲解学生后上机实验,学生属于被动学习,整个学习过程中其参与度不高,听课后学生通常按照教师的想法按部就班完成实验.这种教学策略只能提高学生上机实验能力,而学生思维能力的养成没有得到专门的训练.

(3)传统的计算机程序设计课程还存在与专业背景结合不紧密的情况,在教学过程中通常不考虑学生的专业背景,学生在学完课程后常常会感到迷茫,不知道如何用程序设计方法解决自己的专业问题.

3.将计算思维融入课程教学

要想改变目前这种传统教学模式,消除其弊端,需要对程序设计课程的教学内容、教学方法和手段进行改革,融入计算思维培养的教学方法,让学生理解计算环境、问题求解过程中各类构造能力,如对象构造、过程构造和验证构造等,以及通过计算能解决什么问题和使用计算来解决问题的过程、方法和步骤,让学生学会如何通过约简、嵌入、转化和仿真等方法得出能求解一个困难问题的方法,学会利用启发式推理来寻求解答,即在不确定情况下进行规划、学习和调度,同时培养学生以计算思维的方式来分析、理解和解决本专业领域问题.

三、以计算思维为目标的大学程序设计课程培养方法

南京大学(以下简称“我校”)计算机科学与技术系大学计算机基础教学部在2008年教学改革中,对于程序设计课程提出了层次化教改方案,并通过课程设计等方式提高学生解决问题的能力,同时也进行了将专业知识与程序设计课程相结合的尝试性工作,获得了院系和学生的好评,但是在整个过程中尚欠缺对于计算思维能力的显式培养,学生对问题求解的抽象能力、抽象表示、抽象思维以及形式化证明等能力缺乏,由此需要对现有的教学模式和教学评价体系等做相应修改,将计算思维切实融入到程序设计课程中,教会学生如何学习问题求解的思路和方法,并让学生在经由计算思维培养后能更好地解决专业问题.以下分别从改革的主要内容、实施步骤和具体案例来进行说明.1.主要内容

以计算思维为目标的大学课程设计课程培养方法的主要内容有:

(1)调研我校各专业对于程序设计课程的一般要求和专业要求,探索如何设计以计算思维为主线的教学方法体系.

(2)调研国内外其他高校程序设计课程中计算思维培养的教学情况,学习借鉴成功的经验和方法.

(3)在我校和国内外调研的基础上建立以计算思维为主线的教学方法体系,修订和建设相关的课程资料、案例和实践项目,通过这些有针对性的训练让学生掌握通过计算思维来解决一些实际问题的能力.

(4)建立培养学生以计算思维的思想去理解、抽象本专业领域问题的能力的教学方法,使得学生能够拥有以计算的眼光看待问题的素养,从而能够分析、抽象、分解、解决自己研究领域问题,并具有足够的自学能力去获得完成以上各阶段任务所需的知识和技能.

2.实施步骤

根据主要内容制定了如下的实施步骤:

(1)通过搜集和阅读国内外计算机程序设计课程教学资料和计算思维相关论文、开会研讨和个人总结等方式,对现有程序设计课程教学方法进行改进,围绕计算的本质和让学生以计算的方式思考为中心,完成修改现有课程教材、改进课程教学计划等任务.通过这一阶段的基础工作,能够让教师深刻理解计算思维的本质,建立以计算思维的培养为核心的教学理念,更好地指导程序设计课程的教学.

(2)改进和设计以计算思维方式分析和解决各专业共同面对的研究问题的教学方法.设计教学案例,能够让学生理解从计算思维出发思考,以计算的方式表达、分析和解决问题的整个过程;设计实验项目,让学生尝试使用计算思维来表达和解决一些典型但足够简单的问题,从而加深对计算本质的理解并掌握足够的基础技能.这一阶段教学方法的应用,应使得学生能够掌握实践计算思维的基本技能,并能够让学生在这个计算背景知识的基础上,实现解决问题的各个步骤,而最重要的是,在这个过程中,让学生理解独立于具体实践技术之外的计算思维本质,从而使得学生在转换到另一个具体实践技术背景下时,也能知道应用计算思维解决问题的各个阶段应该做什么,需要获取欠缺的哪些知识,从被动学习变为主动学习.

(3)在针对所教院系应届和往届学生及院系教学相关人员通过调查问卷和座谈等形式收集专业典型案例的基础上,建设利用计算思维解决学生所在专业领域问题的教学方法.通过紧密结合学生的专业背景,提炼此专业的一些典型并能体现计算解决方法优势的问题,使用少部分问题作为计算思维应用的杀手级应用,让学生理解计算思维如何应用到本专业研究中.使用大部分典型问题设计若干实践项目,以指定实践技术手段和不限定实践技术手段并用的形式,通过学生独立完成、小组完成、分组讨论以及完成项目论文等方式,培养学生在本专业领域应用计算思维所需的一系列能力.

3.案例设计

在改进和设计以计算思维方式分析和解决各专业共同面对的或不同专业各自面对的研究问题的教学方法时,设计了许多教学案例、实验作业和课程设计项目,总体来说是以问题驱动的方法先将问题提出,然后再由学生分析和思考如何设计和解决问题并提出不同的方案,再对各种方案进行分析比较后选择优势最明显的一种作为最终的方案.

以讲授高级语言翻译环境为例.以往的教学主要是灌输式的,将流行的翻译环境进行综合介绍:教师首先介绍每个编译器/解释器的菜单项的功能、操作方式和独有的特征等;学生按照教师的介绍选择某一种编译器/解释器进行操作并熟练掌握.

但这种教学方式导致学生对编译器/解释器的理解只流于表面,并没有真正理解编译器/解释器这种计算环境的本质特征,学生换一种编译器/解释器或者遇到特殊问题时就没法很好地利用现成的计算环境.

为此,需要改变学生理解高级语言翻译环境的教学方式.而我们在设计新的教学案例时着重对于学生“思想”和“方法”的培养,让学生深刻理解问题的本质.新的教学方式从高级语言和机器语言的关系入手,具体步骤为:

(1)用一个简单的实现介绍高级语言和机器语言的特征和关系,让学生理解高级语言翻译这种计算环境的必要性和重要性.

(2)引导学生思考如何将高级语言翻译为机器语言,理解解释和编译这两种翻译方式的特征.

(3)接着探索一个高级语言翻译环境需要的功能模块有哪些,让学生分组讨论并设计出基本的功能模块,教师根据学生设计的功能模块进行点评,探讨哪些是合理的功能模块和没有必要的功能模块.

大学程序设计课程中的计算思维培养参考属性评定
有关论文范文主题研究: 关于计算机科学的论文范本 大学生适用: 专科毕业论文、大学毕业论文
相关参考文献下载数量: 40 写作解决问题: 怎么写
毕业论文开题报告: 标准论文格式、论文小结 职称论文适用: 职称评定、初级职称
所属大学生专业类别: 怎么写 论文题目推荐度: 最新题目

(4)在功能模块基本确定的基础上教师选择至少两种高级语言翻译环境供学生进行观摩评价,让学生学习成熟的翻译环境是如何设计的,并了解翻译环境的高级功能.

(5)在对翻译环境有了本质的理解后学习可自行操作编译器/解释器,并且对于不同的翻译环境也能很快理解并运用.

从教学、实验和课程设计等多个环节中引入计算思维方式培养的案例实施结果来看,利用这种改进的问题构造、问题表示和问题解决的引导性、交互性教学方式,能有效地提高学生的计算思维能力.

计算思维的培养不是一蹴而就的,还需要更多的努力,但是应该看到计算思维是一种可以面向所有人,在任何地方都可以培养的一种思维活动,作为高校教师,应该也可以通过自身对于计算思维认识的提高而激发学生能够在抽象的多个层次上进行主动积极的思维.