Programming Languages Mini-Courses

Invited by Prof. Zhenjiang Hu, Prof. Jeremy Gibbons (from Oxford University) and Prof. John Hughes (from Chalmers University) will give two mini-courses at Peking University during Oct 9 - Oct 13. The two courses are Introduction to Functional Programming and Introduction to Property Based Testing. Courses will be held on 15:00 - 17:00 each day, and the actual locations for the courses will be announced after registration.


Registration

Please use the link or scan the QR code before Sep 26 to register for the courses: https://www.wjx.top/vm/ehTxGhQ.aspx.



Detailed Information about the Courses


Introduction to Functional Programming

Jeremy Gibbons (Oxford University)



Abstract: 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


Bio: Jeremy Gibbons is Professor of Computing at the University of Oxford. He leads the Algebra of Programming research group there, and is Director of the part-time professional master’s programme in Software Engineering. Among other roles, he is former Editor-in-Chief of the Journal of Functional Programming, and former Steering Committee Chair for the International Conference in Functional Programming.


Introduction to Property Based Testing

John Hughes (Chalmers University)




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, following roughly the following plan:


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!


Bio: John Hughes has been a functional programming enthusiast for more than forty years, at the Universities of Oxford, Glasgow, and since 1992 as a Professor at Chalmers University in Gothenburg, Sweden. He served on the Haskell design committee, co-chairing the committee for Haskell 98. With Koen Claessen, he created QuickCheck, the most popular testing tool among Haskell programmers, and in 2006 he co-founded Quviq to commercialise the technology using Erlang. He was named an ACM Fellow in 2018, for contributions to software testing and functional programming.


Previous Article:The Eleventh Programming Languages Seminar @ PKU
Next Article:The Tenth Programming Languages Seminar @ PKU