一、Computer Thinking(计算思维)
计算机科学:对信息的研究
计算思维是对计算机科学的运用
对信息研究随之而来的便是解决问题
- 解决问题的模型:
这也是计算机编程(conputer programming)
Problem-solving is central to computer science and computer programming.
二、基础知识了解
1.计算机中信息的表达的:二进制
为什么使用二进制:晶体管相关
2.计算机信息量最小单位:比特(binary/bit)
Computers only speak in terms of zeros and ones.
Zeros represent off. Ones represent on.【与晶体管的联系】
8个比特组成一个字节 (bite)
计算方法:【类比十进制个十百乘阶】
2^2 2^1 2^0 4 2 1
3.上述让我们表达了数字,但是怎么表达字母
用数字表达字母,但是又要避免数字和字母的重叠导致混乱
--->ASCII standard
将特定的字母用特定的数字表示【数字映射字母】
比如,A用65表示
如果我想表示数学上的65怎么办--用其他数值来表示
不同情况下数字表现出来的形式不同,短信通常数字直接翻译成字母,电子表格直接表格
但是ASCII只有256个位置不够
---出现the Unicode standard 扩展位置
能够放下emoji了
同时也伴随着不断进化,即版本更新
##小问题:
(1)为什么不同手机显示出来的emoji不同
仅仅是一个font,模式会有点不同
(2)想给emoji换肤色,怎么更高效
有个本身的结构然后五个可重复的肤色
(3)多图案组成一个图形:重用相同的bit……
总结:表示信息的两种标准:ASCII/Unicode
4.怎么表示图像
Red, green, and blue (called RGB) is a combination of three numbers.
【可以印证上文数字在不同的地方被翻译成不同的意思】
Images are simply collections of RGB values.
图像由像素(Pixel)组成,而像素则既可是一个点,又可是多个点的集合.
5.
视频:Videos are sequences of many images that are stored together, just like a flipbook.
太大会进行压缩
音乐:用频率表示 关于分配特定的频率值、响度持续时间.......
为什么视频和音乐有很多格式:我们采用数字表达很多东西然后进行标准化,但是不同的人意见不同,所以有很多格式
二、算法
思维:进行抽象,简化某件事,不关注低级而关注高级后者过程本身,也就是更高层次进行思考的操作
回到第一张图,中间的黑匣子就是算法
1.算法(Algorithms)
计算机是怎么帮助我们定位某一样东西的?
二分法、不断一分为二寻找直到找到(当然也可能目标对象并不在搜寻的范围内)
n—一页一页;n/2 隔页翻;二分法 绿色的线
Each of these approaches could be called algorithms. The speed of each of these algorithms can be pictured as follows in what is called big-O notation:
2.描述算法
伪代码(pseudocode)
Pseudocode is a human-readable version of your code
例子:
1 Pick up phone book 2 Open to middle of phone book 3 Look at page 4 If person is on page 5 Call person 6 Else if person is earlier in book 7 Open to middle of left half of book 8 Go back to line 3 9 Else if person is later in book 10 Open to middle of right half of book 11 Go back to line 3 12 Else 13 Quit
这让你提前想好你解决问题的逻辑,同时可以让他人更好理解
其中,
A.pick up等动词叫做 函数(function)
B.if/else if 叫做 条件(conditionals)
C.其中带有是否的问题叫 布尔表达式(boolean expressions)
expressions that can be stated as true or false, such as “person is earlier in the book.”
D.循环(loop)
“go back to line 3.”
我们平时不会用0和1,会选择更高级的语言来表达【符合上文提到的思想:抽象】
tips:
1.缩进问题/语法与生活的联系
2.为什么看0/1表达的文件比单纯的hello world表达的0与1数量更多?--不仅仅是字母,还有打印等作用
三、Scratch(一种图形编程语言)
1.编程思维
(1)
输入--------算法--------输出
参数--------函数--------副作用(此处)
(parameter)
这个过程就是计算机科学,计算机编程
**输出的 say被称作副作用side effect
这是调动函数的副作用,视觉上,比如此处的说话泡泡
(2)抽象思维
将meow直接写出来,不用看内部怎么运作的
不断优化,用最简单的方法表现出来【当然内部的逻辑是自己背后定好的】
Abstraction is the act of simplifying a problem into smaller and smaller problems.
引入概念:变量
2.编程最基本的板块
(1)语法
A.循环(loop)
不断重复
B.条件(conditionals)
(2)变量(variables)
3.学会使用scratch