在如今这样一个科技高速发展的时代,各行各业已经离不开程序设计,少不了编程。对于中小学生而言,了解程序设计、掌握编程、提升思维、运用编程工具分析和解决问题已经是一件越来越重要的事情了。
近年来,中国计算机学会每年都会举行“全国青少年信息学奥林匹克竞赛(NOI)”,旨在向青少年普及计算机科学知识,给学校的信息技术教育课程提供新的内容和思路,给那些有才华的学生提供相互交流和学习的机会,通过竞赛和相关的活动培养和选拔优秀计算机人才。
目前,市面上用于学习C++的教材特别多,但大部分更适合编程人员、大学生或具有扎实基础的中学生。我一直认为“少儿编程绝不是成人编程教育的缩减版”,更不是挑选一些简单的知识和技巧给中小学生,而是需要精心筛选课程内容,并且要做到以下几点:
1.激发学习兴趣:案例挑选、课程设计都需具有趣味性,让兴趣来做最好的老师。例如会跳舞的机器人、可以关机的黑客技术等。好奇心可以激发大脑产生θ波,让学习质量大大提升。
2.满足内在成就感:学习有时候真的充满挑战,需要不断地探索未知,重复地刷题解题。那么应该如何让孩子坚持呢?我构建了120%难度梯度理论,就是为了既满足孩子的挑战欲,又满足他们的成就感。
如果难度梯度低于100%,学习者会觉得太简单,学习没意义,因为自己都会了。但是如果难度梯度超过120%,学习者又会感觉难度太大,这是一座无法逾越的大山。本书精心挑选了100多个案例,经过长时间的打磨和调整,将整个学习过程的难度梯度控制在100%~120%,目的是让学习者始终保持对学习的热情和兴趣。
3.提升思考质量:我常常告诫学生们:“知识不够,思维来凑。”因为知识是无穷无尽的,每门语言都有数不清的函数和说不尽的模块。如果要等所有知识都掌握到位才能解决问题,那什么时候才是个头呀。在现有的知识范围内解决问题,关键在于有良好的思考能力,运用这种思考能力再次回溯知识,总结经验。本书中的许多问题都先用已学知识来思考如何解决,然后探索新的解决方案。
4.掌握学习方法:从Scratch、Python到C++,我一直强调学习方法,主张知识不是老师灌输的,而是我们共同探索的。遇到看不懂的错误和程序时,不妨先尝试“翻译助力学习法”,或许瞬间就会豁然开朗;遇到相似的内容,运用“对比学习”总结归纳相同之处,找出差异,再通过“测试总结”进行自我学习;学会应用“图解法”,将抽象的问题具象化。信息的发达对于我们探索出属于自己的自主学习方法至关重要。
按照这样的路径学习:记录思考、怎么想的、为什么呢、寻找问题、明确问题、描述问题、分析问题、得出解决方法、尝试解决方法、验证解决方法、总结收获。
学习编程的一个特别大的好处就是可以不断地进行探索和尝试。
5.培养思维力:将各种思维方式融入学习和思考过程中:描述性思维、比较性思维、类比性思维、分类性思维、整体分析思维、因果关系思维、发散性思维、程序性思维、计算性思维、批判性思维……
虽然书中并未逐一分析和讲解这些思维方式,但在视频讲解和分析中会将它们融入其中。
学习C++编程不仅仅是为了参加竞赛,应该在学习过程中兼顾以上5个方面,更确切地说应该是做到以上5个方面比学习知识更重要。
知识宛如浩瀚的海洋,我们需要学会游泳的技能,这样才能在知识的海洋中畅游。因此,我编写了这本学习教材,适合广大对C++有热情但又被其“难度”所阻挡的中小学生。希望通过学习本书,读者不仅能够掌握C++编程的基础知识,还能提升自己的逻辑思维和算法思考能力。
读者还可以扫描下面的二维码获取本书的资源文件。
如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“小学生C++创意编程:视频教学版”。
编者,于杭州
2023年12月