Skip to main content

Lecture 10 - CS50x 2023

欢迎!

  • 这是 CS50!
  • 这是本课程的最后一周!
  • 的确,我们已经走了很长一段路! 你已经像海绵一样吸收了大量的知识!如果你没有完全理解,那也没关系! 想想当初觉得很难的事情,比如编译hello程序,现在是不是觉得容易多了?
  • 这门课最重要的不是你比别人学得如何,而是你比最初的自己进步了多少。
  • 回想一下,在第 0 周,我们从 0 和 1 开始。我们在 Scratch 中入门,学习编程的基本构建块。
  • 到第 2 周,我们学习了关于内存的知识。
  • 然后,我们学习了关于调试的知识。
  • 到第 3 周和第 4 周,我们学习了更多关于代码的时间复杂度和效率的知识,讨论了冒泡排序和归并排序。
  • 我们讨论了指针,让你了解你的计算机内部发生的事情。
  • 在第 5 周,你构建了自己的哈希表! 键值对的原理在 Python、SQL 等语言中都有体现!
  • 在第 6 周,你学习了关于列、行和表的概念。
  • 最后,我们学习了构建 Web 应用程序。
  • 本周,我们将专注于如何进行客户端编码。 在此之前,你一直在云端编程。 如果你愿意,你可以在自己的 Mac 或 PC 上使用这些工具。

计算和批判性思维

  • 早在第 0 周,我们就向你介绍了计算算法思维的概念。 通过这门课,你可能会发现自己将来能更清晰地整理思路了!
  • 此外,我们锻炼了批判性思维,让你能更好地理解他人程序背后的原理,并更有效地评估自己和他人的工作。

抽象和精确性

  • 在本课程中,你学习了如何将大问题分解成越来越小的问题。
  • 的确,你学习了如何编写伪代码来将问题分解为可管理的步骤。
  • 此外,你还了解到你使用的语言特别重要! 你的语言必须精确。
  • 完成 CS50 课程后,你将能更好地评估其他课程、工作以及大型项目对你的要求。 你也能更好地分解复杂问题,并向自己和他人提出关键问题,从而获得更好的成果。

CS50 之后的生活

Emoji

  • 我们请来了 CS50 的 99 届校友 Jennifer 8. Lee。

  • Jennifer 在和朋友陆依盈发短信时,发现竟然没有饺子表情符号。所以她的朋友,一位设计师,提出了她自己设计的饺子形象,Jennifer 受此启发,开始调查谁控制着表情符号。

  • Jennifer 调研了 Unicode 联盟,这是一个非营利组织,由技术公司和其他机构组成,他们拥有投票权。

  • Jennifer 创立了 Emojination,该组织致力于让表情符号的审批过程更加包容和具有代表性。

  • 有许多因素会影响是否添加表情符号,包括:

    • 大众需求
    • 用途广泛
    • 视觉特征鲜明,即使在小尺寸下也能轻易识别
    • 是否能填补现有表情的空白,例如在红、黄、绿、蓝心之外增加一个橙色心
    • 已有的厂商支持,例如,某公司已在非官方渠道支持该表情
  • 还有一些因素会被考虑反对添加表情符号,包括:

    • 过于具体或局限
    • 多余或与现有表情符号太相似
    • 视觉上难以辨认,比如洞穴
    • 没有徽标、品牌、神灵、名人
    • 不再添加旗帜
  • Unicode 联盟每年会投票决定是否新增表情符号。

  • 从历史角度来看,Unicode 标准的出现,是因为早期各技术公司都有自己的一套特殊字符编码系统。

  • Unicode 为 100,000 个特殊字符中的每一个分配一个唯一的数字。

  • 虽然表情符号之前就存在,但它们在 2011 年人气爆发。

  • 虽然任何人都可以提出表情符号,但 Emojination 帮助组织和个人创建提案。其中许多提案已被 Unicode 接受。

  • Jennifer 分享说,汉字在表示物体或组合起来表示另一个概念方面具有相似之处。

  • 同样,表情符号可以组合起来表达各种含义。

  • 您可以在 The Hanmoji Handbook 中了解更多关于表情符号和汉字之间相似之处的信息。

  • 以情侣表情为例,你可以想象其中每个人的特征都有无数种组合。

  • 因此,表面上看似一个表情,实际上底层可能包含多种变体,比如不同的肤色。

  • 明年将会新增浅蓝色、灰色和粉色的心形表情,以及翅膀、黑鸟、鹅、风信子花、水母、驼鹿头、驴、生姜、豌豆荚、发梳等等。

总结

本节课,我们回顾了过去几周的课程内容,并探讨了所学知识在计算机科学领域内外的应用前景。同时,也了解了如何继续深造计算机科学。具体来说,我们讨论了……

  • 计算和批判性思维
  • 抽象和精确
  • CS50 之后的生涯
  • 知识回顾
  • 表情符号

这就是 CS50!