Use Concurrent Programming Models to Motivate Teaching of Programming Languages
Undergraduate computer science students typically have only a limited understanding of their favorite languages and no inkling of other programming paradigms. Yet modern programmers typically work with several languages, and the availability of cheap concurrency is exposing fundamental problems in standard concurrent programming techniques ( mutable objects and threads). This situation presents a great opportunity: by exploring nonstandard techniques for gaining intellectual control over concurrent programs, one can motivate and teach important semantic concepts ( such as scoping) and important programming concepts ( such as functional abstraction). Such a curriculum stimulates student interest in exploring new programming paradigms.
concurrency programming models languages paradigms concepts programming language curriculum computational models