这门课程适用于那些拥有很少或没有编程经验的学生,它致力于使学生理解计算机在解决问题中的作用,所用的编程语言为Python,共24个课时
计算思维。能够编写短小的代码
阅读代码。能够读懂他人的代码
理解计算。认识计算的能力与局限
具体应用。将科学的问题转化为具体的计算过程
知识分为两大类:陈述性知识以及程序性知识
陈述性知识,可以简单的理解为事实。
∵ √X = Y
∴ Y2 = X(当X ≥0 )
虽然上述描述是正确的,但是却无法帮助你计算一个数的平方根,只能验证一个数是否是另一个数的平方根。也就是说,陈述性知识通常用于检查。
程序性知识,可以简单的理解为一系列解题步骤。比如,要推测一个数大致的平方根,可以按照以下固定步骤来操作
else G = (G+X/G)/2
repeat
程序性知识是我们这门课的学习目标
早期的计算机,只能解决特定的问题,比如Turing Bomb,用于破解德国的秘密代码
现在考虑的是如何构建计算机程序来实现不同的计算过程,比如3.2中的开根号问题
传统的烹饪只需要一些基本的原料以及一个好的厨师。同样的,杰出的程序猿只需要一些基本的指令就能够创造出不同的程序。对此,图灵曾经提出六种基本的指令类型,只需要这六种类型,就可以创造出不同的程序。比如,可以用C语言实现的程序,也可以用Fortran语言来实现,称作“图灵兼容”。
为了实现我们所设计的菜谱,就需要学习具体的编程语言。 可以从三个基本的方面比较不同的编程语言
高级 VS 低级
大众 VS 特定
编译 VS 解释
越低级的语言越接近底层,高级的语言意味着拥有更多的基本原型,比如,高级语言中,平方根可能作为基本的类型使用
特定的语言可能有专门的用途,比如Matlab主要面向于科学计算
编译性语言先将源码编译成目标代码,然后再运行,这样做有利于发现bug,解释型语言直接通过解释器来逐条读取指令,比如计算器,直接显示我们想要的结果
Python语言属于高级的、大众的、解释型语言
语法定义了语言应该如何表示,比如下面这句话就不符合中文的语法规则,因为缺少了谓语
我们去篮球场篮球
语义分为两部分:Static和full语义
Static语义定义了那些语言是有意义的,比如下面这句话就不符合Static语义
我的桌子是迈克
也就是说,符合语法的不一定符合Static语义。
而full语义则定义了这段代码的实际意义,即运行效果
对于Python来说,它会提供语法上的帮助,也能够在运行过程中捕捉一些Static语义上的错误,但是无法在full语义上提供多少帮助。也就是说,有时候程序仍然会返回一个结果,尽管这个结果不是正确的。
因此,我们需要形成良好的编程风格
计算机科学及编程导论(1)绪论,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/ihuangmx/p/3765938.html