2023年10月9日-10月13日,应bwin必赢胡振江教授邀请,牛津大学教授Jeremy Gibbons和查尔姆斯理工大学教授John Hughes将在北京大学线下讲授两门微型课程:Introduction to Functional Programming和Introduction to Property Based Testing。课程将在每天下午15:00-17:00进行,具体的授课地点请在报名后关注后续通知。
Jeremy Gibbons是牛津大学的教授,他将讲授Introduction to Functional Programming。Jeremy Gibbons教授是牛津大学Algebra of Programming研究组的领导者,同时担任牛津大学软件工程专业硕士项目的主任。他多次担任重要的学术职务,包括函数式编程领域顶级期刊Journal of Functional Programming的主编、顶级会议International Conference in Functional Programming的指导委员会主席等。在课程中,Jeremy Gibbons教授将介绍函数式编程的基础(如高阶函数、代数数据类型),并循序渐进地讨论进阶内容(如Monads、Functors)。课程详情请见文末。
John Hughes是查尔姆斯理工大学的教授,他将讲授Introduction to Property Based Testing。John Hughes教授在函数式编程领域深耕四十余年,是Haskell编程语言的主要设计者之一,担任了Haskell 98委员会的联合主席,并在2018年因在软件工程和函数式编程领域的杰出贡献当选ACM Fellow。他与Koen Claessen一起提出了Haskell社区最受欢迎的测试技术QuickCheck,在2006年创立了Quviq 公司并致力于在Erlang编程语言上商业化该技术。在课程中,John Hughes教授将以围绕QuickCheck介绍 Property Based Testing及其拓展。课程详情请见文末。
报名方式
请在9月26日前点击链接或扫描下方二维码报名:https://www.wjx.top/vm/ehTxGhQ.aspx。
课程详情
Introduction to Functional Programming
讲者:Jeremy Gibbons
摘要: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 Hughes’s 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
摘要: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 battlefield—using 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. Generators—how 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. QuickSpec—formal specifications for free!