论文部分内容阅读
摘要:本文通过分析非计算机专业程序设计传统教学存在的弊端,提出融入计算思维能力培养的重要性,结合笔者多年的教学经验,从教学内容的组织、理论和实验教学、考核方式的体现等环节进行探讨,旨在培养学生的计算思维能力,促进学生以计算机科学的概念和方法对问题进行求解,激发学生的学习兴趣和编程欲望,达到教学改革的目的。
关键词:计算思维;程序设计;教学方法
高校为非计算机专业的学生开设计算机基础课程,目的是让他们掌握一定的计算机基本技能并能运用计算机工具获取知识或解决实际问题提供一个入门指导。C语言程序设计是非计算机专业计算机基础类课程的主要课程,既是影响最大也是难度最大和要求最高的课程。该课程一般安排在大一的第二学期,如何上好这门课,对学生今后的学习和工作起着不可忽视的作用。
一、 计算思维
美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette MWing)教授于2006年首次在美国计算机权威期刊Communications of the ACM上提出“计算思维”(Computational Thinking):计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动。按周以真教授的理解,计算思维是建立在计算过程的理论上的,但是又超越了计算机本身。它是人的思维,而不是机器思维,计算思维最本质的内容是抽象(Abstraction)和自动化(Automation),是每个人的基本技能,而不仅仅是计算机科学家。
计算思维是利用启发式推理来寻求解答,它强调的是如何求解问题及其操作过程和机器实现方法。高校非计算机专业的计算机基础类课程,重点加强程序设计类课程的建设,除了教会学生如何使用一门语言,更重要的是提高学生利用计算机思维来解决问题的能力,在程序设计教学中,融入计算思维能力的培养,实现单纯程序语言的学习到利用计算机科学的概念和方法对问题进行求解的能力培养。
二、 非计算机专业C语言程序设计教学现状
1学生基础薄弱
作为新升格的本科院校,学生生源整体基础薄弱。尤其对于非计算机专业的学生来说,没有系统的基础知识背景,感觉程序设计这门课程难懂、难学,即使把语法格式和语句功能背下来了,也难以进行编程。
2传统教学存在弊端
传统教学很容易陷入程序语言为中心的误区,以传授程序设计的语法和语义为主,在以教师为中心的灌输式教学虽然能保证教学内容的系统性和连贯性,但是学生被动地听和记忆,难以在课堂上体会到程序的问题分析、程序思维和构造的方法。学生学习主动性差,教学效果也可想而知。
3学生学习目标不明确
非计算机专业学生学习程序设计,纯粹是为了考试而学习,没有把计算机分析和解决问题的基本过程和思路当作学习的目的,也没有真正理解程序设计课程的内容。
三、 基于计算思维的培养途径
1教学内容的重组
教学过程中,为了突出算法和程序的整体框架,笔者在教学的过程中进行内容的重组。不用刻意去讲解某一个语法,教学过程以“程序设计为主,语法规则为辅”,结合一些具体的有意义的案例,分析编程的算法思想,涉及的语法穿插式地讲。这样保证了教学内容始终贯穿于教学过程,逐步培养了学生用计算机解决实际问题的能力,为以后其他专业的学习和工作实践打下良好基础。为此笔者自编了教材《C语言程序设计教程》和配套习题《C语言程序设计教程习题解答与上机指导》,主教材体现了“应用性”,由简到难、由浅入深,把算法和语法紧密结合在一起;习题为课堂的拓展做了有力补充,为学生从会编写简单的程序到使用算法解决实际问题提供了借鉴。
2教学过程中的培养
笔者在教学过程中精心准备一些实例,不一定按教材顺序讲解语法,以实例贯穿教学过程,适时呈现一些有趣的或上一届学生的程序。具体编写程序的引导过程中,尽量从学生角度出发,先把最能体现求解问题算法思想的代码写出来,然后再补充其他部分的代码,让学生的思路跟随教师的笔尖逐步完善,
并在举一反三的教学过程中不知不觉地感受到算法在程序中的灵魂,如此循环,学生在轻松的互动学习中提高解决问题的能力,并能养成良好的编程风格。比如:求阶乘的程序。
(1)建立程序的框架:
(2)在函数体内填充循环语句:while(i (3)补充变量的声明和初始化:int n,i=1,sum=1。
(4)修改、调试、运行,并对第(2)步进行更改:用for或do~ while语句来实现。
(5)对n的取值提出问题:当n<0时;当n=0或1时;当n>1时。
(6)完善程序再运行。
(7)思考并完成程序:1! 2! 3! … n!
每一个问题的求解都可以有不同的算法和写法,通过由简单到复杂、并趁热打铁给出几个相似难度和升华的题目,积累解题和调试的经验。
3实验课教学思维培养
实验课的效果直接影响着程序设计课程的教学效果,实验课中学生不仅要学会编写代码的方法,还要学会调试程序的能力。为了提高实验课效率,我们课题组做了不同尝试,大体达成了共识:初级阶段,以填空式方式让学生完善程序并运行代码,写出实验结果;中级阶段:给出问题,寻求多种编程方式、方法;高级阶段:分组完成一些有意义的小程序,并进行交流验收。经过不同阶段的训练,旨在让学生加深理解程序设计学习的目的是解决实际问题,并在实验过程中体会到合作的力量,提升交流能力。
4考核方式的体现
近几年来,我们学校C语言课程的考试,不使用纸质考试方式,采取了在线考试系统,这种考核方式不仅减轻教师出题和改卷的繁重工作量,更重要的是激发了学生学习动力,在课程的第一次课,我们就让学生了解课程考核的方式,在线考试系统也分为期中和期末,另外还有考前测试模块,学生课程总成绩由期中,期末和平时成绩按2∶7∶1的比例构成。
顺应计算机教育改革之风,作为应用型地方本科院校,我们进行了有益的尝试,取得了一定的成效。近年来,非计算机专业学生在全国计算机二级考试中通过率逐年上升,并在挑战“蓝桥杯”全国软件设计大赛中,获得一等奖的好成绩。基于计算思维的程序设计课程教学不仅提升了学生的计算机应用能力,而且对于提升学生的专业能力具有重要意义。
参考文献:
何钦铭,陆汉权,冯博琴计算机基础教学的核心任务是计算思维能力的培养——《九校联盟(C9)计算机基础教学发展战略联合声明》解读中国大学教学,2010(09).
鲍洁新时期大学计算机教育改革前沿动向——第八届全国高等学校计算机教育改革与发展高峰论坛(计算机基础教育部分)综述计算机教育, 2013(07).
关键词:计算思维;程序设计;教学方法
高校为非计算机专业的学生开设计算机基础课程,目的是让他们掌握一定的计算机基本技能并能运用计算机工具获取知识或解决实际问题提供一个入门指导。C语言程序设计是非计算机专业计算机基础类课程的主要课程,既是影响最大也是难度最大和要求最高的课程。该课程一般安排在大一的第二学期,如何上好这门课,对学生今后的学习和工作起着不可忽视的作用。
一、 计算思维
美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette MWing)教授于2006年首次在美国计算机权威期刊Communications of the ACM上提出“计算思维”(Computational Thinking):计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动。按周以真教授的理解,计算思维是建立在计算过程的理论上的,但是又超越了计算机本身。它是人的思维,而不是机器思维,计算思维最本质的内容是抽象(Abstraction)和自动化(Automation),是每个人的基本技能,而不仅仅是计算机科学家。
计算思维是利用启发式推理来寻求解答,它强调的是如何求解问题及其操作过程和机器实现方法。高校非计算机专业的计算机基础类课程,重点加强程序设计类课程的建设,除了教会学生如何使用一门语言,更重要的是提高学生利用计算机思维来解决问题的能力,在程序设计教学中,融入计算思维能力的培养,实现单纯程序语言的学习到利用计算机科学的概念和方法对问题进行求解的能力培养。
二、 非计算机专业C语言程序设计教学现状
1学生基础薄弱
作为新升格的本科院校,学生生源整体基础薄弱。尤其对于非计算机专业的学生来说,没有系统的基础知识背景,感觉程序设计这门课程难懂、难学,即使把语法格式和语句功能背下来了,也难以进行编程。
2传统教学存在弊端
传统教学很容易陷入程序语言为中心的误区,以传授程序设计的语法和语义为主,在以教师为中心的灌输式教学虽然能保证教学内容的系统性和连贯性,但是学生被动地听和记忆,难以在课堂上体会到程序的问题分析、程序思维和构造的方法。学生学习主动性差,教学效果也可想而知。
3学生学习目标不明确
非计算机专业学生学习程序设计,纯粹是为了考试而学习,没有把计算机分析和解决问题的基本过程和思路当作学习的目的,也没有真正理解程序设计课程的内容。
三、 基于计算思维的培养途径
1教学内容的重组
教学过程中,为了突出算法和程序的整体框架,笔者在教学的过程中进行内容的重组。不用刻意去讲解某一个语法,教学过程以“程序设计为主,语法规则为辅”,结合一些具体的有意义的案例,分析编程的算法思想,涉及的语法穿插式地讲。这样保证了教学内容始终贯穿于教学过程,逐步培养了学生用计算机解决实际问题的能力,为以后其他专业的学习和工作实践打下良好基础。为此笔者自编了教材《C语言程序设计教程》和配套习题《C语言程序设计教程习题解答与上机指导》,主教材体现了“应用性”,由简到难、由浅入深,把算法和语法紧密结合在一起;习题为课堂的拓展做了有力补充,为学生从会编写简单的程序到使用算法解决实际问题提供了借鉴。
2教学过程中的培养
笔者在教学过程中精心准备一些实例,不一定按教材顺序讲解语法,以实例贯穿教学过程,适时呈现一些有趣的或上一届学生的程序。具体编写程序的引导过程中,尽量从学生角度出发,先把最能体现求解问题算法思想的代码写出来,然后再补充其他部分的代码,让学生的思路跟随教师的笔尖逐步完善,
并在举一反三的教学过程中不知不觉地感受到算法在程序中的灵魂,如此循环,学生在轻松的互动学习中提高解决问题的能力,并能养成良好的编程风格。比如:求阶乘的程序。
(1)建立程序的框架:
(2)在函数体内填充循环语句:while(i
(4)修改、调试、运行,并对第(2)步进行更改:用for或do~ while语句来实现。
(5)对n的取值提出问题:当n<0时;当n=0或1时;当n>1时。
(6)完善程序再运行。
(7)思考并完成程序:1! 2! 3! … n!
每一个问题的求解都可以有不同的算法和写法,通过由简单到复杂、并趁热打铁给出几个相似难度和升华的题目,积累解题和调试的经验。
3实验课教学思维培养
实验课的效果直接影响着程序设计课程的教学效果,实验课中学生不仅要学会编写代码的方法,还要学会调试程序的能力。为了提高实验课效率,我们课题组做了不同尝试,大体达成了共识:初级阶段,以填空式方式让学生完善程序并运行代码,写出实验结果;中级阶段:给出问题,寻求多种编程方式、方法;高级阶段:分组完成一些有意义的小程序,并进行交流验收。经过不同阶段的训练,旨在让学生加深理解程序设计学习的目的是解决实际问题,并在实验过程中体会到合作的力量,提升交流能力。
4考核方式的体现
近几年来,我们学校C语言课程的考试,不使用纸质考试方式,采取了在线考试系统,这种考核方式不仅减轻教师出题和改卷的繁重工作量,更重要的是激发了学生学习动力,在课程的第一次课,我们就让学生了解课程考核的方式,在线考试系统也分为期中和期末,另外还有考前测试模块,学生课程总成绩由期中,期末和平时成绩按2∶7∶1的比例构成。
顺应计算机教育改革之风,作为应用型地方本科院校,我们进行了有益的尝试,取得了一定的成效。近年来,非计算机专业学生在全国计算机二级考试中通过率逐年上升,并在挑战“蓝桥杯”全国软件设计大赛中,获得一等奖的好成绩。基于计算思维的程序设计课程教学不仅提升了学生的计算机应用能力,而且对于提升学生的专业能力具有重要意义。
参考文献:
何钦铭,陆汉权,冯博琴计算机基础教学的核心任务是计算思维能力的培养——《九校联盟(C9)计算机基础教学发展战略联合声明》解读中国大学教学,2010(09).
鲍洁新时期大学计算机教育改革前沿动向——第八届全国高等学校计算机教育改革与发展高峰论坛(计算机基础教育部分)综述计算机教育, 2013(07).