谁还没有看过哈佛关于编程基础知识的讲座,请访问这里: https: //javarush.com/quests/QUEST_HARVARD_CS50 =)
介绍。CS50课程结构
朋友们!在介绍中,我们将提醒您(或告诉您任何人)CS50 的结构。课程为期12周。每周有两次讲座,以及各种研讨会和讲解。讲座一准备好,我们就会发表这样的文章。它将包含讲座的简要说明、“短片”注释和附加信息,以及实践作业的翻译。零周讲座涵盖以下问题:- 二进制数系统。
- ASCII码
- 算法和算法思维
- 编译器
- 刮擦语言
- 布尔表达式
- 状况
- 周期
- 变量
- 功能
- 数组
- 流
- 活动
- 了解如何以数字方式表示信息。
- 学习基本的软件结构和概念。
- 使用 Scratch 创建您自己的动画、游戏或互动活动。
- 给你的朋友留下深刻印象=)。
CS50 第 0 周(讲座 1-2):笔记
算法
我们希望您已经观看了讲座并了解算法将问题的解决方案(各种问题、数学问题或“如何到达地铁站 N”)分解为多个步骤。而且,每个步骤必须在有限的时间内完成,并且步骤本身必须有一定的数量。此外,下一步取决于上一步。例如,您可以在此处阅读有关算法的更多信息。如果您懂英语,请观看 David Malan 制作的精彩 TED 动画:https://youtu.be/6hfOvs8pY1k 虽然视频中的信息通常会重复讲座中的信息 =)。二进制数系统
我们有 10 个手指,系统是十进制的。也就是说,我们可以使用数字 0、1、2、3、4、5、6、7、8、9 来表示任何数字,无论有多大。根据数字在数字中的位置,它可以表示不同的是:如果这个数字是最后一个数字,那么它位于个位,倒数第二个位于十位,更左边的是百位,依此类推。本质上,任何数字都可以写成数字之和,每个数字都乘以十的某个幂。在单位的情况下 - 零。例如,1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3。数字相乘的数字称为数字系统的基数。对于十进制系统,逻辑上的基数是十。计算机没有手指,但有两种状态:有条件地“电流正在流动”和“电流不流动”,零和一。因此,计算机内存中的所有数字(以及一般信息)仅由两个数字组成 - 0 和 1。与十进制数字系统的情况一样,它们的位置指示数字。现在这个数字可以分解为数字之和,不是乘以十的幂,而是乘以二的幂。二进制中的 0 = 0 二进制中的 1 = 1 二进制中的 2 = 10 7 10 =111 2 学习从二进制转换为十进制。您可能已经了解这是如何完成的 - 我们只需从最右边的数字开始取数字,然后将其乘以与其数字相对应的底数次幂,然后将每个数字的所有内容相加。示例:让我们找到二进制数 101101 2 最右边的一个 = 1*2 0 下一个零 = 0*2 1 右边第三个 = 1*2 2 第四个 = 1*2 3 .. ……依此类推 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 想象一下八个灯泡排成一排。他们每个人都有自己的开关。每个灯泡都是一次放电。你能想象什么,记得第一堂课(那里有这样一个设备)或者这里有一个小部件供你使用:http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html 播放借助它,练习“感受”它的二进制系统。从十进制转换为二进制。如果你了解其本质,这里的一切也都非常简单。这里我们有数字 57 10。要将其转换为二进制,您需要确定两个的最大幂不超过这个数字。2 6 = 64。这显然太多了。但是 2 5 = 32。现在我们已经确定了最高有效数字。32 10= 100000 2 . 现在我们正在寻找下一个数字。57-32 = 25。现在对于 25,我们正在寻找不超过 25 的 2 的幂。 2 4 = 16。这意味着我们的下一个数字也等于 1。 32+16 = 48 10 = 110000 2。57 – 48 = 9。2 3 = 8,这小于 9。这意味着下一个数字也将是 1。32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1,即只剩下1次方2 0。因此 57 10 = 111001 2。如果突然有些不清楚,你可以在维基教科书上阅读更多内容,如果你的英语很强,这里有一个对讲座的小补充。ASCII码
计算机只能理解零和一,它的内存可以表示为一串很长的带有开关的灯泡,如您在上面看到的。我们已经了解如何在计算机中表示数字。剩下的信息呢?字母、图片?假设英文字母表中有 26 个字母。也就是说,理论上我们只能用二进制来表示0到25之间的数字。出现了以下问题:我们如何知道我们有一个小写字母还是大写字母?标点符号呢?像空格这样的隐形标志?简而言之,我们需要一个编码系统,Cap!在 20 世纪 60 年代,出现了许多不同的字符编码方案。缺乏统一性被证明是一个问题,1963 年,美国标准协会 (ANSI) 开发并推出了 ASCII(美国信息交换标准代码)编码方案。每个 ASCII 字符由 7 个位组成,即 7 位,每个位可以取值 0 或 1。 7 位可以保存二进制从 0 到 127 的数字,这意味着我们有 128 个数字来编码字符。看起来这足以对书面英语语音进行编码?我们来数一数: az - 26 个选项 AZ - 26 个还有 0-9 - 10 ,;:~& 和其他标点符号 - 32 以及一个空格。总计 - 95 个字符。其余 33 个空选项用于所谓的控制字符,例如换行符或回车符:https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg 区分它们很重要字符 0-9 和数值 0 -9。字符 0-9 由 ASCII 值 48-57 表示。有趣的是,这些 ASCII 值的最右边四位是数值 0-9 的二进制表示。这在一定程度上简化了 ASCII 值与其实际数值之间的转换方式。我们开始编程吧?划痕
所以,刮擦。讲座中向您介绍了这种可视化编程语言及其基本命令。要亲自尝试 Scratch,请点击链接并单击“加入”。注册后,您就可以开始在线编程。是的,顺便说一句,今天的 Scratch 已经部分俄罗斯化了。不过,帮助仍然是英文的。如果您愿意,您可以玩并查看讲座中演示的学生项目的代码。这是皮卡丘糕点捕捉。或者将废物分类到不同容器中的项目:https://scratch.mit.edu/projects/71161586/ 大卫和公司请您不要担心,如果您认为自己无法完成如此复杂的项目:这个级别已经需要一些技能。锻炼
-
为了更好地了解 Scratch 中发生的流程,您可以从此处下载多个项目的源代码。玩玩看看。学习别人的代码非常有用。这是找出您自己尚未成熟的程序中的内容的最佳方法之一。一旦您开始了解这些应用程序的工作原理,您就可以安全地继续前进。
-
现在是时候自己做点什么了。挑战在于享受乐趣,同时从头开始实施一个小项目。它可以是动画、游戏、互动动作。
- 该程序必须包含至少两个精灵(字符、图像),其中之一绝对不能是猫=)。
- 必须至少有三个脚本(操作)。
- 必须至少执行一个条件、一个循环和一个变量。
- 程序中必须至少包含一种声音。
GO TO FULL VERSION