选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业选修 | 学分:3.5 |
冯新宇老师去南大了,现在只有张昱老师在上,课程内容和boj的评价https://icourse.club/course/5163/ 有很大的差别。这学期的实验有三个:
实验是三人组队的,但是队员由助教随机安排。
教学内容可以在课程主页上看到http://staff.ustc.edu.cn/~yuzhang/fopl/。没有Haskell!!!
上课涉及到很多东西,但是基本都是浅尝辄止,个人感觉干货很少,因为讲的东西此前或多或少都有所了解了。感觉有时候是老师讲不了而不是故意只是稍微提一下,举个例子,再讲C++的week_ptr的用途的时候,老师提到了树,然后停顿了一下就没继续讲了,然后就说课上只是点一下课后还是需要同学们自己去了解之类的话。
同编译H一样,开学两周以各种劝退为主,一开始选课的人数有76人,两周过后只剩下27人,到了后面还有不少同学动用两次退课机会退课的。
感觉这学期在实验方面做得很差:
第一,这门课也跟上学期编译H一样弄所谓的科研探索,但是课题都是上学期编译H弄的那些课题,跟程序设计语言关系不大,有让学生给她打工的嫌疑。
第二,说是不想让课程实验占用太多时间,能够把时间放在科研探索以及不挤压其它课程的时间,所以实验采用小组合作的形式。但是在助教面对面检查的时候,他会问一个同学另一个同学负责的部分的问题,还说什么如果只了解自己负责的部分还不如不组队每个人单独写。这么搞组队的意义何在???所以后面我们组就决定每个人独立完成了,貌似很多组都是如此。
第三,实验仓库直接用去年的实验仓库,好懒啊。第三个实验参考程序没法跑助教和老师事先都不知道,后面很多人都反映后才重视起来,到了DDL前一天才通过Docker镜像来解决。
我自学过 haskell 和 agda。然后对 plt 十分感兴趣,所以选了这课,但是比较失望。我看了陈意云老师和张昱老师写的书《程序设计语言理论》,但这门课所讲的内容相比那本书浅太多了,上课内容基本是科普。
几次编程作业也比较简单,第一次是用 lua 写 rpc,大概一两百行?第二次是用 coq 写证明,就是 logical foundation 的 Working with Structured Data,算是 coq 基础,第三次是用 ocaml 实现一个带多态和 adt 的 stlc,听起来似乎挺难,但其实程序框架都搭好了,所有的相继式都写在文档里了,照着抄就好,唯一麻烦的是 ocaml 配环境hhh。这课其实还教 rust,但讲课也很浅,作业也干脆没有布置。另外不得不说的是这门课的课设,课题有量子计算,权限管理,智能家居之类的,感觉和 pl 没有太大关系,但分数占比很大,也十分耗时间。
张老师有次上课吐槽她的一个研究生,不愿意做具体项目,只想搞理论,感觉她现在做的东西都很工科,想做 pl 还是去南大找冯老师吧,虽然我也不大清楚冯老师的情况hhh