首页 >> 新闻动态 >> 正文

牛津大学教授Jeremy Gibbons和查尔姆斯理工大学教授John Hughes讲授微型课

2023109-1013日,应胡振江教授邀请,牛津大学教授Jeremy Gibbons和查尔姆斯理工大学教授John Hughes将在重点实验室线下讲授了两门微型课程:Introduction to Functional ProgrammingIntroduction to Property Based Testing

Jeremy Gibbons是牛津大学的教授,他将讲授Introduction to Functional ProgrammingJeremy Gibbons教授是牛津大学Algebra of Programming研究组的领导者,同时担任牛津大学软件工程专业硕士项目的主任。他多次担任重要的学术职务,包括函数式编程领域顶级期刊Journal of Functional Programming的主编、顶级会议International Conference in Functional Programming的指导委员会主席等。在课程中,Jeremy Gibbons教授将介绍函数式编程的基础(如高阶函数、代数数据类型),并循序渐进地讨论进阶内容(如MonadsFunctors)。课程详情请见文末。

John Hughes是查尔姆斯理工大学的教授,他将讲授Introduction to Property Based TestingJohn Hughes教授在函数式编程领域深耕四十余年,是Haskell编程语言的主要设计者之一,担任了Haskell 98委员会的联合主席,并在2018年因在软件工程和函数式编程领域的杰出贡献当选ACM Fellow。他与Koen Claessen一起提出了Haskell社区最受欢迎的测试技术QuickCheck,在2006年创立了Quviq 公司并致力于在Erlang编程语言上商业化该技术。在课程中,John Hughes教授围绕QuickCheck介绍 Property Based Testing及其拓展。


课程详情

 

Introduction to Functional Programming

讲者:Jeremy Gibbons

https://pl.cs.pku.edu.cn/__local/7/0F/28/5C1E22C7BB593718F1B55E2345C_B15812C8_6424C.png

摘要:Functional programming can be characterized as value-oriented programming. In contrast to other programming styles, every piece of data is a simple value, not something more complicated like an object; and programs are simple functions. This might seem very restrictive; in fact, it turns out to be profoundly powerful, even fun. This series of lectures will be a very condensed introduction to FP, swiftly getting to some of the more advanced topics that will be relevant for John Hughess course. There will be five lectures, each with optional exercises.

 

大纲:

1. Functions, equations, recursion reasoning, higher-order.

2. Algebraic datatypes.

3. Types, polymorphism, type classes.

4. Infinite data, co-programming.

5. Monads and applicative functors.

 

Introduction to Property Based Testing

讲者:John Hughes

https://pl.cs.pku.edu.cn/__local/C/52/68/3598790E30C84769F5B019F6732_8D60BCB2_1B091.png

摘要:Property-based testing (PBT) is a form of software testing in which random test cases are used to test code against specifications expressed as programs, which has been deployed in industry for everything from telecoms through distributed databases to automotive software. This course will introduce PBT mostly through the medium of QuickCheck in Haskell, the first PBT tool. The course will consist of five lectures with accompanying exercises.

 

大纲:

1. Motivational introduction to property-based testing, with stories from the battlefieldusing Quviq QuickCheck for Erlang, introducing state machine models (briefly), but not enough detail to set exercises.

2. How to specify it!”—introducing Haskell QuickCheck, and discussing five general ways to come up with properties of pure functions. This will use binary search trees, so one example of an algebraic datatype.

3. Generatorshow to write them for Haskell QuickCheck using class Arbitrary, measuring statistics and labelling test cases to ensure a good distribution for testing.

4. State machine models in Haskell.

5. QuickSpecformal specifications for free!