CS50 week0 笔记

一、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

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值