时间: MW 1:30–2:45
地点: 哈利根102
向以下人员提问: 广场
教练: 诺曼·拉姆齐,Halligan哈利根222

快速参考:教学大纲、时间表、照片

此时,类的主要资源是教学大纲日程安排我希望能编写一个软件,使阅读更容易。

背景

在现实世界中,事件是不确定的。为了推理不确定事件,我们使用概率(以及统计数据)进行计算。在过去20年里,编写概率计算的人越来越多地设计、构建和使用特殊用途的概率编程语言。这种方法的流行可以从工业和研究中使用的大量此类语言中看出:Anglican、AutoBayes、Alchemy、Blaise、BLOG、BUGS、Church、Csoft、FACTORIE、Figaro、Fun、Hakaru、HANSEI、HBC、IBAL、Lambda-circle、Probabilistic cc、PFP、Probablistic Scheme和Wolfe。

为了让您了解这些语言要解决的问题,下面是一个概率程序的草图:

编写一个可以运行这个程序的解释器很容易向前地并回答问题“草被弄湿的概率是多少”。这一点都不有趣。有趣的是,拿着这个程序问:“如果我看到草是湿的,下雨的概率是多少?”(回答:大约47%)。有趣的计算包括推理,从结果到原因进行反向推理:

课程目标

上面列出的大多数语言都是由主要专长是机器学习而不是编程语言的人设计和实现的。本课程的主要目标是:

我们还将学习如何分析概率程序。

课程详细信息

课程的进度将相对较慢。本课程旨在帮助学生深入实现一到两个目标,而不是对整个领域进行气喘吁吁的调查。

课程将每周举行两次,分两个阶段进行:

  1. 从编程语言的角度介绍概率语言。这一阶段将包括审查COMP 105(编程语言)的相关材料和概率基础。然后,它将继续阅读和讨论概率编程语言的主要来源。

  2. 在第二阶段,我们将强调来自编程语言文献的相对技术性论文,偶尔会被来自机器学习文献的相对应用性论文所激发。

每个学生本学期都要承担一个项目。该项目可以单独进行,也可以在任何规模的团队中进行。任何与概率编程语言相关的项目都是可以接受的。想法可能包括

评分将基于课堂参与度和对参与项目的贡献。不会有考试。为了获得课堂参与的学分,学生将被要求参与关于阅读和问题的课堂讨论。学生们还将在课堂外解决小编程问题或概率问题,并在课堂上准备分享解决方案。此类问题将计入课堂参与,但不会另行评分。

关于一切的更多信息是在教学大纲中.

先决条件:COMP 105(编程语言)。

项目要考虑的语言和系统

这里有一些语言和系统,它们是项目有趣的潜在基础。首先列出了最成熟、对初学者最友好的系统:

更长的列表以及其他注释可以在概率规划.org.