2013 IEEE Frontiers in Education Conference (FIE)
Download PDF

Abstract

The prevalence of multi-core processors means application developers can no longer ignore concurrency and its attendant problems of data races, deadlock, safety, and liveness. Imperative languages such as Java and C, based on shared, mutable state, have added locks, semaphores and condition variables to address these problems; unfortunately, these locking approaches are notoriously error-prone. Functional ("single assignment") languages with immutable state have been promoted as tools to mitigate these problems. In particular, Erlang, a functional language with roots in Prolog, has been used by Erickson, Ltd., to develop robust, concurrent, fault-tolerant, communications switches (31ms downtime per year). This workshop will introduce Erlang to educators interested in the language per se as well as those focusing on concurrent system development. The goal is to encourage the use of both imperative and functional languages in teaching about concurrency. Participants will install the Erlang system on their notebooks so as to engage in activities along with the organizer. Both sequential and concurrent systems - small but complete - will be developed in conjunction with the presentations. Time is allocated at the end of the workshop to discuss the pedagogical issues involved in adopting Erlang or similar technology.
Like what you’re reading?
Already a member?
Get this article FREE with a new membership!

Related Articles