资源描述
1、自我介绍,办公地点,联系方式。
2、课程的重要性
3、关于怎么上课,大家应该知道的:
a、课程目标:也就是完成这门课程大家应该达到的程度
b、计算思维的概念和方法:本科的核心内容,我会尝试着教会大家怎样像一个程序设计人员一样思考。
先从课程目标开始:
策略性目标:我希望大家在课程结束之后学到什么。或者说需要大家掌握的技能。
a、能写:使用计算机编程思想编写小规模程序。将某一领域内的问题转换为计算机程序,大家将学会如果理解并找到一个问题的解决方法,并且转换为计算机程序。
b、能读:更重要的是能读懂别人编写的小程序。并不是所有的事情都需要自己去解决,希望大家能读懂别人编写的程序,在一定程度上进行改动来满足自己的个性需求。读程序对写程序也有一定的帮助。
课程主要面对零基础或者少量编程经验的学生,如果你做过很对编程工作,或者对某些程序设计语言比较精通,可以在第三周周一之前申请提前考试,我将在我能力范围内批准你免修这门课程。当然期末的考试你还是要参加,因为我没有权利来避免没有试卷带来的后果,只是你不需要为期末考试的成绩担心,你的提前考试成绩就是你的期末成绩。而且我没有权限负责学生会或者学校点名带来的后果。如果你有进一步学习的想法,可以下课之后来找我,我会给你推荐一些课程。
另外本门课程对于考计算机等级考试的同学也是一个入门课程。
课程规则:每周3个小时的理论课,每周4~5个小时的课外作业,当然上机课时间也会包含在这4~5个小时之内。如果时间允许,会有次上机测验,会在上机时间内通过编写程序的方式来完成。上机测验是开卷的。70%的分数在期末考试,30%的分数在测验,其中出勤10%,测验20分。
课堂问题的提出:随时大声喊,确保我能听清你的问题就可以,不需要举手,不需要站起来。
课后问题的提出:如果你问了一个非常浅显的问题,在课堂上已经讲过的问题,那么我保留不做回答的权利。你要为自己负责,我才能对你负责。
笔记:必要的笔记对大家的学习和考试是有好处的。
教材:理论课可以不带教材,实验课必须带教材
像程序设计人员一样思考
a、当你遇到一个问题,自然的会想到如何编写一个程序来解决问题,那么你就具备了一个编程人员基本的思想。
b、如果你遇到一个问题,习惯性的将问题划分为一个个小的问题,然后试图用简单的程序去解决它,那么你就在程序设计的领域里入门了。
4、第一个问题:知识是什么?
对于程序设计 可以把知识分为两类:
a、陈述性知识 b、程序性知识
陈述性知识:事实的陈述
例如:如果x的平方根是y,那么y的平方等于x,y>=0
这是个事实的陈述,不会帮你算出平方根等于多少。
程序性知识:很古老的关于计算平方根的程序性知识,牛顿法求平方根
如果 g的平方接近于x 停止 得到g
否则 猜测下一个g,g=(g+x/g)/2
重复
这是一个方法,是一系列行动的描述,这是按顺序下达的一系列指令。一个一个的猜想,然后告诉我什么时候结束。这是一个关于怎么办的知识,是一个程序性知识。
我们希望有一种方法来用计算机利用这些程序性知识,计算得到g,这就是计算机程序。
现在的问题是,我怎样才能建立计算机程序,来进行这一系列的运算。
早期的时候有种计算机称之为固定程序计算机,利用一些硬件设计来完成运算。来完成一系列的操作。计算平方根,解方程,等等。这些计算机中的程序是不能更改的,被设计为专门处理某一方面的计算。类似与计算器,不能用它来玩游戏或者不能编辑文档。
现代的计算机领域,会利用不同的程序设计语言编写不同的程序来解决多种多样的问题。
这里提到程序设计语言,所谓程序设计语言就是用一种计算机可以理解的方式去告诉计算机按照什么顺序去做什么事情。
说得再简单点,计算机就是按照程序的设计去完成某种计算。
就像你照着菜谱去做菜,你会按照菜谱所说的步骤去做。菜谱就是程序,你就是计算机,你按照菜谱做出菜来,就像计算机按照程序计算出结果。
各种各样的菜谱会让你做出多种多样的菜肴,而各种计算机程序,能够让计算机完成不同的功能。
一个好的厨子能够用各种原材料做出多种多样的菜,而一个好的程序员能够把有限的语句与结构堆砌出完美的程序来解决实际问题。
VB就是一种程序设计语言,人们谈论程序设计语言会从三个方面去讨论。
a、高级还是低级 b、通用还是专用 c、解释还是编译
没有最好的语言,只有更适合的语言
我们来看看第一个程序
print "hello"
print "china"
计算机通过解释器,解释这些语句,并执行这些语句从而得到结果。这就是程序。
回到求平方根的程序性知识中来。我们来把它构造成程序,来解决问题。
g=1.5
x=2
While Abs(x - g ^ 2) > 0.00001
g = (g + x / g) / 2
Wend
Print g
在这个程序中我们用到了三个数据,一个是2,一个是1.5,一个是0.00001
程序中所有的数据都隶属于某一种类型,例如数值型,字符型。类型决定了数据可以进行什么操作。例如:数值型可以进行加减乘除,而字符型数据不可以。
VB中的基本数据类型包括以下几类:
1、数值型数据:整型(整形,长整形),实型(单精度,双精度),货币型
2、字符型数据
3、布尔型,关系运算
4、日期型
5、变体型
1、数值运算:+ - * / \ mod
2、字符运算: + &
3、布尔运算: not and or
4、日期运算: 日期相减 日期与整数相加减
5、关系运算: > < >= <= <>
运算符的优先级与表达式
在一个表达式中进行多个运算时,每一部分都会按预先确定的顺序进行计算求解,这个顺序被称为运算符优先级。括号可改变优先级的顺序,强制优先处理表达式的某部分。括号内的操作总是比括号外的操作先被执行。但是在括号内,仍保持正常的运算符优先级。
当表达式有多种运算符时,先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。所有比较运算符有相同的优先级,即按它们出现的顺序从左到右进行处理。算术运算符和逻辑运算符按下列优先级进行处理:
算术
比较
逻辑
指数运算 (^)
相等 (=)
Not
负数 (-)
不等 (<>)
And
乘法和除法 (*, /)
小于 (<)
Or
整除 (\)
大于 (>)
Xor
求余运算 (Mod)
小于或等于 (<=)
Eqv
加法和减法 (+, -)
大于或等于 (>=)
Imp
字符串连接 (&)
当乘法和除法同时出现在表达式中时,按照从左到右出现的顺序处理每个运算符。同样,当加法和减法同时出现在表达式中时,也按照从左到右出现的顺序处理每个运算符。
字符串连接运算符 (&) 不是算术运算符,但是就其优先级而言,它在所有算术运算符之后,而在所有比较运算符之前。
展开阅读全文