Programming Languages Part B Week 1笔记
这次回顾Part B Week 1的内容,主要介绍了课程结构。
课程主页:
https://www.coursera.org/learn/programming-languages-part-b/home
B站搬运:
https://www.bilibili.com/video/BV1tZ4y1D7
Week 1
欢迎来到Part B
再次欢迎你!
- A部分涵盖了很多内容——现在让我们在此基础上再接再厉!
- 挑战性的机会,学习编程语言的基本概念。
- 通过努力工作、耐心和开放的心态,本课程使你成为一个更好的程序员
- 糟糕的课程摘要:”使用ML、Racket和Ruby”
- 现在:
- 另一种函数式语言——更容易上手
- 强大的习语”延迟评估”
- 用闭包实现你自己的编程语言
- 静态类型与动态类型
(缺少)介绍性材料
- 与A部分格式相似
- 所以要”直接进入”
- (根据需要,查阅课程信息和A部分材料)
Part B概述
我们了解过的内容
Part A:
- 基础知识、函数、递归、范围、变量、元组、列表……
- 数据类型、模式匹配、尾递归
- 头等函数,闭包和课程动机!
- 类型推理、模块、等价性
总的来说:对静态类型的函数式编程进行了详细的介绍,并逐一建立了模型:
- 在B和C部分中,将高度利用这一基础。
Part B
第5节:
- 在动态类型化语言中快速”回顾”
- 没有类型系统、推理等。
- 不同的语法(大量的括号)。
- 类似:列表、闭包、函数,…
- 延迟评估
- 使用零参数的函数
- 原因:延迟/避免计算,无限流,记忆
- 宏
- 主要问题
- 可选的:一些Racket的细节
第6节:
- Racket中的数据类型-编程
- 实现编程语言
- 编译器与解释器
- 抽象语法树
- 实现环境和闭包
第7节:
- 静态类型与动态类型
- 什么是静态检查
- 健全性和完备性
- 静态检查的优点和缺点
Part B课程结构
Part B:三周
- 因为我们已经完成了Part A,而且Racket的安装很容易,所以可以 “直接进入”。
- 前两周:作业的结构相同:自动评分器、同行评议……
- 第三周:就该部分进行测验(成绩的10%)。
第二周和第三周曾经合并过,所以现在每个星期都比较短,但是。
- (第2周)的作业5被许多人认为是更有挑战性的(和更有价值的)。
C部分结束时的考试涵盖Part B和Part C
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere