Teaching a Systematic Design Method for Concurrent ProgramsPASS invited talk
Learning how to design and implement a program is hard. Most text books on programming describe each topic in terms of syntax followed by some examples. Little or no attention is paid to how to design a program systematically. Where design is treated, it is often accommodated in a separate course. As a consequence, Integration of these types of knowledge and skills often does not happen.
For the development of concurrent programs, we have developed a systematic design method in which the development process is divided into a sequence of explicit, manageable steps. The procedure is intended to scaffold student’s learning of concurrency concepts and their application as part of a first year university course in object-oriented programming. The procedure imparts conceptual knowledge and scaffolds students on how to analyze, design and implement a concurrent program step-by-step. Each steps comprise (standard) OO structuring, decisions to take, and reflection on both the design and implementation process. The systematic method, helps students to develop better software, to understand difficult concepts and to integrate conceptual and procedural knowledge. Moreover, students learn to think systematically before act.