Skip navigation
  • Home
  • Browse
    • Communities
      & Collections
    • Browse Items by:
    • Publication Date
    • Author
    • Title
    • Subject
    • Department
  • Sign on to:
    • My MacSphere
    • Receive email
      updates
    • Edit Profile


McMaster University Home Page
  1. MacSphere
  2. Open Access Dissertations and Theses Community
  3. Open Access Dissertations and Theses
Please use this identifier to cite or link to this item: http://hdl.handle.net/11375/31494
Title: A Functional Event-Driven Framework for Simplified Concurrent Applications: Technical and Pedagogical Considerations
Other Titles: A Functional Event-Driven Framework
Authors: Schankula, Christopher William
Advisor: Anand, Christopher Kumar
Smith, Spencer
Department: Computing and Software
Keywords: Event-Driven Programming;Functional Programming;Concurrent Programming;Software Design;Human-Centred Design;Design Thinking;Pedagogy
Publication Date: 2025
Abstract: Modern software products require graduates experienced with creating interactive programs. To properly learn how to build interactive programs, students need projects that present a low barrier to entry (low floor) while retaining a high ceiling to ensure high engagement of more experienced students. In this thesis, we turn to multiplayer game programming using the Event-Driven Programming (EDP) paradigm to fulfill this need. EDP is a type of programming where concurrency is based around the processing of events, which are processed atomically in a central event loop. EDP has been shown to produce more reliable software, precluding many of the common mistakes programmers make with lower-level concurrent programming. We use Elm, which implements EDP in a purely functional setting, processing events as immutable data structure values called messages. This thesis describes the design of a multi-user extension to Elm's Model-View-Update (MVU) paradigm, called Local-Global Model-View-Update (LG-MVU). We implemented the LG-MVU paradigm in Elm as the TEASync framework. We show how the purely functional language helps to ensure concurrency properties are maintained. We then describe and report on the use of the framework in a first-year computer science course, where students were given the option to use it to implement a video game in a semester-long group project. Surveys, focus groups, and code compilation data were used to ascertain the difficulties and experiences students had using the framework. The data showed that students were able to use the framework to make complex multiplayer games. Those who used it tended to have more programming experience prior to university, confirming its effectiveness as a high-ceiling activity, while retaining the low-floor option of tool-supported single-player games. Students using TEASync reported a lower difficulty level than initially anticipated, appreciated its simplicity, and had higher levels of engagement in, and enjoyment of, the project and course.
URI: http://hdl.handle.net/11375/31494
Appears in Collections:Open Access Dissertations and Theses

Files in This Item:
File Description SizeFormat 
Schankula_Christopher_W_finalsubmission2025March_MSc.pdf
Open Access
8.81 MBAdobe PDFView/Open
Show full item record Statistics


Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.

Sherman Centre for Digital Scholarship     McMaster University Libraries
©2022 McMaster University, 1280 Main Street West, Hamilton, Ontario L8S 4L8 | 905-525-9140 | Contact Us | Terms of Use & Privacy Policy | Feedback

Report Accessibility Issue