A Language-oriented Approach to Teaching Concurrency
Tom Van Cutsem, Stefan Marr, Wolfgang De Meuter · 2010
This paper argues in favour of a language-oriented approach to teach the principles of concurrency to graduate students. Over the past years, the popularity of programming languages that promote a functional programming style has steadily grown. We want to promote the use of such languages as the appropriate basic tools to deal with the “multicore revolution”. We describe some of these programming languages and highlight two of them: Erlang and Clojure. We use these languages in a new graduate-level course that we will teach starting next academic year. Our goal is not to convince the reader that Erlang and Clojure are the best possible choices among this pool of candidate languages. Rather, our goal is to promote a functional programming style to tackle concurrency issues, and to teach this style in a programming language that makes it easy, straightforward and convenient to use that style. We do not want to get bogged down in a discussion on the usefulness or importance of learning new programming languages. For a good summary of the diverse advantages of studying new programming languages, we refer to a recent white paper by the ACM SIGPLAN education board [6]. 1. BACKGROUND Starting next academic year, the first author will teach a new graduate-level course on concurrency at the Flemish Free University of Brussels in Belgium. As in many other institutions worldwide, our computer science curriculum is slowly beginning to adapt to the reality that virtually every new computer is a parallel machine. To date, our computer science curriculum featured just one course that touches upon concurrent programming. However, this course focuses on the traditional topics of using