JavaRush /Java 博客 /Random-ZH /讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)
Bender
第 1 级
Маунтин-Вью

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)

已在 Random-ZH 群组中发布
谁还没有看过哈佛关于编程基础知识的讲座,请访问这里: https: //javarush.com/quests/QUEST_HARVARD_CS50 =)

介绍。CS50课程结构

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 1朋友们!在介绍中,我们将提醒您(或告诉您任何人)CS50 的结构。课程为期12周。每周有两次讲座,以及各种研讨会和讲解。讲座一准备好,我们就会发表这样的文章。它将包含讲座的简要说明、“短片”注释和附加信息,以及实践作业的翻译。零周讲座涵盖以下问题:
  • 二进制数系统。
  • ASCII码
  • 算法和算法思维
  • 编译器
  • 刮擦语言
  • 布尔表达式
  • 状况
  • 周期
  • 变量
  • 功能
  • 数组
  • 活动
第 0 周目标:
  • 了解如何以数字方式表示信息。
  • 学习基本的软件结构和概念。
  • 使用 Scratch 创建您自己的动画、游戏或互动活动。
  • 给你的朋友留下深刻印象=)。

CS50 第 0 周(讲座 1-2):笔记

算法

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 2我们希望您已经观看了讲座并了解算法将问题的解决方案(各种问题、数学问题或“如何到达地铁站 N”)分解为多个步骤。而且,每个步骤必须在有限的时间内完成,并且步骤本身必须有一定的数量。此外,下一步取决于上一步。例如,您可以在此处阅读有关算法的更多信息。如果您懂英语,请观看 David Malan 制作的精彩 TED 动画:https://youtu.be/6hfOvs8pY1k 虽然视频中的信息通常会重复讲座中的信息 =)。

二进制数系统

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 3我们有 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码

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 4计算机只能理解零和一,它的内存可以表示为一串很长的带有开关的灯泡,如您在上面看到的。我们已经了解如何在计算机中表示数字。剩下的信息呢?字母、图片?假设英文字母表中有 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 值与其实际数值之间的转换方式。我们开始编程吧?

划痕

讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 5所以,刮擦。讲座中向您介绍了这种可视化编程语言及其基本命令。要亲自尝试 Scratch,请点击链接并单击“加入”。注册后,您就可以开始在线编程。是的,顺便说一句,今天的 Scratch 已经部分俄罗斯化了。不过,帮助仍然是英文的。如果您愿意,您可以玩并查看讲座中演示的学生项目的代码。这是皮卡丘糕点捕捉。或者将废物分类到不同容器中的项目:https://scratch.mit.edu/projects/71161586/ 大卫和公司请您不要担心,如果您认为自己无法完成如此复杂的项目:这个级别已经需要一些技能。

锻炼

  1. 为了更好地了解 Scratch 中发生的流程,您可以从此处下载多个项目的源代码。玩玩看看。学习别人的代码非常有用。这是找出您自己尚未成熟的程序中的内容的最佳方法之一。一旦您开始了解这些应用程序的工作原理,您就可以安全地继续前进。

  2. 现在是时候自己做点什么了。挑战在于享受乐趣,同时从头开始实施一个小项目。它可以是动画、游戏、互动动作。

项目要求:
  • 该程序必须包含至少两个精灵(字符、图像),其中之一绝对不能是猫=)。
  • 必须至少有三个脚本(操作)。
  • 必须至少执行一个条件、一个循环和一个变量。
  • 程序中必须至少包含一种声音。
也就是说,从本质上讲,您的项目将比讲座中编写的项目更复杂,但比演示的有关皮卡丘和垃圾收集的玩具更简单。因此,您的项目可能会使用几十个拼图来组成 Scratch 代码。如果事情不起作用,您可能需要改变解决问题的方法。最主要的是不要害怕!我们邀请您提出问题并在评论中分享您的项目。

Scratch:快速操作指南

精灵是该项目的中心对象。任何角色——一只猫、一架飞机、一个球——都是一个精灵。如果您添加了两只不同的猫,那么它们就是两个不同的精灵。 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 6每个精灵都有描述其行为的脚本。这些是动作块。服装就是物体的样子。精灵本身本质上只是图画。每个精灵可以有多种服装。要创建精灵,您需要从 Scratch 库中选择其原始服装,在内置编辑器中绘制自己的服装,上传任何图像,甚至使用网络摄像头拍照并上传。所有精灵都放置在所谓的舞台上。舞台本质上是我们的画布,是节目的背景。您还可以将库中的声音附加到精灵或场景,或者您可以加载它们或使用麦克风自己录制它们。要开始执行程序,您需要单击场景窗口右上角的绿色标志。但在执行此操作之前,您需要在程序中放置以下块: 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 7并在其上附加一些块,作为设计器部分。例如: 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 8在这种情况下,当您单击旗帜时,附加动作的精灵会走 50 步并发出喵喵声。我们有很多块。它们分为三个选项卡:脚本、服装和声音。让我们编写一个带有条件的简单程序。如果满足了,猫就会喵喵叫;如果没有满足,它就会保持沉默。运算符以绿色表示。那些测试条件是真是假的工具的侧面有尖角。条件测试结构和循环以橙色显示。它们有特殊的孔,您可以在其中放置其他块。

周期:

重复无限次: 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 9重复某事一定次数: 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 10如果满足条件,则重复某个操作: 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 11您可以在数据块中创建变量。在下面的示例中,我们创建了一个变量 x,并且立即可以使用它执行一些操作。您可以设置变量的范围:针对所有精灵或针对一个精灵。 讲座 CS50 的附加材料:第 0 周(讲座 1 和 2)- 12绿旗并不是唯一的行动。此外,在“事件”部分中,您还可以找到许多其他控制条件。例如,您可以选择当您用鼠标单击按钮或精灵本身时要执行的操作。如果您需要其他信息,可以在此处找到。

还有什么

如果您的互联网访问还有很多不足之处,我们建议您在https://scratch.mit.edu/scratch2download/下载离线 Scratch 编辑器。然后,不要忘记使用“文件”>“从计算机上传”将您的项目提交到http://scratch.mit.edu/
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION