[English Version]

后记

吕汶桧

课上,李老师提到一桩佚事。他开会介绍我们这门课时,许多老师都感到惊讶:我们这群文科生,真的写得好代码、上得下来这样一门高强度CS课程吗?李老师回复:当然可以,他们能完成得很好。

李老师这些年来致力推动新文科教学改革,学科交叉是这一改革的主要内容之一。而对文科生的偏见一直是学科深度融合的一大阻碍。李老师这回邀请我把这学期的作业整理出来,一大希求就是打破这样的刻板印象。我本科三年半几乎完全徜徉在西方哲学史学术的海洋里,没有比我更文科的文科生了。在上李老师的这门课之前,我也只上过北大为文科生开设的公共计算机课,学了一个学期的python,不过没有很深入。我这样一个文科生,还有班上其他文科生们,却完全可以达到这门课的要求。

当然,学期初着手完成作业时,面对不算轻松的编程要求,我们的确无法手到擒来。在过去的文科学术训练中,我几乎只会使用“自然语言”;以“对象”为核心的python语法、围绕变量展开的运算逻辑,一度让我头晕目眩。第一次作业的代码不到100行,我却写了整整8个小时(de了7个小时bug)。但是,当我完成第四次作业时,200行级别的代码、用到了3次递归,我在2个小时以内就得到了正确的结果。从那以后,编程变成了一件轻松愉快的事。当然,我仍然需要边写代码边查documentations,但我已经有了掌控感——不管出什么bug,我总可以解决的。

的确,学期初我在编程上的举步维艰,班上的其他文科生也是如此;但是,任何人做一件疏于练习的事儿,不都是这样的吗?我相信,安排一个理科“直男”去读康德的三大批判,他一样也会感到非常困难。文科生们没有必要把初事编程遇到的挫折归因于己,认为自己是不够聪明、抽象能力不好,我们的社会也不应该如此暗示、不应该强化这种刻板印象。事实上,只要勤加练习,我们文科生学好计算机,并不比理科生学好哲学更难。

我们不仅要在否定的意义上破除文科刻板印象、指出文科生也可以写好代码,而且,要在肯定的意义上看到:如果计算机科学或信息技术比算法设计更多,如果它的理论贡献延伸到各个学科领域、它的实践功用触及到人类社会的各个角落,那么,文科和文科生,可以为此做出独特的贡献。计算社会科学和人机交互都是很好的例子。

李老师的课程规划,就充分考虑到了文科生的特点,扬长避短,以社会现象和社会科学经典研究为起点,再把计算要求和它们严丝合缝地融合起来。想必翻阅过本书的人已经有所体会。我们的期末作业,也是选定社会科学领域的一个经典问题,把它算法化,进行模拟或验证。我们研究的主题五花八门,从民主化到海淀小升初,从反犹主义到宏观经济波动。能够想到这些问题、能够深入讨论这些问题,除了算法能力以外,人文社科领域的深厚积累也是必不可少的。

”新文科“的概念、”新理工科“的概念、学科交叉的努力,是一剂解药,释放被学科壁垒禁锢的想象力,让我们看到更大的世界和更多的可能性:从学生的角度,文科生也能写好代码、也可以有傲人的计算思维;从学科的角度,传统人文社科和传统计算机科学,都在学科交叉中焕发了新的生命力。我非常敬佩李老师的努力,也非常高兴有机会分享自己的计算作业。希望这门课能继续开下去,希望这本书能帮到更多人,最最希望的是,这门课和这本书的精神能够流转到更远的地方。

吕汶桧,2022年1月于燕园

目录

  1. 社会网络基础
  2. 同质性与社会网络的演化
  3. 极化关系下网络结构的稳定平衡性
  4. 博弈论基础概念
  5. 匹配市场
  6. 网络效应
  7. 网络中的级联行为
  8. 流行性
  9. 社会网络中的影响力与共识
  10. 表决:方式与挑战

Get In Touch

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.