程序设计课程是大学计算机教育的核心课程,它既是各类专业技术的应用基础,又是各种实践环节的软件工具,更是课程设计、学科竞赛、毕业设计、创新创业、创客科技等活动的重要平台。编程能力不仅是学习者进一步专业深造的潜力体现,也是创新人才的重要指标。

学习编程包括语言工具、问题求解、实现方法、算法思想、编程抽象、编程范式、设计模式等内容,涉及算法设计、程序实现、计算科学、软件工程、系统开发、学科交叉等方面。本质上,程序是逻辑演绎的形式化表达,反映的是人类对这个世界的数字化理解。因此,提高编程能力可从两点出发:一是以思维训练为中心的编程技能,二是以学科融合为核心的领域知识。

那么,如何学习编程呢?

1.按“双线索”学习程序语言

任何程序语言,包括C语言,都是一个标准化的、具有庞大知识内容的形式语言体系。因此以语言知识为学习线索必然是整体凌乱、抓不住主次,容易迷失学编程的方向。

须知,计算机的基本工作原理决定了计算机问题求解是“计算数据”的过程,编程就是去解决“如何表示数据”和“如何实现计算”。将“数据表示”和“程序实现”作为学习程序语言的两条主线索,抓住语言对此所起的作用,螺旋上升,交叉推进,如下图:

c程序设计包括python c程序设计有什么用_程序语言

这时,你会发现程序语言是服务编程的工具不是目标

2.有“节奏感”推进编程实践

学习程序语言时需要快节奏,学习编程方法和编程技术时需要慢节奏,即使是敲代码也要有节奏,快慢使得学习者“抓大”(设计方法)“放小”(语言知识),得到最大化的“饱满感”编程训练。

学编程需要完成大量练习,称为“刷题”。编程实践过程中的灵感、技术、习惯、动机、反思以及畅想,将会把程序设计的知识逐一转化成技能,形成编程思维。对编程有激情是一件很美妙的事情,但同时也必须培养自己对于编程周边所有事情的热情。在节奏引领下可以更有效地与计算机对话,从而赋予我们将创意变成原型的能力。

这时,你会发现编程是帮助人们与计算机沟通的工具。

3.从“多维度”进行思维训练

计算科学思维是多维度的,例如基于计算技术的普适思维,特点是抽象和构造;基于算法思想的数学思维,特点是形式化和自动化;基于数据技术的逻辑思维,特点是因果关系和相关关系;基于系统结构的应用思维,特点是整体性和结构性。

程序最重要的两个基本要素是算法和数据结构编程的难点不是算法或者数据结构本身,而是如何理解和分解问题,并将其映射到最合适的算法或数据结构上,这个映射本身不是程序要解决的问题,是人脑在思维,是构造性思维、逆向思维、猜想与试验、设计思维等全脑思维的艺术。

这时,你会发现编程是思维的体操。

4.用“系统观”拓展编程视野

衡量编程有两个重要指标:编程累计行数(TLOC)和单个程序行数(SLOC)。以解题为主的编程训练能提高TLOC,但却止步于SLOC。即使将小规模、数学型问题做成百上千,TLOC指标上去了,但SLOC却不见长。一般的,SLOC小于300行时很难让人体会到“开发的感觉”,这时编程局限在“数学工具”视野里。显然,单纯的思维训练和仅仅摄取知识信息无法形成系统观。

实际上,计算方法(数值计算、非数值计算)仅是程序设计方法的一种,程序方法学中还有诸如操作系统、人机界面、图形图像、多媒体、网络通信、数据库、硬件接口等技术领域,每个领域都有独特的编程技术和精巧的解决方法。通过引入高级编程技术的学习,融合各类学科专业的领域知识,拓展求解问题的专业覆盖面、问题复杂度和数量,可以改变编程的广度、深度和力度,形成编程核心模式及对它们不断运用所形成的思维方式的系统观,这是优秀程序员最重要的素质。

这时,你会发现编程是全方位的创新实践。

5.以“跨领域”塑造核心价值

掌握知识和能力是大学学业的价值,但仅仅是这些就可能掩盖了大学学业的核心价值和潜质,即通过知识内化为思维、通过能力提升到创造,最终拥有终身享用不尽的、可持续发展的知识发现、知识获取、知识建构的科学素养。

学会了编程就等于掌握了信息时代的听说读写能力(阅读理解),学习编程形成的心理技能对于我们生活的其他方面都极其有用。通过跨学科、跨领域的延伸,编程将提高问题求解的能力,提升对世界的理解力和改善解决问题的决策能力,建立起批判性思维、系统性思维、创造性思维。通过增加挑战式内容,强化在专业学科研究上表现出很强的发展潜力,形成学业核心价值。

这时,你会发现编程教会人们如何思考

归纳起来,就是“技能提升、思维训练、系统培养、价值塑造”。

DEVCPP:

多行注释:Ctrl+/
取消多行注释:Ctrl+,(中/英状态都行)
多行缩进:先选择要缩进的多行,再按tab键
取消多行缩进:先选择要取消缩进的多行,再 按shift+tab键