论文部分内容阅读
摘要:程序设计是全国高校普遍设立的一门计算机基础课。传统的教学过于重视语法的讲解,忽略了掌握计算思维这个本质内涵。为了强调思想在程序设计学习中的重要性,对程序设计的思想建设进行了深入分析,提出培养计算思维才是程序设计课程的本质。在此基础上,指出实践才是一门偏重技能训练课程的基本学习方法,并提出了几种具体的实践技巧,帮助学生掌握程序设计课程内容,提炼计算思维。
关键词:程序设计;计算思维;技能;实践
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)10-0154-02
一、培养计算思维
2006年,周以真教授提出了计算思维的概念[1],为计算机的学习和教育引领了新的方向,并使计算机教育界从思想上发生新的变革。计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐述成一个知道怎样解决的问题,提出了面向问题解决的一系列观点和方法。
计算思维的特点是概念化,而不是程序化,强调思想在程序设计中的核心地位。苹果的创始人乔布斯说:“在这个国家的每个人都应该学会怎样用计算机编程,因为它教会你怎样思考。”这句话的第一个观点指出程序设计是未来社会的一个普遍性生存本领,所以程序设计课程将会继高等数学、大学物理、大学英语之后,成为高等学校教育中必不可少的一门基础课;而第二个观点更加关键,它指出编程最主要是要培养一种新的思维方式,即计算思维。计算思维是通过算法的构造和实现来解决给定问题的一种思维方式,是程序设计的核心思想。科技进步日新月异,各种新的程序设计语言、各种新技术纷繁而至,在这样一种发展态势下,任何的语法知识都是具有片面性和局部性。这些知识在学生的不断成长中,都会逐渐被淘汰、被遗忘。只有从中总结出来的思想才会在大浪淘沙中存留下来,为人生道路的成长做出贡献。大学教师自身都是从象牙塔的青春故事中漫步而来。在经过十几年的“被教育”之后,蓦然回首,已经记不住那些曾经学过、堪称经典的公式了,但是这些教育所形成的思维方式已经完全融入到了日常的行为生活中。人们常说的文科生思维、理科生思维就是这种形式的典型代表。因此思想的传承才是一门课程的本质。
二、程序设计对学生的思想培养
程序设计都会培养学生哪些思想呢?首先是试错思想。程序很难一次性编好,越大的程序越是如此。有经验的程序员都知道,写程序易,调试错误难,几乎所有计算机工程项目都是在不断的改正中达到最后的成功。那么面对一个没有充分把握的事情,是否应该望而生畏、畏葸不前呢?答案显然是否定的。微软的Windows操作系统存在诸多的攻击漏洞,经常需要打各种补丁程序,其安全性和稳定性上远不如Unix系统,后者在服务器、工作站等需要超强稳定性的应用领域拥有绝对的市场占有率。但Windows系统在桌面用户市场上所向披靡,归根结底就是Windows系统敢于创新、易于应用,在不断的错误尝试中不断稳定,并变得强大。这是试错思想的一个典型体现。将这种思想进行推广,要求学生除了程序设计以外,在日常生活中也要敢于尝试、敢于犯错误,这样才是真正把一门课的思想理念融入到学生的骨髓中,反映了教育的内涵。
其次,要学会借鉴已有的优秀成果。程序设计课程的学习有一个重要特征,学生一定要先学会“抄”。很多课程都要求学生要自力更生,要独立完成作业和练习。但是程序设计中存在很多经典和优秀的算法和模式,对这些内容的掌握,不仅可以帮助学生迅速了解课程内容,而且为学生提供了如何学习、怎样学习的思路和方法。掌握这些经典算法的精髓,能够在恰当的场合进行模仿和修正,能够站在巨人的肩膀上,使编程能力迅速上升一个台阶。
最后,任何工作都应该精益求精。程序的精髓不在语法,而在于算法。算法的灵魂在于效率,也就是解决问题的速度。一个问题能够有很多种实现算法,但实现效率千差万别。这虽然与计算机的硬件设备特征有关,但更主要的是思路的设计。计算机没有思想,它的工作过程只是一个简单的运行程序的过程,因此必须由人来进行问题分析。计算思维主要就是通过人类的复杂思维,找出一个适用于计算机的特点、能将计算机的性能和潜力进行最大化发挥的方法,让计算机帮助人类找到问题的解。因此优化的思想对于程序设计非常重要[2]。
除了以上提到的三点,其实很多计算机思想已经广为普及,深入到大众的生活中。例如当平板电脑、智能手机发生故障时,用户的第一反应是重启,并且往往能解决问题。这是因为计算机为了降低硬件设备之间的速度差异性,需要建立缓冲区,当缓冲内容不同步时,就需要通过重启来建立新的缓冲。总之,程序设计中涉及到的很多思想方法都来源于生活,同时也反作用于生活。教师在授课过程中,总结、提炼这些思维方式,并强调计算思维的培养,才能真正发挥程序设计课程的作用。
三、实践是学会程序设计的基本方法
学生要想学好程序设计,必须经过大量实践,实践教学对于程序设计至关重要[3]。程序设计课程更偏向于学习技能,而不是学习知识。知识与技能的最大区别在于,知识是可以直接进行消化理解的信息,而技能必须要经过大量实践才能掌握。例如学外语、骑自行车和游泳等都属于技能。如何才能学会游泳呢?最佳方法就是先下水。因此实践是技能学习的基本方法。通过这些众所周知的技能学习,可以得出以下结论:(1)技能没经过练习绝对学不会,甚至仅仅为了应对考试都做不到。练习就要花费时间,只有在实践中不断探索和总结,才能了解程序设计的思想核心。(2)一种技能只要经过大量实践,每个人都能学会,这是技能学习积极的方面,只要认识到了程序设计是一种技能,就不会对学习程序设计丧失信心。
四、学习程序设计的技巧
1.高效的课堂学习。计算机给人们生活带来的最大改变是提高了效率,那么要求学生在学习时也要抓住效率这个特征。教师在上课内容上要精挑细选,相比于学生自己看书,要有更强的针对性,尽量把语法知识浓缩在具有代表性和典型性的少量教学实例中,使学生能够快速进入学习轨道,以解决问题为主线进行知识学习[4]。此外,课堂上一定要布置一些随堂练习,并要求学生必须亲自实现。这个练习的目的不在于结果的正确性,而是让学生了解自己的学习状况和掌握程度,并针对弱点进行知识补全,是顺利学习程序设计课程的必要环节。 2.把握整体,不要过于纠缠细节。要求学生在进行程序设计时要从总到分,逐步细化。程序设计首先要理解问题,形成思路;然后根据问题建立模型,挑选解决问题的算法;最后才是编程实现。代码只是思想的最终表现形式,是在思想的指导下完成的。因此编程前应先写框架,然后在目标的指引下,有序完成整个代码。只有这样在遇到细节问题时,才不会迷失。学习程序设计不是学习每个语法的准确定义,而是掌握思想,综合应用,提高解决问题的能力,不要过于纠错细节。就像人类不能准确解释每个字的具体定义,但是总能听懂每句话所表达的含义。只有掌握了这个特点,才能跳出语法的迷惑,掌握程序设计的本质内涵。不纠缠细节并不代表细节知识不需要掌握。计算机是精确的科学,一个标点符号的错误都会决定整个程序的成败。只有熟练掌握了基础知识,才能做到综合应用,才能真正地注入自己的思想。
3.要学会自我学习。教育的精髓是“授人以渔”,培养学生终身学习的能力是程序设计的一个重要要求。计算机学科在摩尔定律的指引下高速发展,任何新知识都快速地变成了旧知识。只有掌握学习方法,才能紧跟时代的步伐。在“互联网 ”的时代里,提供了众多的自我学习方法。网络搜索引擎可以将全世界的资源汇集到自己身边。慕课、SPOC、创课等一系列崭新教学方式的出现,都可以帮助提升自我学习的质量。以方法为舟进行自我学习,才能尽快脱离老师的指导,形成自己解决问题的思路和方法,形成独立的学习模式。
五、总结
程序设计是未来社会人人都需要掌握的一门基础技能。本文强调培养计算思维才是学习程序的本质内容,并深入探讨了试错思想、借鉴思想和优化思想等为代表的,在程序设计过程中建立的典型思想。并进一步强调在程序设计过程中,实践比理论学习更重要,本文总结的几种实践技巧着重培养学生解决问题的能力和终身学习的能力,能够指引学生更好地掌握计算思维。
参考文献:
[1]Jeannette M Wing. Computational Thinking[J].Communicationsof the ACM,2006,49(3):33-35.
[2]陈道蓄,陶先平,钱柱中,赵建华,吴小兵,程龚.重组计算机专业基础课程,促进学生能力培养[J].计算机教育,2012,23:2-5.
[3]肖捷,肖海容.C语言程序设计实践教学方案研究与设计[J].东莞理工学院学报,2012,(05):105-109.
[4]卢立蕾,吴淑坤,商艳红.优化程序设计课堂教学的探讨[J].计算机教育,2011,(04):95-97.
关键词:程序设计;计算思维;技能;实践
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)10-0154-02
一、培养计算思维
2006年,周以真教授提出了计算思维的概念[1],为计算机的学习和教育引领了新的方向,并使计算机教育界从思想上发生新的变革。计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐述成一个知道怎样解决的问题,提出了面向问题解决的一系列观点和方法。
计算思维的特点是概念化,而不是程序化,强调思想在程序设计中的核心地位。苹果的创始人乔布斯说:“在这个国家的每个人都应该学会怎样用计算机编程,因为它教会你怎样思考。”这句话的第一个观点指出程序设计是未来社会的一个普遍性生存本领,所以程序设计课程将会继高等数学、大学物理、大学英语之后,成为高等学校教育中必不可少的一门基础课;而第二个观点更加关键,它指出编程最主要是要培养一种新的思维方式,即计算思维。计算思维是通过算法的构造和实现来解决给定问题的一种思维方式,是程序设计的核心思想。科技进步日新月异,各种新的程序设计语言、各种新技术纷繁而至,在这样一种发展态势下,任何的语法知识都是具有片面性和局部性。这些知识在学生的不断成长中,都会逐渐被淘汰、被遗忘。只有从中总结出来的思想才会在大浪淘沙中存留下来,为人生道路的成长做出贡献。大学教师自身都是从象牙塔的青春故事中漫步而来。在经过十几年的“被教育”之后,蓦然回首,已经记不住那些曾经学过、堪称经典的公式了,但是这些教育所形成的思维方式已经完全融入到了日常的行为生活中。人们常说的文科生思维、理科生思维就是这种形式的典型代表。因此思想的传承才是一门课程的本质。
二、程序设计对学生的思想培养
程序设计都会培养学生哪些思想呢?首先是试错思想。程序很难一次性编好,越大的程序越是如此。有经验的程序员都知道,写程序易,调试错误难,几乎所有计算机工程项目都是在不断的改正中达到最后的成功。那么面对一个没有充分把握的事情,是否应该望而生畏、畏葸不前呢?答案显然是否定的。微软的Windows操作系统存在诸多的攻击漏洞,经常需要打各种补丁程序,其安全性和稳定性上远不如Unix系统,后者在服务器、工作站等需要超强稳定性的应用领域拥有绝对的市场占有率。但Windows系统在桌面用户市场上所向披靡,归根结底就是Windows系统敢于创新、易于应用,在不断的错误尝试中不断稳定,并变得强大。这是试错思想的一个典型体现。将这种思想进行推广,要求学生除了程序设计以外,在日常生活中也要敢于尝试、敢于犯错误,这样才是真正把一门课的思想理念融入到学生的骨髓中,反映了教育的内涵。
其次,要学会借鉴已有的优秀成果。程序设计课程的学习有一个重要特征,学生一定要先学会“抄”。很多课程都要求学生要自力更生,要独立完成作业和练习。但是程序设计中存在很多经典和优秀的算法和模式,对这些内容的掌握,不仅可以帮助学生迅速了解课程内容,而且为学生提供了如何学习、怎样学习的思路和方法。掌握这些经典算法的精髓,能够在恰当的场合进行模仿和修正,能够站在巨人的肩膀上,使编程能力迅速上升一个台阶。
最后,任何工作都应该精益求精。程序的精髓不在语法,而在于算法。算法的灵魂在于效率,也就是解决问题的速度。一个问题能够有很多种实现算法,但实现效率千差万别。这虽然与计算机的硬件设备特征有关,但更主要的是思路的设计。计算机没有思想,它的工作过程只是一个简单的运行程序的过程,因此必须由人来进行问题分析。计算思维主要就是通过人类的复杂思维,找出一个适用于计算机的特点、能将计算机的性能和潜力进行最大化发挥的方法,让计算机帮助人类找到问题的解。因此优化的思想对于程序设计非常重要[2]。
除了以上提到的三点,其实很多计算机思想已经广为普及,深入到大众的生活中。例如当平板电脑、智能手机发生故障时,用户的第一反应是重启,并且往往能解决问题。这是因为计算机为了降低硬件设备之间的速度差异性,需要建立缓冲区,当缓冲内容不同步时,就需要通过重启来建立新的缓冲。总之,程序设计中涉及到的很多思想方法都来源于生活,同时也反作用于生活。教师在授课过程中,总结、提炼这些思维方式,并强调计算思维的培养,才能真正发挥程序设计课程的作用。
三、实践是学会程序设计的基本方法
学生要想学好程序设计,必须经过大量实践,实践教学对于程序设计至关重要[3]。程序设计课程更偏向于学习技能,而不是学习知识。知识与技能的最大区别在于,知识是可以直接进行消化理解的信息,而技能必须要经过大量实践才能掌握。例如学外语、骑自行车和游泳等都属于技能。如何才能学会游泳呢?最佳方法就是先下水。因此实践是技能学习的基本方法。通过这些众所周知的技能学习,可以得出以下结论:(1)技能没经过练习绝对学不会,甚至仅仅为了应对考试都做不到。练习就要花费时间,只有在实践中不断探索和总结,才能了解程序设计的思想核心。(2)一种技能只要经过大量实践,每个人都能学会,这是技能学习积极的方面,只要认识到了程序设计是一种技能,就不会对学习程序设计丧失信心。
四、学习程序设计的技巧
1.高效的课堂学习。计算机给人们生活带来的最大改变是提高了效率,那么要求学生在学习时也要抓住效率这个特征。教师在上课内容上要精挑细选,相比于学生自己看书,要有更强的针对性,尽量把语法知识浓缩在具有代表性和典型性的少量教学实例中,使学生能够快速进入学习轨道,以解决问题为主线进行知识学习[4]。此外,课堂上一定要布置一些随堂练习,并要求学生必须亲自实现。这个练习的目的不在于结果的正确性,而是让学生了解自己的学习状况和掌握程度,并针对弱点进行知识补全,是顺利学习程序设计课程的必要环节。 2.把握整体,不要过于纠缠细节。要求学生在进行程序设计时要从总到分,逐步细化。程序设计首先要理解问题,形成思路;然后根据问题建立模型,挑选解决问题的算法;最后才是编程实现。代码只是思想的最终表现形式,是在思想的指导下完成的。因此编程前应先写框架,然后在目标的指引下,有序完成整个代码。只有这样在遇到细节问题时,才不会迷失。学习程序设计不是学习每个语法的准确定义,而是掌握思想,综合应用,提高解决问题的能力,不要过于纠错细节。就像人类不能准确解释每个字的具体定义,但是总能听懂每句话所表达的含义。只有掌握了这个特点,才能跳出语法的迷惑,掌握程序设计的本质内涵。不纠缠细节并不代表细节知识不需要掌握。计算机是精确的科学,一个标点符号的错误都会决定整个程序的成败。只有熟练掌握了基础知识,才能做到综合应用,才能真正地注入自己的思想。
3.要学会自我学习。教育的精髓是“授人以渔”,培养学生终身学习的能力是程序设计的一个重要要求。计算机学科在摩尔定律的指引下高速发展,任何新知识都快速地变成了旧知识。只有掌握学习方法,才能紧跟时代的步伐。在“互联网 ”的时代里,提供了众多的自我学习方法。网络搜索引擎可以将全世界的资源汇集到自己身边。慕课、SPOC、创课等一系列崭新教学方式的出现,都可以帮助提升自我学习的质量。以方法为舟进行自我学习,才能尽快脱离老师的指导,形成自己解决问题的思路和方法,形成独立的学习模式。
五、总结
程序设计是未来社会人人都需要掌握的一门基础技能。本文强调培养计算思维才是学习程序的本质内容,并深入探讨了试错思想、借鉴思想和优化思想等为代表的,在程序设计过程中建立的典型思想。并进一步强调在程序设计过程中,实践比理论学习更重要,本文总结的几种实践技巧着重培养学生解决问题的能力和终身学习的能力,能够指引学生更好地掌握计算思维。
参考文献:
[1]Jeannette M Wing. Computational Thinking[J].Communicationsof the ACM,2006,49(3):33-35.
[2]陈道蓄,陶先平,钱柱中,赵建华,吴小兵,程龚.重组计算机专业基础课程,促进学生能力培养[J].计算机教育,2012,23:2-5.
[3]肖捷,肖海容.C语言程序设计实践教学方案研究与设计[J].东莞理工学院学报,2012,(05):105-109.
[4]卢立蕾,吴淑坤,商艳红.优化程序设计课堂教学的探讨[J].计算机教育,2011,(04):95-97.