基于程序设计教学的文科生计算思维培养_曾显峰

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 4 期2012 年 2 月 25 日计算机教育Computer Education
84
中图分类号:G642
1 背景
越来越多的高等院校认识到市场经济对人才结构的需求逐渐从过去的单一型、专业型向复合型、交叉型发展。

《国务院关于进一步加强人才工作的决定》中明确指出,我国不仅要大力培养具有全面素质的工程师、技术人员,更要培养具有科学素养的研究政治、经济、法律等人文社会科学领域的工作者[1]。

在当前的高校教育中,课程体系文理交叉、学科综合化设置是一种比较明显的改革趋势。

不少大学主张通过选修课使学生完成跨学科课程的学习。

例如某些学校要求理科生必须选修人文、艺术类课程,同时要求文科生选修相应的自然科学课程。

2 计算思维
思维是人认识世界和改造世界的主观动力。

美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授最先提出,计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。

中国计算机学会理事长李国杰院士指出,计算思维远远不只是为计算机编程,它是在抽象的多个层次上进行思维,是与读写能力一样的人类的基本思维方式;他进一步指出,计算思维是每个人应当具备的基本技能,它不仅仅属于计算机科学家,而是应当使每个人包括孩子都要学会计算思维[3]。

3 文科生学习程序设计的必要性
除了数学、物理学等传统自然科学课程外,目前大多数文科院校以计算机基础教育作为提高文科生综合素质的一面旗帜。

诚然,在信息时代的大背景下,计算机不仅是一种工具,更是一种文化。

无论理科生还是文科生在进入社会以后都需要具有一定的计算机文化素质,以更好地适应各行各业的工作。

文科生不仅需要掌握计算机基本操作技能,更应该通过计算机基础教育取长补短,培养科学素养,提高工作中认识问题、解决问题,以至于研究创新的能力。

在开设的计算机基础课程中,程序设计课程不仅是教学中的重难点,其课程本身也集数理思维、
文章编号:1672-5913(2012)04-0084-04
基于程序设计教学的文科生计算思维培养
曾显峰,廖晓芳
(广东外语外贸大学 南国商学院 信息科学技术系,广东 广州 510640)
摘 要:引入计算思维本质概念,论述高校培养文科生计算思维的必要性。

结合笔者所在院校计算机基础课程开设的情况,分析文科课程设置偏颇的原因,提出文科生应适当学习程序设计类课程的必要性,并在教学实践中探索和改进教学方法以锻炼文科生的计算思维能力。

关键词:计算思维;程序设计;文科生;1+X
基金项目:2010年广东省高等教育教学改革项目(BKYB2011101)。

作者简介:曾显峰,女,讲师,研究方向为计算机应用、信息安全;廖晓芳,女,讲师,研究方向为图形图像、数据挖掘。

教育与教学研究
第 4 期85
模块化设计思想、对比优化策略等众多值得研究的方式、方法于一体。

因此,通过学习程序设计课程可以锻炼文科生的计算思维,培养文科生的逻辑思维和抽象思维能力,最终提高文科生研究创新的能力。

长期以来,人们普遍认为文科生的形象思维能力、想象力比理科生好,而理科生的逻辑思维、抽象思维能力比文科生强。

这种现象是由文理科院校课程设置偏重不同而造成的。

对于程序设计的学习,学生和教师不应该以计算机等级考试过级为目的,学校与社会也应抛弃对文科生学习程序设计的偏见。

李开复老师微博中称:如果把学习过的东西忘得一干二净时,最后剩下来的东西就是教育的本质了。

教育者应该从更深远的目的出发,培养文科生的计算思维,使他们毕业后能真正成为具有科学素养的工作者。

程序设计课程的开设,除了要使文科生了解计算机基础知识外,更重要的是让文科生掌握科学的思维方法。

美国心理学和教育学家Robert J.Strenbery指出,思维教学的核心理念是培养聪明的学习者[4]。

因此,文科生学习计算机不应只限于一般的办公软件使用和系统基础操作,而应该开设足够课时的程序设计课程。

4 程序设计课程开设情况
学院本着“通基础、精专业、强外语、重实践”的人才培养模式,面向全校非计算机专业开设了1+X的计算机基础课程。

其中,1是必修课,主要指“大学计算机基础”,考核方式为通过计算机等级考试的第一级,X是二级选修课程,主要安排了“Photoshop 平面设计”、“网页制作与设计”、“Access数据库技术”及“程序设计”,“程序设计”开设有“ ”和“C语言程序设计”。

一直以来,选择前面三个模块作为计算机二级考试科目的学生远多于学习“程序设计”的学生。

这种现状经课题组老师问卷调查分析得出以下几
个主要原因:
1)学习目的不明确。

很多学生不明白程序设计在本科教学中的引导作用,认为“编程”应该是计算机专业学生的“专利”,跟自己的专业和以后的工作沾不上边,没有必要学。

2)畏难情绪,动力不足。

由于学生基础参差不齐,有些学生在学程序设计时感觉入门困难,枯燥抽象。

本来有些学生就对写代码敬而远之,可能还听过学长的“告诫”,就更不愿意选择“程序设计”课程。

3)以“容易过级”为选择目标。

相比“单调”、“无趣”、“难学”的程序设计,图文并茂、动静皆宜的平面设计和网页制作更能吸引学生的眼球,而且在过计算机二级考试时难度小很多,因此致使更多的学生放弃了程序设计的学习。

4)教师引导不够。

某些教师对程序设计在文科生教育中的定位认识比较模糊,认为让文科生学习一些实用技术能让他们在以后的工作“学以致用”,或者也单纯以计算机等级考试过级率高低指导学生选课。

早有计算机科学教育界的专家呼吁为大学新生开设一门称为“怎么像计算机科学家一样思维”的课程,旨在通过计算机基础课程培养新生的计算思维。

笔者认为:一方面,学校和教师要从更深层次重新认识并审视程序设计对于文科生教育的意义,积极修订计算机教学课程体系,建立立体化教学资源;另一方面,程序设计课程教师要不断提高自身业务素质,研究教学方法,提高程序设计课程的教学效果。

5 在改进教与学的方法中培养计算思维
在程序设计的教学过程中,我院实现了全机房教学模式,比传统的“多媒体+实验”的教学模式更为进步。

但要使学生真正喜欢程序设
2012
86
计算机教育
Computer Education 计,就要让学生从被动接受变为主动学习,在编程中学会程序设计技能,在实践中体会编程技巧,最终形成探索、发现、解决问题的思维方法。

5.1 上好第一堂课,明确教与学的目的
第一堂课上,老师要明确告知学生学习该课程的意义,向学生列举详细的教学计划,指导学生学习新课程的方法,并提供自学时获得帮助的途径。

第一堂课应该铿锵有力地展开,提高学生学习该课程的兴趣。

5.2 提高机房教学的质量
1)少讲多练。

机房教学模式为程序设计课程提供了良好的学习环境。

上机实践是培养学生计算思维的重要手段。

教师应该少讲,使学生有更多时间实践练习。

对于基本的语法介绍,建议学生课外预习,教师课内抽查提问,课上作重点提示。

教师应加强环节教学、引导教学、互动教学引导学生自主学习。

2)任务驱动式开展教学。

传统的教学一般为讲解理论、布置实验、调试结果。

学生上机通常只是“验证性”的得到结果,或者调试不出结果,就更谈不上在有限的时间里建立自己的算法,写出代码,并调试结果。

因此,可以把一个班分成若干个小组开展团队互助教学。

课上老师先提示下一节课要设计的题目,学生在课下先分析算法,编写代码,在下次上课时调试,分组解决遇到的问题。

这样既能活跃气氛,也可以减轻老师辅导的压力。

最后,老师要因势利导,在小组间对同样的课题进行比较,让学生分析各自小组解决问题的不同方式,并适当点评,激发学生学习和思考的热情。

3)设计有趣的实验题目。

在不同知识阶段,老师要用心选择既能阐
述该知识点又有趣的题目。

例如在C 中讲switch 和if …else if 多分支结构时,分别用“买水果”和“工资上税”这种接近生活的题目来让学生了解什么是多分支结构;纵向比较switch 结构有break 语句和没有break 语句的不同,横向比较swich 结构和if …else if 结构的异同。

在讲二重循环时,可以用经典的星型图来分析外循环和内循环的无关和相关性,从而让他们发现规律,找到解决问题的思路。

4)反面示例,巧妙提问。

对同一个知识点,要求老师能从学生的角度看待问题,故意设计陷阱,反面示例,巧妙提问,给学生思索时间。

甚至有时候,老师神秘且夸张的表情,能激发学生解决问题的欲望。

5)强调算法和算法的多样性[5-6],逐步完善程序功能,优化编码。

数据结构+算法=程序。

算法是程序的灵魂。

从着手解决一个问题开始,就要让学生“打草稿”:先画出解决问题的流程图,并逐步优化流程。

同时,老师要尊重学生不同的认知感,开始只要结果一致,则是成功的程序设计。

在学生慢慢的学习领悟中,引导他们分析自己的代码。

老师应该鼓励算法的多样性,提示学生用不同的方法去解决同一个问题。

比如经典的斐波那契(fi bonnaci )数列问题,可以用迭代法实现求解,但在学习数组后,可以用一维数组实现,在学习函数后,又可以用递归函数实现。

在学习了相应知识点后,教师要前后照应,引导学生比较这几种方法的特点。

对程序的功能,不苛求学生一步完善,而是引导学生利用工程的思想,先建立主体框架,然后再逐步增加附属要求。

比如“买水果”问题,买主按界面提示的菜单来选择要买的1号、2号…水果,按常规,程序可以正确显示水果数量和价格,但是,提示学生如果有人“不小心”按了0或不在这个范围的数,程序该做如何反应。

通过老师的引导,学生会考虑到是程序功
教育与教学研究
第 4 期
87
参考文献:
[1] 呼立花. 文科生应加强自然科学教育[EB/OL]. [2011-06-03]. /gb/2004/10/15/zy/3-gdjy/1.htm.[2] Wing JM. Computational Thinking[J]. Communication of the ACM, 2006(49): 33-34.
[3] 王飞跃. 计算思维与计算文化[EB/OL]. [2011-06-03]. /zhuan_jia_ping_shu_1113/20071012/t20071012_258557.shtml. [4] 牟琴, 谭良. 基于计算思维的探究教学模式研究[J]. 中国远程教育, 2011(11): 40-45. [5] 吴文虎. 程序设计中常用的计算思维方式[M]. 北京: 中国铁道出版社, 2009: 129-147. [6]
陈杰华. 程序设计课程中强化计算思维训练的探索实践[J]. 计算机教育, 2009(2): 84-85.
(编辑:孙怡铭)
能完善的问题,继而反复修改、测试他的程序,直到教师挑不出“苛刻”的问题。

5.3 重视课后练习,分阶段进行课程设计。

程序设计往往课时少、内容多,需要学生加强课后练习。

课后练习通常分为电子化作业和纸质作业,老师仔细批阅后,既要认真回复看法和意见,指出学生改进的方向,又要肯定学生有新意的思考。

在不同学习阶段,老师应设计一些有代表性并接近生活的题目,进行小组课程设计比赛,既使学生很好地温习该阶段的知识,也可以从整体
上锻炼学生把握小项目的能力,把程序设计学习变为学生快乐的、有竞争意识的经历。

6 结语
在社会对人才要求日趋复合型的情况下,我们应当传播计算机科学的力量,使计算思维成为常识[3]。

程序设计课程作为计算机科学的载体,通过适当的教学方法培养了文科生的计算思维,提高了他们的科学素养。

同时,教师应认识到大学教育的本质,授之以渔,提高文科生综合素质,使他们成为合格的复合型人才。

参考文献:
[1] 国家中长期教育改革和发展规划纲要(2010—2020年)[EB/OL]. [2011-11-04]. /jrzg/2010-07/29/
content_1667143.htm.
[2] 程建钢, 韩锡斌, 赵淑莉, 等. 清华教育在线网络教育支撑平台的研究与设计[J]. 中国远程教育, 2002, 184(5): 56-60.[3] “THEOL 清华教育在线”网络教学平台(2008版)学生用户使用手册[Z]. 清华大学教育技术研究所, 2008: 5. [4] 王丽霞. 高职 C 语言程序设计实验课教学设计与实践[D]. 济南: 山东师范大学传播学院, 2006.
[5] 苟燕, 刘东升, 张丽萍. 程序设计基础网络自主学习环境的构建研究[J]. 计算机教育, 2010(5): 121-123.[6] 祝爱芬. 基于Moodle 的信息技术与课程整合探究[D]. 济南:山东师范大学传播学院, 2007: 18.[7] 胡俊. 网络环境下学生自主探究学习及其教学模式研究[J]. 电化教育研究, 2005(1): 76-80.[8] 余胜泉, 袁华莉. 探究性主题资源的设计[J]. 中小学信息技术教育, 2005(9): 44-48.[9] 祝涵. 活动式探究性教学模式研究[D]. 辽宁师范大学教育学院, 2007: 30.
(编辑:彭远红)
(上接第83页)。

相关文档
最新文档