Evaluation of a Structured Design Methodology for Concurrent Programming

A. Bijlsma, Kees Huizing, Ruurd Kuiper, H.J.M. Passier, H.J. Pootjes, Sjaak Smetsers

Research output: Chapter in Book/Report/Conference proceedingConference article in proceedingAcademicpeer-review

Abstract

Learning how to design and implement a program is hard. Teaching methods and textbooks on Java programming often treat a new subject in terms of syntax and examples. Little attention is paid to systematically designing programs with these new concepts. Research has shown that such a complex task requires not only conceptual knowledge, but also explicit procedural support. In this paper, we investigate the effect of combining conceptualand procedural guidance to teaching and learning concurrent programming. We build on earlier research in which we have introduced such a structured design methodology which divides the development of multi-threaded Java programs into a sequence of explicit, manageable steps: the Steps Plan. We present our experiences with applying the Steps Plan in an introductory course on object-oriented programming, with multithreading. The main questions addressed are: "What problems did the students encounter in direct relation to the Steps Plan?", and "What general problems surfaced?" As to the first question, two important issues were that using a relatively far developed sequential solution as a stepping stone towards a multi-threaded solution wrong-footed some students, and that remedying race condition situations turned out to be supported at a too high level of abstraction. As to the second question, two notable issues were that deciding on the right amount and type of concurrency by themselves is maybe too difficult for students at this level, and that the notion of(establishing) correctness or quality of a solution is, different from the sequential case, not intuitively clear to students. For these issues, the paper recommends remedies and indicates directions for future work. We discuss the consequences for educationas regards teaching materials and forms of teaching.
Original languageEnglish
Title of host publicationCSERC '19
Subtitle of host publicationProceedings of the 8th Computer Science Education Research Conference
EditorsEbrahim Rahimi, Dave Stikkolorum
Place of PublicationNew York, NY
PublisherAssociation for Computing Machinery
Pages58–65
Number of pages8
ISBN (Electronic)9781450377171
DOIs
Publication statusPublished - Nov 2019
Event8th Computer Science Education Research Conference (CSERC'19) - University of Cyprus, Larnaca, Cyprus
Duration: 18 Nov 201920 Nov 2019
Conference number: 8

Conference

Conference8th Computer Science Education Research Conference (CSERC'19)
Abbreviated titleCSERC
CountryCyprus
CityLarnaca
Period18/11/1920/11/19

    Fingerprint

Keywords

  • Education
  • object-oriented programming
  • concurrency,
  • Java
  • Program design

Cite this

Bijlsma, A., Huizing, K., Kuiper, R., Passier, H. J. M., Pootjes, H. J., & Smetsers, S. (2019). Evaluation of a Structured Design Methodology for Concurrent Programming. In E. Rahimi, & D. Stikkolorum (Eds.), CSERC '19: Proceedings of the 8th Computer Science Education Research Conference (pp. 58–65). Association for Computing Machinery. https://doi.org/10.1145/3375258.3375266